๊ฐœ๋ฐœ/Network

TCP, 3-way handshake, 4-way handshake, UDP

daramii 2022. 4. 30. 10:55

๐Ÿ’ก์ „์†ก ๊ณ„์ธต(Transport Layer)์— ์†ํ•œ TCP์™€ UDP 

OSI 7 ๋ ˆ์ด์–ด์—์„œ Transport Layer์—๋Š” ์–‘ ๋๋‹จ(End to end)์˜ ์‚ฌ์šฉ์ž๋“ค์ด ์‹ ๋ขฐ์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด ์ฃผ์–ด, ์ƒ์œ„ ๊ณ„์ธต๋“ค์ด ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์˜ ์œ ํšจ์„ฑ์ด๋‚˜ ํšจ์œจ์„ฑ์„ ์ƒ๊ฐํ•˜์ง€ ์•Š๋„๋ก ํ•ด์ค€๋‹ค. ์ „์†ก ๊ณ„์ธต์€ ์ผ๋ฐ˜์ ์ธ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ์ธ ๊ฐœ๋ฐฉํ˜• ์‹œ์Šคํ…œ ๊ฐ„ ์ƒํ˜ธ ์ ‘์† (Open Systems Interconnection, OSI)๊ณผ ์ธํ„ฐ๋„ท์˜ ๊ธฐ๋ฐ˜์ธ TCP/IP ์ฐธ์กฐ ๋ชจ๋ธ๊ณผ  ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์ „์†ก ํ”„๋กœํ† ์ฝœ ์ค‘ ์ž˜ ์•Œ๋ ค์ง„ ๊ฒƒ์ด ๋ฐ”๋กœ TCP์™€ UDP์ด๋‹ค.

 

๐Ÿ’กTCP(Transmission Control Protocol)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

: ์ ์ ˆํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ

 

๐Ÿ“Œํ”„๋กœํ† ์ฝœ : ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ํ†ต์‹ ํ•  ๋•Œ์— ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ณตํ†ต๋œ ์ ˆ์ฐจ์˜ ๊ทœ์•ฝ

ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ์„œ ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ์ด ์กด์žฌํ•œ๋‹ค(‘IP’, ‘HTTP’, ‘FTP’, ‘SMTP’, ‘TCP’ ๋“ฑ)

 

- TCP๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ, ๋ฐ์ดํ„ฐ ๋ถ„ํ•  ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

- TCP์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์ฆˆ ์ตœ๋Œ€์น˜๋ฅผ MSS๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋งŒ์•ฝ์— ์ด MSS๋ฅผ ๋„˜์„ ๊ฒฝ์šฐ TCP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋ถ„ํ• ํ•œ๋‹ค.

- TCP์— ์˜ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ํ˜น์€ ๋ถ„ํ• ์„ ์ˆ˜ํ–‰๋  ๋•Œ, ๋ฐ์ดํ„ฐ ์•ž์— ‘TCP ํ—ค๋”๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค.

 

cf) TCP/IP ํŒจํ‚ท ์ •๋ณด

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•  ๋•Œ, ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํŒจํ‚ท์— ๊ฐ์‹ธ์„œ ๋ณด๋‚ธ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ „์†ก๊ณ„์ธต์˜ ํŒจํ‚ท์„ ์„ธ๊ทธ๋จผํŠธ๋ผ๊ณ  ํ•˜๋ฉฐ, UDP์—์„œ๋Š” ์ข…์ข… ์ด๋ฅผ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 

๐Ÿ“Œํ—ค๋” : ๋ฐ์ดํ„ฐ ๋ณธ์ฒด์™€๋Š” ๋ณ„๋„๋กœ ๋ฐ์ดํ„ฐ์˜ ๋งจ ์•ž์— ์ถ”๊ฐ€๋˜๋Š” ์ •๋ณด.

๐Ÿ“ŒTCP์„ธ๊ทธ๋จผํŠธ : TCP ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ

 

 

๐Ÿ’กTCP ์—ฐ๊ฒฐ์˜ ์„ฑ๋ฆฝ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์— ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก(“๋ชฉ์ ”)์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ‘three way handshake’๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ‘TCP์—ฐ๊ฒฐ’(TCP๋ฅผ ์ด์šฉํ•ด์„œ ํ†ต์‹ ํ•˜๋ ค๋Š” ์—ฐ๊ฒฐ)์„ ์„ฑ๋ฆฝ์‹œํ‚จ๋‹ค. TCP๋ฅผ ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

 

 

