Computer Network Chapter 03

Jeong-yun Leeยท2025๋…„ 3์›” 30์ผ

Computer Network

๋ชฉ๋ก ๋ณด๊ธฐ
2/4

๐ŸŒ Chapter 03: Transport Layer

3.1 Transport-Layer Services

transport layer


๐Ÿš› 3.1.1 Transport Services and Protocols

  • Transport layer๋Š” ์ข…๋‹จ ์‹œ์Šคํ…œ(end system)์—๋งŒ ์กด์žฌํ•˜๊ณ , ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€ ์žฅ๋น„(๋ผ์šฐํ„ฐ ๋“ฑ)์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Œ
  • Transport service๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ(host) ์‚ฌ์ด์— ๋…ผ๋ฆฌ์  ํ†ต์‹ (logical communication)์„ ์ œ๊ณต
  • Transport protocol์€ end system์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœํ† ์ฝœ:
    • TCP (Transmission Control Protocol)
    • UDP (User Datagram Protocol)

End System vs Host

๐Ÿ“Œ ์ •์˜
์šฉ์–ด์ •์˜
End system (์ข…๋‹จ ์‹œ์Šคํ…œ)๋„คํŠธ์›Œํฌ์˜ ๋๋‹จ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ์žฅ์น˜
Host (ํ˜ธ์ŠคํŠธ)๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ์žฅ์น˜
๐Ÿ“ฆ ์ฃผ์š” ์ฐจ์ด์ 
๊ตฌ๋ถ„End system (์ข…๋‹จ ์‹œ์Šคํ…œ)Host (ํ˜ธ์ŠคํŠธ)
์ •์˜๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋ชจ๋“  ์žฅ์น˜๋„คํŠธ์›Œํฌ์— ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ IP ์žฅ์น˜
ํฌ๊ด„ ๋ฒ”์œ„Host ํฌํ•จ + ๊ธฐํƒ€ IoT ์žฅ์น˜์ „ํ†ต์  ์ปดํ“จํ„ฐ/์„œ๋ฒ„ ์ค‘์‹ฌ ๊ฐœ๋…
์—ญํ•  ์ค‘์‹ฌ์‚ฌ์šฉ์ž์™€ ์ธํ„ฐ๋„ท ๊ฐ„ ์ข…๋‹จ ํ†ต์‹  ์ฃผ์ฒดIP ๊ธฐ๋ฐ˜ ํ†ต์‹  ์ฃผ์ฒด
๊ณ„์ธต์  ์œ„์น˜OSI 7๊ณ„์ธต ๋ชจ๋‘ ์‚ฌ์šฉOSI 3๊ณ„์ธต ์ด์ƒ ์‚ฌ์šฉ
์˜ˆ์‹œ์Šค๋งˆํŠธํฐ, ์›น ์„œ๋ฒ„, IoT ์žฅ์น˜ ๋“ฑ์›น ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ PC, ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ๋“ฑ
โœ… ํฌํ•จ ๊ด€๊ณ„

๋ชจ๋“  Host๋Š” End system์ด์ง€๋งŒ,
๋ชจ๋“  End system์ด ๋ฐ˜๋“œ์‹œ Host์ธ ๊ฒƒ์€ ์•„๋‹˜.

์˜ˆ:

  • ์Šค๋งˆํŠธ์›Œ์น˜, ์Šค๋งˆํŠธ์„ผ์„œ ๋“ฑ์€ End system์ด์ง€๋งŒ Host๋กœ ๋ถ„๋ฅ˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
๐ŸŽฏ ์šฉ์–ด ์‚ฌ์šฉ ํŒ
  • End system: ์ธํ„ฐ๋„ท ์•„ํ‚คํ…์ฒ˜, OSI 7๊ณ„์ธต ์„ค๋ช… ์‹œ ์‚ฌ์šฉ
  • Host: IP ํ†ต์‹ , DNS, ๋ผ์šฐํŒ… ๊ด€๋ จ ๊ฐœ๋…์—์„œ ์ž์ฃผ ๋“ฑ์žฅ

๐Ÿงญ ์†ก์ˆ˜์‹  ๊ณผ์ •

  • ์†ก์‹  ์ธก: Application Layer ๋ฉ”์‹œ์ง€๋ฅผ ์„ธ๊ทธ๋จผํŠธ(segment)๋กœ ๋ถ„ํ• ํ•˜๊ณ , Network Layer๋กœ ์ „๋‹ฌ
  • ์ˆ˜์‹  ์ธก: ๋ฐ›์€ segment๋ฅผ ์žฌ์กฐ๋ฆฝ(reassembly)ํ•˜์—ฌ Application Layer๋กœ ์ „๋‹ฌ

๐Ÿ”„ 3.1.2 Transport Layer vs. Network Layer

