CS/Network

3-way handshake(SYN, ACK)

chaerlo127 2024. 2. 3. 22:20
728x90

3-way handshake

  • TCP/IP ํ”„๋กœํ† ์ฝœ๋กœ ํ†ต์‹ ํ•˜๊ธฐ ์ „, ์ •ํ™•ํ•œ ์ •๋ณด ์ „์†ก์„ ์œ„ํ•ด ์ƒ๋Œ€๋ฐฉ ์ปดํ“จํ„ฐ์™€ ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๊ณผ์ •
  • TCP ์—ฐ๊ฒฐ ์ดˆ๊ธฐํ™”
  • ์„œ๋กœ ํ†ต์‹ ์„ ์œ„ํ•ด ๊ด€๋ฌธ(port)๋ฅผ ํ™•์ธํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 3๋ฒˆ์˜ ์š”์ฒญ(SYN), ์‘๋‹ต(ACK) ๋˜๋Š” ๊ฒƒ
    • ์ด ๊ณผ์ •์—์„œ ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋จ
  • TCP ๊ณผ์ • ์ค‘(connection setup - data transfer - connection termination) connection setup์— ํ•ด๋‹น

 

์—ฐ๊ฒฐ ๊ณผ์ •

ํŒจํ‚ท = ์„ธ๊ทธ๋จผํŠธ (TCP ์—์„œ)

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ์„ ์œ„ํ•ด SYN ํŒจํ‚ท ์ „์†ก
  2. ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ํฌํŠธ๋Š” LISTEN ์ƒํƒœ๋กœ SYN ํŒจํ‚ท์„ ๋ฐ›๊ณ  SYN_RCV ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ
  3. ์„œ๋ฒ„๋Š” ์ •์ƒ์ ์œผ๋กœ ๋ฐ›์•˜๋‹ค๋Š” ACK ํŒจํ‚ท + ์ƒ๋Œ€๋ฐฉ์˜ ํฌํŠธ๋ฅผ ์—ด์–ด๋‹ฌ๋ผ๋Š” SYN ํŒจํ‚ท์„ ๊ฐ™์ด ์ „์†ก
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ACK + SYN ํŒจํ‚ท์„ ๋ฐ›๊ณ  ESTABLISHED ์ƒํƒœ ๋ณ€๊ฒฝ ํ›„ ์„œ๋ฒ„์— ACK๋ฅผ ์ „์†ก
  5. ACK๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ์ƒํƒœ๊ฐ€ ESTABLISHED๋กœ ๋ณ€๊ฒฝ
  6. connection setup ์™„๋ฃŒ

 

 

LISTEN : ์„œ๋ฒ„์˜ ๋ฐ๋ชฌ์ด ๋– ์„œ ์ ‘์† ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
ESTABLISHED : 3 way-handshaking ์ด ์™„๋ฃŒ๋œ ํ›„ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ

๊ทธ ์ด์™ธ์˜ ์ƒํƒœ
SYN-SENT : ๋กœ์ปฌ์˜ ํด๋ผ์ด์–ธํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•œ ์ƒํƒœ
SYN_RECEIVED : ์„œ๋ฒ„๊ฐ€ ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ ‘์† ์š”๊ตฌ๋ฅผ ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต์„ ํ•˜์˜€์ง€๋งŒ ์•„์ง ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ™•์ธ ๋ฉ”์‹œ์ง€๋Š” ๋ฐ›์ง€ ์•Š์€ ์ƒํƒœ
FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : ์„œ๋ฒ„์—์„œ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ข…๊ฒฐ์„ ์š”์ฒญํ•˜๊ณ  ํšŒ์‹ ์„ ๋ฐ›์•„ ์ข…๋ฃŒํ•˜๋Š” ๊ณผ์ •์˜ ์ƒํƒœ
TIME-WAIT : ์—ฐ๊ฒฐ์€ ์ข…๋ฃŒ๋˜์—ˆ์ง€๋งŒ ๋ถ„์‹ค๋˜์—ˆ์„์ง€ ๋ชจ๋ฅผ ๋Š๋ฆฐ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์œ„ํ•ด ๋‹น๋ถ„๊ฐ„ ์†Œ์ผ“์„ ์—ด์–ด๋‘๊ณ  ์žˆ๋Š” ์ƒํƒœ
CLOSING : ํ”ํ•˜์ง€ ์•Š์ง€๋งŒ ์ฃผ๋กœ ํ™•์ธ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋„์ค‘ ๋ถ„์‹ค๋œ ์ƒํƒœ
CLOSED : ์™„์ „ํžˆ ์ข…๋ฃŒ

 

4-way handshake

  • TCP ๊ณผ์ • ์ค‘(connection setup - data transfer - connection termination) connection termination์— ํ•ด๋‹น
  • TCP ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ

์—ฐ๊ฒฐ ์ข…๋ฃŒ ๊ณผ์ •

ํŒจํ‚ท = ์„ธ๊ทธ๋จผํŠธ (TCP ์—์„œ)

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ Activate Close ๋ฅผ ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์— FIN ์„ธ๊ทธ๋จผํŠธ ์ „์†ก (ํด : FIN-WAIT ์ƒํƒœ)
  2. ์„œ๋ฒ„๋Š” FIN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜๋‹ค๋Š” ์‘๋‹ต์— ๋Œ€ํ•œ ACK ํŒจํ‚ท์„ ์ „์†ก (์„œ : CLOSE_WAIT ์ƒํƒœ)
  3. ์„œ๋ฒ„๋Š” Passive Close ๋ฅผ ๋ฐ›์œผ๋ฉด ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์— FIN ์„ธ๊ทธ๋จผํŠธ ์ „์†ก(ํด : LAST-ACK ์ƒํƒœ)
  4. ํด๋ผ์ด์–ธํŠธ๋Š” FIN ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜๋‹ค๋Š” ์‘๋‹ต์— ๋Œ€ํ•œ ACK ํŒจํ‚ท์„ ์ „์†ก (ํด : TIME-WAIT ์ƒํƒœ)
  5. ์„œ๋ฒ„๊ฐ€ ACK ๋ฅผ ๋ฐ›์œผ๋ฉด ์—ฐ๊ฒฐ ์ข…๋ฃŒ

 

 

์ถœ์ฒ˜

https://velog.io/@devharrypmw/TCPUDP-TCP์™€-UDP์˜-ํŠน์ง•๊ณผ-์ฐจ์ด
https://bangu4.tistory.com/74
728x90