TCPSender
TCPSender负责从ByteStream当中读取信息流(这个ByteStream可能是由一个高级应用创建的),然后把这个信息流转化成一个由TCPSegment构成的序列。在网络的另一端,一个TCPReceiver把这些TCPSegment还原成原始的信息,并且把ackno和window size发送回TCPSender
TCPSender将要负责:
- 记录TCPReceiver传过来的ackno和window size
- 尽可能去填充这一段window:一直发消息,直到窗口填满或者无消息可发为止
- 重发消息:如果一段segment一直没有传回ackno,那么考虑重发
一直持续发消息,直到Receiver确认[0,x)下标范围内的信息都接收到了,这玩意叫做automatic repeat request(ARQ),Sender把信息流分割成segment,由于Receiver可以重建信息,无论信息用什么顺序发过去的,所以Sender只需要保证信息总能到达Receiver处就可以了