๐ Chapter 03: Transport Layer
3.1 Transport-Layer Services

๐ 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 Layer | Process ๊ฐ ํต์ | Port Number | End-to-End ๋
ผ๋ฆฌ์ ์ฐ๊ฒฐ |
| Network Layer | Host ๊ฐ ํต์ | 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: ํ์ผ ์ ์ก, ์ด๋ฉ์ผ)
๐ ์์ฝ
| ํญ๋ชฉ | UDP | TCP |
|---|
| ์ ๋ขฐ์ฑ | โ | โ
|
| ์์ ๋ณด์ฅ | โ | โ
|
| ์ฐ๊ฒฐ ์ค์ | โ (๋น์ฐ๊ฒฐํ) | โ
(3-Way Handshake) |
| ์ฌ์ฉ ์์ | ์ค์๊ฐ ์๋น์ค | ํ์ผ/๋ฐ์ดํฐ ์ ์ก |
| ์ค๋ฅ ์ฒ๋ฆฌ | ์์ | ์์ |
3.2 Multiplexing and Demultiplexing
๐ฆ 3.2.1 ๊ฐ๋
์ ๋ฆฌ
- Multiplexing (๋ค์คํ): ์ก์ ์ธก์์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์
ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ ํ๋์ ๋คํธ์ํฌ ์ฐ๊ฒฐ๋ก ์ ์ก
- Demultiplexing (์ญ๋ค์คํ): ์์ ์ธก์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ์ ํ๋ฆฌ์ผ์ด์
ํ๋ก์ธ์ค๋ก ์ ๋ฌ

๐ 3.2.2 ์ก์ ์ธก: Multiplexing
- ์ฌ๋ฌ ๊ฐ์ ์์ผ(socket)์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ด
- ๊ฐ ๋ฐ์ดํฐ์ ์ ์ก ๊ณ์ธต ํค๋(transport header)๋ฅผ ์ถ๊ฐ
- ์ฌ๊ธฐ์ 16๋นํธ ํฌํธ ๋ฒํธ(port number) ํฌํจ
- ์์ฑ๋ ์ธ๊ทธ๋จผํธ(segment)๋ฅผ Network Layer๋ก ์ ๋ฌ

๐ฅ 3.2.3 ์์ ์ธก: Demultiplexing
- ์์ ๋ segment์์ ํค๋ ์ ๋ณด๋ฅผ ํ์ธ
- IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ ํ ์์ผ์ ๋ฐ์ดํฐ ์ ๋ฌ
๐ Demultiplexing ์๋ ๋ฐฉ์
- ํธ์คํธ๋ IP datagram์ ์์
- datagram์ source IP, destination IP ํฌํจ
- ํฌํจ๋ transport-layer segment๋ source/destination ํฌํธ ๋ฒํธ ํฌํจ
- ์์ ์ธก์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ก ํด๋น ์์ผ์ ์๋ณ
๐ค 3.2.4 UDP: ๋น์ฐ๊ฒฐํ(Connectionless) Demultiplexing
- UDP ์์ผ์ ๊ณ ์ ํ host-local port number๋ฅผ ๊ฐ์ง
- ์ก์ ์๋ datagram ์์ฑ ์ ๋ชฉ์ ์ง IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ๋ช
์ํด์ผ ํจ
โ
์์ ์์
- ํธ์คํธ๊ฐ UDP segment๋ฅผ ์์ ํ๋ฉด:
- segment์ destination port ๋ฒํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋น ์์ผ์ ์ ๋ฌ
- source IP๊ฐ ๋ฌ๋ผ๋ ๋ชฉ์ ์ง ํฌํธ๊ฐ ๊ฐ๋ค๋ฉด ๊ฐ์ ์์ผ์ผ๋ก ์ ๋ฌ๋จ

๐ 3.2.5 TCP: ์ฐ๊ฒฐํ(Connection-Oriented) Demultiplexing
๐งฉ ๋ค์ค ์ฐ๊ฒฐ ์ฒ๋ฆฌ
- ํ๋์ ์๋ฒ ํธ์คํธ๋ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ์ ๋์ ์ ์ ๊ฐ๋ฅ
- ๊ฐ ํด๋ผ์ด์ธํธ๋ง๋ค ๋
๋ฆฝ์ ์ธ TCP ์์ผ ์์ฑ
- ๋ํ ์: ์น ์๋ฒ๋ ์ ์ํ ํด๋ผ์ด์ธํธ๋ง๋ค ๋ณ๋ ์์ผ ์ ์ง

