3
IP头长度,占4比特,最大值15个单位(1个单位4字节)。·服务类型:该字段包括一个3比特的优先级子字段(现在
已废弃不用),还包括一个4比特的ToS子字段,最后1比特必须置0。ToS中的4比特分别代表:最小时延(D)、最
大吞吐率(T)、最高可靠性(R)和最小费用(C),只能有1比特置1。如果所有4比特均为0,那就是一般服务。·标
识符:由主机指定同样的标识符。当原主机对数据分段时,对同一上层协议数据单元划分出的各个数据报指定同样的标识符,
目标主机上层协议用这个字段进行重装配。·标志:包括三个标志位。一个标志位没有使用;M标志用于分段和重装配;D标
志为禁止分段标志。·段偏置值:指明该段处于原来数据报中的位置,已8字节为单位。·生存期(TTL):用经过的路由
器个数表示,源站设置一个数(32或64),每经过一个路由器减1。如果某个路由器发现TTL字段为0,则丢弃该数据
报,不再转发。·协议:上层协议(TCP或UDP)。·头检验和:对IP头的检验序列。·任选数据:可变长,包含发送
者想要发送的控制数据。(2)IP协议簇 8。ICMP协议(1)ICMP协议概述ICMP(Internet Co
ntrol Message Protocol)与IP协议同属于网络层,封装在IP数据报中传输,传送有关网络层通
信问题的信息。ICMP常见应用有:报告访问失效(报告源主机网络不可达);报告网络拥塞(发送源抑制报文给源主机,
降低发送速率);帮助排错(利用ICMP回声功能,ping工具);声明报文超时(TraceRoute工具,利用较
小的TTL值发现中间设备)。(2)ICMP报文格式 9。TCP格式 (1)TCP报文格式源端口和目的端口:都是
16个比特,分别表示发送方和接收方的端口号。端口号和IP地址构成套接字(socket)地址的主要内容。源端和目
的端的套接字合起来唯一地表示一条连接。网络应用程序在通信时直接向套接字发送和接收数据。序列号和确认号:都是32
位的无符号整数,可以表示0-4G(232)字节的范围。其中,序列号表示数据部分第一个字节的序列号,而确认号表示
该数据报的接收者希望对方发送的下一个字节的序号(即序号小于确认号的数据都已正确地被接收)。 头长度(HLEN)
:表示TCP报文头的长度。长度以32-bit为单位来计算。所以如果选项部分的长度不是4个字节的整数倍,则要加上
填充(padding)。保留域:紧接在头长度字段后有6个比特,应该把它设置为0。再后则是6个标志位。标志位特定
的含义: URG(urgent)为紧急数据标志。如果它为1,则表示本数据报中包含紧急数据。此时紧急数据指针表示
的值有效。它表示在紧急数据之后的第一个字节的偏侈值(即紧急数据的总长度)。 ACK(acknowledge)为
确认标志位。如果ACK为1,则表示报文中的确认号是有效的。否则,报文中的确认号无效,接收端可以忽略它。PSH(
push)标志位。被置位后,要求发送方的TCP协议软件马上发送该数据报,接收方在收到数据后也应该立即上交给应用
程序,即使其接收缓冲区尚未填满。 RST(reset)标志位。用来复位一条连接。RST标志置位的报文称为复位报
文。一般情况下,如果TCP收到的一个报文明显不是属于该主机上的任何个连接,则向远端发送一个复位报文。 SYN(
synchronous)标志位。用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据报
为连接请求,如SYN=1而ACK=1则表示是接受连接。FIN(finish)标志位。表示发送方已经没有数据要传
输了,希望释放连接。 窗口(window)字段。窗口表示的是从被确认的字节开始,发送方最多可以连续发送的字节的
个数。接收方通过设置该窗口值的大小,可以调节源端发送数据的速度,从而实现流控。 校验和(checksum)域。
是TCP协议提供的一种检错机制。与我们在前面的章节中学过的UDP协议类似,在计算校验和时不仅要计算TCP报文自
身(报文头和数据),还要增加一些额外的信息内容 – 12个字节的“伪包头”。(2)TCP三次握手过程TCP采用
三次握手过程建立连接,首先是发起方发送一个SYN标志置位的段,其中的发送顺序号为某个值X,称为初始顺序号ISN
(Initial Sequence Number),接收方以SYN和ACK标志置位的段响应,其中的应答顺序号应
为X+1(表示期望从第X+1个字节处开始接收数据),发送顺序号为某个值Y(接收端指定的ISN)。这个段到达发起
端后,发起端以ACK标志置位,应答顺序号为Y+1的段回答,连接就正式建立了,连接建立的同时发起方还可以发送数据
。TCP采用的流控方式与数据链路层的流控方式不同,属于可变大小的滑动窗口协议,也叫信贷(Credit)滑窗协议
,它更适合于两个相距遥远的主机在无连接的网络上实现流量控制。10。UDP格式 (1)UDP报文格式源端口(So
urce Port)和目的端口(Destination Port)字段包含了16比特的UDP协议端口号,它使得
多个应用程序可以多路复用同一个传输层协议 – UDP协议,仅通过不同的端口号来区分不同的应用程序。 长度(Le
ngth)字段记录了该UDP数据包的总长度(以字节为单位),包括8字节的UDP头和其后的数据部分。最小值是8(
即报文头的长度),最大值为65,535字节。 UDP检验和(Checksum)的内容超出了UDP数据报文本身的
范围,实际上,它的值是通过计算UDP数据报及一个伪包头而得到的。但校验和的计算方法与通用的一样,都是累加求和。
所谓“伪首部”是因为这种伪首部并不是UDP用户数据报的真正首部。只是在计算检验和时,临时和UDP用户数据报连接
在一起,得到一个过渡的UDP用户数据报。检验和就是按照这个过渡的UDP用户数据报来计算的。伪首部既不向下传送也
不向上递交,而仅仅是为了计算检验和。