๐Ÿ’กTCP์˜ 3-Way Handshake (TCP ์—ฐ๊ฒฐ)

: ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ผ๋ฆฌ ์ธ์‚ฌ๋ฅผ 3๋ฒˆํ•จ์œผ๋กœ์จ ์—ฐ๊ฒฐ์„ ์„ฑ๋ฆฝ์‹œํ‚ค๋Š” ๊ธฐ๋ฒ•

 

๐Ÿ‘ฉ‍๐Ÿ’ป ํ˜ธ์ŠคํŠธA (CLOSED→SYN_SENT) โžก๏ธ ๐Ÿ–ฅ๏ธ ํ˜ธ์ŠคํŠธB (LISTEN) : ์—ฐ๊ฒฐํ•ด๋„ ๋ ๊นŒ์š”? (SYN)
๐Ÿ‘ฉ‍๐Ÿ’ป ํ˜ธ์ŠคํŠธA (CLOSED) โฌ…๏ธ ๐Ÿ–ฅ๏ธ ํ˜ธ์ŠคํŠธB (SYN_RCV) : ๋„ค, ์ด์ชฝ์—์„œ๋„ ์—ฐ๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (SYN/ACK)
๐Ÿ‘ฉ‍๐Ÿ’ป ํ˜ธ์ŠคํŠธA (ESTABLISHED) โžก๏ธ ๐Ÿ–ฅ๏ธ ํ˜ธ์ŠคํŠธB (ACK→ESTABLISHED) : ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ชฝ๋„ OK์ž…๋‹ˆ๋‹ค. (ACK)

 

๐ŸŒฟStep 1 (SYN)

  • ์†ก์‹ ์ž๊ฐ€ ์ตœ์ดˆ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ Sequence Number๋ฅผ ์ž„์˜์˜ ๋žœ๋ค ์ˆซ์ž๋กœ ์ง€์ •ํ•˜๊ณ , SYN ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์™€ ์ปค๋„ฅ์…˜์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด SYN์„ ๋ณด๋‚ธ๋‹ค. (seq : x)

 

๐ŸŒฟStep 2 (SYN + ACK)

  • ์ ‘์†์š”์ฒญ์„ ๋ฐ›์€ A๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ–ˆ์œผ๋ฉฐ, ์ ‘์† ์š”์ฒญ ํ”„๋กœ์„ธ์Šค์ธ B๋„ ํฌํŠธ๋ฅผ ์—ด์–ด๋‹ฌ๋ผ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†ก (SYN-ACK signal bits set)
  • ACK Numberํ•„๋“œ๋ฅผ Sequence Number + 1 ๋กœ ์ง€์ •ํ•˜๊ณ  SYN๊ณผ ACK ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์ƒˆ๊ทธ๋จผํŠธ ์ „์†ก (Seq=y, Ack=x+1, SYN, ACK)
  • PORT ์ƒํƒœ
    • Client : CLOSED
    • Server : SYN_RCV

 

์„œ๋ฒ„๊ฐ€ SYN(x)์„ ๋ฐ›๊ณ , ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ›์•˜๋‹ค๋Š” ์‹ ํ˜ธ์ธ ACK์™€ SYN ํŒจํ‚ท์„ ๋ณด๋ƒ„ (seq : y, ACK : x + 1)

 

๐ŸŒฟStep 3 (ACK)

  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ‘์† ์š”์ฒญ ํ”„๋กœ์„ธ์Šค B๊ฐ€ ์ˆ˜๋ฝ ํ™•์ธ์„ ๋ณด๋‚ด ์—ฐ๊ฒฐ์„ ๋งบ์Œ (ACK)
  • ์ด๋•Œ, ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์ด ๋‹จ๊ณ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.
  • PORT ์ƒํƒœ
    • Client : ESTABLISED
    • Server : SYN_RCV ⇒ ACK ⇒ ESTABLISED

 

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์‘๋‹ต์€ ACK(x+1)์™€ SYN(y) ํŒจํ‚ท์„ ๋ฐ›๊ณ , ACK(y+1)๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋ƒ„

 

๐Ÿ“ŒํฌํŠธ(PORT) ์ƒํƒœ ์ •๋ณด