๐ ์์ฝ
| ํญ๋ชฉ | UDP (Connectionless) | TCP (Connection-Oriented) |
|---|
| ์์ผ ์๋ณ ๊ธฐ์ค | Destination Port | 4-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 ์ฌ์ฉ ์ฌ๋ก
- ๐ฅ ๋ฉํฐ๋ฏธ๋์ด ์คํธ๋ฆฌ๋ฐ: ์์ค ํ์ฉ(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 ์๋ ๋ฐฉ์
- ์ค๋ฅ ์์ธ: ์ ์ก ์ค ๋นํธ๊ฐ ๋ฐ๋๋ 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]
โ
ํต์ฌ ๊ฐ์
3.5.2 TCP Segment Structure


๐ TCP Sequence Number (Seq)
- ๋ฐ์ดํธ ๋จ์๋ก ์ํ์ค ๋ฒํธ ๋ถ์ฌ
- ๊ฐ TCP ์ธ๊ทธ๋จผํธ์๋ ์์ ๋ฐ์ดํธ ๋ฒํธ(Sequence Number) ํฌํจ
- ํด๋น ์ธ๊ทธ๋จผํธ์์ ์ ์ก๋๋ ์ฒซ ๋ฐ์ดํธ์ ๋ฒํธ๋ฅผ ์๋ฏธ
๐ TCP Acknowledgements (ACKs)
- ์์ ์๊ฐ ๋ค์์ ๊ธฐ๋ํ๋ ๋ฐ์ดํธ ๋ฒํธ๋ฅผ ACK ๋ฒํธ๋ก ์ค์
- ์ฆ, ์ง๊ธ๊น์ง ์ ์์ ์ผ๋ก ๋ฐ์ ๋ง์ง๋ง ๋ฐ์ดํธ + 1
- ๋์ ํ์ธ ๋ฐฉ์(Cumulative ACK)
- ACK ๋ฒํธ๋ "์ง๊ธ๊น์ง ์ฐ์์ ์ผ๋ก ์ ๋ฐ์์ต๋๋ค"๋ผ๋ ์๋ฏธ

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

๐งฎ Timeout Interval ๊ณ์ฐ
-
ํธ์ฐจ(Variation) ์ธก์ :
DevRTT = (1 - ฮฒ) * DevRTT + ฮฒ * |SampleRTT - EstimatedRTT|
- RTT์ ๋ณํ๋ ์ถ์
- ์ผ๋ฐ์ ์ผ๋ก ฮฒ = 0.25
-
์ต์ข
Timeout ๊ฐ ๊ณ์ฐ:
TimeoutInterval = EstimatedRTT + 4 * DevRTT
- ์์ ์ฌ์ (Safety Margin)๋ฅผ ๋ํ ๊ฐ
- ๋ณํ๊ฐ ์ฌํ ์๋ก ์ฌ์ ๋ฅผ ํฌ๊ฒ ์ก์
3.5.4 TCP Reliable Data Transfer (RDT)
- TCP๋ ๋ถ์์ ํ IP ์๋น์ค ๊ธฐ๋ฐ ์์์ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก(RDT)์ ๊ตฌํ
- ์ฃผ์ ํน์ง:
- pipelined segments
- ๋์ ACKs
- ๋จ์ผ ์ฌ์ ์ก ํ์ด๋จธ ์ฌ์ฉ
๐ ์ฌ์ ์ก ์กฐ๊ฑด
- Timeout ์ด๋ฒคํธ
- ์ค๋ณต๋ ACKs ์์
(๊ฐ์ : ์ค๋ณต ACK, ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด๋ ๋ฌด์)
๐ค ์ก์ ์ธก ์ด๋ฒคํธ
-
Application์์ ๋ฐ์ดํฐ ์์
- ์ธ๊ทธ๋จผํธ ์์ฑ, ์ํ์ค ๋ฒํธ = NextSeqNum
- ์ธ๊ทธ๋จผํธ๋ฅผ Network Layer(IP)๋ก ์ ์ก
NextSeqNum += len(data)
- ํ์ด๋จธ๊ฐ ๊บผ์ ธ ์์ผ๋ฉด ์์
-
ACK(y) ์์
if (y > SendBase) {
SendBase = y
if (๋ฏธ์์ segment ์กด์ฌ)
ํ์ด๋จธ ์ฌ์์
else
ํ์ด๋จธ ์ค์ง
} else {
}
-
Timeout ๋ฐ์
- SendBase์ ํด๋นํ๋ segment ์ฌ์ ์ก
- ํ์ด๋จธ ์ฌ์์

