TCP最主要的特点
TCP是面向连接的运输层协议,在无连接的、不可靠的IP网络服务基础之上提供可靠交付的服务。为此,在IP的数据报服务基础之上,增加了保证可靠性的一系列措施。
TCP最主要的特点:
- TCP是面向连接的输出层协议
每一条TCP连接只能有两个端点,每条TCP连接只能是点对点的(一对一)
2.TCP提供可靠交付的服务
3.TCP提供全双工通信(TCP协议会维护两个缓冲区,分别是接收缓冲区和发送缓冲区)
4.面向字节流
- TCP中的"流"指的是流入或流出进程的字节序列。
- 面向字节流:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流。
TCP如何实现可靠传输
- TCP每次发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
- 全双工通信的双方既是发送方也是接收方。
- 假设仅考虑A发送数据,而B接收数据并发送确认。因此A叫做发送方,而B叫做接收方。
发送端如何知道接收端是否正确收到了M1呢?
解决方法:超时重传
发送端为每一个已发送的分组设置一个超时计时器。
发送端只要在超时计时器到期之前收到了相应的确认,就撤销该超市计时器,继续发送下一个分组M2
若发送端在超时计时器规定时间内没有收到B的确认,就认为分组错误或丢失,就重发该分组。
提高传输效率:流水线传输
流水线传输:在收到确认之前,发送方连续发出多个分组。
由于在信道上一直有数据不间断地传送,流水线传输可获得很高的信道利用率
连续ARQ协议和滑动窗口协议采用流水线传输方式。
连续ARQ协议
发送窗口:发送方维持一个发送窗口,位于发送端扣内的分组都可被连续发送出去,而不需要等待对方的确认。
发送窗口滑动:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
累计确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组位置的所有分组都已正确收到了