๋ฐ์ํ
UDP
- L4 Transport ํ๋กํ ์ฝ
- ๋จ์ํ๊ณ ๋น ๋ฅด๋ค. ์ฐ๊ฒฐ์งํฅ X / ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ X / ์์๋ณด์ฅ X
- IP์์ Port์ ์ฒดํฌ์ฌ๋ง ์ถ๊ฐ๋ ๊ฐ๋
- ์ปค์คํฐ๋ง์ด์ง์ด ์ฉ์ดํจ
TCP
- L4 Transport ํ๋กํ ์ฝ
- ๋ฐ์ดํฐ ๋จ์ : ์ธ๊ทธ๋จผํธ
- ๋
ผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ์์ ๊ธฐ์ตํ์.
- LAN ์ผ์ด๋ธ์ ๋ถ๋ฆฌํ๋ค๊ฐ ๋ค์ ์ฐ๊ฒฐํด๋ TCP ์ฐ๊ฒฐ์ ์ผ์ ์๊ฐ๋์ ์ฐ๊ฒฐ๋์ด ์๋ค. ๋ฌด์ ์ฐ๊ฒฐ์ ์๊ฐํ๋ฉด ๋ ์ฝ๋ค
- ์ปค๋ ์์ผ์ ๋ ๊ฐ์ ๋ฒํผ๋ฅผ ๊ฐ์ง๊ณ ์๋ค
- ์ก์ ์ฉ์ผ๋ก ์ค๋นํ send socket buffer
- ์์ ์ฉ์ผ๋ก ์ค๋นํ receive socket buffer
- ์์ผ๊ณผ ์ฐ๊ฒฐ๋ TCP Control Block(TCB) ๊ตฌ์กฐ์ฒด๊ฐ ์๋ค.
- TCB์ ์๋ ๋ฐ์ดํฐ๋ connection state(LISTEN, ESTABLISHED, TIME_WAIT ๋ฑ), receive window, congestion window, sequence ๋ฒํธ, ์ฌ์ ์ก ํ์ด๋จธ ๋ฑ์ด๋ค.
- ๋งค Packet์ ์์ ํ ๋ ๋ง๋ค ACK๋ฅผ ๋ณด๋ด๋๊ฑด ๋นํจ์จ์ ์ด๊ธฐ๋ ํด์ ์ผ์ ์ฃผ๊ธฐ๋ง๋ค ACK๊ฐ ์ ์ก ๋๋ค.
- ์์ ์๋ก๋ถํฐ ACK๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ์ก์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์กํ๋ค.
- ๋ฐ๋ผ์ ์ก์ ์๋ ์์ ์๋ก๋ถํฐ ACK๋ฅผ ๋ฐ์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ค : buffer unacknowledged data
- ์ก์ ์๋ ์์ ์๊ฐ ๋ฐ์ ์ ์๋ ๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
- ์์ ์๊ฐ ์์ ์ด ๋ฐ์ ์ ์๋ ๋ฐ์ดํธ ์(receive window : ์ฌ์ฉํ์ง ์์ ๋ฒํผ ํฌ๊ธฐ)๋ฅผ ์ก์ ์์๊ฒ ์ ๋ฌํ๋ค.
- ๋ง์ฝ ์ฌ์ฉํ์ง ์์ ๋ฒํผํฌ๊ธฐ๊ฐ 0์ด๋ผ๋ฉด ์ก์ ์ธก ๋ฐ์ดํฐ ์ ์ก์ ์ค์ง๋๊ณ , receive window์ ์ํ๋ฅผ ์ ๊ฒํ๊ธฐ ์ํด ์ก์ ์ธก์์ ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ํจํท์ ๋ณด๋ธ๋ค.
- ๋คํธ์ํฌ ์ ์ฒด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด congestion window๋ฅผ ์ฌ์ฉํ๋ค.
- RTT : round trip time
- RTO : retransmission timeout ์ฌ์ ์ก ํ์ด๋จธ ์๊ฐ
- RTT๊ฐ์ RTO ๊ฐ์ ๊ฒฐ์ ํ๋๋ฐ ์์ฃผ ์ค์ํ ์์์ด๋ค.
์ฐ๊ฒฐ์ค์
- SYN (์ธ๊ทธ๋จผํธ ๋ฒํธ ๋๋ค์ผ๋ก ์ธํ )
- SYN + ACK (์ธ๊ทธ๋จผํธ ๋ฒํธ ๋๋ค์ผ๋ก ์ธํ ํ ๊ฐ / ์๊น ๋ฐ์ ์ธ๊ทธ๋จผํธ ๋ฒํธ +1)
- ACK (์๊น ๋ฐ์ ์ธ๊ทธ๋จผํธ ๋ฒํธ +1)
์ฐ๊ฒฐ์ข ๋ฃ
- FIN
- ACK
- FIN
- ACK
- ์์ ๊ทธ๋ฆผ์์ Server๋ ๋ง์ง๋ง ACK๋ฅผ ๋ฐ๊ณ ์์ผ ์ข ๋ฃ
- Client๋ time_wait ์๊ฐ๋งํผ ์ง๋๊ณ ๋์ ์์ผ ์ข
๋ฃ
- Server๊ฐ ACK๋ฅผ ๋ชป๋ฐ์ผ๋ฉด ๋ค์ FIN์ ๋ณด๋ด๊ฒ ๋๋๋ฐ, ํน์ ๊ทธ๋ฐ ์ํฉ์ผ๊น๋ด ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ
โ TCP ์๋
- TCP ์๋๋ฅผ ๋์ด๊ธฐ ์ํด์๋ Window Size(์์ ์์ ACK ์์ด๋ ์ก์ ์๊ฐ ํ๋ฒ์ ๋ณด๋ผ ์ ์๋ ๋ฐ์ดํฐ)๋ฅผ ํค์์ผ ํ๋ค.
- Tx Socket Buffer๊ฐ ๊ฝ ์ฐจ ์์ผ๋ฉด ์ ์ ์ดํ๋ฆฌ์ผ์ด์ ์ TCP ๊ณ์ธต์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ค ๋ณด๋ผ ์ ์๋ค.
- NIC ๋ฒํผ๊ฐ ๊ฝ ์ฐจ ์์ผ๋ฉด Tx Socket Buffer๋ NIC ๋ฒํผ๋ก ๋ณด๋ผ ์ ์๋ค.
- Rx Socket Buffer๊ฐ ๊ฝ ์ฐจ ์์ผ๋ฉด NIC ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ Rx Socket ๋ฒํผ๋ก ๋ณด๋ผ ์ ์๋ค.
- Rx Socket Buffer๋ ์ฝ์ด๊ฐ๋ ์๋๋ณด๋ค ๋ค์ด์ค๋ ์๋๊ฐ ๋น ๋ฅด๋ฉด ๊ฝ ์ฑ์์ง ์ ์๋ค.
- Rx Socket Buffer๊ฐ ๊ฝ ์ฐผ๋ค๋ฉด ๋์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ค์ผ ์ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ค ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค. -> Flow Control
- Rx Socket Buffer์ ๋น ๊ณต๊ฐ ํฌ๊ธฐ๋ฅผ ์ก์ ์์๊ฒ ์๋ ค์ฃผ๊ณ , ์ก์ ์๋ ๊ทธ ํฌ๊ธฐ๊ฐ ๋์น์ง ์์๋งํผ๋ง ๊ณ์ฐํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
- ๊ฝ ์ฐจ๊ฒ ๋๋ค๋ฉด Zero Window๋ก ๋ณด๋ธ๋ค.
- Zero Window๋ฅผ ๋ฐ์ ์ก์ ์๋ ์์ ์๋ก๋ถํฐ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์ข๋ค๋ ๋ค๋ฅธ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์ผ๋ฉด ๋ฐ์ดํฐ ์ ์ก์ ๋ค์ ํ ์ ์๋ค.
- Window Based Flow Control
- Rx Socket Buffer๊ฐ ๊ฝ ์ฐผ๋ค๋ฉด ๋์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ค์ผ ์ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ค ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค. -> Flow Control
- Tx Window (Send Window)
- ACK ์์ด๋ ํ๋ฒ์ ๋ณด๋ผ ์ ์๋ ์ต๋ ๋ฐ์ดํฐ๋
- TCP ์ก์ ์ ์ธก์ TCP ๊ณ์ธต์์ ์ํํธ์จ์ด๊ฐ ๊ด๋ฆฌํ๋ ๋ณ์๊ฐ
- ๋๋ถ๋ถ ์์ ์๊ฐ ์๋ ค์ฃผ๋ Receive Window ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
- ๋ฐ๋ผ์ Send Window <= Receive Window์ด๋ค.
- ํจํท์ด ์ ์ค๋๋ ์ํฉ์ด๋ผ๋ฉด Send Window๋ Congestion Window์ ๊ฐ์ ๊ฐ์ด ๋๋ค.
- ํจํท ์ ์ค์ด ๋ฐ์ํ๋ฉด ์ฌ์ ์ก์ ํด์ค์ผ ํ๋ค. ๋ฐ๋ผ์ ์ฌ์ ์ก์ ์ํด์๋ ACK๋ฅผ ๋ฐ๊ธฐ์ ๊น์ง Retransmission Queue์์ ์ญ์ ํ ์ ์๋ค.
- ์ฆ Retransmission Queue๋ณด๋ค ๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ค.
- ๋ฐ๋ผ์ Send Window <= Retransmission Queue์ด๋ค.
- ์๋๊ฐ ์๋์ค๋ ์ด์
- Receive Window๊ฐ ์์์
- Retransmission Queue๊ฐ ์์์
- ํจํท ์ ์ค์ด ๋ฐ์ํด์ Congestion Window๊ฐ ์์ ๊ฐ์ด ๋์ด์
Window Scaling
- 2Bytes๋ก ๊ณ ์ ๋ TCP ํค๋์ Window Size ์ ์ฝ์ ๊ทน๋ณตํ๊ธฐ ์ํ ์ต์
- ์ต๋ ๊ฐ : 64KBytes
- ์ปค๋ฅ์
์ด ๋งบ์ด์ง ๋ SYN, SYN/ACK ๋จ๊ณ์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ TCP ์ต์
์ ์ฃผ๊ณ ๋ฐ๋๋ค
- ์๋์ฐ ์ค์ผ์ผ ์ต์ ์ SYN ํจํท์๋ง ์๋ค.
- TCP Option Window Scale์ ์ซ์๋ฅผ 2์ ๋ฉฑ์นํ ๊ฐ๊ณผ Window Size๋ฅผ ๊ณฑํ ๊ฐ์ด TCP ์์ ์๊ฐ ์ ๋ฌํ๋ ์ค์ Window Size์ด๋ค.
Sliding Window
- TCP ์ก์ ์๋ ์ก์ ์ ์์ํ๊ฒ ๋๋ฉด Send Window๋ฅผ ์ด๊ณผํ๊ธฐ ์ ๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
- ์ก์ ์๊ฐ ์์ ์๋ก๋ถํฐ ์๋ก์ด Window Size๋ฅผ ์๋ ค์ฃผ๋ ACK ๋ฉ์ธ์ง๋ฅผ ๋ฐ๋ ์์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ด๊ธฐ Window Size๊ฐ 10000์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์
- Window Size๋งํผ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ์
- 7500bytes๋ฅผ ๋ณด๋ธ ์์ / ACK 1501, Window Size 10000 ๋ฐ์
- 6000bytes๋ ๋ฐ์ง ๋ชปํ๋ค๊ณ ๋์ด. 1500 + 6000 ์ผ๋ก ์๊ฐํ๊ณ 10000 -6000 = 4000bytes๋ฅผ ์ถ๊ฐ๋ก ๋ณด๋ผ ์ ์๋ค.
- Window SIze๋งํผ ์ ์กํ ์์
- 10000bytes๋ฅผ ๋ณด๋ธ ์์ / ACK 1501, Window Size 10000 ๋ฐ์
- 1500 + 8500 ์ด๋ผ๊ณ ์๊ฐํ๊ณ , 10000 - 8500 = 1500bytes๋ฅผ ์ถ๊ฐ๋ก ๋ณด๋ผ ์ ์๋ค.
- Window Size๋งํผ ๋ชจ๋ ์ ์กํ ์ดํ
- 10000bytes๋ฅผ ๋ณด๋ด๊ณ ๋ช์ดํ์ / ACK 1501, Window Size 10000 ๋ฐ์
- 1500 + 8500 ์ด๋ผ๊ณ ์๊ฐํ๊ณ , 10000 - 8500 = 1500bytes๋ฅผ ์ถ๊ฐ๋ก ๋ณด๋ผ ์ ์๋ค.
- Window Size๋งํผ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ์
- ์ด๊ธฐ Window Size๊ฐ 10000์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์
- ์ฆ, ์์ ์์ Rx Socket Buffer Overflow๊ฐ ๋์ง ์๋๋ก ์ก์ ์์ ์ ์ก๋์ Controlํ๋ ๋ฉ์ปค๋์ฆ
Congestion Control
- ๋คํธ์ํฌ์์ Congestion์ด ๋ฐ์ํ ๊ฒ์ ๊ฐ์งํด์ Congestion์ ๊ฒฝ๊ฐ์ํค๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ
- Congestion : ๋คํธ์ํฌ ์ฅ๋น ํธ๋ํฝ ์์ ์ ์ฅ ๊ณต๊ฐ์ด ๊ฝ ์ฐจ์ ๋์น๋ ๊ฒ
- ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์๋๊ฐ ํธ๋ํฝ์ด ๋ค์ด์ค๋ ์๋๋ฅผ ๊ฐ๋นํ์ง ๋ชปํด์ ๋์น๋ ์ํฉ
- TCP๋ Congestion๊ณผ ๋ฌผ๋ฆฌ์ ์๋ฌ๋ก ๋ฐ์ดํฐ๊ฐ ๋๋์ด ๋ฐ์ํ ์ํฉ์ ๊ตฌ๋ถํ์ง ๋ชปํ๋ค.
- TCP Retransmission Timeout์ด ๋ฐ์ํ๋ฉด TCP๋ ๋คํธ์ํฌ์์ congestion์ด ๋ฐ์ํ๋ค๊ณ ์ธ์งํ๋ค.
- TCP๋ ๋งค ํจํท ์ ์ก์๋ง๋ค Retransmission Timer๋ฅผ ๊ตฌ๋์ํจ๋ค. ๊ทธ๋๊น์ง ACK๊ฐ ์์ ๋์ง ์์ผ๋ฉด TCP๋ Congestion์ด ๋ฐ์ํด ํจํท์ด ๋๋๋ ์ํฉ์ผ๋ก ํ๋จํ๋ค.
- ๋์ผํ ACK ํจํท์ด ์ฐ์ํด์ 3๋ฒ ์์ ๋ ๊ฒฝ์ฐ
- TCP ์์ ์๋ ํจํท ํ๋๊ฐ ๋๋ฝ๋๊ณ ๋ค๋ฅธ ํจํท์ด ์์ ๋๋ฉด ๋๋๋ ํจํท์ ์ฌ์ ์กํด๋ฌ๋ผ๋ ์๋ฏธ๋ก ๋๋๋ ํจํท์ ๋ํ ACK๋ฅผ ๋ค๋ฅธ ํจํท ์์ ์ ๋ํ ACK๋ก ๋ณด๋ธ๋ค
- 1,2,4,5,6์ด ๋ค์ด์ค๋ ๊ฒฝ์ฐ 3์ด ์ค์ง ์์์์ผ๋ก 4->3 / 5->3 / 6->3์ผ๋ก ๋ณด๋ธ๋ค
- TCP ์์ ์๋ ํจํท ํ๋๊ฐ ๋๋ฝ๋๊ณ ๋ค๋ฅธ ํจํท์ด ์์ ๋๋ฉด ๋๋๋ ํจํท์ ์ฌ์ ์กํด๋ฌ๋ผ๋ ์๋ฏธ๋ก ๋๋๋ ํจํท์ ๋ํ ACK๋ฅผ ๋ค๋ฅธ ํจํท ์์ ์ ๋ํ ACK๋ก ๋ณด๋ธ๋ค
- TCP Retransmission Timeout์ด ๋ฐ์ํ๋ฉด TCP๋ ๋คํธ์ํฌ์์ congestion์ด ๋ฐ์ํ๋ค๊ณ ์ธ์งํ๋ค.
- != Flow Control(Sliding Window)๊ณผ ๋ค๋ฅด๋ค
- Rx Socket Buffer๊ฐ ๊ฝ ์ฐจ์ ๋์น๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ
- Congestion ์ํฉ์ด๋ผ๊ณ ์ธ์ง๋๋ฉด Congesion Window๋ฅผ Congestion์ด ๋ฐ์ํ๊ธฐ ๋ฐ๋ก ์ด์ ์ Window Size ์ ๋ฐ์ผ๋ก ์ค์ธ๋ค.
์ปดํจํฐ ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋ํ๋ ๊ณผ์
Disk์ ์๋ ๋ฐ์ดํฐ๋ฅผ FTP๋ฅผ ์ด์ฉํด ๋ด๋ ค ๋ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํด๋ณด์
- User Space์์ ๋์ํ๋ FTP ์ดํ๋ฆฌ์ผ์ด์ ์ ๋์คํฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ์ ์กํ๊ธฐ ์ํด read() ์์คํ ์ฝ์ ์ฌ์ฉํ๋ค.
- ์ปค๋์์ Disk์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ๋ก ์ฝ์ด ๋ค์ธ๋ค
- ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฝ์ด ๋ค์ธ ๋ฐ์ดํฐ๊ฐ User Space์ ๋ฒํผ ๋ฉ๋ชจ๋ฆฌ๋ก ์นดํผ๋๋ค.
- FTP ์ดํ๋ฆฌ์ผ์ด์
์ด ๋์คํฌ์์ ์ฝ์ด์จ ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ๋ก ์ ์กํ๋ ค๊ณ ํ๋ฉด, ํด๋น ๋ฐ์ดํฐ๋ฅผ Tx Socket Buffer๋ก ์นดํผํ๋ค.
- Tx Socket Buffer์์ ์ ์ก๋ ์ธ๊ทธ๋จผํธ๋ ACK๊ฐ ๋์์ฌ๋๊น์ง retransmission queue์์ ๋๊ธฐํ๋ค.
- ACK๊ฐ ์ค๋ฉด ์ญ์ ๋๋ค.
- ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ๊ฐ TCP์ MSS๋ณด๋ค ์์ผ๋ฉด IP ๋ ์ด์ด๋ฅผ ํธ์ถํ๊ณ , ๋ ํฌ๋ค๋ฉด MSS๋ก ์๋ฅด๊ณ ๊ฐ ์ธ๊ทธ๋จผํธ์ header๋ฅผ ์ถ๊ฐํด ์์๋๋ก IP ๋ ์ด์ด ํจ์๋ฅผ ํธ์ถํ๋ค,
- MSS : TCP ํค๋๋ฅผ ์ ์ธํ ๋ฐ์ดํฐ ์ต๋ ํฌ๊ธฐ
- TCP ์ปค๋ฅ์ ์ด ๋งบ์ด์ง๋ 3way handshake ๋จ๊ณ์์ SYN, SYN/ACK ํจํท ์ต์ ์ผ๋ก TCP ์ก์ ์์ ์์ ์๊ฐ ์๋ก ์ฃผ๊ณ ๋ฐ๋๋ค.
- ์ด๋ ๊ฒ ์ฃผ๊ณ ๋ฐ์ MSS์์ ๋ ์์ ๊ฐ์ ์ก์ ์์ ์์ ์์์ ๋ชจ๋ MSS ๊ฐ์ผ๋ก ์ฌ์ฉ๋๋ค.
- TCP๊ฐ ์ต์ ์ผ๋ก ์ฃผ๊ณ ๋ฐ๋ MSS๋ IP ๋จํธํ๊ฐ ๋ฐ์ํ์ง ์๋ ํฌ๊ธฐ๋ฅผ ์๋ก ๊ตํํ๊ธฐ ๋๋ฌธ์, ์ผ๋ฐ์ ์ผ๋ก TCP์ ๊ฒฝ์ฐ IP ๋จํธํ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
- MSS : TCP ํค๋๋ฅผ ์ ์ธํ ๋ฐ์ดํฐ ์ต๋ ํฌ๊ธฐ
- ์ปค๋ ์คํ์์ IP ๋ ์ด์ด, MAC ๋ ์ด์ด๋ฅผ ๊ฑฐ์น ๋ฐ์ดํฐ๋ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์์ NIC ๋ฒํผ๋ก ์นดํผ๋๋ค.
- NIC๋ก ์ ์ก๋ ๋ฐ์ดํฐ๋ ๋คํธ์ํฌ๋ฅผ ํต๊ณผํด์ ์์ ์ธก NIC์ผ๋ก ์ ๋ฌ๋๋ค.
- NIC ๋ฒํผ์ ์์ ๋ ๋ฐ์ดํฐ๋ Rx Socket Buffer๋ก ์นดํผ๋๋ค.
- FTP ์ดํ๋ฆฌ์ผ์ด์ ์์ read() ํจ์๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๊ฐ ์์ ๋๋ฉด ์ฝ์ด๋ค์ธ๋ค. ์ด๋ Blocking ๋ชจ๋๋ก ๋ฐ์ดํฐ๊ฐ ๋ฒํผ์ ๋ค์ด์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค.
- ์ปค๋์ TCP ๋ ์ด์ด์์๋ Rx Socket Buffer์ ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ๋ฉด, ์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์นดํผํ๊ณ FTP ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๊ฐ๋๋ก ํ๋ค.
- FTP ์ดํ๋ฆฌ์ผ์ด์ ์์๋ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ ๋์คํฌ์ ์ ์ฅํ๋ค.
ํํธ๋นํธ
- ๋ค๋ฅธ ์์คํ ์๊ฒ ์ด์์์์ ์๋ฆฌ๋ ์ ํธ
- ์ฃผ๊ธฐ์ ์ผ๋ก ์ ์ก, ์์ ์ธก์์ ํํธ๋นํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ์ก์ ์ธก ์์คํ ์ด ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ์ธ์ง ๊ฐ๋ฅ
์ฝ์ด๋ด์ผ ํ ์ฑ
- TCP/IP Illustrated
- ๋คํธ์ํฌ ํธ๋ฌ๋ธ์ํ ๊ฐ์ด๋(์ ์ ์ฅํ)
๐ Reference
๋ฐ์ํ