๐ฆ ์ฌ์ ์ก ์๋๋ฆฌ์ค
1. Lost ACK

- ๋ฐ์ดํฐ๋ ์์ ๋์์ผ๋, ACK๊ฐ ์ ์ค
- ์ก์ ์: ํ์์์ ํ ์ฌ์ ์ก
- ์์ ์: ์ค๋ณต ๋ฐ์ดํฐ ๋ฌด์, ACK ์ฌ์ ์ก
2. Premature Timeout

- ACK๊ฐ ๋์ฐฉํ๊ธฐ ์ ํ์ด๋จธ ๋ง๋ฃ
- ์ก์ ์: ์ฌ์ ์ก
- ์์ ์: ์ค๋ณต ACK ์ ์ก
3. Cumulative ACK

- TCP๋ ๋์ ACK ์ฌ์ฉ โ ์ด์ ACK ์ ์ค๋์ด๋ ๋ฌด๋ฐฉ
3.5.5 TCP ACK Generation
โ
1. ์์๋๋ก ๋์ฐฉ + ์ด์ ๊น์ง ๋ชจ๋ ACK ์๋ฃ
- Delayed ACK: ์ต๋ 500ms ๋๊ธฐ ํ ์ ์ก
โ
2. ์์๋๋ก ๋์ฐฉ + ACK ๋๊ธฐ ์ค
โ
3. ์์ ์ด๊ธ๋ ์ธ๊ทธ๋จผํธ ๋์ฐฉ
- ์ค๋ณต ACK ๋ฐ๋ณต ์ ์ก (์: ACK=1000 ๋ฐ๋ณต)
โ
4. ๋๋ฝ ๊ตฌ๊ฐ ์ฑ์
- ์ฐ์์ฑ ๋ณต๊ตฌ โ ์ฆ์ ACK ์ ์ก
โ
์ 2๊ฐ๊น์ง๋ง ๊ธฐ๋ค๋ฆด๊น?
- RTT ์ธก์ ๋ถ๊ฐ, ํ์์์ ์ํ ๋ฐฉ์ง
โ RFC 1122 ๊ธฐ์ค
3.5.6 TCP Fast Retransmit

- ์ค๋ณต ACK 3๊ฐ ์์ ์ โ ํ์ด๋จธ ์์ด ๋น ๋ฅด๊ฒ ์ฌ์ ์ก
- ๊ฐ์ฅ ์์ Seq#์ segment ์ฌ์ ์ก
- ํผ์ก ์ ์ด์ ์ฐ๊ณ
3.5.7 TCP Flow Control

- ์ก์ ์๋ ์์ ์์ ๋ฒํผ ํฌ๊ธฐ ์ด๊ณผ ๋ฐฉ์ง
- ์์ ์:
rwnd ๊ฐ์ ํตํด ๋ฒํผ ์ฌ์ ๊ณต๊ฐ์ ์๋ฆผ
- ์ก์ ์:
rwnd๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ก๋ ์ ํ
3.5.8 Connection Management

๐ค TCP 3-Way Handshake

-
SYN (Client โ Server)
-
SYN+ACK (Server โ Client)
-
ACK (Client โ Server)
๐ TCP: Closing a Connection

