์ผ๋‹จ ํ•˜๊ณ  ๋ณด๋Š” ์‚ฌ๋žŒ

๋‚˜์ค‘๋ณด๋‹จ ์ง€๊ธˆ์— ์ง‘์ค‘ํ•˜๋˜, ์ง€๊ธˆ๋ณด๋‹จ ๋‚˜์ค‘์— ์™„๋ฒฝํ•ด์ง€์ž๐Ÿ’ช๐Ÿป

๐ŸŒ Network ๊ธฐ๋ณธ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ

[3,4๊ณ„์ธต ํ”„๋กœํ† ์ฝœ] TCP/IP, UDP

JanginTech 2024. 8. 10. 23:40

1. ์„œ๋น„์Šค์˜ ์ข…๋ฅ˜

1.1. ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค

  • ๋ฐ์ดํ„ฐ ์ „์†ก ์ „์— ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ๊ฒฝ๋กœ๋ฅผ ๋ฏธ๋ฆฌ ๊ฒฐ์ •
  • ๊ฒฝ๋กœ๊ฐ€ ํ•˜๋‚˜๋กœ ์ด์–ด์ ธ ์žˆ์Œ = ์ด๋™ ๊ฒฝ๋กœ๋Š” 1๊ฐœ๋ฟ
  • ์ฃผ์†Œ ํ•„์š” x
  • ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด, ์ƒ๋Œ€์ ์œผ๋กœ ์‹ ๋ขฐ์„ฑ์ด ๋†’์Œ
  • TCP

 

1.2. ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค

  • ์‚ฌ์ „์— ๊ฒฝ๋กœ ์„ค์ • x, ํŒจํ‚ท ๋‹จ์œ„๋กœ ๊ฒฐ์ •
  • ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์Œ = ์ฃผ์†Œ ํ•„์š” o
  • ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ „์†ก๋จ
    • ์ „์†ก ๊ฒฝ๋กœ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ
    • ๋„์ฐฉ ์ˆœ์„œ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š์Œ
  • ๋”ฐ๋ผ์„œ, ์ƒ์œ„ ๊ณ„์ธต์—์„œ ์ˆœ์„œ๋ฅผ ์žฌ์กฐ์ •ํ•ด์•ผ ํ•จ
  • ํŒจํ‚ท์˜ ๋„์ฐฉ์„ 100% ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ›ผ์†/๋ถ„์‹ค ์œ„ํ—˜ ๋“ฑ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์ด ๋˜ํ•œ ์ƒ์œ„ ๊ณ„์ธต์—์„œ ๋ถ„์‹ค ์˜ค๋ฅ˜๋ฅผ ๋ณต๊ตฌํ•ด์•ผ ํ•จ
  • IP, UDP 

 

  ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค
๊ฒฝ๋กœ ๋ฏธ๋ฆฌ ๊ฒฐ์ • ํŒจํ‚ท ๋‹จ์œ„๋กœ ๊ฒฐ์ •
์ฃผ์†Œ ํ•„์š” o ํ•„์š” x
๋ฐฉ์‹ ์‹ ๋ขฐ์„ฑ Best Effort

 

 

 

 

 

2. IP

  • ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ
  • ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ ์ง€์ •, ํŒจํ‚ท ๋ถ„ํ•  ๋ฐ ์กฐ๋ฆฝ ๋‹ด๋‹น
  • ํ—ค๋” ์ฒดํฌ์„ฌ๋งŒ ์ œ๊ณต

 

2.1. IP header

0 ~ 3 3~7 7~15 15~31
Version number
(IPv4 or 6)
header length
(16 or) 20 byte
service type
"ํŠน์ • data๋Š” ๋นจ๋ฆฌ/๋Šฆ๊ฒŒ ์ „์†ก"
ํ˜•ํ‰์„ฑ ์–ด๊ธ‹๋‚จ
๊ทธ๋ž˜์„œ ์ž˜ ์•ˆ ์”€
Packet length
40byte ์ด์ƒ
ํ”„๋ ˆ์ž„ 54-์ด๋”๋„ท14=40
Identification
ํŒจํ‚ท ๋ถ„ํ• ํ•ด์„œ ๋ฒˆํ˜ธ ๋งค๊ฒจ์ฃผ์–ด ์ „์†ก (์ปคํŒ…๋œ ๊ฑธ ๋ฒˆํ˜ธ๋Œ€๋กœ ๋ถ™์ด๋ฉด ์›๋ณธ์ด ๋˜๊ฒŒ)
์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• /์‹๋ณ„
DF | MF | Offset

DF: Don't Fragment
 ํŒจํ‚ท ๋ถ„ํ•  ๊ฐ€๋Šฅ: 0, ๋ถˆ๊ฐ€๋Šฅ:1
