Skip to content

Latest commit

ย 

History

History
167 lines (126 loc) ยท 10.2 KB

TransportLayer.md

File metadata and controls

167 lines (126 loc) ยท 10.2 KB

ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต

written by sohyeon, hyemin ๐Ÿ’ก


๊ธ€ ๋ชฉ์ฐจ


1. ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์ด๋ž€?

ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต๊ณผ ์ธํ„ฐ๋„ท ๊ณ„์ธต ์‚ฌ์ด์— ์œ„์น˜ํ•œ๋‹ค.
ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์˜ ์—ญํ• ์€ ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœํ† ์ฝœ์€ ์ „์†ก์˜ ์‹ ๋ขฐ์„ฑ์„ ์ค‘์‹œํ•˜๋Š” TCP์™€ ์ „์†ก ์†๋„๋ฅผ ์ค‘์‹œํ•˜๋Š” UDP๊ฐ€ ์žˆ๋‹ค.


2. ํฌํŠธ ๋ฒˆํ˜ธ

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

ํฌํŠธ ๋ฒˆํ˜ธ์˜ ๋ฒ”์œ„

ํฌํŠธ ๋ฒˆํ˜ธ๋Š” 0~65535๋ฒˆ๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์›ฐ ๋…ธ์šด ํฌํŠธ(well-known ports), ๋ ˆ์ง€์Šคํ„ฐ๋“œ ํฌํŠธ(registered ports), ๋‹ค์ด๋‚˜๋ฏน ํฌํŠธ(dynamic ports)์˜ ์„ธ ์ข…๋ฅ˜๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

  • ์›ฐ ๋…ธ์šด ํฌํŠธ๋Š” ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜์‹  ๋Œ€๊ธฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ์ด๋‹ค.
    • 0๋ฒˆ ~ 1023๋ฒˆ
    • ํฌํŠธ 0๋ฒˆ์€ TCP/IP ๋„คํŠธ์›Œํ‚น์— ์˜ˆ์•ฝ๋œ ํฌํŠธ์ด๋‹ค.
    • ์ฆ‰, TCP ๋˜๋Š” UDP ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์— ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
  • ๋ ˆ์ง€์Šคํ„ฐ๋“œ ํฌํŠธ๋Š” ๋ฒค๋”๊ฐ€ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ์ด๋‹ค.
    • 1024๋ฒˆ ~ 49151๋ฒˆ
  • ๋‹ค์ด๋‚˜๋ฏน ํฌํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ์ด๋‹ค. ๋˜ํ•œ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ๋‹ค์ด๋‚˜๋ฏน ํฌํŠธ ๋ฒˆํ˜ธ ๋Œ€์—ญ์—์„œ ์ž๋™์œผ๋กœ ํ• ๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ๋ฒˆํ˜ธ๊ฐ€ ์‚ฌ์šฉ๋ ์ง€๋Š” ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๋‹ค.
    • 49152๋ฒˆ ~ 65535๋ฒˆ

ํฌํŠธ๋Š” IANA๋ผ๋Š” ๋‹จ์ฒด๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค.

์ฃผ์š” Well-Known Port

์„œ๋ฒ„ ์ธก์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ๋Š” ๋ฏธ๋ฆฌ ์ •ํ•ด์ ธ ์žˆ๋‹ค.

ํฌํŠธ ๋ฒˆํ˜ธ ๋Œ€์‘ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
20๋ฒˆ FTP(์•กํ‹ฐ๋ธŒ ๋ชจ๋“œ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ปค๋„ฅ์…˜, ํŒจ์‹œ๋ธŒ ๋ชจ๋“œ์—์„œ๋Š” ๋žœ๋ค ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•จ)
21๋ฒˆ FTP(์ปจํŠธ๋กค ์ปค๋„ฅ์…˜)
22๋ฒˆ SSH(์›๊ฒฉ ์ œ์–ด, ๋ณด์•ˆ ๊ธฐ๋Šฅ ์žˆ์Œ)
23๋ฒˆ Telnet(์›๊ฒฉ ์ œ์–ด)
25๋ฒˆ SMTP(์ด๋ฉ”์ผ ์ „์†ก)
80๋ฒˆ HTTP(์›น)
110๋ฒˆ POP3(์ด๋ฉ”์ผ ์ˆ˜์‹ )
143๋ฒˆ IMAP4(์ด๋ฉ”์ผ ์ˆ˜์‹ , ๋ณด๊ด€ ๊ธฐ๋Šฅ ์žˆ์Œ)

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ์ ‘์†์ด ์™„๋ฃŒ๋˜๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉํ•  ํฌํŠธ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ์ดํ›„ ์„œ๋ฒ„์˜ ํฌํŠธ์— ์ ‘์†ํ•˜๊ฒŒ ๋œ๋‹ค.
HTTP์ธ ๊ฒฝ์šฐ ์„œ๋ฒ„ ์ธก์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๋Š” 80๋ฒˆ์ด๊ณ  ํด๋ผ์ด์–ธํŠธ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค์ด๋‚˜๋ฏน ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š๋‹ค.