- CLOSED : ํฌํŠธ๊ฐ€ ๋‹ซํžŒ ์ƒํƒœ
- LISTEN : ํฌํŠธ๊ฐ€ ์—ด๋ฆฐ ์ƒํƒœ๋กœ ์—ฐ๊ฒฐ ์š”์ฒญ ๋Œ€๊ธฐ ์ค‘
- SYN_RCV : SYNC ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ƒ๋Œ€๋ฐฉ์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘
- ESTABLISHED : ํฌํŠธ ์—ฐ๊ฒฐ ์ƒํƒœ

 

๐Ÿ“Œํ”Œ๋ž˜๊ทธ(FLAG) ์ •๋ณด

- TCP Header์—๋Š” CONTROL BIT(ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ, 6bit)๊ฐ€ ์กด์žฌํ•œ๋‹ค.
- ๊ฐ๊ฐ์˜ bit๋Š” "URG-ACK-PSH-RST-SYN-FIN"์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.
- 1์ธ bit์˜ ์œ„์น˜์— ๋”ฐ๋ผ ํ•ด๋‹น ํŒจํ‚ท์ด ์–ด๋– ํ•œ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋Š” ํŒจํ‚ท์ธ์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

- SYN(Synchronize Sequence Number) / 000010 / ์—ฐ๊ฒฐ ์„ค์ •
: Sequence Number๋ฅผ ๋žœ๋ค์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์„ธ์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ดˆ๊ธฐ์— Sequence Number๋ฅผ ์ „์†กํ•œ๋‹ค.

- ACK(Acknowledgement) / 010000 / ์‘๋‹ต ํ™•์ธ
: ํŒจํ‚ท์„ ๋ฐ›์•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. Acknowledgement Number ํ•„๋“œ๊ฐ€ ์œ ํšจํ•œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์–‘๋‹จ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‰ฌ์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์ตœ์ดˆ ์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •์—์„œ ์ „์†ก๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์„ธ๊ทธ๋จผํŠธ์˜ ACK ๋น„ํŠธ๋Š” 1๋กœ ์ง€์ •๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

- FIN(Finish) / 000001 / ์—ฐ๊ฒฐ ํ•ด์ œ
: ์„ธ์…˜ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋” ์ด์ƒ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

 

 

๐Ÿ’กTCP์˜ 4-Way Handshake (TCP ์—ฐ๊ฒฐ ์ข…๋ฃŒ)

๐Ÿ‘ฉ‍๐Ÿ’ป ํ˜ธ์ŠคํŠธA โžก๏ธ ๐Ÿ–ฅ๏ธ ํ˜ธ์ŠคํŠธB  : ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•ด๋„ ๋ ๊นŒ์š”? (FIN/ACK)
๐Ÿ‘ฉ‍๐Ÿ’ป ํ˜ธ์ŠคํŠธA (FIN_WAIT_1) โฌ…๏ธ ๐Ÿ–ฅ๏ธ ํ˜ธ์ŠคํŠธB (ACK→TIME_WAITACKCLOSE_WAIT) : ๋„ค, ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. (ACK)
๐Ÿ‘ฉ‍๐Ÿ’ป ํ˜ธ์ŠคํŠธA (FIN_WAIT_2) โฌ…๏ธ ๐Ÿ–ฅ๏ธ ํ˜ธ์ŠคํŠธB (FIN→LAST_ACK) : ์ด์ชฝ์—์„œ๋„ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (FIN/ACK)
๐Ÿ‘ฉ‍๐Ÿ’ป ํ˜ธ์ŠคํŠธA (TIME_WAIT→CLOSED) โžก๏ธ ๐Ÿ–ฅ๏ธ ํ˜ธ์ŠคํŠธB (CLOSED) : ๋„ค, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. (ACK)

 

๐ŸŒฟSTEP1 (Client → Server : FIN(+ACK))

  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ close()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ ‘์†์„ ๋Š์œผ๋ คํ•œ๋‹ค.
  • ์ด๋•Œ, ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค๋Š” FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ณด๋‚ธ๋‹ค. (์ด๋•Œ FIN ํŒจํ‚ท์—๋Š” ์‹ค์งˆ์ ์œผ๋กœ ACK๋„ ํฌํ•จ๋˜์–ด์žˆ๋‹ค.)

 

