IPv4 |
基本信息编辑本段回目录
IPv4位置 |
近年来Internet呈指数级的飞速发展,导致IPv4地址空间几近耗竭。IP地址变得越来越珍稀,迫使许多企业不得不使用NAT将多个内部地址映射成一个公共IP地址。地址转换技术虽然在一定程度上缓解了公共IP地址匮乏的压力,但它不支持某些网络层安全协议以及难免在地址映射中出现种种错误,这又造成了一些新的问题。而且,靠NAT并不可能从根本上解决IP地址匮乏问题,随着连网设备的急剧增加,IPv4公共地址总有一天会完全耗尽。
Internet主干网路由器维护大型路由表能力的增强。目前的IPv4路由基本结构是平面路由机制和层次路由机制的混合,Internet核心主干网路由器可维护85000条以上的路由表项。
地址配置趋向于要求更简单化。目前绝大多数 IPv4地址配置需要手工操作或使用DHCP(动态宿主机配置协议)地址配置协议完成。随着越来越多的计算机和相关设备使用IP地址,必然要求提高地址配置的自动化程度,使之更简单化,且其他配置设置能不依赖于DHCP协议的管理。
IP层安全需求的增长。在Internet这样的公共媒体上进行专用数据通信一般都要求加密服务,以此保证数据在传输过程中不会泄露或遭窃取。虽然目前有IPSec协议可以提供对IPv4数据包的安全保护,但由于该协议只是个可选标准,企业使用各自私有安全解决方案的情况还是相当普遍。
更好的实时QoS支持的需求。IPv4的QoS标准,在实时传输支持上依赖于IPv4的服务类型字段(TOS)和使用UDP或TCP端口进行身份认证。但IPv4的TOS字段功能有限,而同时可能造成实时传输超时的因素又太多。此外,如果IPv4数据包加密的话,就无法使用TCP/UDP端口进行身份认证。
为了解决上述问题,Internet工程任务组(IETF)开发了IPv6。这一新版本,也曾被称为下一代IP,综合了多个对IPv4进行升级的提案。在设计上,IPv6力图避免增加太多的新特性,从而尽可能地减少对现有的高层和低层协议的冲击。
协议结构编辑本段回目录
Version-4位字段,指出当前使用的IP版本。
IPHeaderLength(IHL)―指数据报协议头长度,具有32位字长。指向数据起点。正确协议头最小值为5。
Type-of-Service―指出上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。
TotalLength―指定整个IP数据包的字节长度,包括数据和协议头。其最大值为65,535字节。典型的主机可以接收576字节的数据报。
Identification―包含一个整数,用于识别当前数据报。该字段由发送端分配帮助接收端集中数据报分片。
Flags―由3位字段构成,其中低两位(最不重要)控制分片。低位指出数据包是否可进行分片。中间位指出在一系列分片数据包中数据包是否是最后的分片。第三位即最高位不使用。
FragmentOffset―13位字段,指出与源数据报的起始端相关的分片数据位置,支持目标IP适当重建源数据报。
Time-to-Live―是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据包无止境的环路过程。
Protocol―指出在IP处理过程完成之后,有哪种上层协议接收导入数据包。
HeaderChecksum―帮助确保IP协议头的完整性。由于某些协议头字段的改变,如生存期(TimetoLive),这就需要对每个点重新计算和检验。Internet协议头需要进行处理。
SourceAddress―指定发送代码。
DestinationAddress―指定接收代码。
Options―允许IP支持各种选项,如安全性。
Data―包括上层信息。编辑本段TCP/IP协议栈
地址格式编辑本段回目录
IPv4中规定IP地址长度为32,即有2^32-1个地址。一般的书写法为4个用小数点分开的十进制数。也有人把4位数字化成一个十进制长整数,但这种标示法并不常见。另一方面,IPv6使用的128位地址所采用的位址记数法,在IPv4也有人用,但使用范围更少。过去IANAIP地址分为A,B,C,D4类,把32位的地址分为两个部分:前面的部分代表网络地址,由IANA分配,后面部分代表局域网地址。如在C类网络中,前24位为网络地址,后8位为局域网地址,可提供254个设备地址(因为有两个地址不能为网络设备使用:255为广播地址,0代表此网络本身)。网络掩码(Netmask)限制了网络的范围,1代表网络部分,0代表设备地址部分,例如C类地址常用的网络掩码为255.255.255.0。
特殊的IP地址段:
-127.x.x.x给本地网地址使用。
-224.x.x.x为多播地址段。
-255.255.255.255为通用的广播地址。
-10.x.x.x,172.16.x.x和192.168.x.x供本地网使用,这些网络连到互连网上需要对这些本地网地址进行转换(NAT)。但由於这种分类法会大量浪费网路上的可用空间,所以新的方法不再作这种区分,而是把用者需要用的位址空间,以2的乘幂方式来拨与。例如,某一网路只要13个ip位址,就会把一个16位址的区段给他。假设批核了61.135.136.128/16的话,就表示从61.135.136.129到61.135.136.142的网址他都可以使用。
IP包长编辑本段回目录
IP包由首部(header)和实际的数据部分组成。数据部分一般用来传送其它的协议,如TCP,UDP,ICMP等。数据部分最长可为65515字节(Byte)(=2xx16-1-最短首部长度20字节)。一般而言,低层(链路层)的特性会限制能支持的IP包长。例如以太网(Ethernet)协议,有一个协议参数,即所谓的最大传输单元(MaximumTransferUnit,MTU),为1518字节,以太网的帧首部使用18字节,剩给整个IP包(首部+数据部分)的只有1500字节。还有一些底层网络只能支持更短的包长。这种情况下,IP协议提供一个分割(fragment)的可选功能。长的IP包会被分割成许多短的IP包,每一个包中携带一个标志(Fragmentid)。发送方(比如一个路由器)将长IP包分割,一个一个发送,接送方(如另一个路由器)按照相应的IP地址和分割标志将这些短IP包再组装还原成原来的长IP包。
IP路由编辑本段回目录
Ipv4并不区分作为网络终端的主机(host)和网络中的中间设备如路由器中间的差别。每台电脑可以即做主机又做路由器。路由器用来联结不同的网络。所有用路由器联系起来的这些网络的总和就是互联网。IPv4技术即适用于局域网(LAN)也适用于广域网。一个IP包从发送方出发,到接送方收到,往往要穿过通过路由器连接的许许多多不同的网络。每个路由器都拥有如何传递IP包的知识,这些知识记录在路由表中。路由表中记录了到不同网络的路径,在这儿每个网络都被看成一个目标网络。路由表中记录由路由协议管理,可能是静态的记录比如由网络管理员写入的,也有可能是由路由协议动态的获取的。有的路由协议可以直接在IP协议上运行。常用的路由协议有
路由信息协议(RoutingInformationProtocol,RIP),
开放式最短路径优先协议,OpenShortestPathFast,OSPF),
中介系统对中介系统协议(IntermediateSystem–IntermediateSystem,IS-IS),
边界网关协议(BorderGatewayProtocol,BGP).在网络负荷很重或者出错的情况下,路由器可以将收到的IP包丢弃。在网络负荷重的时候,同样一个IP包有可能由路由器决定走了不同的路径。路由器对每一个IP包都是单独选择路由的。这也提高了IP通信的可靠性。但单是IP层上的包传输,并不能保证完全可靠。IP包可能会丢失;可能会有重复的IP包被接受方收到;IP包可能会走不同的路径,不能保证先发的先到;接受方收到的可能是被分割了的IP包。在IP之上再运行TCP协议则解决这些缺点提供了一个可靠的数据通路。
IP包首部格式编辑本段回目录
IPv4首部一般是20字节长。在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字节4个字节的扩展)。
IP包头字段说明:版本:4位,指定IP协议的版本号。包头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5(5x4=20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。服务类型:定义IP协议包的处理方法,它包含如下子字段::过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~7(网络控制)::延迟字段:1位,取值:0(正常)、1(期待低的延迟)::流量字段:1位,取值:0(正常)、1(期待高的流量)::可靠性字段:1位,取值:0(正常)、1(期待高的可靠性)::成本字段:1位,取值:0(正常)、1(期待最小成本)::未使用:1位长度:IP包的总长标识:唯一地标识主机所发送的一个数据段,通常每发送一个数据段后加一。但IP包被分割后,分割得到的IP包拥有相同的标识标志:是一个3位的控制字段,包含:::保留位:1位::不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)::更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)段偏移量:当数据段被分割时,它和更多段位(MF,Morefragments)进行连接,帮助目的主机将分段的包组合。TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。校验和:16位,是IPv4数据报包头的校验和。