可靠与效率
TCP的主要特点:
- TCP是面向连接的运输层协议,每一条TCP连接只能有两个端点,即:点对点、一对一形式。每一个端口都是一个socket。
- TCP提供可靠交付的服务
- TCP提供全双工通信,因为TCP的收发缓冲区是分开的。
- TCP面向字节流。流指的是流入或流出进程的字节序列。面向字节流指的是尽管应用程序与TCP的交互是一次一个数据块,但TCP仅仅认为接收到的数据是无结构的字节序列。
- TCP不关心应用程序一次把多长的报文发送到TCP缓存,只根据对方给出的窗口值与当前网络的拥塞程度来决定一个报文段应包含多少个字节,形成TCP报文段。
1、可靠传输及错误处理
可靠传输过程:
发送方A每发送完成一个分组就会停止发送,等待接收方B返回确认信号。发送方A接收到确认信号后再开启下一次的分组发送。
发送方如何处理通信错误的问题:
使用超时重传的方式解决。发送方A发送之后,通过接收方B返回的确认信号是否正常接收。在A中会为每一个们组设置一个超时计时器,只有在计时器范围内接收到了B的信号,才会进行下一个分组的发送,如果没有收到B的确认信号,则重传该分组。
4种通信错误:
- 分组错误:B收到A发送的分组后,经过检验发现该分组不能使用,此时B不会发送确认信号
分组错误其实就是发来的数据有问题。
- 分组丢失:B根本就没有收到A发送的分组,此时B肯定不会发送确认信号。
分组丢失其实就是发送的数据丢了。
- 确认丢失:B发送了确认,但A没收到。此时A会重发数据
情况1:A重发,B收到的数据错误,不会发送确认。