๐ŸŒฟSTEP2 (Server → Client : ACK)

  • ์„œ๋ฒ„๋Š” FIN์„ ๋ฐ›๊ณ , ํ™•์ธํ–ˆ๋‹ค๋Š” ACK๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด๊ณ  ์ž์‹ ์˜ ํ†ต์‹ ์ด ๋๋‚ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. (์ด์ƒํƒœ๊ฐ€ TIME_WAIT ์ƒํƒœ)
    • Server(์ˆ˜์‹ ์ž)๋Š” ACK Number ํ•„๋“œ๋ฅผ (Sequence Number + 1)๋กœ ์ง€์ •ํ•˜๊ณ , ACK ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต์„ ๋ณด๋‚ด๊ณ  CLOSE_WAIT ์ƒํƒœ์— ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„์ง ๋‚จ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋งˆ์ € ์ „์†ก์„ ๋งˆ์นœ ํ›„์— close( )๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ์„œ๋ฒ„์—์„œ ACK๋ฅผ ๋ฐ›์€ ํ›„์— ์„œ๋ฒ„๊ฐ€ ๋‚จ์€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋๋‚ด๊ณ  FIN ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (FIN_WAIT_2)

 

๐ŸŒฟSTEP3 (Server → Client : FIN)

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ณด๋ƒˆ๋‹ค๋ฉด, ์„œ๋ฒ„๋Š” ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ์— ํ•ฉ์˜ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ FIN ํŒจํ‚ท์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ธ ํ›„์—, ์Šน์ธ ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋‚ด์ค„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” LAST_ACK ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

 

๐ŸŒฟSTEP4 (Client → Server : ACK)

  • ํด๋ผ์ด์–ธํŠธ๋Š” FIN์„ ๋ฐ›๊ณ , ํ™•์ธํ–ˆ๋‹ค๋Š” ACK๋ฅผ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.
  • ์•„์ง ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์ง€ ๋ชปํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ TIME_WAIT์„ ํ†ตํ•ด ๊ธฐ๋‹ค๋ฆฐ๋‹ค. (์‹ค์งˆ์ ์ธ ์ข…๋ฃŒ๊ณผ์ • CLOSED์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.)
    • ์ด๋•Œ TIME_WAIT ์ƒํƒœ๋Š” ์˜๋„์น˜ ์•Š์€ ์—๋Ÿฌ๋กœ ์ธํ•ด ์—ฐ๊ฒฐ์ด ๋ฐ๋“œ๋ฝ์œผ๋กœ ๋น ์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€
    • ๋งŒ์•ฝ ์—๋Ÿฌ๋กœ ์ธํ•ด ์ข…๋ฃŒ๊ฐ€ ์ง€์—ฐ๋˜๋‹ค๊ฐ€ ํƒ€์ž„์ด ์ดˆ๊ณผ๋˜๋ฉด CLOSED๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ACK๋ฅผ ๋ฐ›์€ ์ดํ›„ ์†Œ์ผ“์„ ๋‹ซ๋Š”๋‹ค (CLOSED)

TIME_WAIT ์‹œ๊ฐ„์ด ๋๋‚˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋„ ๋‹ซ๋Š”๋‹ค (CLOSED)

 

 

๐Ÿ’กTCP์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์‹œ์˜ ๋™์ž‘- ์œˆ๋„์šฐ์ œ์–ด, ์ˆœ์„œ์ œ์–ด, ์žฌ์ „์†ก์ œ์–ด, ํ˜ผ์žก์ œ์–ด

TCP์—์„œ๋Š” ์—ฐ๊ฒฐ์„ ์„ฑ๋ฆฝ์‹œํ‚ค๊ณ  -> ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค. ์ด๋•Œ ๋‹ค์Œ์˜ 3๊ฐ€์ง€ ์ œ์–ด ๊ธฐ๋Šฅ์„ ๊ตฌ์‚ฌํ•ด์„œ ํ™•์‹คํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก(“๋ชฉ์ ”)ํ•œ๋‹ค.

 

์ œ์–ด๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” TCP ํ—ค๋”์— ๋‹ค์–‘ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒƒ์„ ์˜ค๋ฒ„ํ—ค๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (UDP ์ฐธ๊ณ )

 

๐ŸŒฟ์œˆ๋„์šฐ ์ œ์–ด

