TCP: Overview
point-to-point
reliable, in-order byte stream:
pipelined:
send & receive buffers
full duplex data:
connection-oriented:
flow controlled:
point-to-point
reliable, in-order byte stream:
pipelined:
send & receive buffers
full duplex data:
connection-oriented:
flow controlled:
TCP segment structure
용어
'데이터를 받았을 때 500 ms 정도 기다린 후 ACK를 보내라'는 권고사항이 있다. TCP에 sender와 receiver가 함께 있기 때문에 send 동작을 할 때 ACK도 함께 보내면 데이터전송량이 줄고, pipeline 방식으로 데이터가 연달아 전송될 때 마지막 데이터에 대한 ACK 1개만 보낼 수도 있기 때문에 비용면에서 효율적이기 때문이다.
timeout = RTT
segment가 A에서 B로, 다시 A로 도착하는 시간을 RTT라고 한다. 이 RTT를 timeout 으로 정하자는 의견이 나타났다. 그러나, 아주 조금의 환경 차이에도 격차가 크기 때문에 시간을 보정하는 식의 적용이 필요하다.
TCP reliable data transfer
pipeline 방식 사용
cumulative acks ("ACK(10)"의 의미가 "9번까지 잘 받았으니, 10번을 기다린다"는 뜻)
timer 1개 사용 (GBN과 비슷함)
복습
(중요) TCP: retransmission scenarios
fast retransmit