tcpip协议 tcpip协议栈( 五 )



窗口控制窗口大小就是指无需等待确认应答而可以继续发送数据的最大值 。上图中窗口大小为4个段 。这个机制实现了使用大量的缓冲区 , 通过对多个段同时进行确认应答的功能 。3.7 滑动窗口控制

滑动窗口
上图中的窗口内的数据即便没有收到确认应答也可以被发送出去 。不过,在整个窗口的确认应答没有到达之前,如果其中部分数据出现丢包,那么发送端仍然要负责重传 。为此,发送端主机需要设置缓存保留这些待被重传的数据 , 直到收到他们的确认应答 。在滑动窗口以外的部分包括未发送的数据以及已经确认对端已收到的数据 。当数据发出后若如期收到确认应答就可以不用再进行重发 , 此时数据就可以从缓存区清除 。收到确认应答的情况下,将窗口滑动到确认应答中的序列号的位置 。这样可以顺序地将多个段同时发送提高通信性能 。这种机制也别称为滑动窗口控制 。3.8 窗口控制中的重发控制
在使用窗口控制中,出现丢包一般分为两种情况:
① 确认应答未能返回的情况 。在这种情况下,数据已经到达对端,是不需要再进行重发的,如下图:

部分确认应答丢失
② 某个报文段丢失的情况 。接收主机如果收到一个自己应该接收的序列号以外的数据时,会针对当前为止收到数据返回确认应答 。如下图所示,当某一报文段丢失后,发送端会一直收到序号为1001的确认应答,因此,在窗口比较大,又出现报文段丢失的情况下,同一个序列号的确认应答将会被重复不断地返回 。而发送端主机如果连续3次收到同一个确认应答 , 就会将其对应的数据进行重发 。这种机制比之前提到的超时管理更加高效,因此也被称为高速重发控制 。

高速重发控制
四、网络层中的 IP 协议IP(IPv4、IPv6)相当于 OSI 参考模型中的第3层——网络层 。网络层的主要作用是“实现终端节点之间的通信” 。这种终端节点之间的通信也叫“点对点通信” 。网络的下一层——数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递 。而一旦跨越多种数据链路,就需要借助网络层 。网络层可以跨越不同的数据链路,即使是在不同的数据链路上也能实现两端节点之间的数据包传输 。IP 大致分为三大作用模块,它们是 IP 寻址、路由(最终节点为止的转发)以及 IP 分包与组包 。1. IP 地址
1.1 IP 地址概述
在计算机通信中,为了识别通信对端,必须要有一个类似于地址的识别码进行标识 。在数据链路中的 MAC 地址正是用来标识同一个链路中不同计算机的一种识别码 。作为网络层的 IP ,也有这种地址信息,一般叫做 IP 地址 。IP 地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址” 。因此,在 TCP/IP 通信中所有主机或路由器必须设定自己的 IP 地址 。不论一台主机与哪种数据链路连接,其 IP 地址的形式都保持不变 。IP 地址(IPv4 地址)由32位正整数来表示 。IP 地址在计算机内部以二进制方式被处理 。然而,由于我们并不习惯于采用二进制方式,我们将32位的 IP 地址以每8位为一组,分成4组,每组以 “.” 隔开,再将每组数转换成十进制数 。如下:

1.2 IP 地址由网络和主机两部分标识组成
如下图,网络标识在数据链路的每个段配置不同的值 。网络标识必须保证相互连接的每个段的地址不相重复 。而相同段内相连的主机必须有相同的网络地址 。IP 地址的“主机标识”则不允许在同一个网段内重复出现 。由此,可以通过设置网络地址和主机地址,在相互连接的整个网络中保证每台主机的 IP 地址都不会相互重叠 。即 IP 地址具有了唯一性 。

推荐阅读