3. TCP ํ”„๋กœํ† ์ฝœ

TCP๋ž€?

TCP(Transmission Control Protocol)๋Š” ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ์˜ ํ•˜๋‚˜๋กœ ์›น์ด๋‚˜ ์ด๋ฉ”์ผ, FTP์™€ ๊ฐ™์ด ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ํ•„์š”ํ•œ ํ†ต์‹ ์— ์‚ฌ์šฉํ•œ๋‹ค.
TCP๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์— ์‹ ๋ขฐ์„ฑ์„ ๋”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ๊ทธ๋จผํŠธ(segment)๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜๊ณ , ์ „์†ก ์†๋„๋ฅผ ์กฐ์ •ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ์žฌ์ „์†ก์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

TCP ํ—ค๋”์˜ ๊ตฌ์กฐ

TCP์˜ ์„ธ๊ทธ๋จผํŠธ๋Š” ๋ฐ์ดํ„ฐ ๋ณธ์ฒด์— TCP ํ—ค๋”๊ฐ€ ๋ถ™์€ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

  • ์ผ๋ จ๋ฒˆํ˜ธ(sequence number) : ์†ก์‹ ํ•œ ๋ฐ”์ดํŠธ ์ˆ˜
  • ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ(acknowledgement number) : ์ˆ˜์‹ ํ•œ ๋ฐ”์ดํŠธ ์ˆ˜
  • ๋ฐ์ดํ„ฐ ์˜ต์…‹(data offset) : TCP ํ—ค๋”์˜ ๊ธธ์ด
  • ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ(windows size) : ํ•œ ๋ฒˆ์— ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํฌ๊ธฐ
  • ์ฒดํฌ์„ฌ(checksum) : ๋ฐ์ดํ„ฐ๊ฐ€ ํ›ผ์†๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด

์ปจํŠธ๋กค ๋น„ํŠธ

TCP ํ—ค๋” ์ค‘ ์ปจํŠธ๋กค ๋น„ํŠธ๋Š” ํ˜„์žฌ์˜ ํ†ต์‹  ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ†ต์‹  ์ƒ๋Œ€์—๊ฒŒ ์ด ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ด์„œ TCP ํ†ต์‹ ์„ ์ œ์–ดํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
9๊ฐœ์˜ ํ”Œ๋ž˜๊ทธ ๊ฐ๊ฐ์€ 1๋น„ํŠธ ํฌ๊ธฐ๋ฅผ ์ฐจ์ง€ํ•˜์—ฌ ON/OFF ๋‘ ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

ํ”Œ๋ž˜๊ทธ ์—ญํ• 
CWR ํ†ต์‹  ๊ฒฝ๋กœ๊ฐ€ ํ˜ผ์žกํ•ด์„œ ์ „์†ก๋Ÿ‰์„ ์ค„์—ฌ์ค„ ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.
ECE ํ†ต์‹  ๊ฒฝ๋กœ๊ฐ€ ํ˜ผ์žกํ•ด์„œ ์ˆ˜์‹ ํ•  ์ˆ˜ ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.
URG ๊ธด๊ธ‰ ํฌ์ธํ„ฐ์—์„œ ์ง€์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.
ACK ์ด์ „ ๋™์ž‘์„ ํ™•์ธํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค. ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ์™€ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉ๋œ๋‹ค.
PSH ์ˆ˜์‹  ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์— ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.
RST ์ด์ƒ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ ‘์†์ด ๊ฐ•์ œ ์ค‘๋‹จ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.
SYN ์ ‘์†์„ ์‹œ์ž‘ํ•  ๋•Œ ON์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
FIN ๋ฐ์ดํ„ฐ ์†ก์‹ ์ด ์™„๋ฃŒ๋˜์–ด ํ†ต์‹ ์„ ์ข…๋ฃŒํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.

ํ†ต์‹  ๊ฐœ์‹œ๋ถ€ํ„ฐ ํ†ต์‹  ์ข…๋ฃŒ๊นŒ์ง€์˜ ํ๋ฆ„

3-way handshake (์—ฐ๊ฒฐ ์„ฑ๋ฆฝ)