๊ณ„์ธตํ†ต์‹  ๋‹จ์œ„์ฃผ์†Œ ์ฒด๊ณ„๋ชฉ์ 
Transport LayerProcess ๊ฐ„ ํ†ต์‹ Port NumberEnd-to-End ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ
Network LayerHost ๊ฐ„ ํ†ต์‹ IP Addressํ˜ธ์ŠคํŠธ ๊ฐ„ ํŒจํ‚ท ์ „๋‹ฌ
  • Transport Layer๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋‹ค๋ฃจ๋ฉฐ, ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ๊ตฌ๋ถ„
  • Network Layer๋Š” ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋‹ค๋ฃจ๋ฉฐ, IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉ

๐ŸŒ 3.1.3 Internet Transport Layer Protocols

โœ‰๏ธ UDP (User Datagram Protocol)

  • Unreliable, Unordered ๋ฐ์ดํ„ฐ๊ทธ๋žจ ์ „์†ก
  • ์—ฐ๊ฒฐ ์„ค์ • ์—†์ด ์ž‘๋™ โ†’ Connectionless
  • ์ง€์—ฐ์— ๋ฏผ๊ฐ(delay-sensitive): ์‹ค์‹œ๊ฐ„ ์ „์†ก์— ์ ํ•ฉ (ex: VoIP, ์ŠคํŠธ๋ฆฌ๋ฐ)
  • ์˜ค๋ฅ˜ ๊ฒ€์ถœ์€ ์žˆ์œผ๋‚˜, ์˜ค๋ฅ˜ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์€ ์—†์Œ

๐Ÿ“ฆ TCP (Transmission Control Protocol)

  • Reliable, In-order ๋ฐ์ดํ„ฐ ์ „์†ก ๋ณด์žฅ
  • ๋ฐ์ดํ„ฐ ์ „์†ก ์ „ ์—ฐ๊ฒฐ ์„ค์ • ํ•„์š” โ†’ Connection-oriented
  • 3-Way Handshaking์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ
  • ์ง€์—ฐ ํ—ˆ์šฉ(latency-tolerant): ์ •ํ™•์„ฑ์ด ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์— ์ ํ•ฉ (ex: ํŒŒ์ผ ์ „์†ก, ์ด๋ฉ”์ผ)

๐Ÿ“Œ ์š”์•ฝ

ํ•ญ๋ชฉUDPTCP
์‹ ๋ขฐ์„ฑโŒโœ…
์ˆœ์„œ ๋ณด์žฅโŒโœ…
์—ฐ๊ฒฐ ์„ค์ •โŒ (๋น„์—ฐ๊ฒฐํ˜•)โœ… (3-Way Handshake)
์‚ฌ์šฉ ์˜ˆ์‹œ์‹ค์‹œ๊ฐ„ ์„œ๋น„์ŠคํŒŒ์ผ/๋ฐ์ดํ„ฐ ์ „์†ก
์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์—†์Œ์žˆ์Œ

3.2 Multiplexing and Demultiplexing

๐Ÿ“ฆ 3.2.1 ๊ฐœ๋… ์ •๋ฆฌ

  • Multiplexing (๋‹ค์ค‘ํ™”): ์†ก์‹  ์ธก์—์„œ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„ ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ๋กœ ์ „์†ก
  • Demultiplexing (์—ญ๋‹ค์ค‘ํ™”): ์ˆ˜์‹  ์ธก์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌ

multiplexing


๐Ÿš€ 3.2.2 ์†ก์‹  ์ธก: Multiplexing

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†Œ์ผ“(socket)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ด
  • ๊ฐ ๋ฐ์ดํ„ฐ์— ์ „์†ก ๊ณ„์ธต ํ—ค๋”(transport header)๋ฅผ ์ถ”๊ฐ€
    • ์—ฌ๊ธฐ์—” 16๋น„ํŠธ ํฌํŠธ ๋ฒˆํ˜ธ(port number) ํฌํ•จ
  • ์ƒ์„ฑ๋œ ์„ธ๊ทธ๋จผํŠธ(segment)๋ฅผ Network Layer๋กœ ์ „๋‹ฌ
    demux

๐Ÿ“ฅ 3.2.3 ์ˆ˜์‹  ์ธก: Demultiplexing

  • ์ˆ˜์‹ ๋œ segment์—์„œ ํ—ค๋” ์ •๋ณด๋ฅผ ํ™•์ธ
  • IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ ์ ˆํ•œ ์†Œ์ผ“์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ

๐Ÿ” Demultiplexing ์ž‘๋™ ๋ฐฉ์‹

  1. ํ˜ธ์ŠคํŠธ๋Š” IP datagram์„ ์ˆ˜์‹ 
  2. datagram์€ source IP, destination IP ํฌํ•จ
  3. ํฌํ•จ๋œ transport-layer segment๋Š” source/destination ํฌํŠธ ๋ฒˆํ˜ธ ํฌํ•จ
  4. ์ˆ˜์‹  ์ธก์€ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ํ•ด๋‹น ์†Œ์ผ“์„ ์‹๋ณ„

๐Ÿ“ค 3.2.4 UDP: ๋น„์—ฐ๊ฒฐํ˜•(Connectionless) Demultiplexing

  • UDP ์†Œ์ผ“์€ ๊ณ ์œ ํ•œ host-local port number๋ฅผ ๊ฐ€์ง
  • ์†ก์‹ ์ž๋Š” datagram ์ƒ์„ฑ ์‹œ ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•จ

