IP数据报

更新时间:2023-01-19 08:31

TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报,由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址。

简介

IP协议控制传输的协议单元称为IP数据报(IP Datagram,IP数据报、IP包或IP分组)。IP协议屏蔽了下层各种物理子网的差异,能够向上层提供统一格式的IP数据报。lP数据报采用数据报分组传输的方式,提供的服务是无连接方式。IP数据报的格式能够说明lP协议具有什么功能。IPv4数据报由报头和数据两部分组成,其中,数据是高层需要传输的数据,报头是为了正确传输高层数据而增加的控制信息。报头的前一部分长度固定,共20字节,是所有IP数据报必须具有。在首部固定部分的后面是可选字段,长度可变。

结构

固定部分

(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,还处于草案阶段。

(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3)区分服务 占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。

(4)总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。

在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。

(5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志(flag) 占3位,但只有2位有意义。

● 标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。

● 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

(7)片偏移 占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,除了最后一个分片,每个分片的长度一定是8字节(64位)的整数倍。

(8)生存时间 占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。后来把TTL字段的功能改为“跳数限制”(但名称不变)。路由器在转发数据报之前就把TTL值减1.若TTL值减少到零,就丢弃这个数据报,不再转发。因此,TTL的单位不再是秒,而是跳数。TTL的意义是指明数据报在网络中至多可经过多少个路由器。显然,数据报在网络上经过的路由器的最大数值是255.若把TTL的初始值设为1,就表示这个数据报只能在本局域网中传送。

(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(10)首部检验和 占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

(11)源地址 占32位。

(12)目的地址 占32位。

可变部分

IP首部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。某些选项项目只需要1个字节,它只包括1个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。

增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。新的IP版本IPv6就将IP数据报的首部长度做成固定的。这些任选项定义如下:

(1)安全和处理限制(用于军事领域)

(2)记录路径(让每个路由器都记下它的IP地址

(3)时间戳(Time Stamp)(让每个路由器都记下IP数据报经过每一个路由器的IP地址和当地时间)

(4)宽松的源站路由(Loose Source Route)(为数据报指定一系列必须经过的IP地址)

(5)严格的源站路由(Strict Source Route)(与宽松的源站路由类似,但是要求只能经过指定的这些地址,不能经过其他的地址)

这些选项很少被使用,并非所有主机和路由器都支持这些选项。

网际协议

IP协议概述。网际协议互联网协议(Internet Protocol,IP)是用于报文交换网络的一种面向数据的协议,是网络层通信的标准协议,它负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机,但不检查是否被正确接收。与IP 协议配套使用的还有四个协议:地址解析协ARP、逆地址解析协议RARP、网际控制报文协议ICMP、网际组管理协议IGMP。

虚拟互连网络中IP 数据报的传输。如一个互联网中的源主机要把一个 IP 数据报发送给目的主机。根据分组交换的存储转发的概念,源主机先要查找自己的路由表,看目的主机是否就在本网络上。如果是,则不需要经过任何路由器而是直接交付,任务就完成了。如果不是,则必须把 IP 数据报发送给某个路由器A 。A 在查找了自己的路由表后,知道应当把数据报转发给路由器 B 进行间接交付。这样一直转发下去,最后由路由器C 知道自己是和目的主机连接在同一个网络上,不需要再使用别的路由器转发了,于是就把数据报直接交付给目的主机。而各个网络之间可以是异构的。

IP地址。IP地址是为每个网络连接(网卡)分配一个在全世界范围内惟一的标识。报文头中的源IP地址、宿IP地址分别表示源主机、目的主机的IP逻辑地址。IP地址长度为32比特,由网络号、主机号组成,常用的IP地址有 A类、B类、C类地址,路由器就根据 IP 地址进行寻址 。国际互联网普遍的采用了IP 协议。而在网络中运行的 IP 协议是 IPv4 ;IPv6 为 IPv4 的后续的一个版本 。互联网正慢慢的耗尽IP 地址 ,而 IPv6 的出现解决了这个问题,与IPv4的 32 位的地址相比较而言 ,IPv6 拥有 128位的地址空间可以提供比前者多很多的地址 。

IP层转发分组。在TCP/IP系统中,选路是指在网络中选择一条用于传送IP数据包路径的过程。路由器是承担选路任务的网络设备。用于决策选路的信息称为IP选路信息 。路由器使用IP选路信息,对所传输的IP数据包进行IP 转发。

首部检验

原理

IP数据报的首部通过检验和来保证其正确性。发送方将IP数据报的首部按顺序分为多个16比特的小数据块,首部检验和字段的初始值设置为0,用1的补码算法对16比特的小数据块进行求和,最后再对结果求补码,便得到了首部检验和。将经过计算得到的首部检验和填回到数据报的首部检验和字段,封装成帧后发给通往信宿的下一跳设备。

下一跳设备作为接收方将收到的IP数据报的首部再分为多个16比特的小数据块,用1的补码算法对16比特的小数据块进行求和,最后再对结果求补码,若得到的结果为0,就验证了数据报首部的正确性。发送方用1的补码计算和数时,首部检验和字段被设置为O,等于没有参加计算,求补码后的检验和与原检验和各位正好相反。接收方用1的补码计算和数时,由于新的首部检验和字段已经被加入,在首部未发生变化的情况下所得的和数应该为0xffff,因此,求补码后的结果应该为0x0000。

意义

IP数据报在传输过程中并不对其数据区进行校验,这样做的原因有以下两点:

lP协议是一个点对点协议,如果在传输过程中每个点都对数据进行校验操作,势必增加很大的费用,这与IP的“尽力传输”的思想不相符。将可靠性留给更高的层次去解决,这既可以保证数据的可靠性,又可以得到更大的灵活性和效率。 因为IP层的上层传输层是端到端的协议,进行端到端的校验比进行点对点的校验的开销要小得多,在通信线路较好的情况下尤其如此。另外,上层协议可以根据对于数据可靠性的要求,选择是否进行校验,甚至可以考虑采用不同的校验方法,这给系统带来很大的灵活性。

那么IP协议为什么要提供对IP数据报首部的校验功能呢?一方面,IP首部属于IP层协议的内容,不可能由上层协议处理,另一方面,IP首部中的部分字段在点对点的传递过程中是不断变化的,只能在每个中间点重新形成校验数据,在相邻点之间完成校验。

监控技术

随着计算机互联网技术的迅速发展,网络已经深入人民的生活当中,与我们的生活具有十分紧密的联系,成为了我们生活当中的一部分。黑客们通过复杂多变的网络攻击对我们的网络进行攻击,侵犯着我们的互联网,导致我们的互联网具有相当大的安全威胁,他们可以通过截取局域网中正在传输的数据包,然后对数据包解析,得到一系列的数据,导致我们的个人信息和隐私全都暴露出来,甚至对我们的个人财产造成不可估计的损失。如果使用IP数据包监控技术就可以及时的获取黑客的入侵信息,并提前做好黑客入侵的预防工作,不让黑客有机可乘,保障我们的信息安全。网络监控是保护信息安全的一项十分重要的技术,他可以及时的发现网络中存在的安全问题,有利于维护计算机互联网网络安全。

局域网IP数据包的结构局域网IP数据包的结构主要是由三部分构成,它包含了“目的IP地址”、“源IP地址”和“数据”,其中“源IP地址”是用来表明该数据包是从哪里发过来的;“目的IP地址”是用来声明该数据包将会发送到哪里去;“数据”部分则是包含了这个数据包中详细具体的数据信息。局域网IP数据包的结构和我们日常生活中使用的电子邮箱十分的相似,也正是因为这种结构让它能够在基于TCP/IP协议下的计算机网络中进行正常的通讯。

网络监听其实就是利用计算机的网络接口获取其他计算机的数据的技术,利用该技术可以对当前网络的流量情况进行监听以及非法窃取网络中传输的机密文件信息数据。局域网监听的基本原理就是当数据在局域网环境下进行传输的时候,包含物理地址的数据包通过局域网送达到每一台主机上,当数据包到达主机网卡的时候,在正常情况下,网卡会检查还数据包的物理地址是不是和本机的物理地址或者广播地址相同,如果相同就交给IP层处理,不相同则将该数据包丢弃。当某一台主机的网卡处于混杂模式的时候,那么所有到达该计算机的数据包全部都会交给IP层进行处理,即使数据包的物理地址和本机的物理地址不同,它也不会将数据包丢弃。所以,在局域网环境下,同一根网线上传输的数据包都会被接收,然后再通过对接收的数据进行解析破解,就可以得到用户想要的数据了。

流量统计

路由器是一种连接多个网络和网段的设备,它能将不同网络和网段的信息进行解码、然后重新编码,使其网络间能够互相连挠,路由器可以根据数据包的目的地址选择最有效、最简捷的路径与其他网络实现连接,然后形成一个更大的网络,这样就能够最大程度的实现网络问的资源共享。它是流量数据出入的咽喉,局域网中所有到因特网的网络流量都必须经过路由器。因此,路由器充当了数据采集的角色。通过路由器对网络流量的数据进行采集的方法也有很多种,如show IP account命令、SNMP协议Telnet程序等。因为路由器的主要功能是帮助IP数据包选择正确的路由,时期更快捷的到达目的地址,因此,我们通常不使用其本身自带的记录功能获取网络流量的数据统计,否则就会大大降低路由器的选择功能。从路由器上获取数据包的流量统计我们一般使用SNMP协议和Telnet程序的方法。

通过对网络的数据流量进行统计的方法还有很多,每种方法都有其利弊之处,通过路由器实现网络数据流量的统计方法具有以下特点:

数据流量的统计精确

因为路由器是流量数据出入的咽喉,是实现网络间相互连接的重要的设备,网络间的通信都必须通过路由器的转换来完成。路由器的任务就是根据数据包的目的地址选择相应的路由,然后与其他的网络连接。因此,路由器可以准确的反映除了出入的网络数据流量。

使计费服务器不受地点限制

对网络的数据流量进行统计和监测的最终目的就是对其进行收费,由于各种统计方式本身的局限性使得计费的服务器必须要放在计费网段之内。结果就导致了有多少个计费网段就需要多少个计费服务器,大大增加了工作量。而如果使用路由器就会达到事半功倍的效果,我们只要计费服务器能够通过网络访问到网段所在的路由器就可以实现通过一个计费服务器完成所有网络流量的数据采集丁作,至于计费服务器位于哪个计费网段并不重要。而且,这种计费所使用的路由器并不需要太复杂,也不需要增加其他硬件,实现起来比其他的计费方式简单。

与其他网络管理功能的一致性

因特网采用的是标准的网络管理协议SNMP,而路由器也主要通过SNMP协议的L些命令对网络数据流量进行统计和监测。这样就保证了在数据采集手段上与其他网络管理功能的一致性。

缺点

一方面,路由器的主要功能是实现数据的路由选择,帮助数据包选择最快捷的路径,使其尽快把数据出送到目标地址。然而,使用路由器对网络数据流量进行统计就会额外的占用路由器的内存和CPU开销,特别是对于通信流量比较大的网络,其矛盾会更加突出。严重的会导致计费缓冲区出现溢出的情况,导致出入的流量数据的丢失,最终也会影响网络的速度。另一方面,路由器是针对IP地址进行流量计费的,因此它不支持对用户的流量计费,也不能防止有心人士对IP地址的盗用,所以也会影响对网络数据流量的统计与监测。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}