TCP ํ†ต์‹ ์€ ํ†ต์‹ ํ•˜๊ธฐ์— ์•ž์„œ, ์ ‘์†์ด ์„ฑ๋ฆฝํ•˜๊ธฐ ์œ„ํ•ด 3-way handshake๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ SYN ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค. ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” SYN์„ ๋ณด๋‚ด๊ณ  SYN/ACK ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” SYN_SENT ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
2. ์„œ๋ฒ„๋Š” SYN ์š”์ฒญ์„ ๋ฐ›๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•œ๋‹ค๋Š” ACK์™€ SYN flag๊ฐ€ ์„ค์ •๋œ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค. ์ด๋•Œ ์„œ๋ฒ„๋Š” SYN_RECEIVED ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. 
3. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์‘๋‹ต์ธ ACK์™€ SYN ํŒจํ‚ท์„ ๋ฐ›๊ณ , ACK๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค. 

์ด๋ ‡๊ฒŒ 3๋ฒˆ์˜ ํ†ต์‹ ์ด ์™„๋ฃŒ๋˜๋ฉด ์—ฐ๊ฒฐ์ด ์„ฑ๋ฆฝ๋œ๋‹ค.

4-way handshake (์—ฐ๊ฒฐ ํ•ด์ œ)

TCP ํ†ต์‹ ์€ ์—ฐ๊ฒฐ ์„ฑ๋ฆฝ ํ›„, ๋ชจ๋“  ํ†ต์‹ ์ด ๋๋‚ฌ๋‹ค๋ฉด ํ•ด์ œํ•ด์•ผ ํ•œ๋‹ค.

1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค๋Š” FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ณด๋‚ธ๋‹ค. 
2. ์„œ๋ฒ„๋Š” FIN์„ ๋ฐ›๊ณ , ํ™•์ธํ–ˆ๋‹ค๋Š” ACK๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค. ์ด๋•Œ ์„œ๋ฒ„๋Š” CLOSE_WAIT ์ƒํƒœ๋‹ค.
3. ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ณด๋ƒˆ๋‹ค๋ฉด, ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๋Š” FIN ํ”Œ๋ž˜๊ทธ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.
4. ํด๋ผ์ด์–ธํŠธ๋Š” FIN์„ ๋ฐ›๊ณ , ํ™•์ธํ–ˆ๋‹ค๋Š” ACK๋ฅผ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.(ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์ง€ ๋ชปํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ TIME_WAIT์„ ํ†ตํ•ด ๊ธฐ๋‹ค๋ฆฐ๋‹ค.)
    => TIME_WAIT : ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ FIN์„ ์ˆ˜์‹ ํ•˜๋”๋ผ๋„ ์ผ์ •์‹œ๊ฐ„ ๋™์•ˆ ์„ธ์…˜์„ ๋‚จ๊ฒจ๋†“๊ณ  ๋ฐ›์ง€ ๋ชปํ•œ ํŒจํ‚ท์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
    => ์„œ๋ฒ„๋Š” ACK๋ฅผ ๋ฐ›์€ ์ดํ›„ ์†Œ์ผ“์„ ๋‹ซ๋Š”๋‹ค. ํด๋ผ์ด์–ธํŠธ ๋˜ํ•œ, TIME_WAIT ์‹œ๊ฐ„์ด ๋๋‚˜๋ฉด ์†Œ์ผ“์„ ๋‹ซ๋Š”๋‹ค.

์ด๋ ‡๊ฒŒ 4๋ฒˆ์˜ ํ†ต์‹ ์ด ์™„๋ฃŒ๋˜๋ฉด ์—ฐ๊ฒฐ์ด ํ•ด์ œ๋œ๋‹ค.

ํ๋ฆ„ ์ œ์–ด(flow control)

ํ๋ฆ„ ์ œ์–ด๋Š” ์†ก์‹  ์ธก(ํ˜ธ์ŠคํŠธ)๊ณผ ์ˆ˜์‹  ์ธก(ํ˜ธ์ŠคํŠธ)์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.

์ˆ˜์‹  ์ธก์€ ๋„์ฐฉํ•œ ํŒจํ‚ท๋“ค์„ ๋ฒ„ํผ์— ์Œ“์•„ ๋‘๋Š” ๊ฒƒ๊ณผ ๋™์‹œ์— ์ด๋ฏธ ๋ฒ„ํผ์— ์Œ“์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๊บผ๋‚ด์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค.
์ด๋•Œ ๋งŒ์•ฝ ์ˆ˜์‹  ์ธก ์ปดํ“จํ„ฐ์˜ ์„ฑ๋Šฅ์ด ๋‚ฎ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋Š” ์†๋„๋ณด๋‹ค ์ฒ˜๋ฆฌํ•˜๋Š” ์†๋„๊ฐ€ ๋Š๋ ค์ ธ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ˆ˜์‹  ์ธก์€ ์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๋ฅผ ์„ค์ •ํ•˜์—ฌ ํ˜„์žฌ ์–ด๋Š ์ •๋„๊นŒ์ง€ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์ˆ˜์‹œ๋กœ ์•Œ๋ ค์ฃผ๊ฒŒ ๋œ๋‹ค.