โœ… ์ˆ˜์‹  ์˜ˆ์‹œ

  • ํ˜ธ์ŠคํŠธ๊ฐ€ UDP segment๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด:
    • segment์˜ destination port ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด๋‹น ์†Œ์ผ“์— ์ „๋‹ฌ
    • source IP๊ฐ€ ๋‹ฌ๋ผ๋„ ๋ชฉ์ ์ง€ ํฌํŠธ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๊ฐ™์€ ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌ๋จ

udp demux


๐Ÿ”— 3.2.5 TCP: ์—ฐ๊ฒฐํ˜•(Connection-Oriented) Demultiplexing

  • TCP ์†Œ์ผ“์€ 4๊ฐ€์ง€ ์ •๋ณด๋กœ ์‹๋ณ„๋˜๋Š” ๊ณ ์œ ํ•œ ์—ฐ๊ฒฐ ๊ตฌ์„ฑ

    1. source IP ์ฃผ์†Œ
    2. source port ๋ฒˆํ˜ธ
    3. destination IP ์ฃผ์†Œ
    4. destination port ๋ฒˆํ˜ธ
  • ์ˆ˜์‹ ์ž๋Š” ์ด 4๊ฐ€์ง€ ํŠœํ”Œ(tuple)์„ ๊ธฐ์ค€์œผ๋กœ ์ •ํ™•ํ•œ ์†Œ์ผ“์— ์—ฐ๊ฒฐ

๐Ÿงฉ ๋‹ค์ค‘ ์—ฐ๊ฒฐ ์ฒ˜๋ฆฌ

  • ํ•˜๋‚˜์˜ ์„œ๋ฒ„ ํ˜ธ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์™€ ๋™์‹œ ์ ‘์† ๊ฐ€๋Šฅ
  • ๊ฐ ํด๋ผ์ด์–ธํŠธ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ TCP ์†Œ์ผ“ ์ƒ์„ฑ
  • ๋Œ€ํ‘œ ์˜ˆ: ์›น ์„œ๋ฒ„๋Š” ์ ‘์†ํ•œ ํด๋ผ์ด์–ธํŠธ๋งˆ๋‹ค ๋ณ„๋„ ์†Œ์ผ“ ์œ ์ง€

tcp demux


๐Ÿ“ ์š”์•ฝ

ํ•ญ๋ชฉUDP (Connectionless)TCP (Connection-Oriented)
์†Œ์ผ“ ์‹๋ณ„ ๊ธฐ์ค€Destination Port4-Tuple (Src/Dst IP & Port)
์—ฐ๊ฒฐ ์—ฌ๋ถ€โŒ ์—†์Œโœ… ์žˆ์Œ
๊ฐ™์€ ํฌํŠธ๋กœ ์ˆ˜์‹  ์‹œ๋ชจ๋‘ ๊ฐ™์€ ์†Œ์ผ“๊ฐ ์—ฐ๊ฒฐ๋งˆ๋‹ค ์†Œ์ผ“ ๋‹ค๋ฆ„
์„œ๋ฒ„ ๋™์‹œ ์—ฐ๊ฒฐ๋‹จ์ผ ์†Œ์ผ“ํด๋ผ์ด์–ธํŠธ๋งˆ๋‹ค ์†Œ์ผ“ ๋ณ„๋„

3.3 UDP: User Datagram Protocol

3.3.1 UDP ๊ธฐ๋ณธ ๊ฐœ๋… [RFC 768]

  • "No Frills", "Bare Bone" ์ธํ„ฐ๋„ท ์ „์†ก ํ”„๋กœํ† ์ฝœ
  • ๊ฐ€๋Šฅํ•œ ์ตœ์„ ์„ ๋‹คํ•˜์ง€๋งŒ:
    • ํŒจํ‚ท ์œ ์‹ค(lost) ๊ฐ€๋Šฅ
    • ์ˆœ์„œ ๋’ค๋ฐ”๋€œ(out-of-order) ๊ฐ€๋Šฅ
  • Connectionless: ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž ๊ฐ„ handshaking ์—†์Œ
    • ๊ฐ UDP ์„ธ๊ทธ๋จผํŠธ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ
    • ์—ฌ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋‚ด๋”๋ผ๋„ ๊ฐ๊ฐ ๋ณ„๋„๋กœ ์ „์†ก ๋ฐ ์ˆ˜์‹ 
    • ์žฌ์กฐ๋ฆฝ, ์ˆœ์„œ ๋ณด์žฅ, ์˜ค๋ฅ˜ ๋ณต๊ตฌ ์—†์Œ

udp


โœ… UDP ์‚ฌ์šฉ ์‚ฌ๋ก€

  • ๐ŸŽฅ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋ฐ: ์†์‹ค ํ—ˆ์šฉ(lost tolerant), ์ „์†ก ์†๋„ ๋ฏผ๊ฐ(rate sensitive)
  • ๐ŸŒ DNS (Domain Name System)
  • ๐Ÿ“ก SNMP (Simple Network Management Protocol)

โš ๏ธ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ

