full duplex는 데이터가 양방향으로 진행된다는 것이다.
flow control은 receiver가 받아들일 수 있는만큼만 보내야 한다.
Application layer에서는 message
Transport layer(tcp)에서는 segment
Network layer(ip)에서는 packet
link layer에서는 frame
포트 번호 하나에 16비트를 쓰니까 2^16-1개의 포트번호가 이용가능하다.
receive window는 지금 receiver buffer에 얼마나 빈 공간이 있는가 알려주는 것이다.
TCP에서 ACK10은 9번까지 잘 받았으니 10번을 달라는 것이다.
RTT는 Rount Trip Time이다.
RTT의 편차가 매우 큰 것을 알 수 있다.
과거 값들과 지금 값들을 종합적으로 고려해서 RTT 값을 정한다.
TCP는 pipeline 방식이다.
TCP는 timer 하나 쓴다. 타이머가 종료되면 그것에 해당하는 세그먼트만 다시 보낸다.
왼쪽은 timer가 expired되어서 재전송한 것이다.
오른쪽은 ack를 받기전에 timer가 터져서 재전송한 것이다. receiver는 120을 기다리고 있는데 중복된 것이 날라오니 그냥 버리고 ack 120을 날리면 된다.
첫번째 ack가 유실되었다. 두번째는 받았으니, 첫번째 ack가 없어도 무시하고 잘 받았다고 생각한다.