Internet协议(Internet Protocol,IP)成功实现了内部网络和Internet的连接,在Internet的发展过程中,IPv4起到了不可磨灭的作用。它是一个健壮的协议,这一点在Internet中被大部分人们所认可,在网络中,几乎所有的工作站和服务器都具有IPv4地址。 1.IP地址发展过程
自从1969年美国国防部授权ARPANET进行互联网的试验,就宣告了互联网的诞生,IP地址也随之启用。在当时,由于主机数量很少,IP地址主要用于区分不同主机,人们对IP地址的使用相当自由,但随着主机的增多,这种现象的很多弊端也显露出来。
在1982年,随着网络传输控制协议(TCP)和网际协议(IP)的制定,一般被简称为TCP/IP协议,因特网开始使用IPv4地址,它由32位二进制数组成,通常采用点分十进制数来表示。为了给不同规模的网络提供必要的灵活性,IP的设计者们将IP地址空间划分为几个不同的地址类别,地址类别的划分就针对于不同大小规模的网络,有效的解决了早期IP地址使用中所出现的弊端。
但是,随着Internet突飞猛进的发展,在IPv4中,无论是使用无类域间路由(CIDR)技术还是网络地址转换(NAT)技术,都无法阻止IPv4地址资源耗尽的问题,对下一代IP协议中足够大的IP地址空间的要求已迫在眉睫。为了满足互联网日益膨胀的地址需求,IETF(Internet Engineering Task Force互联网工程专门工作组)从1994年7月开始经过多年的研究后提出了IP协议的下一版本IPv6,目前人们已经开始了对IPv6地址的推行和局部应用。 2.IPv4数据报
IPv4数据报是互联网中最基本的数据传输单元,它包括一个报头以及与更高层协议相关的数据。在网络中进行传输的数据,必须在Internet层附加IP报头信息,将其封装成IP数据报,然后才能够传输。其数据报格式如图4-1所示。
0版本4报头长度标识生存周期协议源IP地址目的IP地址IP选项数据填充8服务类型标记1624总长度片偏移头部校验和32
图4-1 IP数据报格式
版本(Version) 该字段长度为4bit,用于表示与数据报对应的IP协议的版本号。不同版本号的IP协议,其数据报格式不同。目前通用的IP协议版本号为4,即IPv4。
报头长度(Internet HeaderLength,IHL)
该字段长度为4bit,指出以32bit长计算的报头长度,IP数据报头中除IP选项域外,其他各域都为定长域,各定长域长度为20字节,因此一个不含选项域的普通IP数据报其报头
长度域为5。总之,报头长度应为32bit的整数位,若不是,则在报头尾部添加0补齐。
服务类型(Type of Service,TOS)
它规定了对本数据报的处理方式。其长度为8bit,被分为5个子域,其子域结构如图4-2所示。
0..1..2优先权3D(低延迟)4T(高吞吐率)5R(高可靠性)6..7未使用
图4-2 服务类型子域结构
在服务类型子域结构中,3bit的优先权子域指示当前数据报的优先权,用于表示当前数据报的重要程度。优先权取值从0到7,其中0表示一般优先权,而7表示网络控制优先权,优先权的值由用户来指定。
通常控制信息的优先权要高于一般数据。接着的三位数据表示了当前数据报所需要的传输类型。它只是用户的请求,不具有强制性,但在路由时可以用它来作为参考。
总长度(Total Length)
该字段是指包括IP报头在内的数据单元的总长度。它占16bit,,以字节为单位。其总长可达到216-1(即65535)个字节
标识(Identification)
是信源主机赋予数据报的标识符,目的主机利用标识符和信源地址判断接收到的分组属于哪个数据报,以便数据报重组。在数据报分片时,该域必须不做任何修改地复制到新数据片头部,数据报标识符的实现原则是对于同一信源主机各标识符必须是唯一的
标记(Flags) 该字段为3bit,用于控制数据报的分片和重组。它包括一个DF、MF子域,分别占1bit,还有未使用的1bit。当DF=0时允许分片,当DF=1时不允许分片;当MF=1时表示后面还有分片的数据报,当MF=0时表示该分片为最后一个数据报分片
片偏移(Fragment Offset)
该域长度为13bit,也用于数据报的分片和重组控制,它指出本片数据在初始数据报中的偏移量,以8个字节为单位。由于各片都按独立数据报的方式传输,其到达目的主机的顺序无法保证,因此,重组的片顺序由片偏移域提供
生存周期(Time To Live,TTL)
该字段为8bit,是一个用来限制数据报分片生存周期的计数器。该计数器以秒为单位,必须在每个节点中都递减,而且当在一个路由器中延迟时间过长时,可以成倍数递减。当生存周期减到零时,该数据报将被丢弃。
协议(Protocol,PROT)
指出数据报携带的传输层数据使用的协议类型,以便目的主机的互联网层将数据报上交给相应的进程。常见的协议类型包括TCP、UDP、ICMP等
头部校验和(Header checksum)
该域只校验数据报的头部,不包括数据部分,其长度为16bit。其计算方法为,当目的主机接收到数据报时,对头部数据每16位求异或,结果取反。如果校验出错,便将该数据报丢弃
源IP地址(Source IP Address) 即发送IP数据包的IP地址
目的IP地址(Destination IP Address) 即接收IP数据包的IP地址。
IP选项(Options) 其长度可变,主要用来存放安全加密、报文路径、错误调试
报告、网际时间戳等信息
填充(Padding) 主要用于补齐32bit的边界
因篇幅问题不能全部显示,请点此查看更多更全内容