신뢰성은 보장이되나 효율이 아주 안좋았다.
한꺼번에 여러개를 보내니 성능이 좋아진다.
한번에 얼마나 많이 보내냐의 크기가 window size이다.
ACK 11은 11번까지 잘 받았다는 뜻이다.
각 패킷에 대해 타이머를 가지고 있는데 만약 시간 초과가 나면 윈도우 안에 패킷을 전부 다시 보낸다.
receiver는 2번 기다리고 있는데 3번이 왔으니 버린다. 2번이 올때까지 다른 것들은 버린다. 1번까지만 잘 받았다는 ACK1을 보낸다. sender는 2번 타이머가 터지니 2번을 포함한 윈도우 전체를 다시 보낸다. 만약 ack가 잘오면 윈도우를 이동한다.
윈도우에 있는 패킷들은 아직 잘 보냈는지 확신을 못하는 패킷들이다.
패킷 하나가 손실 됐는데 윈도우 전체를 보낸다는 비효율이 존재한다.
receiver는 2번을 제외한 나머지들을 버리지않고 ack를보내고 있다. 2번을 나중에 다시 받으면 윈도우를 한번에 이동한다.
이전에도 나왔듯이 sequence는 헤더에 들어가는 정보이고, 작을 수록 좋다. 최소의 필요 sequence #를 구해보자. 윈도우 사이즈가 N일때 필요한 sequence 크기가 얼마일지를 구해야한다.
패킷 하나당 타이머를 다는 것도 오버헤드가 크다.