四、分类的IP地址
IPv4的地址长度为32bit,标准分类的IP地址是由网络号和主机号组成,用点分十进制表示。
IP地址的指派范围
一般不使用的特殊IP地址
五、数据报封装和分用
1、IP数据报格式
IP数据报的格式能够说明IP协议都具有什么功能。在TCP/IP的标准中,各种数据格式常常以32位(即4字节)为单位来描述。一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
版本:占4位,指IP协议的版本。(IPv6或IPv4)
首部长度:占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到最大值60字节。
区分服务:占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。
总长度:指首部和数据之和的长度,单位为字节。总长度字段为16 位,因此数据报的最大长度为216 - 1 = 65535字节。然而实际上传送这样长的数据报在现实中是极少遇到的。在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU (Maximum Transfer Unit)。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层所规定的MTU值。例如,最常用的以太网就规定其MTU值是1500字节。若所传送的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。
标识(identification):占 16位。IP软件在存储器中维持一个计数器, 每产生一个数据报,计数器就加1,并将此值赋给标识字段。
片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位。
下图为数据报分片示例:
生存时间:占8位,生存时间字段常用的英文缩写是TTL (Time To Live), 表明这是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在互联网中兜圈子因而白白消耗网络资源。
协议 :占8位,协议字段指出此数据报携带的数据是使用何种协议。
首部检验和:占16位。这个字段只检验数据报的首部,但不包括数据部分。下图说明数据报首部检验和计算过程。
源地址:占32位。
目的地址:占32位。
2、数据报封装的过程
- 在数据链路层有一个标识:每一台主机的唯一符:MAC地址。
- MAC地址:计算机的网卡在出厂时就打上了一串数据:MAC 地址,其通常是唯一的。
- 所以局域网中发消息必须加上目的主机的MAC地址。
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。
- 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。