UDP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ ๋ขฐ์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ
โ†’ Application Layer์—์„œ ์ง์ ‘ ์‹ ๋ขฐ์„ฑ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ
(์˜ˆ: ์žฌ์ „์†ก, ์‘๋‹ต ํ™•์ธ ๋“ฑ)


โ“ ์™œ UDP๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

์žฅ์ ์„ค๋ช…
์—ฐ๊ฒฐ ์„ค์ • ์—†์ŒConnection establishment ๊ณผ์ • ์—†์ด ๋ฐ”๋กœ ์ „์†ก ๊ฐ€๋Šฅ (์ง€์—ฐ ๊ฐ์†Œ)
์ƒํƒœ ์—†์Œ์†ก์ˆ˜์‹  ์ธก ๋ชจ๋‘ connection state ์—†์Œ
ํ—ค๋” ์ž‘์ŒTCP๋ณด๋‹ค ์ž‘์€ ํ—ค๋” ํฌ๊ธฐ
ํ˜ผ์žก ์ œ์–ด ์—†์Œ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋น ๋ฅด๊ฒŒ ์ „์†ก ๊ฐ€๋Šฅ (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์–ด ๊ฐ€๋Šฅ)

3.3.2 UDP Checksum

UDP๋Š” ๋น„์‹ ๋ขฐ์„ฑ์ด์ง€๋งŒ, ์ตœ์†Œํ•œ์˜ ์˜ค๋ฅ˜ ๊ฒ€์ถœ ๊ธฐ๋Šฅ(error detection)์€ ์ œ๊ณต

checksum

