- Transport Layer services
- Multiplexing, Demultiplexing
- Principles of RDT
- Pipelined Protocols
- Connection-oriented transport: TCP
-
- Source๋ถํฐ Destination๊น์ง ํจํท์ด ์ ๋๋ก ์ ์ก๋ ์ ์๋๋ก ํ๋ค.
-
- Application Layer์์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ ํ ํฌ๊ธฐ๋ก ์๋ฅธ๋ค.
์ธ๋ถ์ ์ผ๋ก ๋ค์ด๊ฐ๋ฉด Transport Layer์๋ ์ฌ๋ฌ๊ฐ์ง ํ๋กํ ์ฝ๋ค์ด ์กด์ฌํ์ง๋ง, ๋ํ์ ์ผ๋ก ๋๊ฐ์ง ํ๋กํ ์ฝ์ด ์๋ค.
- reliable transport
- ์ ์ก ํ๋ก์ธ์ค์ ์์ ํ๋ก์ธ์ค ๊ฐ์ ์์ ์ ์ธ ์ ์ก์ด ๊ฐ๋ฅํ๋ค.
- in-order delivery
- ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ์กํ๋ค.
- connection-oriented (์ฐ๊ฒฐ ์งํฅ), connection setup : ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ์๋๋ฐฉ์ ์ํ๋ฅผ ํ์ธํ๊ณ , ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ค์ (setup)์ ์๊ตฌํ๋ค.
- ์ฌ๊ธฐ์ ๋งํ๋ ์ค์ (setup)์ด๋?
- ์ก์ ์/์์ ์์ buffer ํ ๋น
- buffer & window size ์ค์ ๋ฑ
- ์ฌ๊ธฐ์ ๋งํ๋ ์ค์ (setup)์ด๋?
- flow control
- ๋ผ์ฐํฐ์ ๋ฐ๋ ์์ ์์ ์ํฉ์ ๋ด์, ์ก์ ์ ์ธก ๋ฒํผ๊ฐ ๋์น์น ์๋๋ก ๋ณด๋ด๋ ํจํท ์์ ์กฐ์ ํ๋ค.
- congestion control
- ๊ฐ TCP ์ฐ๊ฒฐ์ด ๋คํธ์ํฌ ๋์ญํญ์ ๊ณตํํ๊ฒ ๊ณต์ ํ ์ ์๊ฒ๋ ์ ์ดํ๋ค.
- Delay๋ Bandwidth๋ฅผ ๊ฑด๋๋ฆฌ์ง๋ ๋ชปํ๋ค.
- timing, minimum throughput guarantee, security ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์๋๋ค.
- unreliable data transfer
- ํจํท์ ์ด๋ค ์์ ์์ ์ด๋ค ์๋น์ค๊ฐ ๋ฐ์์ผ ํ๋์ง(IP ์ฃผ์, Port ๋ฒํธ), ํจํท์ด ์ค๊ฐ์ ๋ง๊ฐ์ง์ง๋ ์์๋์ง๋ง ์ฒ๋ฆฌํ๋ค.
- UDP๋ TCP์์ ์ ๊ณตํ๋ ๊ฒ์ ํ๋๋ ์ ๊ณตํ์ง ์๋๋ค.
- reliability, connection setup, flow control, congestion control, timing, minimum throughput guarantee, security ๋ฑ์ ์ ๊ณตํ์ง ์๋๋ค.
- ์ ๋ง ์๋ฌด๊ฒ๋ ์ ํ๋ ๊ฒ ๊ฐ์๋ฐ ํ์ํ ์ด์ ๊ฐ ๋ฌด์์ผ๊น?
- UDP๋ ํฌํธ ๋ฒํธ์ ๋ฐ๋ผ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค.
- UDP๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง๋ ์์ง๋ง, TCP์ ๋นํ์ฌ ๋น ๋ฅธ ์ ์ก ์๋๋ฅผ ์ ๊ณตํ๋ค.
- UDP๋ ๋น์ฐ๊ฒฐ์ ์งํฅํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์กํ ํ์๋ ์๊ณ , ํ๋ฆ ์ ์ด๋ ์๋ฌ ์ฒดํฌ๋ ํญ์ ํ์๋ก ํ์ง ์๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋ค์ด Transport Layer์ ํ๋กํ ์ฝ์ ์ด์ฉํ๊ธฐ ์ํด์๋ ํ๋ก์ธ์ค๋ง๋ค Socket์ ์ด์ฉํด์ผ ํ๋ค.
ํ์ง๋ง, ์ปดํจํฐ์๋ ์ฌ๋ฌ ๊ฐ์ ์ฑ๋ค์ด ๋์๊ฐ๊ณ , ๊ฐ๊ฐ์ ์ฑ๋ค์ ํ๋ ์ด์์ Socket์ ์์ฑํ ์ ์๋ค. ๋ฐ๋ผ์ Transport layer ์ ์ฅ์์๋ ์ฌ๋ฌ๊ฐ์ Socket์์ ๋ฐ์ดํฐ๋ค์ด ์์์ง๋ ํํ๊ฐ ๋๋ค.
์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ Socket๋ค์ด ๋ฐ์ดํฐ๋ฅผ ์ก/์์ ํ๋ฏ๋ก ํ์ํ ๊ฐ๋ ์ด ๋ฐ๋ก Multiplexing๊ณผ Demultiplexing์ด๋ค.
์ฌ๋ฌ ์์ผ์์ ๋์จ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋๋ Multiplexing์, ๋ฐ์ ํจํท์ ์ ์ ํ ์์ผ์ผ๋ก ๋ณด๋ด์ค๋๋ Demultiplexing์ ์ ์ฉํ๋ค.
์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ Socket๋ค๋ก๋ถํฐ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ, ํจํท์ผ๋ก ๋ง๋ค๊ณ ํ์ ๊ณ์ธต์ผ๋ก ์ ์กํ๋ ๊ฒ.
ํ์ ๊ณ์ธต๋ก๋ถํฐ ์์ ๋ ํจํท์ ์ ํํ Socket์ผ๋ก ์ ์กํ์ฌ ์ฌ๋ฐ๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ ์ ์กํ๋ ๊ฒ.
์ด๋ ์ ํํ ์ ํ๋ฆฌ์ผ์ด์ ์ Socket์ผ๋ก ์ ๋ฌํด์ฃผ๊ธฐ ์ํด ํฌํธ ๋ฒํธ(Port Number)๊ฐ ์ฌ์ฉ๋๋ค.
์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ๊ตํ(์ดํ RDT)์ ํ๋ง๋๋ก "์ก/์์ ํ๋ ๋ฐ์ดํฐ๊ฐ ์ค๋ฅ์์ด ์จ์ ํ ์ ์ก๋๋ ๊ฒ" ์ด๋ค.
Transport Layer ์์๋ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ๊ตํ์ ํ๊ณ ์ถ์ดํ์ง๋ง, ๊ทธ ์๋์ ๋ ์ด์ด์์๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ ์๋ ํต์ ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
์ด๋ฌํ ์ํฉ ์์์ Transport Layer์์ ์ ์ฉ ๊ฐ๋ฅํ ๋ฐฉ์์ด ๋ฐ๋ก "RDT ํ๋กํ ์ฝ"์ ์ด์ฉํ๋ ๊ฒ์ด๋ค. ์๋ ๊ทธ๋ฆผ์ ์ดํด๋ณด์.
- ํจํท ์ก์ (์์ ๊ณ์ธต โ Transport Layer โ ํ์ ๊ณ์ธต)
- ์์ ๊ณ์ธต โ Transport Layer :
rdt_send()
์์คํ ์ฝ์ ํธ์ถํ์ฌ RDT ํ๋กํ ์ฝ๋ก ์ ์ก
- Transport Layer โ ํ์ ๊ณ์ธต :
udt_send()
ํธ์ถํ์ฌ ํจํท ์ ์ก
- ์์ ๊ณ์ธต โ Transport Layer :
- ํจํท ์์ (ํ์ ๊ณ์ธต โ Transport Layer โ ์์ ๊ณ์ธต)
- ํ์ ๊ณ์ธต โ Transport Layer :
rdt_rcv()
์์คํ ์ฝ์ ํธ์ถํ์ฌ RDT ํ๋กํ ์ฝ๋ก ์ ์ก
- Transport Layer โ ์์ ๊ณ์ธต :
deliver_data()
ํธ์ถํ์ฌ ๋ฐ์ดํฐ ์ ์ก
- ํ์ ๊ณ์ธต โ Transport Layer :
์์ ์ดํด๋ณธ RDT๋ฅผ FSM(์ ํ ์ํ ์ฅ์น)์ ์ด์ฉํ์ฌ ์ค๊ณํ ์ ์๋ค.
- ๊ฐ์
- ๋คํธ์ํฌ์ ๋ชจ๋ ์ฑ๋์ด ์๋ฒฝํ๊ฒ ์ ๋ขฐ์ฑ ์๋ค๊ณ ๊ฐ์ ํ๋ค. (no bit errors, no loss of packets)
- ๊ธฐ๋ฅ
- ์ก์ ์๋ ๋ณด๋ผ ๋ฐ์ดํฐ๋ฅผ ํจํท์ผ๋ก ๋ง๋ค์ด ํจํท์ ๋ณด๋ด๊ณ ,
์์ ์๋ ํจํท์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ ์ ๋ฌํ๋ค.
- ์ก์ ์๋ ๋ณด๋ผ ๋ฐ์ดํฐ๋ฅผ ํจํท์ผ๋ก ๋ง๋ค์ด ํจํท์ ๋ณด๋ด๊ณ ,
- ํน์ง
- ๋ฐ์ดํฐ ์์์ด๋ ์์ค์ ์ฐ๋ ค๊ฐ ์๋ ๋คํธ์ํฌ์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ธ์ด๋ค.
- ๊ฐ์
- ํจํท ์์ค์ ์๋ค๊ณ ๊ฐ์ ํ๋ค.
- ๊ฐ์ ๋ ๊ธฐ๋ฅ
- ๊ธฐ๋ณธ ์ฑ๋์์๋ ํจํท์ bit errors ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, bit errors ๋ฅผ ํ์งํ๊ธฐ ์ํด ACK/NAK์ checksum์ ๋์
ํ๋ค.
- acknowledgements (ACKs) : ์์ ์๊ฐ ์ก์ ์์๊ฒ ํจํท์ด ์ ์์ ์ผ๋ก ์์ ํ์์ ์๋ฆฐ๋ค.
- negative acknowledgements (NAKs) : ์์ ์๊ฐ ์ก์ ์์๊ฒ ํจํท์ ์๋ฌ๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฆฐ๋ค.
- ์๋ฌ๋ฅผ ํ์งํ์ฌ ๋ง์ฝ ์๋ฌ๊ฐ ์๋ค๋ฉด, ์๋๋ฐฉ์ Transport Layer์ ๋ค์ ํจํท์ ์์ฒญํ๋ค.
- ๊ธฐ๋ณธ ์ฑ๋์์๋ ํจํท์ bit errors ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, bit errors ๋ฅผ ํ์งํ๊ธฐ ์ํด ACK/NAK์ checksum์ ๋์
ํ๋ค.
- ๋ฌธ์ ์
- ACK/NAK๊ฐ ์์ค๋ ๊ฒฝ์ฐ, ์ก์ ์๋ ์์ ์์๊ฒ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ๋ชจ๋ฅธ๋ค.
- ์ก์ ์๊ฐ ์์ ์์๊ฒ Packet์ ๋ ๋ณด๋ผ ๊ฒฝ์ฐ, ์์ ์๋ ์ค๋ณต์ธ์ง ๋ชจ๋ฅด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์๋ค.
- ACK/NAK๊ฐ ์์ค๋ ๊ฒฝ์ฐ, ์ก์ ์๋ ์์ ์์๊ฒ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ๋ชจ๋ฅธ๋ค.
- ๊ฐ์ ๋ ๊ธฐ๋ฅ
- (1) Sequence Number ์ฌ์ฉ
- handling duplicates : ์์ ์๊ฐ packet์ ์ค๋ณต ์์ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์๋ค.
- (2) Stop and Wait
- ์ก์ ์๊ฐ ํ๋์ packet์ ๋ณด๋ด๊ณ ๋๋ฉด, ์์ ์์ ์๋ต์ ๊ธฐ๋ค๋ฆฐ๋ค.
- (1) Sequence Number ์ฌ์ฉ
- ๋ฌธ์ ์
- sequence number๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, NAK๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ด์ง๋ค.
- ๊ฐ์ ๋ ๊ธฐ๋ฅ
- NAK ๊ธฐ๋ฅ ์ ๊ฑฐ
- NAK์ ์ฌ์ฉํ์ง ์๋๋ค.
- ๋์ , ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ์ ๋ฐ์ ํจํท์ ๋ํ ๋ฒํธ์ ACK๋ฅผ ๋ณด๋ธ๋ค.
- NAK ๊ธฐ๋ฅ ์ ๊ฑฐ
- ๋ฌธ์ ์
- ์ฌ์ ํ ํจํท ์์ค์ ๊ฐ๋ฅ์ฑ์ด ๋จ์์๋ค.
- ๊ฐ์
- ์ฑ๋์ ํจํท ์๋ฌ์ ํจํท ์์ค์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
- ๊ฐ์ ๋ ๊ธฐ๋ฅ
- timer ์ฌ์ฉ
- ์ก์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ์ผ์ ์๊ฐ์ ๊ธฐ๋ค๋ฆฐ๋ค. ๋ง์ฝ ์๊ฐ ๋ด์ ์ฌ๋ฐ๋ฅธ ACK๊ฐ ์์ค๋ฉด ์ฌ์ ์ก ํ๋ค.
- timer ์ฌ์ฉ
์ ๊ทธ๋ฆผ์์ ๊ฒ์์ ๊ธ์จ๋ค์ ์ฌ๋ฐ๋ฅด๊ฒ ํจํท๋ค์ด ๊ตํ๋์์ ๊ฒฝ์ฐ์ด๋ค. ์ด ๊ฒฝ์ฐ ํธ์ถ๋ ํจ์๋ฅผ ์ ์์ ์ผ๋ก ์ํํ๊ฒ ๋๋ค.
๋นจ๊ฐ์ ๊ธ์จ๋ค์ ํจํท ์ ์ก ๊ณผ์ ์์ ๋ฌด์ธ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. ํจํท์ด ์์๋์๊ฑฐ๋(corrupt), ์์ค๋์์ ๋(wrong ACK) ๊ทธ๋ฅ ์ด๋ฅผ ๋ฌด์ํ๋ค. ๊ทธ๋ฌ๋ฉด ๊ฒฐ๊ตญ timeout์ด ๋ฐ์ํด ์ฌ์ ์ก์ ํ๊ฒ ๋๋ค.
์ ๊ทธ๋ฆผ์์ ๊ฒ์์ ๊ธ์จ๋ค์ ์ฌ๋ฐ๋ฅด๊ฒ ํจํท๋ค์ด ๊ตํ๋์์ ๊ฒฝ์ฐ์ด๋ค. ์ด ๊ฒฝ์ฐ ํธ์ถ๋ ํจ์๋ฅผ ์ ์์ ์ผ๋ก ์ํํ๊ฒ ๋๋ค.
๋นจ๊ฐ์ ๊ธ์จ๋ค์ ํจํท ์ ์ก ๊ณผ์ ์์ ์์ ์๊ฐ ๋ณด๋ธ ACK๊ฐ ์ก์ ์์๊ฒ ์ ๋๋ก ๊ฐ์ง ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ด๋ค. ์ด ๊ฒฝ์ฐ ๋ค์ ACK์ ๋ง๋ค์ด ์ก์ ์์๊ฒ ์ฌ์ ์ก ํด์ฃผ์ด์ผ ํ๋ค.
rdt 3.0 ๋ชจ๋ธ์ ํจํท์ด ์ ์ค๋ ๊ฒฝ์ฐ, ACK๊ฐ ์ ์ค๋ ๊ฒฝ์ฐ, ์ ์ค๋์ง๋ ์์์ง๋ง timeout์ด ๋ฐ์ํ ๊ฒฝ์ฐ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๋ณ์น์ ์ธ ์ํฉ์ ๋ชจ๋ ์ปค๋ฒํ ์ ์์ด์ ๊ต์ฅํ ์์ฑ๋ ๋์ ๋ชจ๋ธ์ด๋ผ๊ณ ํ ์ ์๋ค.
ํนํ ํจํท์ ๋ณด๋ด๊ณ ACK๊ฐ ์ฌ๋๊น์ง ๋๊ธฐํ๋ ์์์ ๋ณด์ด๋๋ฐ, ์ด๋ฅผ stop-and-wait Operation ์ด๋ผ๊ณ ํ๋ค. ์ด๋ฌํ ํน์ง ๋๋ฌธ์ ํํธ์ผ๋ก๋ ํจ์จ์ฑ์ด ๋ฎ๋ค๊ณ ๋ณผ ์ ์๋ค.
์์ ์์ ํ์๋ฏ์ด, RDT 2.1 ๋ชจ๋ธ๋ถํฐ๋ ์ก์ ์๊ฐ ํ๋์ packet์ ๋ณด๋ด๊ณ ๋๋ฉด ์์ ์์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ "Stop and Wait" ๋ฐฉ์์ ์ฌ์ฉํ๋ค๊ณ ํ์๋ค.
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ACK๊ฐ ์ฌ ๋๊น์ง ์ก์ ์๊ฐ ๊ณ์ํด์ ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ต์ฅํ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
๋ฐ๋ผ์, ํ๋ฒ์ ํ๋์ ํจํท๋ง ๋ณด๋ด๋ ๊ฒ์ด ์๋๋ผ ์ฌ๋ฌ ํจํท์ pipeliningํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ดํด๋ณผ ๊ฒ์ด๋ค. ๋ํ์ ์ธ Pipelined Protocol์ผ๋ก๋ GBN(Go-Back-N)๊ณผ SR(Selective Repeate) ๋ฐฉ์์ด ์๋ค.
Go-back-N ๋ฐฉ์์ ์์ ์ ์ธก์์ ๋ฐ์ง ๋ชปํ ํจํท์ด ์๋ค๋ฉด, ์ก์ ์๊ฐ ํด๋น ํจํท๋ถํฐ ์์๋๋ก ๋ค์ ์ฌ์ ์ก ํ๋ ๋ฐฉ์์ด๋ค.
- (1) ์์ ์ ์ธก์ ์ ์์ ์ผ๋ก ๋ฐ์ง ๋ชปํ ํจํท์ด ์์ ๊ฒฝ์ฐ, ํด๋น ํจํท์ด ์ฌ ๋๊น์ง ๋ค๋ฅธ ํจํท๋ค์ ๋ฐ๋๋ผ๋, ๋ฐ์ง ๋ชปํ ํจํท์ ์ง์ ํจํท์ ๋ํ ACK๋ฅผ ๋ณด๋ธ๋ค.
- ์์ ์๋ ๋ฐ์ ACK์ ์์๊ฐ ๋ค์์ด๋ ๊ฒ์ ํ์ฉํ์ง ์๋๋ค.
- ์ด๋ฌํ ์ฑ์ง ๋๋ฌธ์ cumulative ACK(์ฐ์์ ์ธ ACK)์ด๋ผ๊ณ ๋ ํ๋ค.
- ์๋ฅผ ๋ค์ด ํจํท 1,2,3,4,5๋ฅผ ์ ์กํ๋๋ฐ, ์์ ์ ์ธก์์ 1,2,4,5๋ฅผ ๋ฐ์๋ค๋ฉด, ์์ ์ ์ธก์ ACK 1,2,2,2๋ฅผ ๋ณด๋ธ๋ค.
- ์ก์ ์ ์ ์ฅ์์ ACK 1,2,3์ด ์์ค๊ณ ACK 4๋ง ์ค๋๋ผ๋ ์์ ์๊ฐ ํจํท 1,2,3,4๋ฅผ ์ ์์ ์ผ๋ก ๋ฐ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค. (ACK๊ฐ ์ค๋ค๊ฐ ์์ค๋ ๊ฒฝ์ฐ)
- ์์ ์๋ ๋ฐ์ ACK์ ์์๊ฐ ๋ค์์ด๋ ๊ฒ์ ํ์ฉํ์ง ์๋๋ค.
- (2) ์ก์ ์๋ ์ ์กํ ํจํท ์ค, ACK ๋์ง ์์ ๊ฐ์ฅ ์ต์ ์ ํจํท์ ๋ํด ํ๋์ ํ์ด๋จธ๋ฅผ ๊ณ์ฐํ๋ค.
- ๋ง์ฝ ํด๋น ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋ ๋๊น์ง ACK๊ฐ ์ค์ง ์์ผ๋ฉด, window ๋ด์ unack๋ ๋ชจ๋ ํจํท์ ์ฌ์ ์กํ๋ค.
- ๋ง์ฝ ํด๋น ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋๊ธฐ ์ ์ ACK๊ฐ ์จ๋ค๋ฉด, ๋ค์ ACK ๋์ง ์์ ๊ฐ์ฅ ์ต์ ์ ํจํท์ ๋ํด ํ์ด๋จธ๋ฅผ ๊ณ์ฐํ๋ค.
- (3) ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํ๊ณ ๊ตฌํ์ด ๋จ์ํ๋ฉฐ, ๋ฐ๋ก ํจํท์ ๋ณด๊ดํ ๋ฒํผ๊ฐ ํ์ ์๋ค.
- ์ฌ๋ฐ๋ฅธ ํจํท์ด ์ค๋ฉด ์ผํค๊ณ , ํ๋ฆฐ ํจํท์ด ์ค๋ฉด ๋ฑ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- (4) ์ก์ ์์ Window Size๋ ์ฌ์ฉ๋๋ sequence number๋ณด๋ค ๋ฌด์กฐ๊ฑด ์ปค์ผํ๋ค.
- N = (2^k)-1
- ๋ง์ฝ Window size๊ฐ ๊ฐ๊ฑฐ๋ ์์ผ๋ฉด, ์์ ์๊ฐ ์คํดํ ์ ์๋ ์ํฉ์ด ์๊ธด๋ค. (ACK๊ฐ ๋ชจ๋ ์์ค๋ ๊ฒฝ์ฐ)
Selective Repeat ๋ฐฉ์์ ์ก์ ์ ์ธก์์ ๋ฐ์ ๊ฐ๊ฐ์ ํจํท๋ค์ ๋ํด ACK์ ๋ณด๋ด๋ ๋ฐฉ์์ด๋ค.
- (1) ์ก์ ์ ์ธก์ ACK๊ฐ ์์๋๋ก ์ค๋ ๋ง๋ , ๊ทธ๋ฅ ๋ฐ์ ํจํท์ ๋ํ ACK์ ๋ณด๋ธ๋ค.
- ์๋ฅผ ๋ค์ด ํจํท 1,2,3,4,5๋ฅผ ์ ์กํ๋๋ฐ ์ก์ ์ ์ธก์์ 1,2,4,5๊ฐ ์๋ค๋ฉด, ์ก์ ์ ์ธก์ ACK 1,2,4,5๋ฅผ ๋ณด๋ธ๋ค.
- (2) ์ก์ ์๋ ACK์ ๋ฐ์ง ๋ชปํ ๋ชจ๋ ํจํท์ ๋ํด ํ์ด๋จธ๋ฅผ ๊ฐ๊ฐ ๊ณ์ฐํ๋ค.
- ๋ง์ฝ ๊ฐ๊ฐ์ ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋ ๋๊น์ง ACK๊ฐ ์์ค๋ฉด, ๊ฐ๊ฐ ํจํท์ ์ฌ์ ์กํ๋ค.
- (3) ๋ฐ๋ก ๋ฐ์ ํจํท์ ๋ณด๊ดํ ๋ฒํผ๊ฐ ํ์ํ๋ค.
- ์ฌ๋ฐ๋ฅด์ง ์์ ํจํท์ด ์๋ ์ผ๋จ ์ ์ฅํด๋๊ณ , ๋์ค์ ๋ถ์กฑํ ๋ถ๋ถ์ด ์ฑ์์ง๋ฉด ํจ๊ป ์ผํค๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- (4) ์ฌ์ฉ๋๋ sequence number๋ ์ก์ ์์ Window Size์ ์ก์ ์์ Widow Size ํฌ๊ธฐ์ ํฉ๋ณด๋ค ๋ฌด์กฐ๊ฑด ํฌ๊ฑฐ๋ ๊ฐ์ผํ๋ค.
- Max allowable window size N์ (2^k)-1์ด ์๋๋ผ, (2^k)/2 = 2^(k-1)๋ก ํด์ผ ํ๋ค. (half the seq# space)
- ๋ง์ฝ sequence number์ ํฌ๊ธฐ๊ฐ ๋ ์๋ค๋ฉด, ์ก์ ์๊ฐ ์คํดํ ์ ์๋ ์ํฉ์ด ์๊ธด๋ค.
- YouTube - "Go back N sliding window Protocol by Khurram Tanvir"
- YouTube - "Go Back N demonstration"
- YouTube - "Selective Repeat sliding Window Protocol by Khurram Tanvir"
- point-to-point:
- one sender, one receiver
- reliable data transfer
- in-order byte stream
- pipelined (โ stop & wait)
- full duplex data
- MSS (maximum segment size)๋ฅผ ์ ์ํ๊ณ , ๋ฐ์ดํฐ ์ก์์ ์ ์ ๋ฏธ๋ฆฌ ์๋ ค์ค
- connection oriented
- handshaking (exchange of control msgs) inits sender, receiver state before data exchange
- flow control
- sender will not overwhelm receiver
- ์๊ฐ์ ๋ฐ๋ผ ๋ณํ๋ Adaptive window size (N)
- segment structure
- TCP Header์ Data๋ฅผ ํตํ์ด์ TCP segement๋ผ๊ณ ํ๋ค.
- TCP Segment๋ ์ฌ๋ฌ field๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ, field๋ ์๋ฏธ ์๊ฒ packet์ ์๋ฅธ ๊ฒ์ ์๋ฏธํ๋ค.
each line's length is 32 bits
- (1-1) IP protocol version number
- (1-2) header length (bytes)
- 20 bytes + @
- (1-3) "type" of data
- "type" : ๋น ๋ฅธ ๊ธธ or ๋๋ฆฌ์ง๋ง ์ผ ๊ธธ
- ์ค์ router๊ฐ ๊ณ ๋ คํ์ง๋ ์์
- (1-4) total datagram length (bytes)
- (2-1) 16-bit identifier
- for fragmentation/reassembly
- (2-2) flags
- D (Done fragmentation)
- 0์ด๋ฉด fragmentation์ ์ํ
- 1์ด๋ฉด fragmentation์ ์ํ x
- M (More flag)
- 0์ด๋ฉด ๋ด๊ฐ ๋ง์ง๋ง์ด๋ค.
- 1์ด๋ฉด ๋ด๊ฐ ๋ง์ง๋ง์ด ์๋๋ค.
- for fragmentation/reassembly
- D (Done fragmentation)
- (2-3) fragmentation offset
- ์๋ ๋ฐ์ดํฐ์์ ์ด๋ ์์น์ ์์๋์ง๋ฅผ ๋ํ๋ธ๋ค.
- for fragmentation/reassembly
- (3-1) time to live
- max number remaining hops (decremented at each router)
- (3-2) upper layer
- upper layer protocol to deliver payload to
- (3-3) header checksum
- IPv4์์๋ ๋ชจ๋ ํจํท์ ๋ํด checksum์ ๊ณ์ฐํด์ฃผ์ด์ผ ํ๋ค. (์๊ฐ์ด ๋๋ ค์ง)
- ์๋ํ๋ฉฐ๋ ๋ผ์ฐํฐ๋ฅผ ๊ฑฐ์น ๋๋ง๋ค TTL์ด ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ด๋ค.
- (4) 32 bit source IP address
- (5) 32 bit destination IP address
- (6) options (if any)
- data (variable length, typically a TCP or UDP segment)
- Computer Networking: A Top Down Approach 6th edition - Jim Kurose, Keith Ross Addison-Wesley March 2012
- https://ddongwon.tistory.com/m/79
- https://ddongwon.tistory.com/m/80
- https://ddongwon.tistory.com/m/81
- https://m.blog.naver.com/mayooyos/220987008864