TCP์—์„œ๋Š” ๋ฐ์ดํ„ฐ(TCP ์„ธ๊ทธ๋จผํŠธ)๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์†ก์‹ ์ง€์— ํ™•์ธ ์‘๋‹ต์„ ๋Œ๋ ค๋ณด๋‚ธ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋•Œ ํ•˜๋‚˜ ๋ณด๋‚ด๊ณ  ์‘๋‹ต๊ธฐ๋‹ค๋ฆฌ๊ณ  ๋˜ ํ•˜๋‚˜ ๋ณด๋‚ด๊ณ  ์ด๋Ÿฐ ์‹์ด๋ฉด ์ „์†ก ํšจ์œจ์ด ๋งค์šฐ ๋‚ฎ์•„์ง„๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์œˆ๋„์šฐ ์ œ์–ด๋ฅผ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ํ•œ๋ฒˆ์— ์†ก์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

 

- ํ˜ธ์ŠคํŠธ A์™€ ํ˜ธ์ŠคํŠธ B์‚ฌ์ด์— TCP์—ฐ๊ฒฐ์ด ์„ฑ๋ฆฝ๋  ๋•Œ, ์„œ๋กœ์˜ ์œˆ๋„์šฐ ์‚ฌ์ด๋ฅผ ํ†ต์ง€ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์†ก์‹ ํ•˜๋Š” ์ชฝ์ด ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์—์„œ ํ•œ๋ฒˆ์— ์–ผ๋งˆ๋‚˜ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ฌ์ด์ฆˆ๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ๊นŒ, ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๊ทธ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์†ก์‹ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

- 3-way handshake๋กœ ์„œ๋กœ์˜ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๋ฅผ ํ™•์ธํ•œ๋‹ค.
- A์—์„œ B์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋ณด๊ณ  ์˜ˆ๋ฅผ ๋“ค์–ด์„œ 3000๋ฐ”์ดํŠธ๋ผ๋ฉด 1000๋ฐ”์ดํŠธ 3๊ฐœ๋ฅผ ๋ณด๋‚ธ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด B์—์„œ ๊ฐ๊ฐ 3๊ฐœ์˜ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•ด์„œ ํ™•์ธ์‘๋‹ต์„ ๋Œ๋ ค์ค€๋‹ค. ์‘๋‹ต์„ ๋Œ๋ ค์ค„ ๋•Œ์—๋Š” ์œˆ๋„์šฐ์‚ฌ์ด์ฆˆ๋„ ํฌํ•จ ๋˜์–ด์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์œˆ๋„์šฐ์‚ฌ์ด์ฆˆ๋Š” ์ƒˆ๋กœ์šด ์‚ฌ์ด์ฆˆ๋‹ค. ์ฆ‰, B์ชฝ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋”ฐ๋ผ์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ณ€ํ™”๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด A๋Š” ์ƒˆ๋กœ์šด ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ์„œ B์—๊ฒŒ ๋‹ค์Œ TCP์„ธ๊ทธ๋จผํŠธ๋ฅผ ์†ก์‹ ํ•œ๋‹ค.
- ์ด๊ฒƒ์€ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋ฐฉ์‹์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. ์†ก์‹ ํ•˜๋Š” ์ชฝ์ด ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์˜ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ์— ๋งž์ถ”์–ด MSS๋งŒํผ ์˜†์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ€๋ฉฐ ์ „์†กํ•ด์„œ์ด๋‹ค.

 

๐ŸŒฟ์ˆœ์„œ ์ œ์–ด

TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋ณด๋‚ด๋‹ค ๋ณด๋ฉด ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์—์„œ ๋„์ฐฉํ•˜๋Š” ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ, TCPํ—ค๋”์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜๋„๋ก ํ•œ๋‹ค.

 

๐Ÿ“Œ์‹œํ€€์Šค ๋ฒˆํ˜ธ : ์†ก์‹  ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒˆํ˜ธ

์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ 1, 2, 3 ์ˆœ์„œ๋กœ ์ „์†กํ•œ ๊ฒƒ์ด 1, 3, 2 ์ˆœ์„œ๋กœ ์ž˜๋ชป ๋“ค์–ด์™”์„ ๊ฒฝ์šฐ, 2๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด๋‚ด๋ผ๊ณ  ์•Œ๋ ค์คŒ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

 

 

๐ŸŒฟ์žฌ์ „์†ก ์ œ์–ด

: ์œ ์‹ค๋œ TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์žฌ์ „์†กํ•˜๋Š” ์‹œ์Šคํ…œ

 