๐Ÿ› ๏ธ Checksum ์ž‘๋™ ๋ฐฉ์‹

  • ์˜ค๋ฅ˜ ์›์ธ: ์ „์†ก ์ค‘ ๋น„ํŠธ๊ฐ€ ๋ฐ”๋€Œ๋Š” flipped bits (์ฃผ๋กœ ๋งํฌ ๊ณ„์ธต์—์„œ ๋ฐœ์ƒ)
  • ์†ก์‹  ์ธก:
    • segment์˜ ๋ฐ์ดํ„ฐ์™€ ํ—ค๋”๋ฅผ 16๋น„ํŠธ ์ •์ˆ˜ ์‹œํ€€์Šค๋กœ ๋‚˜๋ˆ”
    • 1์˜ ๋ณด์ˆ˜ ๋ง์…ˆ(1's complement sum)์œผ๋กœ ๋ชจ๋‘ ๋”ํ•จ
    • ๊ฒฐ๊ณผ๊ฐ’์„ checksum ํ•„๋“œ์— ์ €์žฅ
  • ์ˆ˜์‹  ์ธก:
    • ์ˆ˜์‹ ํ•œ segment์˜ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ checksum ์žฌ๊ณ„์‚ฐ
    • ์ˆ˜์‹ ๋œ checksum๊ณผ ๋น„๊ต
    • ๊ฐ’์ด ๊ฐ™์œผ๋ฉด โ†’ ์ •์ƒ ์ˆ˜์‹ 
    • ๊ฐ’์ด ๋‹ค๋ฅด๋ฉด โ†’ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์ธ์ง€

๐Ÿ“ ์š”์•ฝ

ํ•ญ๋ชฉUDP ํŠน์ง•
์—ฐ๊ฒฐ ์—ฌ๋ถ€โŒ ๋น„์—ฐ๊ฒฐํ˜• (Connectionless)
์‹ ๋ขฐ์„ฑโŒ ์—†์Œ (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌํ˜„ ํ•„์š”)
์ˆœ์„œ ๋ณด์žฅโŒ ์—†์Œ
์‚ฌ์šฉ ์‚ฌ๋ก€์ŠคํŠธ๋ฆฌ๋ฐ, DNS, SNMP
์˜ค๋ฅ˜ ํƒ์ง€โœ… Checksum ์ œ๊ณต
์ „์†ก ์†๋„ ์ œ์–ดโŒ ํ˜ผ์žก ์ œ์–ด ์—†์Œ

3.5 Connection-Oriented Transport: TCP

3.5.1 TCP Overview [RFC 793, 1122, 1323, 2018, 2581]

โœ… ํ•ต์‹ฌ ๊ฐœ์š”

  • Point-to-Point

    • ํ•œ ์—ฐ๊ฒฐ์— ์†ก์‹  ์ธก 1๊ฐœ โ†” ์ˆ˜์‹  ์ธก 1๊ฐœ๋งŒ ์กด์žฌ
  • Reliable, In-order Byte Stream

    • ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ „์†ก ๋ณด์žฅ
    • TCP๋Š” ๋ฉ”์‹œ์ง€ ๋‹จ์œ„ ๊ฐœ๋…์ด ์—†์Œ
      • ์ฆ‰, "ํ•œ ๋ฒˆ์— ๋ณด๋‚ธ ๋ฉ”์‹œ์ง€"์˜ ๊ฒฝ๊ณ„๋Š” ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ
      • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ง์ ‘ ๊ฒฝ๊ณ„๋ฅผ ์ •์˜ํ•ด์•ผ ํ•จ
  • Pipelined (ํŒŒ์ดํ”„๋ผ์ธ ์ „์†ก)

    • ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋™์‹œ์— ์ „์†กํ•จ์œผ๋กœ์จ ์ „์†ก ํšจ์œจ์„ ์ฆ๊ฐ€
    • TCP๋Š” ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ(sliding window) ๊ธฐ๋ฒ•์„ ํ†ตํ•ด pipelining ๊ตฌํ˜„
    • ํ˜ผ์žก ์ œ์–ด(congestion control), ํ๋ฆ„ ์ œ์–ด(flow control)์™€ ์—ฐ๊ณ„๋จ
  • Full Duplex Data

    • ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋Šฅ
    • ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ๋กœ ๋™์‹œ์— ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅ
    • MSS (Maximum Segment Size): ์„ธ๊ทธ๋จผํŠธ๋‹น ์ „์†ก ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ๋ฐ์ดํ„ฐ ๋ฐ”์ดํŠธ ์ˆ˜
  • Connection-Oriented

    • ๋ฐ์ดํ„ฐ ๊ตํ™˜ ์ „์— 3-Way Handshaking์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ์„ค์ •
    • ์†ก์ˆ˜์‹  ์ธก์˜ ์ƒํƒœ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ†ต์‹  ๊ธฐ๋ฐ˜ ๋งˆ๋ จ
  • Flow Controlled

    • ์†ก์‹ ์ž๋Š” ์ˆ˜์‹ ์ž์˜ ๋ฒ„ํผ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋„๋ก ์ „์†ก
    • ์ˆ˜์‹ ์ž๊ฐ€ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋งŒํผ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ƒ„์œผ๋กœ์จ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐฉ์ง€

3.5.2 TCP Segment Structure

๐Ÿ“Œ TCP Sequence Number (Seq)

  • ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์‹œํ€€์Šค ๋ฒˆํ˜ธ ๋ถ€์—ฌ
  • ๊ฐ TCP ์„ธ๊ทธ๋จผํŠธ์—๋Š” ์‹œ์ž‘ ๋ฐ”์ดํŠธ ๋ฒˆํ˜ธ(Sequence Number) ํฌํ•จ
  • ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ์—์„œ ์ „์†ก๋˜๋Š” ์ฒซ ๋ฐ”์ดํŠธ์˜ ๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธ

๐Ÿ“Œ TCP Acknowledgements (ACKs)

  • ์ˆ˜์‹ ์ž๊ฐ€ ๋‹ค์Œ์— ๊ธฐ๋Œ€ํ•˜๋Š” ๋ฐ”์ดํŠธ ๋ฒˆํ˜ธ๋ฅผ ACK ๋ฒˆํ˜ธ๋กœ ์„ค์ •
  • ์ฆ‰, ์ง€๊ธˆ๊นŒ์ง€ ์ •์ƒ์ ์œผ๋กœ ๋ฐ›์€ ๋งˆ์ง€๋ง‰ ๋ฐ”์ดํŠธ + 1
  • ๋ˆ„์  ํ™•์ธ ๋ฐฉ์‹(Cumulative ACK)
    • ACK ๋ฒˆํ˜ธ๋Š” "์ง€๊ธˆ๊นŒ์ง€ ์—ฐ์†์ ์œผ๋กœ ์ž˜ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์˜๋ฏธ

ack-cumulative


3.5.3 ๐Ÿ” TCP Round Trip Time (RTT) & Timeout ์„ค์ •

โ“ Timeout ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ• ๊นŒ?

  • RTT๋ณด๋‹ค ์ปค์•ผ ํ•จ
  • RTT๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋ฏ€๋กœ ๊ณ ์ •๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
๊ฒฝ์šฐ๋ฌธ์ œ์ 
๋„ˆ๋ฌด ์งง์€ Timeout์กฐ๊ธ‰ํ•œ ์žฌ์ „์†ก, ๋ถˆํ•„์š”ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ฐœ์ƒ
๋„ˆ๋ฌด ๊ธด Timeout์†์‹ค๋œ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ๋А๋ฆฐ ๋Œ€์‘

โฑ๏ธ SampleRTT์™€ EstimatedRTT

  • SampleRTT: ์„ธ๊ทธ๋จผํŠธ ์ „์†ก ์‹œ์ ๋ถ€ํ„ฐ ACK ์ˆ˜์‹ ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„
    (์žฌ์ „์†ก๋œ ์„ธ๊ทธ๋จผํŠธ๋Š” ์ œ์™ธ)

  • EstimatedRTT: ์ตœ๊ทผ ์—ฌ๋Ÿฌ SampleRTT์˜ ๊ฐ€์ค‘ ํ‰๊ท 

    EstimatedRTT = (1 - ฮฑ) * EstimatedRTT + ฮฑ * SampleRTT
    • ์ง€์ˆ˜ ๊ฐ€์ค‘ ์ด๋™ ํ‰๊ท  (EWMA: Exponential Weighted Moving Average)
    • ์ตœ๊ทผ ๊ฐ’์ผ์ˆ˜๋ก ๋” ํฐ ์˜ํ–ฅ
    • ์ผ๋ฐ˜์ ์œผ๋กœ ฮฑ = 0.125

rtt


๐Ÿงฎ Timeout Interval ๊ณ„์‚ฐ

  1. ํŽธ์ฐจ(Variation) ์ธก์ •:

    DevRTT = (1 - ฮฒ) * DevRTT + ฮฒ * |SampleRTT - EstimatedRTT|
    • RTT์˜ ๋ณ€ํ™”๋Ÿ‰ ์ถ”์ •
    • ์ผ๋ฐ˜์ ์œผ๋กœ ฮฒ = 0.25
  2. ์ตœ์ข… Timeout ๊ฐ’ ๊ณ„์‚ฐ:

    TimeoutInterval = EstimatedRTT + 4 * DevRTT
    • ์•ˆ์ „ ์—ฌ์œ (Safety Margin)๋ฅผ ๋”ํ•œ ๊ฐ’
    • ๋ณ€ํ™”๊ฐ€ ์‹ฌํ• ์ˆ˜๋ก ์—ฌ์œ ๋ฅผ ํฌ๊ฒŒ ์žก์Œ

3.5.4 TCP Reliable Data Transfer (RDT)

  • TCP๋Š” ๋ถˆ์™„์ „ํ•œ IP ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ์œ„์—์„œ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก(RDT)์„ ๊ตฌํ˜„
  • ์ฃผ์š” ํŠน์ง•:
    • pipelined segments
    • ๋ˆ„์  ACKs
    • ๋‹จ์ผ ์žฌ์ „์†ก ํƒ€์ด๋จธ ์‚ฌ์šฉ

๐Ÿ” ์žฌ์ „์†ก ์กฐ๊ฑด

  • Timeout ์ด๋ฒคํŠธ
  • ์ค‘๋ณต๋œ ACKs ์ˆ˜์‹ 

(๊ฐ€์ •: ์ค‘๋ณต ACK, ํ๋ฆ„ ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด๋Š” ๋ฌด์‹œ)


๐Ÿ“ค ์†ก์‹  ์ธก ์ด๋ฒคํŠธ

  1. Application์—์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 

    • ์„ธ๊ทธ๋จผํŠธ ์ƒ์„ฑ, ์‹œํ€€์Šค ๋ฒˆํ˜ธ = NextSeqNum
    • ์„ธ๊ทธ๋จผํŠธ๋ฅผ Network Layer(IP)๋กœ ์ „์†ก
    • NextSeqNum += len(data)
    • ํƒ€์ด๋จธ๊ฐ€ ๊บผ์ ธ ์žˆ์œผ๋ฉด ์‹œ์ž‘
  2. ACK(y) ์ˆ˜์‹ 

    if (y > SendBase) {
        SendBase = y
        if (๋ฏธ์ˆ˜์‹  segment ์กด์žฌ)
            ํƒ€์ด๋จธ ์žฌ์‹œ์ž‘
        else
            ํƒ€์ด๋จธ ์ค‘์ง€
    } else {
        // ์ค‘๋ณต ACK ์ˆ˜์‹  โ†’ segment loss ์ถ”์ •?
    }
  3. Timeout ๋ฐœ์ƒ

    • SendBase์— ํ•ด๋‹นํ•˜๋Š” segment ์žฌ์ „์†ก
    • ํƒ€์ด๋จธ ์žฌ์‹œ์ž‘

RDT


๐Ÿ“ฆ ์žฌ์ „์†ก ์‹œ๋‚˜๋ฆฌ์˜ค

1. Lost ACK

lost ACK

  • ๋ฐ์ดํ„ฐ๋Š” ์ˆ˜์‹ ๋˜์—ˆ์œผ๋‚˜, ACK๊ฐ€ ์œ ์‹ค
  • ์†ก์‹ ์ž: ํƒ€์ž„์•„์›ƒ ํ›„ ์žฌ์ „์†ก
  • ์ˆ˜์‹ ์ž: ์ค‘๋ณต ๋ฐ์ดํ„ฐ ๋ฌด์‹œ, ACK ์žฌ์ „์†ก
2. Premature Timeout

premature timeout

  • ACK๊ฐ€ ๋„์ฐฉํ•˜๊ธฐ ์ „ ํƒ€์ด๋จธ ๋งŒ๋ฃŒ
  • ์†ก์‹ ์ž: ์žฌ์ „์†ก
  • ์ˆ˜์‹ ์ž: ์ค‘๋ณต ACK ์ „์†ก
3. Cumulative ACK

cumulative ACK

  • TCP๋Š” ๋ˆ„์  ACK ์‚ฌ์šฉ โ†’ ์ด์ „ ACK ์œ ์‹ค๋˜์–ด๋„ ๋ฌด๋ฐฉ

3.5.5 TCP ACK Generation

โœ… 1. ์˜ˆ์ƒ๋Œ€๋กœ ๋„์ฐฉ + ์ด์ „๊นŒ์ง€ ๋ชจ๋‘ ACK ์™„๋ฃŒ

  • Delayed ACK: ์ตœ๋Œ€ 500ms ๋Œ€๊ธฐ ํ›„ ์ „์†ก

โœ… 2. ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉ + ACK ๋Œ€๊ธฐ ์ค‘

  • ๋ˆ„์  ACK ์ฆ‰์‹œ ์ „์†ก

โœ… 3. ์ˆœ์„œ ์–ด๊ธ‹๋‚œ ์„ธ๊ทธ๋จผํŠธ ๋„์ฐฉ

  • ์ค‘๋ณต ACK ๋ฐ˜๋ณต ์ „์†ก (์˜ˆ: ACK=1000 ๋ฐ˜๋ณต)

โœ… 4. ๋ˆ„๋ฝ ๊ตฌ๊ฐ„ ์ฑ„์›€

  • ์—ฐ์†์„ฑ ๋ณต๊ตฌ โ†’ ์ฆ‰์‹œ ACK ์ „์†ก

โœ… ์™œ 2๊ฐœ๊นŒ์ง€๋งŒ ๊ธฐ๋‹ค๋ฆด๊นŒ?

  • RTT ์ธก์ • ๋ถˆ๊ฐ€, ํƒ€์ž„์•„์›ƒ ์œ„ํ—˜ ๋ฐฉ์ง€
    โ†’ RFC 1122 ๊ธฐ์ค€

3.5.6 TCP Fast Retransmit

Fast Retransmit

  • ์ค‘๋ณต ACK 3๊ฐœ ์ˆ˜์‹  ์‹œ โ†’ ํƒ€์ด๋จธ ์—†์ด ๋น ๋ฅด๊ฒŒ ์žฌ์ „์†ก
  • ๊ฐ€์žฅ ์ž‘์€ Seq#์˜ segment ์žฌ์ „์†ก
  • ํ˜ผ์žก ์ œ์–ด์™€ ์—ฐ๊ณ„

3.5.7 TCP Flow Control

flow control

  • ์†ก์‹ ์ž๋Š” ์ˆ˜์‹ ์ž์˜ ๋ฒ„ํผ ํฌ๊ธฐ ์ดˆ๊ณผ ๋ฐฉ์ง€
  • ์ˆ˜์‹ ์ž: rwnd ๊ฐ’์„ ํ†ตํ•ด ๋ฒ„ํผ ์—ฌ์œ  ๊ณต๊ฐ„์„ ์•Œ๋ฆผ
  • ์†ก์‹ ์ž: rwnd๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „์†ก๋Ÿ‰ ์ œํ•œ

3.5.8 Connection Management

conn mgmt

๐Ÿค TCP 3-Way Handshake

3whs

  1. SYN (Client โ†’ Server)

    • SEQ=x, SYN=1
  2. SYN+ACK (Server โ†’ Client)

    • SEQ=y, ACK=x+1
  3. ACK (Client โ†’ Server)

    • SEQ=x+1, ACK=y+1

๐Ÿ”š TCP: Closing a Connection

tcp close

  1. A โ†’ B: FIN, SEQ=x
  2. B โ†’ A: ACK, ACK=x+1
  3. B โ†’ A: FIN, SEQ=y
  4. A โ†’ B: ACK, ACK=y+1

โ†’ ์™„์ „ ์ข…๋ฃŒ


3.7 TCP Congestion Control

  • TCP๋Š” ์†์‹ค์ด ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ์ „์†ก ์œˆ๋„์šฐ(cwnd)๋ฅผ ์ ์ฐจ ์ฆ๊ฐ€์‹œ์ผœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€์—ญํญ์„ ํƒ์ƒ‰
  • ๊ธฐ๋ณธ ์ „๋žต: Additive Increase / Multiplicative Decrease (AIMD)
์ „๋žต์„ค๋ช…
Additive IncreaseRTT๋งˆ๋‹ค cwnd๋ฅผ 1 MSS์”ฉ ์ฆ๊ฐ€
Multiplicative DecreaseํŒจํ‚ท ์†์‹ค ๋ฐœ์ƒ ์‹œ cwnd๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ๊ฐ์†Œ

AIMD


3.7.1 Details

cwnd

  • ์†ก์‹ ์ž๋Š” ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฒ”์œ„์—์„œ๋งŒ ๋ฐ์ดํ„ฐ ์ „์†ก:
    LastByteSent - LastByteAcked <= min(cwnd, rwnd)
  • cwnd๋Š” ๋„คํŠธ์›Œํฌ ์ƒํƒœ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ณ€ํ™”
  • TCP ์ „์†ก๋ฅ (approx):
    TCP Sending Rate โ‰ˆ cwnd / RTT (bytes/sec)

3.7.2 TCP Slow Start

slow start

  • ์—ฐ๊ฒฐ ์ดˆ๊ธฐ, cwnd = 1 MSS
  • ๋งค RTT๋งˆ๋‹ค ACK 1๊ฐœ๋‹น cwnd += 1 MSS โ†’ ์ง€์ˆ˜ ์ฆ๊ฐ€

3.7.3 Detecting & Reacting to Loss

  • Timeout ๋ฐœ์ƒ ์‹œ:

    • cwnd = 1 MSS
    • ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ (slow start ์žฌ์‹œ์ž‘)
  • ์ค‘๋ณต ACK 3๊ฐœ ์ˆ˜์‹  (TCP Reno):

    • cwnd = cwnd / 2
    • ์ดํ›„ ์„ ํ˜• ์ฆ๊ฐ€ (Congestion Avoidance)
  • TCP Tahoe:

    • ์†์‹ค ๋ฐœ์ƒ ์‹œ ํ•ญ์ƒ cwnd = 1 MSS๋กœ ์žฌ์„ค์ •

3.7.4 Slow Start โ†’ Congestion Avoidance ์ „ํ™˜

threshold

  • ์ „ํ™˜ ๊ธฐ์ค€: cwnd โ‰ฅ ssthresh

3.7.5 TCP Throughput

  • W: ํ˜ผ์žก ์œˆ๋„์šฐ ์ตœ๋Œ€ ํฌ๊ธฐ
  • ํ‰๊ท  ์ฒ˜๋ฆฌ๋Ÿ‰:
    Throughput โ‰ˆ (3/4) * W / RTT
  • ์‹ค์ œ ์œˆ๋„์šฐ๋Š” ์†์‹ค ๋ฐœ์ƒ ์ „์˜ ํ‰๊ท ๊ฐ’์ธ 3/4 W์— ์ˆ˜๋ ด

throughput


3.7.6 TCP Fairness

  • TCP๋Š” ๊ฐ ์—ฐ๊ฒฐ์ด ๊ณตํ‰ํ•˜๊ฒŒ ๋Œ€์—ญํญ์„ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•จ
  • ๋ณ‘๋ชฉ ๋งํฌ ์šฉ๋Ÿ‰์ด R์ผ ๋•Œ, ์—ฐ๊ฒฐ์ด k๊ฐœ๋ผ๋ฉด ๊ฐ ์—ฐ๊ฒฐ์€ R/k๋ฅผ ๋ชฉํ‘œ

fairness1
fairness2

โš ๏ธ Fairness vs. UDP

  • UDP๋Š” ํ˜ผ์žก ์ œ์–ด ์—†์Œ โ†’ ํ•ญ์ƒ ๋™์ผํ•œ ์†๋„
  • TCP๋Š” ํ˜ผ์žก ๋ฐœ์ƒ ์‹œ ์ „์†ก ์†๋„ ๊ฐ์†Œ
  • UDP์™€ TCP๊ฐ€ ํ•จ๊ป˜ ์“ฐ์ด๋ฉด TCP๋Š” ๋ถˆ๋ฆฌํ•จ โ†’ ๊ณต์ •์„ฑ ๊นจ์ง

โš ๏ธ Fairness vs. Parallel TCP

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ TCP ์—ฐ๊ฒฐ์„ ๋ณ‘๋ ฌ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์ด ์ „์†ก๋Ÿ‰ ์ฆ๊ฐ€
  • ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ vs. 11๊ฐœ ์—ฐ๊ฒฐ โ†’ ์ž์› ์ ์œ  ๋น„์œจ ๋‹ค๋ฆ„
  • ๊ฒฐ๊ณผ: ๋‹ค์ค‘ ์—ฐ๊ฒฐ ์•ฑ์ด ๋” ๋งŽ์€ ์ž์›์„ ์ฐจ์ง€ โ†’ ๊ณต์ •์„ฑ ๋ถ•๊ดด

3.7.7 Explicit Congestion Notification (ECN)

ecn

๊ตฌ์„ฑ ์š”์†Œ์„ค๋ช…
IP ํ—ค๋” ECN ๋น„ํŠธํ˜ผ์žก ์ƒํƒœ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œ (2๋น„ํŠธ)
๋ผ์šฐํ„ฐํ˜ผ์žก ๋ฐœ์ƒ ์‹œ ECN ๋น„ํŠธ ์„ค์ •
์ˆ˜์‹ ์žECE=1์ธ ACK ์ „์†ก
์†ก์‹ ์žECE=1 ์ˆ˜์‹  ์‹œ cwnd ๊ฐ์†Œ ๋“ฑ ํ˜ผ์žก ๋ฐ˜์‘ ์ˆ˜ํ–‰

๊ณผ์ • ์š”์•ฝ:

  1. ์†ก์‹ ์ž โ†’ ์ˆ˜์‹ ์ž: ํ‰์ƒ์‹œ ์ „์†ก (ECN=00)
  2. ๋ผ์šฐํ„ฐ: ํ˜ผ์žก ๊ฐ์ง€ ์‹œ ECN=11 ์„ค์ •
  3. ์ˆ˜์‹ ์ž: ECN=11 ๊ฐ์ง€ โ†’ ECE=1 ํฌํ•จํ•œ ACK ์ „์†ก
  4. ์†ก์‹ ์ž: ํ˜ผ์žก ์ธ์‹ โ†’ ํ˜ผ์žก ์ œ์–ด ์ˆ˜ํ–‰
profile
push hard ๐Ÿฅ•

0๊ฐœ์˜ ๋Œ“๊ธ€