实现可靠传输需要保证三个条件:
(1)无比特差错传输
(2)字节流不丢不重不乱序
(3)接收方的处理能力大于发送速率
****************************************************************
TCP的首部检验和会检查首部和数据段,保证报文段无比特差错,满足条件(1).
应用程序把数据缓存到发送缓存,接收方TCP把数据放到接收缓存.发送方根据接收方反馈回来的窗口设置发送窗口,窗口是缓存的前片段,缓存内窗口外的字节不允许发送,实现了流量控制,满足条件(3).
窗口内的字节分成两部分:已发送还未确认 & 可发送还未发送,接收缓存的存储的是:按序到达还未提取,未按序到达的(4没到,5到了),接收方按序发送确认包,比如4的确认包没发送,就不会发送5的确认包.接收方收到确认包,就丢弃窗口中对应的字节,窗口往前滑动,新增字节.确认机制满足条件(3).
所以TCP能实现无差错传输.
发送缓存 |
接收缓存 |
||
已发送未确认 |
可发送未发送 |
未提取的正确字节 |
未按序到达的字节 |
时间: 2024-10-11 05:09:37