- toc {:toc}
Notice
Computer Networks ๊ธ์ ๊ฒฝํฌ๋ํ๊ต ์ํํธ์จ์ด์ตํฉ๋ํ ์ด์ฑ์ ๊ต์๋์ [์ปดํจํฐ ๋คํธ์ํฌ CSE302] ์์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
Transport Layer Basic
- TCP, UDP
Process-to-Process Delivery
- 2๊ณ์ธต ๋งํฌ ๊ณ์ธต์ ๋ ๋ ธ๋๋ฅผ ํ๋์ ๋งํฌ๋ก ์ฐ๊ฒฐํ์ฌ ํ๋ ์์ ์ ๋ฌํ๋, Node-to-Node ์ ๋ฌ์ด ์ด๋ค์ก๋ค.
- ์ด์ 2๊ฐ ์ด์์ ์ค, 3๊ฐ ์ด์์ ๊ธฐ๊ธฐ๋ค์ ์ฐ๊ฒฐํ ๊ฒ์ด ๋คํธ์ํฌ๋ผ๊ณ ๋งํ๊ณ , Host-to-Host ์ ๋ฌ์ด ์ด๋ค์ก๋ค.
- Transport(์ดํ ํธ๋์คํฌํธ) ๊ณ์ธต์ Process-to-Process ์ ๋ฌ์ด ์ด๋ค์ง๋ค. ์ด๋ Process๋ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค.
- ์ปดํจํฐ์ ์ปดํจํฐ ์ฌ์ด์ ์ ์ก์ ๋ณด๋ด๋ ๊ฒ์ด ์๋๋ผ, ์ก์ ์ปดํจํฐ ์์ ํ๋ก๊ทธ๋จ ์ค์ Source ํ๋ก๊ทธ๋จ์ด ์๊ณ , ์์ ์ปดํจํฐ ์์ Destination ํ๋ก๊ทธ๋จ์ด ์์ด, ๋ ์ฌ์ด๋ฅผ ์ค๊ณ ๊ฐ๋ค.
- ๋ฉ์์ง์ ๋ถ๋ถ, ์ฆ ํจํท์ ์ ์กํ๋ค.
- ๋ ํ๋ก์ธ์ค๋ ํด๋ผ์ด์ธํธ-์๋ฒ ๊ด๊ณ๋ก ํต์ ํ๋ค.
Client/Server Paradigm
- ๋๋ถ๋ถ์ Process-to-Process ํต์ ์ ํด๋ผ์ด์ธํธ/์๋ฒ(Client/Server) ๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ค.
- ํด๋ผ์ด์ธํธ : Local host์ ํ๋ก์ธ์ค
- ์๋ฒ : ์๋น์ค๋ฅผ ์ ๊ณตํ๋ remote host์ ํ๋ก์ธ์ค
- ํด๋ผ์ด์ธํธ, ์๋ฒ ๋ ํ๋ก์ธ์ค๋ ๋ชจ๋ ๊ฐ์ ์ด๋ฆ์ ๊ฐ๋๋ค.
- day time Client process
- day time Server process
Addressing
- 2๊ณ์ธต ๋ฐ์ดํฐ ๋งํฌ์์ ํ๋ ์์ MAC ์ฃผ์๊ฐ ํ์
- 3๊ณ์ธต ๋คํธ์ํฌ์์ IP ์ฃผ์ ํ์
- 4๊ณ์ธต ํธ๋์คํฌํธ์์ ํธ๋์คํฌํธ ๊ณ์ธต ์ฃผ์, ํฌํธ ๋ฒํธ๊ฐ ํ์ํ๋ค.
- ํฌํธ ๋ฒํธ(Port Number) : 0~65,535(16๋นํธ ์ ์)์ ๋ฒ์์์ ์ ํํ์ฌ ํ๋ก์ธ์ค์๊ฒ ํ ๋นํ๋ค.
- Well-known ํฌํธ ๋ฒํธ : 0~1023 ํ์คํ๋ ํฌํธ ๋ฒํธ ๋ฒ์(์์ฝ์ ์ฃผ๋ก ์๋ฒ๋ฅผ ์ง์ ํ๋ค.)
- Ephemeral ํฌํธ ๋ฒํธ : ์ํํธ์จ์ด๊ฐ ๋๋คํ๊ฒ ์ ํํด ์ฌ์ฉํ๋ ํฌํธ ๋ฒํธ
- Daytime ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ค ํ๋ค๋ฉด
- ์๋ฒ์๊ฒ ์ ๋ณด๋ฅผ ์์ฒญํ๋ ค ํ๋ค.
- ํด๋ผ์ด์ธํธ์ ์ด์์ฒด์ ๊ฐ ์ํํธ์จ์ด์๊ฒ ๊ฐ๋ฅํ ํฌํธ ๋ฒํธ ๊ฐ ์ค 0~1023 ๊ฐ์ด ์๋ ํฌํธ ๋ฒํธ(52,000)๋ฅผ ํ ๋นํด์ค๋ค.
- ํด๋น ํฌํธ ๋ฒํธ๋ฅผ ํตํด์ ํต์ ํ๋ค.
- IP ์ฃผ์์ ํฌํธ ๋ฒํธ์ ์ฐจ์ด
- ์๋ง์ ์ฅ์น์ ์ค๋ค๋ก ์ธํด ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ ์ปดํจํฐ์ ์ปดํจํฐ ์ฌ์ด๋ฅผ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ํต์ ํ๋ค. ํธ์คํธ-IP
- ์ปดํจํฐ ๋ด๋ถ์ ํ๋ก์ธ์ค์ ๋ํด ์ฐพ์๊ฐ๋ ๊ฒ์ ํฌํธ ๋ฒํธ๋ฅผ ํตํด ์ฐพ์๊ฐ๋ค. ํ๋ก์ธ์ค-ํฌํธ ๋ฒํธ
- Source IP Address, Source Port Number, Destination IP Address, Destination Port Number 4๊ฐ์ง๊ฐ ์๋ค๋ฉด ์ด๋๋ ํต์ ์ด ๊ฐ๋ฅํ๋ค.
Socket Address, Multiplexing and Demultiplexing
-
์์ผ(Socket) : IP ์ฃผ์์ ํฌํธ ๋ฒํธ์ ์กฐํฉ์ ์๋ฏธํ๋ค.
-
4๊ณ์ธต ์ด์์์ ํ๋ก๊ทธ๋จ์ ๋ค๋ฃจ๋ ๊ฒฝ์ฐ ํฌํธ ๋ฒํธ๋ง์ผ๋ก๋ ํธ์คํธ๋ฅผ ์ฐพ์ ํต์ ํ ์ ์๊ธฐ ๋๋ฌธ์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ํจ๊ป ๋ฌถ๋ ์์ผ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฌถ์ด ์ฌ์ฉํ๋ค.
-
Multiplexing and Demultiplexing
- ์๋ง์ ํ๋ก์ธ์ค๊ฐ ์๋๋ ๋ ํ๋์ IP ์ฃผ์๋ฅผ ํตํด์ ํต์ ํ๋ค.
- ์ฌ๋ฌ ํ๋ก์ธ์ค๋ค์ด ๋ฌถ์ฌ ํ๋์ IP๋ก ํต์ ํ๋ ๊ฒ์ Multiplexing์ด๋ผ ํ๊ณ ํ๋์ IP๋ก ์ ๋ฌ๋์ด ๊ฐ ํ๋ก์ธ์ค๋ก ์ ๋ฌ๋๋ ๊ฒ์ Demultiplexing์ด๋ผ ํ๋ค.
Connectionless VS Connection-Oriented Service
-
Connectionless Service
- ์ฐ๊ฒฐ ์ค์ ํด์ ๊ณผ์ ์ด ์๋ค.
- ๊ฐ์ฅ ์ ๋ช ํ Connectionless Protocol์ UDP์ด๋ค.
-
Connection-Oriented Service
- ๋จผ์ ์ก์ ์์ ์์ ์ ์ฌ์ด์ ์ฐ๊ฒฐ ์ค์ ์ ํ๊ณ ํต์ ์ ํ๋ ๊ฒ์ ๋งํ๋ค.
- ๊ฐ์ฅ ์ ๋ช ํ Connection-Oriented Protocol์ TCP์ด๋ค. + SCTP
-
Reliable
- ์ ๋ขฐ์ฑ์ด ์๋ ์ ์ก์ ์ํด์ TCP, SCTP ๊ฐ์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ค.
- ๋๋ฆฌ๊ณ , ๋ ๋ณต์กํ๋ค.
- Application ๊ณ์ธต์ ํ๋ก๊ทธ๋จ์ด ์ ๋ขฐ์ฑ์ด ํ์ํ๋ค๋ฉด ํ๋กํ ์ฝ๋ ์ ๋ขฐ์ฑ์๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ผ ํ๋ค.
- ๋ณ๋ชฉ ํ์์ด ๋์ฌ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ๋ณด์ฅํ ์ ์๋์ง ์ ์๊ฐํด๋ด์ผ ํ๋ค.
-
Unreliable
- ์ ๋ขฐ์ฑ์ด ์ค์ํ์ง ์๋ค๋ฉด UDP ๊ฐ์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ค.
- ํ๋ฆ, ์ค๋ฅ ์ ์ด๊ฐ ํ์์ ์ด์ง ์์ ์๋น์ค์ด๊ฑฐ๋ ์๋๊ฐ ๋นจ๋ผ์ผ ํ๋ ์๋น์ค์ธ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
- ํ๋ก๊ทธ๋จ๋ง์ ๊ณ ์ ํ ํ๋ฆ, ์ค๋ฅ ์ ์ด ๋งค์ปค๋์ฆ์ ์ฌ์ฉํด ์ ๋ขฐ์ฑ์ด ํ์ํ์ง ์์ ๋ ์ฌ์ฉํ๋ค.
-
๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต์์ ์ ๋ขฐ์ฑ์ด ์๊ณ ํ๋ฆ, ์ค๋ฅ ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค ํ๋๋ผ๋ ํธ๋์คํฌํธ ๊ณ์ธต์์ ์ ๋ขฐ์ฑ ์ ์ด๊ฐ ํ์ํ ๊น?
- ํ์ํ๋ค. ์?
- ๋คํธ์ํฌ ๊ณ์ธต์์๋ ์ธ๊ธํ๋ค์ํผ ํ ๊ณณ์ ๋๋ฌด ๋ง์ ํจํท์ด ๋ชฐ๋ฆด ๊ฒฝ์ฐ, ํ ๋ฒ์ ์ ์กํ ์ ์๊ณ , ๋ฒํผ์ ๋ณด๊ดํ๋ค๊ฐ ์ ์กํด์ผ ํ๋ค. ์ด๋, ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฆฌ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ๋ค.
- ๋คํธ์ํฌ ๊ณ์ธต์ ๋น ๋ฅด๊ฒ ์ ๋ฌํ๊ธฐ ์ํด ์ ๋ขฐ์ฑ์ด ๋ณด์ฅ๋์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ฏ๋ก ํธ๋์คํฌํธ ๊ณ์ธต์์ ์ ๋ขฐ์ฑ ๋ณด์ฅ์ ์ ๊ฒฝ์จ์ผ ํ๋ค.
- ๋ถํ์ ๊ณผ ๊ฐ์ด 1, 2๊ณ์ธต์ ์ฐ๊ฒฐ์ ํตํด์ ์ค๋ฅ ๊ฒ์ถ, ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค ํ๋๋ผ๋ ์ฅ์น ์์์ ๋ฐ์๊ฐ๋ฅํ ์์ค์ด ์์ ์ ์๊ณ , ์ ๋ขฐ์ฑ์ ์ต๋ํ ๋ณด์ฅํ๊ธฐ ์ํด์ ํธ๋์คํฌํธ, 4๊ณ์ธต์์๋ ์ ๋ขฐ์ฑ ๋ณด์ฅ์ ์ ๊ฒฝ์จ์ค์ผ ํ๋ค.
User Datagram Protocol (UDP)
-
UDP : Connectless, Unreliable transport protocol
-
Host-to-Host ๋์ Process-to-Process๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ์ ์ธํ๊ณ IP์ ์๋น์ค์ ์ด๋ ํ ๊ฒ๋ ์ถ๊ฐํ์ง ์์๋ค.
-
UDP๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์๋ ๋๋ ์์ ๋ฉ์์ง๋ฅผ ์ ์กํ ๋ ์ฌ์ฉํ๋ค.
-
์์ ๋ฉ์์ง๋ฅผ ์ ์กํ๋ฉฐ TCP๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ก์์ ๊ด๊ณ์์ ์ ์ ํต์ ์ ํ ๋ ์ฌ์ฉํ๋ค.
-
Connectionless Services : ์ฐ๊ฒฐ ์ค์ ์์ด ๊ฐ datagram์ ๋ ๋ฆฝ์ ์ด๋ค.
-
Flow and Error Control : ํ๋ฆ, ์ค๋ฅ ์ ์ด ๋งค์ปค๋์ฆ์ด ์๋ค.
-
Encapsulation and Decapsulation : IP datagram์์ ์บก์ํ, ๋ถํดํ๋ค.
-
Well-known ports used with UDP
- UDP Frame format
- UDP ํ๋ ์์ ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ ์กํ๊ณ ์ด๋ ํ๋ก์ธ์ค๊ฐ ๋ฐ์์ผ ํ๋์ง์ ๋ํ ์ ๋ณด ์ ๋ฌ์ด ๊ฐ์ฅ ์ค์ํ๋ค.
-
ํญ์ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ณด๋ค ๋จผ์ ๋์ํ๊ณ ์์ด์ผ ํ๋ค.
-
ํด๋ผ์ด์ธํธ ์ธก๋ฉด ๋์
- ํ๋ก์ธ์ค๊ฐ ์์ํ๋ฉด ํฌํธ ๋๋ฒ๋ฅผ OS์ ์์ฒญํ๋ค.
- ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค๊ฐ ๋ฉ์์ง๋ฅผ outgoing ํ์ source ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํด ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
- UDP ํค๋๋ฅผ ์ถ๊ฐํ ํ ํ์ ๋ฉ์์ง๋ฅผ ์ง์ฐ๊ณ , IP๋ก ์ ๋ฌํ๋ค.
- Outgoing ํ๊ฐ ์ค๋ฒํ๋ก์ฐ๋ ์ ์๋๋ฐ, ์ด๋ด ๊ฒฝ์ฐ OS๋ ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค์๊ฒ ๋ณด๋ด์ง ๋ง๊ณ ๋๊ธฐ์ํจ๋ค.
- ๋ฉ์์ง๊ฐ ํด๋ผ์ด์ธํธ์ ๋์ฐฉํ๋ฉด UDP๋ incoming ํ๋ฅผ ํ์ธํ๊ณ ๋ฉ์์ง๊ฐ ์๋ ๊ฒฝ์ฐ ๋ชฉ์ ์ง ํฌํธ ๋๋ฒ๋ฅผ ํ์ธํ๊ณ ํด๋น ํ๋ก์ธ์ค๋ก ์ ๋ฌํ๋ค.
- ์๋ฒ ์ธก๋ฉด ๋์
- ์์ํ๋ฉด ์๋ฒ๋ ํน์ ํฌํธ๋ฅผ ์ค์ ํด incoming, outcoming ํ๋ฅผ ์์ฒญํ๋ค.
- Incoming ํ์ ๋ฉ์์ง๊ฐ ๋์ฐฉํ๋ฉด UDP๋ ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ์ ๋ง๋ ํฌํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค.
- ์๋ฒ๊ฐ ์๋ตํ๊ธธ ์ํ ๋ ๋ฉ์์ง๋ฅผ ํฌํธ ๋ฒํธ์ ํจ๊ป outgoing ํ๋ก ๋ณด๋ธ๋ค.
- Applications of UDP
- FTP์ ๊ฐ์ด ํ์ผ ์ ์ก์ ์ ๋ขฐ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ฉด ์๋๋ค.
- TFTP์ ๊ฒฝ์ฐ(์์ ๋ฐ์ดํฐ) ๊ฐํน ์ฌ์ฉ๋๋ค.
- Multicasting์ด ์ค๋ฅ ๊ฒ์ถ, ๋ณต๊ตฌ๋ฅผ ํ๊ธฐ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ
- ๋ผ์ฐํฐ๊ฐ์ ์ ๋ณด๋ฅผ ํ์ ํ ๋ ์ฌ์ฉํ๋ค.
- SNMP์ ๊ฐ์ด ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค์ ์ฌ์ฉ๋๋ค.
Transmission Control Protocol (TCP)
-
TCP : Connection-Oriented Protocol
-
๋ ผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ์ ๋ง๋ค๊ณ , ํ๋ฆ, ์ค๋ฅ ์ ์ด ๋งค์ปค๋์ฆ์ ์ฌ์ฉํ๋ค.
-
Connection-Oriented Service : ์ฐ๊ฒฐ ์ค์ ํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์ ๋ฌ์ด ๋๋ ๋ฒํผ๊ฐ ๋น์ด์๋ค๋ฉด ๋ฒํผ๋ฅผ ํ๊ดดํ๋ค.
-
Reliable Service : ACK ๋งค์ปค๋์ฆ์ ์ฌ์ฉํด ๋ฐ์ดํฐ์ ๋์ฐฉ์ ํ์ธํ๊ณ ๋ณด์ฅํ๋ค. Selective Repeat ๋งค์ปค๋์ฆ๊ณผ ๋น์ท
-
Stream Delivery Service
- TCP๋ stream-oriented protocol์ด๋ค.
- ๋ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๋ ํ๋ธ๋ก ์ฐ๊ฒฐํ ๊ฒ๊ณผ ๊ฐ์ด ์ฐ๊ฒฐ๋ ๊ฒ์ ๋งํ๋ค.
- 2๊ณ์ธต์ ๋ฐ์ดํฐ ๋งํฌ๋ฅผ ์๊ฐํด๋ณด๋ฉด ๋ฉ์์ง๋ฅผ ํจํท์ผ๋ก ์ชผ๊ฐ 1๋ฒ, 2๋ฒ์ผ๋ก ๋ฒํธ๋ฅผ ํตํด ๊ตฌ๋ถํด ์ ์กํ๋๋ฐ, TCP๋ ๋ฐ์ดํธ๋ฅผ ์ธ์ด ์ ์กํ๋ค.
-
์ก์ , ์์ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ ์์ฑ๊ณผ ์๋น๊ฐ ๊ฐ์ ์๋๋ก ๋ฐ์ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ TCP๋ ์ ์ฅ์ ์ํ ๋ฒํผ๊ฐ ํ์ํ๋ค.
-
์ก์ , ์์ ๋ฒํผ๋ ์ํ ํ๋ฅผ ์ฌ์ฉํ๋ค.
-
๋ฐ์ดํธ ๋จ์(์ธ๊ทธ๋จผํธ ๊ทธ๋ฆผ์์ ๋ถํ์)๋ก ๋ณด๋ธ๋ค๋ ๊ฒ์ด ์ค์ํ๋ค.
-
์ธ๊ทธ๋จผํธ(Segments)
- ํธ๋์คํฌํธ ๊ณ์ธต์์ TCP๋ ํจํท์์ ๋ง์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์ด ๋ฌถ๋๋ฐ, ์ด๋ฅผ ์ธ๊ทธ๋จผํธ๋ผ๊ณ ํ๋ค.
- TCP๋ ๊ฐ ์ธํฌ๋จผํธ์ ํค๋๋ฅผ ์ถ๊ฐํ๊ณ 3๊ณ์ธต์ผ๋ก ์ ๋ฌํ์ฌ ์ ์กํ๋ค.
- ์ธ๊ทธ๋จผํธ๋ค์ IP datagram์์ ์บก์ํ๋๊ณ ์ ์ก๋๋ค.
- ์์๊ฐ ๋ค๋ฅด๊ฑฐ๋, ์์ค, ๋ณํ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ ์ฌ์ ์กํ๋ค.
-
Full-Duplex Service
-
TCP๋ full-duplex ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์์ ํ ์ ์๋ค.
-
Piggybacking : A์์ B๋ก ํจํท์ ๋ณด๋ผ ๋ ์์ ํ๋ค๋ ACK๋ฅผ ๋ถ์ฌ ์ ์กํ๋ ๊ฒ
Byte numbers
-
TCP๋ ์ธ๊ทธ๋จผํธ ๋ฒํธ๋ฅผ ์ฐ๋ ํ๋๊ฐ ์๋ค. ๋์ ์ sequence ๋ฒํธ, ack ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋ค.
-
๊ฐ ์ฐ๊ฒฐ์์ ์ ์ก๋๋ ๋ชจ๋ ๋ฐ์ดํฐ ๋ฐ์ดํธ๋ TCP์ ์ํด ๋ฒํธ ๋งค๊ฒจ์ง๋ค.
-
๋ฒํธ๋ ๋๋คํ๊ฒ(๋ณด์ ์ธก๋ฉด) ์์ฑ๋ ๋ฒํธ๋ฅผ ํตํด ๋งค๊ฒจ์ง๊ณ , ์ฒซ ๋ฐ์ดํธ์ ๋ฒํธ ๋ฒ์๋
์ด๋ค. -
๋ง์ฝ ๋ด๊ฐ 6000๋ฐ์ดํธ๋ฅผ ๋ณด๋ด๊ณ ์ถ๊ณ ๋๋คํ๊ฒ ์์ฑ๋ ์ฒซ ๋ฐ์ดํธ์ ๋ฒํธ๊ฐ 1057์ด๋ผ ํ๋ฉด ๋ฐ์ดํธ๋ 1057~7056์ผ๋ก ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋ค.
-
๋ฐ์ดํธ ๋ฒํธ๋ ํ๋ฆ, ์ค๋ฅ ์ ์ด๋ฅผ ์ํด ์ฌ์ฉ๋๋ค.
-
Sequence Number
- ๋ฐ์ดํธ์ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง ํ TCP๋ ์ ์ก๋ ๊ฐ ์ธ๊ทธ๋จผํธ์ seq ๋ฒํธ๋ฅผ ํ ๋นํ๋ค.
- ์ธ๊ทธ๋จผํธ ๋ฒํธ๋ ์ธ๊ทธ๋จผํธ์์ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ์ ๋ฒํธ์ด๋ค.
-
Acknowledgment Number
- ์ธ๊ทธ๋จผํธ์์ Ack field ๊ฐ์ ๋ฐ์ ์์ ์ธ ๋ฐ์ดํธ ๊ทธ๋ฃน์ ๋ค์ ๋ฐ์ดํธ์ ๋ฒํธ๋ก ์ ์๋๋ค.
- Ack ๋ฒํธ๋ ์ถ์ ๋๋ค.
-
TCP Segment format
- Control field
- SYN : ์ฐ๊ฒฐ ์ค์ ์์ฒญ์ ํ ๋ ์ฌ์ฉ๋๋ค.
- FIN : ์ฐ๊ฒฐ ํด์ ์์ฒญ์ ํ ๋ ์ฌ์ฉ๋๋ค.
- RST : ๋ณต๊ตฌ ๋ถ๊ฐํ ๊ฒฝ์ฐ ์ฐ๊ฒฐ์ ์ด๊ธฐํํ๋ค.
- ACK : ์ ์์ ํ๋์ง๋ฅผ ํ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
TCP is Connection-Oriented
- Source์ Destination ์ฌ์ด์ ๋ฌผ๋ฆฌ์ ์ธ ๊ธธ์ด ์๋ ๊ฐ์์ ๊ธธ์ ๋ง๋ ๋ค.
- ๊ฐ์์ ๊ธธ์ ํตํด ๋ฉ์์ง์ ์ํ๋ ๋ชจ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ค.
- ํ๋์ ๊ฐ์์ ๊ธธ์ ์ฌ์ฉํ๋ ๊ฒ์ ํตํด ์์๋๊ณ ์์ค๋ ํ๋ ์์ ์ฌ์ ์กํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ ACK ํ๋ก์ธ์ค๋ฅผ ์ฉ์ดํ๊ฒ ํ๋ค.
- TCP๋ ๊ฐ๋ณ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ IP์ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋, ์ฐ๊ฒฐ ์์ฒด๋ฅผ ์ ์ดํ๋ค.
Connection Establishment
- ์ฐ๊ฒฐ ๊ณผ์
- ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋ธ๋ค. ์ด๋, SYN flag๊ฐ 1์ด๋ค.
- ์๋ฒ๋ ์ฐ๊ฒฐ ์์ฒญ์ ๋ํ ACK๋ฅผ ์ ์กํ๋ค. TCP๋ ๋ฐ๋ง ์ด ์ ์๊ธฐ์ ์๋ฒ๋ SYN flag๋ฅผ 1๋ก ์ค์ ํด ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋ธ๋ค.
- ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ํ ACK๋ฅผ ์ ์กํ๋ค.
- Seq ๋ฒํธ, 8000๊ณผ 15000์ ๋๋ค ๋ฒํธ๋ก ์ค์ ๋์ด ์ ์ก๋๋ค.
- ๋์ ์ฐ๊ฒฐ
- ๋ ํ๋ก์ธ์ค๊ฐ ์ฐ๊ฒฐ ํ์ฑํ ์์ฒญ์ ๋ณด๋์ ๋ ๋์ ์ฐ๊ฒฐ์ด ๋ฐ์ํ๋ค.
- ๋ TCP๋ SYN+ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์๋ก์๊ฒ ์ ์กํ์ฌ ํ๋์ ์ฐ๊ฒฐ์ ์ค์ ํ๋ค.
- SYN Flooding Attack
- SYN Flooding Attack์ ์ ์์ ์ธ ๊ณต๊ฒฉ์๊ฐ ๋ค์ํ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ ์ก๋ ๊ฒ์ฒ๋ผ ๊ฐ์ง source IP ์ฃผ์๋ฅผ ์ค์ ํด SYN ์ธ๊ทธ๋จผํธ๋ฅผ ์๋ฒ์ ๋๋์ผ๋ก ์ ์กํ๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
- ์ด ๊ฒฝ์ฐ ๋ฒํผ์ ๋ง์ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค์ง์ ์ธ ๋ฉ์์ง๋ ์ฒ๋ฆฌํ์ง ๋ชปํ๊ณ ๋ถ๋ฅ ์ํ๊ฐ ๋๋ค.
Full-Duplex Data Transfer
-
Full-Duplex ๋ฐ์ดํฐ ์ ์ก
- ๋ฐ์ดํธ์ ์์ ๋ฒํธ๋ก seq ๋ฒํธ๊ฐ ์ค์ ๋์ด ์ ์ก๋๋ค. Ack ๋ฒํธ๋ ์ด์ ์ฐ๊ฒฐ ์ค์ ์ผ๋ก ์ค์ ๋ ๋ฒํธ๊ฐ ๊ทธ๋ฅ ๋ค์ด์จ ๊ฒ์ด๋ค.
- ๋ ์ธ๊ทธ๋จผํธ๊ฐ ๋ค์ด์๊ธฐ ๋๋ฌธ์ ์๋ฒ์์ ๋ณด๋ด๋ ์ธ๊ทธ๋จผํธ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ ์ก๋ ๋ง์ง๋ง ๋ฐ์ดํธ ๋ฒํธ์ +1ํ 10001์ Ack๋ก ์ค์ ํด ๋ณด๋ธ ๊ฒ์ ํ์ธํ ์ ์๋ค.
- ์๋ฒ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด ๋ฐ์ดํธ๊ฐ 15001-17000์ผ๋ก ์ ์กํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์์ Ack 17001๋ก ์ค์ ํด ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ค.
-
Pushing Data
- ์์ ๊ณ์ธต์์ ํ์ ๊ณ์ธต์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํด๋ฌ๋ผ๊ณ ์์ฒญํ ๋ ํ์ ๊ณ์ธต์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ง์ ๋ฐ๋ก ์ ์กํ๋ ๊ฒ์ด ์๋๋ผ ์๋์ฐ๊ฐ ๋ชจ๋ ์ฐฐ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์ ์กํ๋ค.
- ํ์ง๋ง Application ํ๋ก๊ทธ๋จ์ด push ๋์์ ์์ฒญํ๋ฉด TCP๋ ์๋์ฐ๊ฐ ์ฐฐ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ฐ๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ๋ง๋ค๊ณ ์ ์กํ๋ค.
-
Urgent Data
- ์ก์ ํ๋ Application ํ๋ก๊ทธ๋จ์ด URG ๋นํธ๋ฅผ ์ค์ ํ์ฌ ์ ์กํ๊ณ ์์ ํ๋ TCP๊ฐ URG ๋นํธ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์์ ๋ urgent ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด ์ ์ผ ๋จผ ์์ Application ํ๋ก๊ทธ๋จ์ผ๋ก ์ ๋ฌํ๋ค.
- ์ค์ ๋ก ์ฌ์ฉ๋๋ ์ฌ๋ก๋ ๋๋ฌผ๊ณ ์ด๋ ๊ฒ ๊ธํ ๊ฒฝ์ฐ UDP๋ฅผ ์ฌ์ฉํ์ฌ ์ ์กํ๋ ๋ฐฉ์์ด ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
Connection Termination
- ์ฐ๊ฒฐ ํด์
- FIN flag๋ฅผ ํตํด ์๋ก์ ์ฐ๊ฒฐ ํด์ ๋ฅผ ์์ฒญํ๋ค.
- ํ ์ชฝ๋ง ์ฐ๊ฒฐ์ ํด์ ํ ๊ฒฝ์ฐ
- ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ์ ํด์ ํ ๊ฒฝ์ฐ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๊ณ์ํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๊ณ , ํด๋ผ์ด์ธํธ๋ ์ฐ๊ฒฐ์ ํด์ ํ๋๋ผ๋ ACK๋ ๊ณ์ ์ ์กํ ์ ์๋ค.
Flow Control
- ํ๋ฆ ์ ์ด ์์
- 1๋ฒ, 2๋ฒ, 3๋ฒ - SYN, ACK๋ฅผ ์ ์กํจ์ผ๋ก์จ ์ฐ๊ฒฐ ์ค์ ์ ํ๋ค. ์ด๋, ์๋ฒ๋ Seq ๋ฒํธ๋ฅผ 100์ผ๋ก ๋ฐ์๊ธฐ ๋๋ฌธ์ 101๋ถํฐ ๋ฐ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ฒํผ ํฌ๊ธฐ(800)์ ์ค์ ํ์ฌ ๋ฐ์ ์ ์๋ ์ ๋๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค์ค๋ค.
- 4๋ฒ - 101์ Seq ๋ฒํธ๋ก ๋ฐ์ดํฐ๋ฅผ 200๋ฐ์ดํธ ์ ์กํ๋ค. ์๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ , ๋ฐ์ ์ ์๋ ๋ฒํผ๋ 600๋ฐ์ดํธ๋ก ์ค์ด๋ ๋ค. (๋ฒํผ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ ๊ฐ ์์ ๋ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๋ฐ์ ์ ์๋ ๋ฒํผ์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ์ง ์๋๋ค.)
- 5๋ฒ - Ack์ ๋ฐ์ ์ ์๋ ๋ฒํผ์ ํฌ๊ธฐ๋ฅผ ์ ์กํ๋ค. ํด๋ผ์ด์ธํธ๋ Ack๋ฅผ ๋ฐ์์ผ๋ฏ๋ก ์์ ํ ๋ฒํผ์ ๋ด์ฉ์ ์ง์ฐ๊ณ , ์ ์ก ์๋์ฐ ํฌ๊ธฐ๋ ์ ์งํ๋ค.
- 6๋ฒ - 300๋ฐ์ดํธ ๋ฐ์ดํฐ, Seq ๋ฒํธ๋ฅผ ์ ์กํ๋ค. ์๋ฒ๋ 100๋ฐ์ดํธ๋ฅผ ์ฒ๋ฆฌํ ์ํ์ด๊ณ 300๋ฐ์ดํธ๋ฅผ ๋ฒํผ์ ์ ์ฅํด ๋ฒํผ์์ ๋ฐ์ ์ ์๋ ํฌ๊ธฐ๋ 400๋ฐ์ดํธ๊ฐ ๋๋ค.
- ์ดํ ์ฒ๋ฆฌํ ๋งํผ ์๋ฒ์ ๋ฒํผ๊ฐ ์ฆ๊ฐํ๋ค.
Normal Operation and Error Control
- Ack delaying timer๋ฅผ ์ค์ ํด ํ์ด๋จธ๋์ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ , ์ดํ ๋ค์ด์จ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ชจ๋ ๊ณ ๋ คํด Ack๋ฅผ ์ ์กํ๋ค.
- ๋จ์
- ์๋ต์ด ๋ฐ๋ก๋ฐ๋ก ์ค์ง ์๊ธฐ ๋๋ฌธ์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผ ํ๋ ๊ฒฝ์ฐ ํต์ ํจ์จ์ด ๋จ์ด์ง๋ค.
- ๋นจ๋ฆฌ Ack๋ฅผ ๋ฐ์์ผ ํ๋ ๊ธด๊ธํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ์ ์๋ต์ ๋ฐ๋ก ๋ฐ์ ์ ์๋ค.
- ์ธ๊ทธ๋จผํธ๋ฅผ ์์ด๋ฒ๋ฆฐ ๊ฒฝ์ฐ ์์๊ฐ ๋ง์ง ์๊ณ , ์ด ๊ฒฝ์ฐ ์ค์ง ์์ 701 Seq ๋ฒํธ๋ฅผ Ack ๋ฒํธ๋ก ์ค์ ํด ์ ์กํ์ฌ ํด๋ผ์ด์ธํธ์์ ์ฌ์ ์กํ ์ ์๋๋ก ํ๋ค.
- ์ฌ์ ์ก๋ ํ์ด๋จธ๊ฐ ๋๋์ผ ์ด๋ฃจ์ด์ง๋ค.
- Fast retransmission
- TCP๊ฐ ๋ณด๋ด์ผ ํ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๊ณ ์ฌ์ฉ๋๋ ๋ชฉ์ ์ด ์กฐ๊ธ ๋ณํ๋๋ฉฐ ์ถ๊ฐ๋๋ค.
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด์ ๋ฐ์ง ๋ชปํ๋ค๋ ๋์ผํ Ack๋ฅผ ํ์ด๋จธ๊ฐ ์๋ํ๋ ๋์ 3๋ฒ ๋ฐ๋ ๊ฒฝ์ฐ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์กํ๊ณ ํ์ด๋จธ๋ฅผ ์ฌ์์ํ๋ค.
- ์ค๊ฐ์ Ack๊ฐ ์์ค๋๊ณ ํ์ด๋จธ๊ฐ ๋๋๊ธฐ ์ ์ Ack๋ฅผ ์ ์ก ๋ฐ์ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ ์ ์ฅ์์๋ ์ค๊ฐ์ ์์ค์ด ํฌ๊ฒ ์๊ด์๋ค. (Ack๋ 901๋ก ์ ์ก๋์๊ธฐ ๋๋ฌธ)
- ํ์ด๋จธ๊ฐ ๋๋ ๋๊น์ง Ack๊ฐ ์ค์ง ์์ผ๋ฉด ์ฌ์ ์ก์ ์งํํ๊ณ , ํด๋น Ack๋ฅผ ์ฌ์ ์ก๋ฐ์ ์ฒ๋ฆฌํ๋ค.
Unique TCP Control
Slow start, exponential increase
- ์๋ก๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฌผ๋ฆฌ์ ์ธ ์ค์ด ์ด๋์๋ ์์ ๊ฒ์ด์ง๋ง, ๋ฌผ๋ฆฌ์ ์ธ ์ค์ ์๋ก ๊ณต์ ํด์ ์ฌ์ฉํ๊ณ , ํธ๋์คํฌํธ ๊ณ์ธต์ ๋คํธ์ํฌ ๊ณ์ธต์ด ์ด๋ป๊ฒ ๋์๋๊ณ ์๋์ง๋ฅผ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๊ณผ๋ํ ๋ถํ๋ฅผ ์ฃผ์ง ์๊ธฐ ์ํด ๋ง๋ค์ด์ง ๋ฐฉ์์ด๋ค.
- ์ฐ๊ฒฐ ์ค์ ์ ํ๊ณ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์๊ฐ๋ถํฐ ์ ์ฉ๋๋ค.
- ์๋ฒ์ ์๋์ฐ ํฌ๊ธฐ๊ฐ ํฌ๋ค๋ฉด ํด๋ผ์ด์ธํธ๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ณด๋ผ ์ ์๋๋ฐ, ํ ๋ฒ์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๊ฒฝ์ฐ ์๋ฒ์ ๋ถํ๋ฅผ ์ค ์ ์๋ค.
- ๋๋ฌธ์ ์๋ฒ์ ์๋์ฐ ํฌ๊ธฐ์ ์๊ด์์ด ํด๋ผ์ด์ธํธ์ ์ ์ก ์ ๋๋ฅผ ์กฐ์ ํ๋ค. ์ฆ, ์ฒ์์๋ ํ๋์ ์ธ๊ทธ๋จผํธ๋ง ์ ์กํ ์ ์๋ค. Conjestion ์๋์ฐ๋ฅผ Receiver ์๋์ฐ๋ณด๋ค ๋์ ์ฐ์ ์์๋ก ์ค์ ํด ์๋์ํจ๋ค.
- Ack๊ฐ ์๋ฒ๋ก๋ถํฐ ์ฌ ๋๊น์ง ํด๋ผ์ด์ธํธ๋ ํ๋์ ์ธ๊ทธ๋จผํธ๋ง ์ ์กํ๋ค.
- Ack๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ Conjestion ์๋์ฐ x 2 ๋งํผ ๋ณด๋ผ ์ ์๋ค.
Conjestion avoidance, additive increase
- rwnd๊ฐ ํฌ๋๋ผ๋ cwnd์ ๋ฐ๋ผ ๋์ํ๋ค.
- ์ง์๋ก ์ฆ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ ์ ํ์ผ๋ก ์ฆ๊ฐํ๋ค.
- Taho TCP์ ์์
- Y์ถ์ด Conjestion window
- Slow start๋ก ์งํํ๋ค Time-out(์ค๋ฒํ๋ก์ฐ, ์ง์ฐ์ผ๋ก ์ธํด ์ ์ก๋์ง ์์ ๊ฒฝ์ฐ)๊ฐ ๋ฐ์
- ๋ค์ 1๋ก ๋จ์ด๋จ๋ฆฌ๊ณ Time-outํ cwnd์ ์ ๋ฐ์ Threshold level๋ก ์ค์ ํ๋ค.
- Slow start๋ฅผ ํ๊ณ Th์ ๋๋ฌํ ๊ฒฝ์ฐ Conjestion avoidance๋ฅผ ์ฌ์ฉํด ์ ํ์ผ๋ก ์ฆ๊ฐ์ํจ๋ค.
- 3dupACKs๊ฐ ๋ฐ์ํ๋ฉด ๋ค์ 1๋ก ๋จ์ด๋จ๋ฆฌ๊ณ Th๋ฅผ ์ฌ์ค์ ํ๋ค.
- Reno TCP
- ์ค๋ฅ๋ ๋๋ฌธ๋๋ฌธ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. 3dupACKs๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ด์ ์๋ ๊ณ์ํด์ ์๋ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด์ง ๋ฎ์ถฐ์ ์ ์กํ๊ณ Ack๊ฐ ์ค๋ฉด ssthresh๋ก ๋ฎ์ถฐ ๋ค์ ์ฌ๋ฆฐ๋ค.
์ฐธ๊ณ ๋ฌธํ
- Textbook: Behrouz A. Forouzan, โData Communications and Networking, 5th Editionโ, McGraw-Hill Companies, Inc.