- ์žฌ์ „์†ก ํƒ€์ž„์•„์›ƒ - RTO(Retransmission Time Out)

: RTO ์‹œ๊ฐ„ ๋‚ด์— ํ™•์ธ์‘๋‹ต์„ ๋ฐ›์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด, TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์žฌ์ „์†กํ•ด์•ผํ•œ๋‹ค. RTO์˜ ๊ธฐ์ค€์€ ์—ฌํƒœ๊นŒ์ง€์˜ TCPํ†ต์‹ ์—์„œ TCP ์„ธ๊ทธ๋จผํŠธ์˜ ํ™•์ธ ์‘๋‹ต์ด ๋Œ์•„์™”๋˜ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ž๋™์ ์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค.

 

- ์žฌ์ „์†ก ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ์›์ธ

1) TCP ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์œ ์‹ค๋˜์—ˆ๋‹ค.

2) ํ™•์ธ ์‘๋‹ต์ด ์œ ์‹ค๋˜์—ˆ๋‹ค.

3) TCP ์„ธ๊ทธ๋จผํŠธ, ํ™•์ธ ์‘๋‹ต์˜ ์ „์†ก์ด๋‚˜ ์ฒ˜๋ฆฌ์— ์‹œ๊ฐ„(=RTT, Round Trip Time)์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค.

 

๐ŸŒฟํ˜ผ์žก ์ œ์–ด

: ์†ก์‹ ํ•  TCP ์„ธ๊ทธ๋จผํŠธ๋“ค์„ ์„œ์„œํžˆ ๋Š˜๋ ค๊ฐ์œผ๋กœ์จ ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก์„ ํšŒํ”ผํ•œ๋‹ค. TCP์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์œ ์‹ค๋˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ด์œ ๋Š” ๋„คํŠธ์›Œํฌ ํ˜ผ์žก์ด๋‹ค. TCP์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์œ ์‹ค๋˜์–ด์„œ ์žฌ์ „์†ก ์ œ์–ด๋กœ ์žฌ์ „์†ก์„ ํ•˜๋”๋ผ๋„ ๊ทผ๋ณธ์ ์ธ ๋„คํŠธ์›Œํฌ ํ˜ผ์žก์ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด, ๊ณ„์†์ ์ธ ์œ ์‹ค์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์„ ์œ„ํ•ด์„œ ์ด์šฉ๋˜๋Š” ๊ฒƒ์ด ํ˜ผ์žก์ œ์–ด์ด๋‹ค.

 

์—ฌ๊ธฐ์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ, ์Šฌ๋กœ์šฐ ์Šคํƒ€ํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹์„ ๋ณด์ž.

 

1) ๋งจ ์ฒ˜์Œ ์†ก์‹ ํ•˜๋Š” ์ชฝ์—์„œ ‘ํ˜ผ์žก ์œˆ๋„์šฐ’๋ฅผ ‘1’๋กœ ์„ค์ •
2) ๋จผ์ € 1์„ธ๊ทธ๋จผํŠธ๋งŒ ๋ณด๋‚ธ๋‹ค. (์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์˜ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ‘์ž๊ธฐ ํ•œ๋ฒˆ์— ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹˜)
3) ํ™•์ธ์‘๋‹ต์ด์˜ด
4) ํ˜ผ์žก์œˆ๋„์šฐ + 1 ๋กœ ์žฌ์„ค์ •

 

์ด๋Ÿฐ์‹์œผ๋กœ ์„œ์„œํžˆ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ ์ „์†กํ•œ๋‹ค.

์žฌ์ „์†ก ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์˜ TCP ์„ธ๊ทธ๋จผํŠธ ์žฌ์ „์†ก์—๋„ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

 

 

๐Ÿ’กUDP(User Datagram Protocol)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

: TCP์ฒ˜๋Ÿผ ์ด๊ฒƒ์ €๊ฒƒ ์•ˆํ•˜๊ณ  ๋ฌด์กฐ๊ฑด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ . UDP ํ—ค๋”(8๋ฐ”์ดํŠธ)๋„ TCP(20๋ฐ”์ดํŠธ)์— ๋น„ํ•ด์„œ ๋งค์šฐ ๋‹จ์ˆœํ•˜๋ฉฐ, checksum ํ•„๋“œ๋ฅผ ํ†ตํ•ด ์ตœ์†Œํ•œ์˜ ์˜ค๋ฅ˜๋งŒ ๊ฒ€์ถœํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋Šฅ์€ ์ ๊ณ , ์‹ ๋ขฐ์„ฑ์€ ๋‚ฎ์ง€๋งŒ, ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์–ด์„œ TCP ๋ณด๋‹ค ํ†ต์‹ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“ŒUDP ๋ฐ์ดํ„ฐ๊ทธ๋žจ : TCP ์„ธ๊ทธ๋จผํŠธ์™€ ๊ฐ™์€ ๋งฅ๋ฝ. [UDP ํ—ค๋” + UDP ๋ฐ์ดํ„ฐ]

 