MF: More Fragment
 ๋งˆ์ง€๋ง‰ ํŒจํ‚ท:0, ๊ทธ์™ธ:1
Offset: ๋ณ‘ํ•ฉ์„ ์œ„ํ•œ ์ˆœ์„œํŒŒ์•…
Time to Live (TTL)
๋ฌธ์ œ ๋ฐœ์ƒ data๋Š” ์™„๋ฒฝ ์ „์†ก๋˜์ง€ ๋ชป ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ, ์ผ์ •์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์‚ฌ๋ผ์ง€๋„๋ก ์ฒ˜๋ฆฌ
์›ํ™œํ•œ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
* TTL์„ ํ†ตํ•ด OS ์ข…๋ฅ˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ
Transport (4๊ณ„์ธต)
์ˆ˜์‹ ์ž ๊ธฐ์ค€, "์–ด๋А ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•ด?"
TCP: 06
UDP: 17
Header Checksum
๋ชฉ์ : ๋ฌด๊ฒฐ์„ฑ
๋ฐ์ดํ„ฐ ๋ณ€์กฐ ์—ฌ๋ถ€ ์ฒดํฌ.
์ฒดํฌ์„ฌ์ด ๋‹ค๋ฅด๋ฉด ๋ฌธ์ œ ์žˆ์Œ
Source Address : ์†ก์‹  ํ˜ธ์ŠคํŠธ์˜ ์ฃผ์†Œ
Destination Address : ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ์ฃผ์†Œ

 

๊ทธ ์•„๋ž˜ Option, packet length๋„ ์žˆ๋Š”๋ฐ(์ด 32๋น„ํŠธ) ์ด๊ฑด ์ง€๊ธˆ ์“ฐ์ง€ ์•Š์•„์„œ ๊ธฐ๋กํ•  ํ•„์š”๋Š” ์—†์„ ๊ฒƒ ๊ฐ™๋‹ค. (์š”์ฆ˜ ์ •ํ™•๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ€์„œ)

 

โœ”๏ธ IP ํ—ค๋” ํฌ๊ธฐ = 20byte

โœ”๏ธ 3 ๊ณ„์ธต ์ง€์›. Best effort ๋ฐฉ์‹.

โœ”๏ธ์ฃผ์†Œ๋Š” 4byte

โœ”๏ธ Identification : ํŒจํ‚ท ๋ถ„ํ• /์‹๋ณ„(๋ฐ์ดํ„ฐ ํฌ๋‹ˆ๊นŒ ์ชผ๊ฐœ์„œ ๋ณด๋‚ด์•ผ ์•ˆ์ •์ ์ž„)

โœ”๏ธ DF : Don't fragment(๊ฐ€๋Šฅ 0)

โœ”๏ธ MF: More fragment(๋งˆ์ง€๋ง‰ 0)

โœ”๏ธ Offset : ์ชผ๊ฐ  ๊ฑฐ ๋‹ค์‹œ ๋ณ‘ํ•ฉํ•˜๋ ค๋ฉด ๋ถ™์ด๋ ค๋Š” ์ˆœ์„œ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.

 

์œ„ ๋‚ด์šฉ์€ ๊ผญ ๊ธฐ์–ตํ•ด ๋‘์ž.

 

 

 

 

 

3. TCP

  • 4 ๊ณ„์ธต ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ
  • ์ „์ด์ค‘ ๋ฐฉ์‹์˜ ์–‘๋ฐฉํ–ฅ ๊ฐ€์ƒ ํšŒ์„ ์„ ์ œ๊ณต(ex. ๋ฌด์ „๊ธฐ)
  • ๋…ผ๋ฆฌ์ ์œผ๋กœ 1:1 ์—ฐ๊ฒฐ (<-> 2 ๊ณ„์ธต์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ 1:1 ์—ฐ๊ฒฐ)

 

3.1. TCP header

0 3~9 10 11 12 13 14 15 16 23 31
Source Port Destination Port
Sequence Number : ์ˆœ์„œ ๋ฒˆํ˜ธ
Acknowledgement Number : ์‘๋‹ต ๋ฒˆํ˜ธ
"์•Œ์•„๋จน์Œ"์„ ๊ณ„์† ํšŒ์‹ ํ•˜๊ณ , ๋‹ค์Œ ์›ํ•˜๋Š”(์ˆœ๋ฒˆ seq) ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •
TCP
header
length
Reserved
์ถ”ํ›„์˜ˆ์•ฝ ๊ธฐ๋Šฅ๋ฌด์กฐ๊ฑด 0
URG ACK PSH RST SYN F
I
N
Window
์ˆ˜์‹  ์œˆ๋„์šฐ์˜ ๋ฒ„ํผ ํฌ๊ธฐ ์ œ์–ด  โžก๏ธ ํ๋ฆ„์ œ์–ด
๋‚จ์€ Buffer(์—ฌ๋ถ„์˜ ์ˆ˜์šฉ๊ณต๊ฐ„)์„ ์•Œ๋ ค์คŒ
Checksum : ๋ณ€์กฐ ํ™•์ธ. ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ
Urgent Pointer
URG์— ๊ธด๊ธ‰ํ•œ data ํ‘œ์‹œ
์–˜๋„ ์ง€๊ธˆ์€ ์•ˆ ์”€

 

