计算机网络-知识点辨析(四)-IP数据报与TCP报文
计算机网络-知识点辨析(四)-IP数据报与TCP报文
写在前面
计算机网络是计算机相关专业知识体系中的基础学科,是计算机考研统考408中的科目,这里主要综合教材、相关资料等,总结在计算机网络中出现的重要的、易混淆的知识点。
知识点辨析(一)-流量控制与拥塞控制
知识点辨析(二)-电路交换、报文交换与分组交换
知识点辨析(三)-随机访问介质访问控制
知识点辨析(四)-IP数据报与TCP报文
知识点辨析(五)-子网划分与子网掩码、CIDR
IP数据报
IP数据报的首部结构
其中涉及到分片操作的有以下三个字段:
标识,是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但由于IP是无连接服务,所以标识并不是序号。当一个数据报超过网络的最大传送单元MTU时,必须进行分片,此时每个数据报分片都复制一次标识号以便能够正确重装成原来的数据报。
标志,标志字段的最低位为MF,MF=1表示后面还有分片;MF=0表示当前分片是最后一个分片。表示字段的中间位是DF,只有DF=0时才允许分片。
片偏移,指出较长的分组(数据报)在分片后,某片在原分组中的相对位置。片偏移以8B为偏移单位,即除最后一个分片外,每个分片的长度一定是8B的整数倍。
此外,要留意以下字段:
生存时间,即TTL(Time to Leave),标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组之前,先把TTL减少1。若TTL被减为0,则该分组被丢弃。
协议,指出此分组携带的数据部分应交给哪个传输层协议。其中6表示TCP,17表示UDP。
填充,为了使整个首部长度是4B的整数倍。
TCP报文
一个TCP报文段分为TCP首部和TCP数据两部分,其首部的前20字节是固定的。整个TCP段作为IP数据报的数据部分封装在IP数据报中。
TCP报文的首部结构
在首部中留意以下几个字段:
序号,TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则是本报文段所发送的数据的第一个字节的序号。
确认号ack,期望收到对方的下一个报文段的数据的第一个字节的序号。若确认号ack=N,则表示到序号N-1为止的所有数据都已经正确收到。
数据偏移(首部长度),指出TCP报文段中数据起始处距离TCP报文段的起始处有多远。
确认位ACK,只有当确认位ACK=1时,确认号字段才有效。
同步位SYN,SYN=1表示这是一个连接请求报文或者连接接收报文。
终止位FIN,FIN=1表示此报文段的发送方的数据已经发送完毕,并要求释放传输连接。
窗口,实现TCP流量控制,用窗口值作为接收方让发送方设置其发送窗口的依据。
填充,为了使整个首部长度是4B的整数倍。