RDT(Reliable Data Transfer) ๋ณต์ต
์ง๋ ์๊ฐ์ ํ์ตํ RDT์ ์ฃผ์ ํน์ง๋ค:
- Cumulative ACK
- ํน์ ์ํ์ค ๋ฒํธ๊น์ง์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ ๋ฌ๋์์์ ํ์ธํ๋ ๋ฐฉ์
- Fast Retransmit
- ํ์ด๋จธ ๋ง๋ฃ ์ ์ ๋์ผํ ACK๊ฐ 3๊ฐ ์ฐ์์ผ๋ก ๋์ฐฉํ๋ฉด (์ด 4๊ฐ) ํด๋น ์ธ๊ทธ๋จผํธ๊ฐ ์ ์ค๋์๋ค๊ณ ํ๋จ
- ์ฆ์ ์ฌ์ ์ก์ ์ํ
- ๋์ ํ์์์ ์ค์
- ํต์ ์ํฉ์ ๋ฐ๋ผ ํ์ด๋จธ ๊ฐ์ ๋์ ์ผ๋ก ์กฐ์
- ํ๋ฆ ์ ์ด(Flow Control)
- ์์ ์์ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ๋ง์ถฐ ์ก์ ์๋๋ฅผ ์กฐ์ ํ๋ ๋ฉ์ปค๋์ฆ
์ฌ๊ธฐ์ ๋ณต์ต TCP๋ ์ด์์ฒด์ ์ปค๋์ ๊ตฌํ๋์ด ์์ผ๋ฉฐ, ์์ผ API๋ฅผ ํตํด ํ๋ก์ธ์ค๊ฐ TCP ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ค. ๋คํธ์ํฌ ๊ฐ ๊ณ์ธต์ ์์ ๊ณ์ธต์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
ํ๋ฆ ์ ์ด(Flow Control)
๊ธฐ๋ณธ ๋์ ์๋ฆฌ
TCP์์ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ก์ธ์ค๋ก ์ ๋ฌํ๋ ์์ ์ ์ ์ ์ผ๋ก ํ๋ก์ธ์ค์ ๊ฒฐ์ ์ ๋ฌ๋ ค ์๋ค. ํ๋ก์ธ์ค๊ฐ read() ์์คํ
์ฝ์ ํธ์ถํด์ผ๋ง TCP ์์ ๋ฒํผ์ ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต์ผ๋ก ์ ๋ฌ๋๋ค.
๋ง์ฝ ํ๋ก์ธ์ค๊ฐ read() ํธ์ถ์ ์์ฃผ ํ์ง ์์ผ๋ฉด:
- ์์ ๋ฒํผ์ ๋ฐ์ดํฐ๊ฐ ์ง์์ ์ผ๋ก ์ถ์
- ๋ฒํผ ํฌํ ์ ์ถ๊ฐ ์ธ๊ทธ๋จผํธ ์ ์ค ์ํ ๋ฐ์
์์ ์๋์ฐ(Receive Window)
์์ ์๋ ์์ ์ ์์ ๋ฒํผ ์ฌ์ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ์ก์ ์์๊ฒ ์ ๋ฌํ๋ค. ์ด๊ฒ์ด ์์ ์๋์ฐ์ด๋ฉฐ, TCP ํค๋์ Window ํ๋์ ํฌํจ๋๋ค.
์ก์ ์๋ ์์ ์๋์ฐ ํฌ๊ธฐ ์ด๋ด์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ฌ ์์ ์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐฉ์งํ๋ค.
ํต์ฌ: ์๋์ฐ ํฌ๊ธฐ๋ ์์ ์์ ์ํด ๊ฒฐ์ ๋๋ฉฐ, ์ด๋ ์ํ์ค ๋ฒํธ๊ฐ ์ก์ ์์ ์ํด ๊ฒฐ์ ๋๋ ๊ฒ๊ณผ ๋์กฐ์ ์ด๋ค.
๋ฐ๋๋ฝ ์ํฉ๊ณผ ํด๊ฒฐ์ฑ
TCP ์ธ๊ทธ๋จผํธ ์ ์ก ์กฐ๊ฑด
TCP ์ธ๊ทธ๋จผํธ๊ฐ ์ ์ก๋๋ ๊ฒฝ์ฐ:
- ํ๋ก์ธ์ค์
write()ํธ์ถ๋ก ์ธํ ๋ฐ์ดํฐ ์ ์ก - ์์ ํ ์ธ๊ทธ๋จผํธ์ ๋ํ ACK ์๋ต ์ ์ก
๋ฐ๋๋ฝ ์๋๋ฆฌ์ค
์ํฉ: ์์ ์์ ๋ฒํผ๊ฐ ํฌํ ์ํ โ ์ก์ ์๊ฐ ์ ์ก ์ค๋จ โ ์์ธก ๋ชจ๋ ์๋๋ฐฉ์ ์๋ต ๋๊ธฐ
๋ฌธ์ ์ :
- ์ก์ ์: ์์ ์๋์ฐ ๊ฐฑ์ ์ ์ํด ๋๊ธฐ
- ์์ ์: ์ ์กํ ๋ฐ์ดํฐ๊ฐ ์์ด ์๋ต ์ธ๊ทธ๋จผํธ ์์
์๋์ฐ ํ๋ก๋ธ(Window Probe)
ํด๊ฒฐ ๋ฐฉ๋ฒ:
- ์์ ์๋์ฐ๊ฐ 0์์ ํต์ง๋ฐ์ ์ก์ ์๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์์ ํฌ๊ธฐ์ ์๋์ฐ ํ๋ก๋ธ ์ธ๊ทธ๋จผํธ ์ ์ก
- ํฌ๊ธฐ: TCP ํค๋(20๋ฐ์ดํธ) + ๋ฐ์ดํฐ 1๋ฐ์ดํธ = 21๋ฐ์ดํธ
- ๋ชฉ์ : ์์ ์์ ์๋์ฐ ์ํ ํ์ธ
์ธ๊ทธ๋จผํธ ํฌ๊ธฐ ์ต์ ํ
์ธ๊ทธ๋จผํธ ํฌ๊ธฐ์ ๋๋ ๋ง
ํฐ ์ธ๊ทธ๋จผํธ์ ์ฅ์ :
- ์ ์ ์ธ๊ทธ๋จผํธ ์๋ก ํจ์จ์ ์ ์ก
- ๊ฐ ์ธ๊ทธ๋จผํธ๋น ์ค๋ฒํค๋ ์ต์ํ
ํฐ ์ธ๊ทธ๋จผํธ์ ๋จ์ :
- ์ ์ค ์ ์ฌ์ ์ก ๋น์ฉ ์ฆ๊ฐ
- ์์ ๋ฐ์ดํฐ ์ ์ก ์ ์ง์ฐ ๋ฐ์
๋ค์ด๊ธ ์๊ณ ๋ฆฌ์ฆ(Nagle Algorithm)
์ ์ก ์กฐ๊ฑด ์ค ํ๋๊ฐ ๋ง์กฑ๋ ๋๊น์ง ๋ฒํผ์ ๋ฐ์ดํฐ ์ถ์ :
- ์ต๋ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ(MSS) ๋งํผ ๋ฐ์ดํฐ ์ถ์
- ์ด์ ์ธ๊ทธ๋จผํธ์ ๋ํ ACK ์์
- ํ์ด๋จธ ๋ง๋ฃ
๋์ ์์: ๋ฐ์ดํฐ [0,1,2,3,4]๊ฐ ์์ ๋:
- ์ฒ์ 0๋ฒ ์ธ๊ทธ๋จผํธ ์ ์ก
- ACK ์์ ์: ์ถ์ ๋ ๋ฐ์ดํฐ(์:
[1,2]) ์ฆ์ ์ ์ก - ACK ๋ฏธ์์ ์: ํ์ด๋จธ ๋ง๋ฃ ํ 0๋ฒ ์ธ๊ทธ๋จผํธ ์ฌ์ ์ก
- MSS ๋๋ฌ ์: ACK์ ๋ฌด๊ดํ๊ฒ ์ ์ก
์ฐ๊ฒฐ ๊ด๋ฆฌ(Connection Management)
3-Way Handshake (์ฐ๊ฒฐ ์ค์ )
1๋จ๊ณ: ํด๋ผ์ด์ธํธ โ ์๋ฒ (SYN)
- SYN bit = 1
- ์ํ์ค ๋ฒํธ = x (์์๊ฐ)
2๋จ๊ณ: ์๋ฒ โ ํด๋ผ์ด์ธํธ (SYN-ACK)
- SYN bit = 1
- ์ํ์ค ๋ฒํธ = y (์์๊ฐ)
- ACK ๋ฒํธ = x + 1
3๋จ๊ณ: ํด๋ผ์ด์ธํธ โ ์๋ฒ (ACK)
- SYN bit = 0
- ACK ๋ฒํธ = y + 1
- ์ด ๋จ๊ณ๋ถํฐ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ
์ฐ๊ฒฐ ์ข ๋ฃ (Connection Termination)
1๋จ๊ณ: ํ๋ก์ธ์ค close() ํธ์ถ โ FIN ๋ฉ์์ง ์ ์ก
2๋จ๊ณ: ์๋๋ฐฉ์ FIN์ ๋ํ ACK ์๋ต + ์๋๋ฐฉ๋ FIN ์ ์ก
3๋จ๊ณ: ๋ง์ง๋ง ACK ์ ์ก
์ค์: FIN ๊ตํ์ด ์๋ฃ๋์ด๋ TCP ์ฐ๊ฒฐ์ด ์ฆ์ ์ข ๋ฃ๋์ง ์๋๋ค. ์ฐ๊ฒฐ ์ค์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ฐฉํฅ ํ์ธ ์ ์ฐจ๊ฐ ํ์ํ๋ค.
%%
Flow Control
์ ๋ฒ ์๊ฐ์๋ RDT(reliable data transfer)์ ๋ํด์ ํ์ตํ๋ค. ์ฃผ์ํ ํน์ง๋ค๋ก๋ cumulative ack๋ฅผ ์ฌ์ฉํด์ ํน์ ์งํ์ค ๋ฒํธ๊น์ง์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ ๋ฌํ๋ค๋์ . ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ fast retransmit ๋ฐฉ์์ ์ฌ์ฉํด ํ์ด๋จธ๊ฐ ๋๋๊ธฐ ์ ์ ๊ฐ์ ack๊ฐ 4๊ฐ ๋์ฐฉํ๋ค๋ฉด ํด๋น ์ธ๊ทธ๋จผํธ๋ ์ ์ค๋์๋ค๊ณ ํ๋จํ๊ณ ์ฆ์ ์ฌ์ ์ก ํ๋ค๋ ์ . ๊ทธ๋ฆฌ๊ณ ํ์์์ ๊ฐ์ ํ์ด๋จธ๋ฅผ ํต์ ์ด ์์๋๋ง๋ค ๋์ ์ผ๋ก ์ ํ๋ค๋ ์ .
๊ทธ๋ฆฌ๊ณ ๋ ๋ค๋ฅธ ์ฃผ์ํ ํน์ง์ผ๋ก๋ ํ๋ฆ ์ ์ดFlow control๊ฐ ์๋ค.
์ฌ๊ธฐ์ ๋ณต์ต TCP๋ ์ด์์ฒด์ ์ปค๋์ ๊ตฌํ๋์ด ์๊ณ , ์ด์์ฒด์ ์์ ์ ๊ณตํ๋ ์์ผ API๋ฅผ ํตํด ํ๋ก์ธ์ค๊ฐ ์์ผ์ ์์ฑํ๊ณ , ํฌํธ์ ํ ๋นํ๋ฉด TCP๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ์ ๊ฐ ๊ณ์ธต์ ์์ ๊ณ์ธต์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค.
TCP๊ฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ธ์ ๊ฐ์ ธ๊ฐ์ง๋ ํ๋ก์ธ์ค์ ์ฌ๋์ด๋ค. ํ๋ก์ธ์ค๊ฐ read()๋ฅผ ํด์ผ TCP์ธต์์ ์์ ๋ฒํผ ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ ค์ค ์ ์๋ค.
๋ง์ฝ์ read()๋ฅผ ์์ฃผ ํ์ง ์์ผ๋ฉด ๋ฒํผ์ ๊ณ์ํด์ ๋ฐ์ดํฐ๊ฐ ์์ด๊ฒ ๋๋ค. ๋ง์ฝ์ ๋ฒํผ๊ฐ ๊ฝ ์ฐผ๋๋ฐ ๊ณ์ํด์ ์ธ๊ทธ๋จผํธ๊ฐ ๋์ฐฉํ๋ค๋ฉด ์ด์ฐจํผ ์ ์ค๋ ๊ฒ์ด๋๊น, ์์ ์๋ ์์ ์ ์์ ๋ฒํผ์ ๋จ์ ๊ณต๊ฐ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด๋ธ๋ค. ์ด๋ฅผ ์์ ์๋์ฐ๋ผ๊ณ ํ๋ค. (์ด์ ์๊ฐ ํค๋์ Window๋ผ๊ณ ๋์ด์๋ ๋ถ๋ถ.
์ก์ ์๋ ํผ๋๋ฐฑ ํค๋์ ์๋ ์์ ์๋์ฐ ํฌ๊ธฐ๋งํผ๋ง ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค. ์ฆ ์๋์ฐ ์ฌ์ด์ฆ๋ ์์ ์์ ์ํด ์ ํด์ง๋ค.
์ก์ ์ ์ธก์ ์ํ์ค ๋ฒํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋์ฐ ์ฌ์ด์ฆ๋ ์์ ์ ์ธก์ ์ํด ๊ฒฐ์ ๋๋ ๊ฒ์ด๋ค.
๋ฐ๋๋ฝ ์ํฉ
TCP์์ ์ธ๊ทธ๋จผํธ๊ฐ ๋๊ฐ๋ ๊ฒฝ์ฐ๋ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- ํ๋ก์ธ์ค์์
write()๋ฅผ ํด์ ์ก์ ๋ฒํผ์์ ๋ณด๋ผ ์ธ๊ทธ๋จผํธ๊ฐ ์์ ๋. - ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ๋, ์์ ํ ์ธ๊ทธ๋จผํธ์ ๋ํ ํผ๋๋ฐฑ์ ๋ณด๋ผ ๋.
๋ง์ฝ์ ์์ ์ ์ธก์์ ์์ ๋ฒํผ๊ฐ ํฌํ์ํ๋ผ๊ณ ์๋ฆฐ๋ค๋ฉด, ์ก์ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ด์ง ์๊ณ ๊ธฐ๋ค๋ฆด๊ฒ์ด๋ค. ์ธ์ ๊น์ง? ๋ค์์ ๋์ฐฉํ๋ ์ธ๊ทธ๋จผํธ์์ ์ ๋ฐ์ดํธ๋ ์์ ์๋์ฐ ์ํฉ์ ํ์ธํ ๋ ๊น์ง. A์ B ์ฌ์ด์์ ์ด๋ฐ ์ํฉ์ด ๋ฐ์ํ๋ค๊ณ ํ๊ณ , B๋ A์ ๋ฒํผ๊ฐ ์ฌ์ ๊ฐ ์๊ธธ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค. ๊ทธ๋ฐ๋ฐ A๋ B์ธก์์ ์ ์ก๋๋ ์ธ๊ทธ๋จผํธ๊ฐ ์์ผ๋ ๋ณด๋ผ ์๋ต์ด ์๊ณ , ๊ทธ๋์ A ํ๋ก์ธ์ค๊ฐ B ํ๋ก์ธ์ค์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ๊ฑฐ๊ธฐ์ ๊ฐ์ด ๋ณด๋ด์ผํ๋๋ฐ ๋ง์ฝ A ํ๋ก์ธ์ค๊ฐ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์ ํ ์๋ค๋ฉด?
์๋์ฐ ํ๋ก๋ธ
์ด์ ๋ํ ํด๊ฒฐ์ฑ ์ ์์ธ๋ก ๊ฐ๋จํ๋ค. B๊ฐ ๋ง์ฝ์ A๋ก๋ถํฐ ์์ ์๋์ฐ๊ฐ 0์ด๋ผ๋ ์์์ ๋ฐ์ผ๋ฉด, ์ฃผ๊ธฐ์ ์ผ๋ก (TCP ํค๋๋ 40๋ฐ์ดํธ ์ ๋ ํฌ๊ธฐ์ธ๋ฐ, ์ฌ๊ธฐ์ ์ ์กํ ๋ฐ์ดํฐ์ ์ฒซ ๋ฐ์ดํธ๋ง ๋ด์) 41๋ฐ์ดํธ์ ์์ ์๋์ฐ ํ๋ก๋ธ Window Probe ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ๋ค.
์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋?
์๊ฐํด๋ณด๋ฉด ์ธ๊ทธ๋จผํธ์ ๊ฐ๋ฅํ ์ ์ผ ํฐ๊ฒ ์ข์๊ฒ์ด๋ค. ๊ทธ๋์ผ ์ต๋ํ ์ ์ ์์ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์๊ฒ์ด๊ณ tcp ํต์ ์์ ๊ฐ ์ธ๊ทธ๋จผํธ๋ง๋ค ์ ์ง ์์ ๋น์ฉ์ด ๋ ๋ค๋ ์ ์์ ์ต๋ํ ์ธ๊ทธ๋จผํธ์ ์๋ฅผ ์ค์ด๋๊ฒ ์ข์๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ธ๊ทธ๋จผํธ์ ํฌ๊ธฐ๋ฅผ ๋ง๊ตฌ ๋๋ฆฌ๋ฉด, ์ผ๋จ ํ๋ฒ ์ ์ค๋์๋ ๋ค์ ์ ์กํด์ผ๋๋ ๋ฐ์ดํฐ์ ์์ด ๊ฐ์ด ์ปค์ง๋ฉด์ ์ฌ์ ์ก ๋ถ๋ด์ด ์ฆ๊ฐํ๋ค๋ ๋จ์ ์ด ์๊ณ , ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ์ ํ๋ก์ธ์ค๊ฐ write()ํ๋ ๋ฐ์ดํฐ์ ์์ด ์ ์ผ๋ฉด ํ์ผ์์ด ๊ธฐ๋ค๋ ค์ผ ๋๋ค๋ ๋จ์ ์ด ์๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง Nagle ์๊ณ ๋ฆฌ์ฆ์ ์ด ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ ํด๊ฒฐํ๋ค.
๋ค์ด๊ธ ์๊ณ ๋ฆฌ์ฆ
๋ค์ด๊ธ ์๊ณ ๋ฆฌ์ฆ์์๋ ๋ค์ ์กฐ๊ฑด ์ค ํ๋๊ฐ ๋ง์กฑ๋ ๋ ๊น์ง ๋ฒํผ์ ๋ฐ์ดํฐ๋ค์ ๋ชจ์๋๋ค.
- ์ต๋ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ(MSS)๋งํผ ๋ฐ์ดํฐ๊ฐ ๋ชจ์์ ๋
- ์ด์ ์ ์ ์กํ ์ธ๊ทธ๋จผํธ์ ๋ํ ํผ๋๋ฐฑ์ด ๋์ฐฉํ์ ๋
- ํ์์์
[0,1,2,3,4]๊ฐ ์์ผ๋ฉด ์ฒ์์ 0์ ์ ์กํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์๊ฐ ์๋ค.
- ACK ๋์ฐฉ
- ACK๊ฐ ์ค์ง ์์ (์ ์ค)
1๋ฒ์ ๊ฒฝ์ฐ ACK๊ฐ ๋์ฐฉํ๋ ์ฌ์ด์ ๊ทธ๊ฒ์ด ์ผ๋ง๋ ์์ฌ์๋ ํ๋ก์ธ์ค๊ฐ ์ ๋ฌํ ๋ฐ์ดํฐ๋ค, ์๋ฅผ๋ค์ด [1,2]๊ฐ ์์ผ๋ฉด ์ด๊ฒ์ ์ ์กํ๋ค.
2๋ฒ์ ๊ฒฝ์ฐ๋ ๊ฒฐ๊ตญ 0 ๋ฒ ์ธ๊ทธ๋จผํธ์ ๋ํ ํ์์์์ด ๋ฐ์ํ๊ฒ ๋๊ณ ๋ค์ 0๋ฒ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ค.
๊ทธ๋ฐ๋ฐ ๊ณ์ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฐํด์ MMS๋งํผ ๋ฐ์ดํฐ๊ฐ ๋ฒํผ์ ์์ด๊ฒ ๋๋ฉด ๊ทธ๊ฑด 0๋ฒ ์ธ๊ทธ๋จผํธ์ ์๊ด ์์ด ์ ์กํ๋ค.
Connection Management
Three way handshake๋ฅผ ํตํด ์์ธก์ด ์ฐ๊ฒฐ๋์ด์์์ ํ์ธํ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ SYN ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค. ํค๋์ SYN bit๊ฐ 1๋ก ์ ๋ ฅ๋์ด์๊ณ , ์์์ Seq ๋ฒํธ x๋ฅผ ๊ฐ์ง๋ค.
- ์๋ฒ๊ฐ SYN ACK ์๋ต์ ์ ์กํ๋ค. (๋ง์ฐฌ๊ฐ์ง๋ก SYNbit๊ฐ ์ฒดํฌ๋์ด์์) ๋ง์ฐฌ๊ฐ์ง๋ก ํค๋์ SYNbit๊ฐ 1๋ก ์ฒดํฌ๋์ด ์๊ณ , ์์์ Seq๋ฒํธ y๋ฅผ ๊ฐ์ง๋ค. ๊ทธ๋ฆฌ๊ณ ACK๋ฒํธ๋ ํด๋ผ์ด์ธํธ ์ธก์ Seq ๋ฒํธ์ธ x๋ฅผ ์ฌ์ฉํด์ x+1์ด ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ์๋ฒ์ธก ์๋ต์ ๋ํ ์๋ต ACK๋ฅผ ์ ์กํ๋ค. SYNbit๋ ์ฒดํฌ๋์ด์์ง ์๊ณ ACK๋ฒํธ๋ ์๋ฒ์ธก์ Seq ๋ฒํธ y๋ฅผ ์ฌ์ฉํด y+1. ์ฌ๊ธฐ์๋ถํฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์ ์๋ค.
์ฐ๊ฒฐ ๋ซ๊ธฐ
- ํ๋ก์ธ์ค๊ฐ ์์ผ์
close()ํ๋ฉด TCP์์๋ FIN ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค - ์๋์ธก์์๋ FIN์ ๋ํ ์๋ต ACK๋ฅผ ์ ์ก. ๋์์ ์๋์ธก์์๋ ์ ์กํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด FIN ์ ์ก
- ์ฌ๊ธฐ์๋ ์ด์ ๋ํ ACK๋ฅผ ์ ์กํ๋ค.
๊ทธ๋ฐ๋ฐ ์๋ก FIN์ ์ ์กํ๋ค๊ณ TCP ์ฐ๊ฒฐ์ด ๋ฐ๋ก ๋๊ธฐ๋๊ฒ์ ์๋๋ค. ์๋ํ๋ฉด ์ฐ๊ฒฐ์ ๋ซ์๋๋ ์ฐ๊ฒฐ์ ์์ํ ๋ ์ฒ๋ผ ํ์ธ์ ํด์ผ๋๊ธฐ ๋๋ฌธ์ด๋ค. %%