- A โ B: FIN, SEQ=x
- B โ A: ACK, ACK=x+1
- B โ A: FIN, SEQ=y
- A โ B: ACK, ACK=y+1
โ ์์ ์ข
๋ฃ
3.7 TCP Congestion Control
- TCP๋ ์์ค์ด ๋ฐ์ํ ๋๊น์ง ์ ์ก ์๋์ฐ(cwnd)๋ฅผ ์ ์ฐจ ์ฆ๊ฐ์์ผ ์ฌ์ฉ ๊ฐ๋ฅํ ๋์ญํญ์ ํ์
- ๊ธฐ๋ณธ ์ ๋ต: Additive Increase / Multiplicative Decrease (AIMD)
| ์ ๋ต | ์ค๋ช
|
|---|
| Additive Increase | RTT๋ง๋ค cwnd๋ฅผ 1 MSS์ฉ ์ฆ๊ฐ |
| Multiplicative Decrease | ํจํท ์์ค ๋ฐ์ ์ cwnd๋ฅผ ์ ๋ฐ์ผ๋ก ๊ฐ์ |

3.7.1 Details

3.7.2 TCP Slow Start

- ์ฐ๊ฒฐ ์ด๊ธฐ, cwnd = 1 MSS
- ๋งค RTT๋ง๋ค ACK 1๊ฐ๋น cwnd += 1 MSS โ ์ง์ ์ฆ๊ฐ
3.7.3 Detecting & Reacting to Loss
3.7.4 Slow Start โ Congestion Avoidance ์ ํ

- ์ ํ ๊ธฐ์ค:
cwnd โฅ ssthresh
3.7.5 TCP Throughput

3.7.6 TCP Fairness
- TCP๋ ๊ฐ ์ฐ๊ฒฐ์ด ๊ณตํํ๊ฒ ๋์ญํญ์ ๋๋๋ ๊ฒ์ ๋ชฉํ๋ก ํจ
- ๋ณ๋ชฉ ๋งํฌ ์ฉ๋์ด R์ผ ๋, ์ฐ๊ฒฐ์ด k๊ฐ๋ผ๋ฉด ๊ฐ ์ฐ๊ฒฐ์ R/k๋ฅผ ๋ชฉํ


โ ๏ธ Fairness vs. UDP
- UDP๋ ํผ์ก ์ ์ด ์์ โ ํญ์ ๋์ผํ ์๋
- TCP๋ ํผ์ก ๋ฐ์ ์ ์ ์ก ์๋ ๊ฐ์
- UDP์ TCP๊ฐ ํจ๊ป ์ฐ์ด๋ฉด TCP๋ ๋ถ๋ฆฌํจ โ ๊ณต์ ์ฑ ๊นจ์ง
โ ๏ธ Fairness vs. Parallel TCP
- ์ฌ๋ฌ ๊ฐ์ TCP ์ฐ๊ฒฐ์ ๋ณ๋ ฌ๋ก ์ฌ์ฉํ๋ฉด ์ด ์ ์ก๋ ์ฆ๊ฐ
- ํ๋์ ์ฐ๊ฒฐ vs. 11๊ฐ ์ฐ๊ฒฐ โ ์์ ์ ์ ๋น์จ ๋ค๋ฆ
- ๊ฒฐ๊ณผ: ๋ค์ค ์ฐ๊ฒฐ ์ฑ์ด ๋ ๋ง์ ์์์ ์ฐจ์ง โ ๊ณต์ ์ฑ ๋ถ๊ดด
3.7.7 Explicit Congestion Notification (ECN)

| ๊ตฌ์ฑ ์์ | ์ค๋ช
|
|---|
| IP ํค๋ ECN ๋นํธ | ํผ์ก ์ํ๋ฅผ ๋ช
์์ ์ผ๋ก ํ์ (2๋นํธ) |
| ๋ผ์ฐํฐ | ํผ์ก ๋ฐ์ ์ ECN ๋นํธ ์ค์ |
| ์์ ์ | ECE=1์ธ ACK ์ ์ก |
| ์ก์ ์ | ECE=1 ์์ ์ cwnd ๊ฐ์ ๋ฑ ํผ์ก ๋ฐ์ ์ํ |
๊ณผ์ ์์ฝ:
- ์ก์ ์ โ ์์ ์: ํ์์ ์ ์ก (ECN=00)
- ๋ผ์ฐํฐ: ํผ์ก ๊ฐ์ง ์ ECN=11 ์ค์
- ์์ ์: ECN=11 ๊ฐ์ง โ ECE=1 ํฌํจํ ACK ์ ์ก
- ์ก์ ์: ํผ์ก ์ธ์ โ ํผ์ก ์ ์ด ์ํ