Skip to content

Latest commit

Β 

History

History
30 lines (19 loc) Β· 1.9 KB

3-way handshake.md

File metadata and controls

30 lines (19 loc) Β· 1.9 KB

3-way handshake

3-way handshake은 λ„€νŠΈμ›Œν¬ ν†΅μ‹ μ—μ„œ TCP/IP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ 연결을 μ„€μ •ν•˜λŠ” 방법이닀.

TCP (Transmission Control Protocol)λŠ” μΈν„°λ„·μ—μ„œ μ‹ λ’°μ„± μžˆλŠ” 데이터 전솑을 μœ„ν•΄ μ‚¬μš©λ˜λŠ” ν”„λ‘œν† μ½œμ΄λ‹€.


3-way handshake은 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ 간에 μ„Έμ…˜μ„ μ„€μ •ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같은 μ„Έ 단계λ₯Ό κ±°μΉœλ‹€.

  1. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ SYN 보내기 (SYN Sent)

    • ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— 연결을 μš”μ²­ν•˜κΈ° μœ„ν•΄ SYN(Synchronize) νŒ¨ν‚·μ„ 보냄.
    • 이 νŒ¨ν‚·μ€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ™€ 톡신을 μ‹œμž‘ν•˜λ €λŠ” 것을 μ•Œλ¦¬λŠ” 역할을 ν•œλ‹€.
    • ν΄λΌμ΄μ–ΈνŠΈλŠ” SYN νŒ¨ν‚·μ„ 보낸 ν›„ SYN_SENT μƒνƒœλ‘œ μ „ν™˜λœλ‹€.
  2. μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ SYN-ACK 보내기 (SYN Received)

    • μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° 받은 SYN νŒ¨ν‚·μ— μ‘λ‹΅ν•˜κΈ° μœ„ν•΄ SYN-ACK(Synchronize-Acknowledgment) νŒ¨ν‚·μ„ 보낸닀.
    • 이 νŒ¨ν‚·μ€ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μˆ˜λ½ν•˜κ³  톡신을 μ‹œμž‘ν•  μ€€λΉ„κ°€ λ˜μ—ˆλ‹€λŠ” 것을 μ•Œλ¦¬λŠ” 역할을 ν•œλ‹€.
    • μ„œλ²„λŠ” SYN-ACK νŒ¨ν‚·μ„ 보낸 ν›„ SYN_RECEIVED μƒνƒœλ‘œ μ „ν™˜λœλ‹€.
  3. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ ACK 보내기 (Established)

    • ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„λ‘œλΆ€ν„° 받은 SYN-ACK νŒ¨ν‚·μ— λŒ€ν•œ μ‘λ‹΅μœΌλ‘œ ACK(Acknowledgment) νŒ¨ν‚·μ„ 보낸닀.
    • 이 νŒ¨ν‚·μ€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ˜ 응닡을 λ°›μ•˜μœΌλ©°, 톡신이 μ„±κ³΅μ μœΌλ‘œ μ„€μ •λ˜μ—ˆμŒμ„ μ•Œλ¦¬λŠ” 역할을 ν•œλ‹€.
    • μ„œλ²„λŠ” ACK νŒ¨ν‚·μ„ 받은 ν›„ ESTABLISHED μƒνƒœλ‘œ μ „ν™˜λ˜λ©°, ν΄λΌμ΄μ–ΈνŠΈλ„ ESTABLISHED μƒνƒœλ‘œ μ „ν™˜λœλ‹€.
    • 이제 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λŠ” 데이터λ₯Ό 주고받을 수 μžˆλŠ” μƒνƒœκ°€ λœλ‹€.

이와 같은 3-way handshaking 과정을 톡해 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λŠ” μ‹ λ’°μ„± μžˆλŠ” 연결을 μ„€μ •ν•˜κ³  데이터λ₯Ό μ•ˆμ •μ μœΌλ‘œ κ΅ν™˜ν•  수 있게 λœλ‹€.