1 理解面向连接和无连接协议之间的区别
1.1 区别
区别:对无连接协议来说,每个分组的处理都独立于所有其他分组,都是独立寻址,而面向连接的协议来说,协议面向连接的协议来说,协议实现规则维护了与后继分组有关的状态信息。
注意:对于无连接,如果应用程序实现的功能较为复杂,就可能需要维护数据报之间的状态,但重点是状态由应用程序维护,而不是协议维护。
1.2 TCP/IP协议栈
TCP/IP分为四层,分别是接口层/物理层/链路层–>网络层–>传输层–>应用层。
网络层主要就是IP层,该层提供了一个很好的高效的,不可靠的,无连接的服务,负责接收来自上层的数据包,然后封装到一个IP数据包中,并路由该数据包到正确的硬件接口上。
1.3 TCP的可靠性实现
TCP在IP层上增加了三个服务,以用来实现TCP的可靠的面向连接的服务:
- 为TCP段提供了校验位,这就能保证到达目的地的数据不会在网络上传输时被破坏
- 为每个字节分配一个序列号,如果数据不按顺序到达目的地那么接受者可以重新进行组合
- TCP提供了一个确认和重传机制来保证每一个段最终都会递交到目的地
1.4 接收窗口
- TCP连接但每一端都维护了一个接收窗口,接收窗口就是可以从对等实体接收的数据序列号范围。最小值是窗口的左边界,是所期望的下一个字节的序列号。最大值表示窗口的右边界,是TCP缓冲区空间所能容纳字节的最大编号。