โž• ๋ฌด๊ฒฐ์„ฑ = ์™„์ „์„ฑ + ์ •ํ™•์„ฑ + ์ผ๊ด€์„ฑ

 

 

 

 

3.2. TCP header - flag bit

๊ฐ๊ฐ 1bit

URG urgent. ๊ธด๊ธ‰ํ•œ ๊ฑฐ ๋จผ์ €..!
IP header - service type๊ณผ  ๊ฐ™์Œ
๋”ฐ๋ผ์„œ, ์ง€๊ธˆ์€ URG ์•ˆ ์“ด๋‹ค!!
ACK "์ •์ƒ ์ˆ˜์‹  = ์Šน์ธ"์„ ์˜๋ฏธ
PSH push. ์ˆ˜์‹ ์ž ์ž…์žฅ: ์ƒ์œ„๊ณ„์ธต์œผ๋กœ ์˜ฌ๋ฆผ
RST reset. (= FIN์ด ์—†์Œ)
๋น„์ •์ƒ์ ์ธ seq-์— ๋Œ€ํ•œ ์‘๋‹ต
 ex. ๊ฒŒ์ž„ํ•˜๋‹ค ํŠ•๊ธฐ๋Š” ๊ฑฐ
SYN ์–‘ ๋‹จ์˜ ๋™๊ธฐํ™”(1:1)๋ฅผ ์œ„ํ•œ ์š”์ฒญ
๋งจ ์ฒ˜์Œ์— SYN=1๋กœ ์„ค์ •ํ•˜์—ฌ ์ „์†ก
 ex. ๋Œ€ํ™”๋ฅผ ์œ„ํ•ด ์ด๋ฆ„์„ ๋ถ€๋ฆ„
FIN finish. ๋๋‚œ ๊ฑธ ์•Œ๋ฆผ
์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”์ฒญ (<-> SYN)

 

โœ”๏ธ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ ๋ฐฉ์‹(<-> Best effort๋ฐฉ์‹)

โœ”๏ธ ๋ณ€ํ˜•/ ๋ถ„์‹ค โžก๏ธ ์˜ค๋ฅ˜ ๋Œ€์‘: ์žฌ์ „์†ก

โœ”๏ธ ์ˆ˜์‹  ๋ฒ„๊ฑฐ์›€ ๋“ฑ โžก๏ธ ์†๋„ ์ œ์–ด: ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ

โœ”๏ธ ์ˆ˜์‹ ์ž๋ฅผ ์ˆ˜์‹œ๋กœ ์ฒดํฌํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ „์†ก โžก๏ธ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ

 

 

3.3. MTU(Maximum Transmission Unit)?

์ด๋”๋„ท(Ethernet) ํ”„๋ ˆ์ž„์„ ์ œ์™ธํ•œ IP Datagram์˜ ์ตœ๋Œ€ ํฌ๊ธฐ

MTU=1500. ์‹ค์ œ data=1460

1500 - TCP header - IP header = 1460

1460๊นŒ์ง€ ํ•˜๋‚˜์˜ ํŒจํ‚ท์œผ๋กœ ์ „์†ก๋  ์ˆ˜ ์žˆ์Œ!

์ด๋ฅผ MSS(Maximum Segment Size)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

โœ”๏ธ MTU: ์ „์†ก๋  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํฌ๊ธฐ์˜ ํŒจํ‚ท ๋˜๋Š” ํ”„๋ ˆ์ž„(์ด๋”๋„ท ํ—ค๋” ์ œ์™ธ)

โœ”๏ธ MSS: ๋ถ„ํ• ํ•˜์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ์— ๋ณด๋‚ด๋Š” ์ตœ๋Œ€ ํฌ๊ธฐ = TCP์˜ ๋ฐ์ดํ„ฐ ๊ธธ์ด(payload)

โœ”๏ธEthernet MTU=1500

โœ”๏ธEthernet MSS=1460

 

4. UDP

  • 4 ๊ณ„์ธต ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ
  • ์ •ํ™•๋„ < ์†๋„ ์ค‘์‹œ (ex. ๊ฒŒ์ž„)
  • ํ˜„์žฌ ์ž˜ ์“ฐ์ง„ ์•Š์Œ