- 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.