๐Ÿ’กUDP์˜ ์šฉ๋„

๐ŸŒฟ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†กํ•  ๋•Œ

- ex. VoIP(voice over IP

- ๋„คํŠธ์›Œํฌ์ƒ์—์„œ ์Œ์„ฑ์„ IP ํŒจํ‚ท์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ 

- ์ง€์—ฐ์ด ๋˜๋ฉด ์Œ์„ฑ ํ’ˆ์งˆ์ด ๋‚˜๋น ์ง€๋ฏ€๋กœ ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๋”๋ผ๋„ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผ ํ•œ๋‹ค.

 

๐ŸŒฟ์—ฌ๋Ÿฌ ์ƒ๋Œ€์™€์˜ ํ†ต์‹ ํ•  ๋•Œ

- TCP๋Š” ๋ฌด์กฐ๊ฑด ์œ ๋‹ˆ์บ์ŠคํŠธ ํ†ต์‹ (1:1ํ†ต์‹ )๋ฐ–์— ํ•  ์ˆ˜ ์—†๋‹ค.

- ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋‚˜ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ํ†ต์‹ (1๋Œ€ ๋‹ค ํ†ต์‹ )์—์„œ๋Š” UDP์‚ฌ์šฉ.

 

๐ŸŒฟ์†Œ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋นˆ๋ฒˆํžˆ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ

- ex. DNS ์ด๋ฆ„ ํ•ด์„ 

- TCP์—์„œ๋Š” ํฐ ์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ „์†กํ•  ๋•Œ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฌ๋‹ˆ๊นŒ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋‚˜๋ˆ ์„œ ์ „์†กํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜๋‰˜๋ฉด ์œ ์‹ค๋˜์—ˆ์„ ๋•Œ ๋‹ค์‹œ ์กฐํ•ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์‹ ๋ขฐ์„ฑ ํ™•๋ณด๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. TCP์—์„œ ๋งŒ์•ฝ์— ์—„์ฒญ ์ž‘์€ ์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹คํ•˜๋ฉด, ๋ฐ˜๋Œ€๋กœ ์ด ์‹ ๋ขฐ์„ฑ์ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ํ†ต์‹ ํšจ์œจ์ด ๋‚ฎ์•„์ง€๋ฏ€๋กœ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๋‚˜์€ ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ’ก์ •๋ฆฌํ•˜๋ฉฐ

  TCP UDP
ํ†ต์‹ ๋ฐฉ์‹ ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ
์‹ ๋ขฐ์„ฑ ๋†’๋‹ค ๋‚ฎ๋‹ค
์˜ค๋ฒ„ํ—ค๋“œ ํฌ๋‹ค ์ž‘๋‹ค
 
 
์ฃผ์š”๊ธฐ๋Šฅ
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก
์—ฐ๊ฒฐ์˜ ์„ฑ๋ฆฝ, ์œ ์ง€, ์ข…๋ฃŒ  
์žฌ์ „์†ก ์ œ์–ด
ํ˜ผ์žก ์ œ์–ด
์œˆ๋„์šฐ ์ œ์–ด, ์ˆœ์„œ ์ œ์–ด
 
์šฉ๋„
์‹œ๊ฐ„ ์ œ์•ฝ ์—†์ด ์‹ ๋ขฐ์„ฑ์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ
๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ, ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ
์†Œ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋นˆ๋ฒˆํžˆ ์ „์†กํ•  ๋–„

 

 

๐Ÿ“—Reference

- ์†์œผ๋กœ ์ตํžˆ๋ฉฐ ๋ฐฐ์šฐ๋Š” ๋„คํŠธ์›Œํฌ ์ฒซ๊ฑธ์Œ
- https://velog.io/@averycode/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCPUDP%EC%99%80-3-Way-Handshake4-Way-Handshake