ํ˜ผ์žก ์ œ์–ด

ํ˜ผ์žก ์ œ์–ด๋Š” ์†ก์‹  ์ธก(ํ˜ธ์ŠคํŠธ)์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ๋„คํŠธ์›Œํฌ(๋ผ์šฐํ„ฐ)์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.

์†ก์‹  ์ธก์˜ ๋ฐ์ดํ„ฐ๋Š” ์ง€์—ญ๋ง์ด๋‚˜ ์ธํ„ฐ๋„ท์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋Œ€ํ˜• ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋œ๋‹ค.
๋งŒ์•ฝ ํ•˜๋‚˜์˜ ๋ผ์šฐํ„ฐ์—๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฐ๋ฆด ๊ฒฝ์šฐ, ๋ผ์šฐํ„ฐ๋Š” ์ž์‹ ์—๊ฒŒ ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.
๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ํ˜ธ์ŠคํŠธ๋“ค์€ ๋˜ ๋‹ค์‹œ ์žฌ์ „์†ก์„ ํ•˜๊ฒŒ ๋˜๊ณ  ๊ฒฐ๊ตญ ํ˜ผ์žก์„ ๊ฐ€์ค‘์‹œ์ผœ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋‚˜ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ๋”ฐ๋ผ์„œ, ์ด๋Ÿฌํ•œ ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์†ก์‹  ์ธก์—์„œ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ์†๋„๋ฅผ ๊ฐ•์ œ๋กœ ์ค„์ด๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ํ˜ผ์žก์ œ์–ด๋ผ๊ณ  ํ•œ๋‹ค.


4. UDP ํ”„๋กœํ† ์ฝœ

UDP๋ž€?

UDP(User Datagram Protocol)๋Š” TCP์— ๋น„ํ•ด ์ƒ๋‹นํžˆ ๊ฐ„๋‹จํ•œ ํ”„๋กœํ† ์ฝœ๋กœ์„œ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์—ญํ• ๋งŒ ํ•œ๋‹ค.
ํ†ต์‹  ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ์˜ ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, VoIP์™€ ๊ฐ™์€ ์Œ์„ฑ ์„œ๋น„์Šค๋‚˜ ๋™์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค๋Š” ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ˆ„๋ฝ๋˜๊ฑฐ๋‚˜ ์™œ๊ณก๋˜๋”๋ผ๋„ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— UDP๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

UDP ํ—ค๋” ๊ตฌ์กฐ

UDP์—์„œ๋Š” ํŒจํ‚ท์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ํŒจํ‚ท ๊ธธ์ด(UDP length) : ํ—ค๋” ๊ธธ์ด์™€ ๋ฐ์ดํ„ฐ ๊ธธ์ด์˜ ํ•ฉ๊ณ„
  • ์ฒดํฌ์„ฌ(checksum) : ๋ฐ์ดํ„ฐ๊ฐ€ ํ›ผ์†๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด

๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ & ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ

TCP์—๋Š” ์—†๋Š” ๊ธฐ๋Šฅ์œผ๋กœ UDP์—๋Š” ํ•˜๋‚˜์˜ ํŒจํ‚ท์„ ์—ฌ๋Ÿฌ ์ˆ˜์‹ ์ง€์— ์ „๋‹ฌํ•˜๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ(broadcast)์™€ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ(multicast)๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

  • ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ(broadcast)

    • local LAN ์ƒ์— ๋ถ™์–ด์žˆ๋Š” ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋“ค์—๊ฒŒ ๋ณด๋‚ด๋Š” ํ†ต์‹ ์ด๋‹ค.
    • ํ†ต์‹ ์˜ ๋Œ€์ƒ์ด ํŠน์ •ํ•œ ํ•œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋„คํŠธ์›Œํฌ ์•ˆ์˜ ๋ชจ๋“  ์žฅ๋น„๋“ค์—๊ฒŒ ํ†ต์‹ ์„ ํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
  • ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ(multicast)

    • ๋ณด๋‚ด๊ณ ์ž ํ•˜๋Š” ์ •๋ณด๋ฅผ ๊ทธ๋ฃน ๋‚ด์˜ ์ผ์ • ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋“ค์—๊ฒŒ๋งŒ ํ•œ๋ฒˆ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ†ต์‹ ์ด๋‹ค.

Reference & Additional Resources