TCP/IP学习(四)— IP网际协议

一、IP协议介绍

    IP协议是TCP/IP协议的核心,负责Internet上网络之间的通信,定义了数据传输的基本单元和格式。IP协议的主要功能有:无连接数据报传送、数据报路由选择和差错控制。

二、IP协议特点

  • 不可靠,即不可靠的数据投递服务。IP协议不能保证将数据包成功的送达目的地,数据报可能在线路延迟、路由错误、数据报分片和重组等过程中受到损坏,但IP不检测这些错误。在错误发生时,IP也没有可靠的机制来通知发送方或接收方。所以要保准数据准确的送达目的地,需要依靠上层协议支持(如TCP)。
  • 无连接,及IP协议不会维护IP数据报发送之后的状态信息。每个数据报的处理都是相互独立,也就是说一个信息可能包含很多数据报,这些数据报发送出去后,接收的顺序是随意的,不一定按照发送的顺序来接收。
  • 尽最大努力投递服务。尽管IP层提供的是面向非连接的不可靠服务,但是,IP并不随意地丢弃数据报。只有当系统的资源用尽、接收数据错误或网络故障等状态下,IP才被迫丢弃报文。

三、IPv4

       1.IPv4地址的主要特点有:

  • IP地址是一种非等级的地址结构,IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。

  • 当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号码Net-id是不同的,这种主机称为多地址主机(Multihomed Host)。主机上的每个接口都对应着一个IP地址,因此多接口主机会有多个IP地址。

  • 在IP地址中,所有分配到网络号码Net-id的网络都是平等的。

        2.IPv4地址分类

           为了方便IP地址的管理及组网,IP地址分成五类,如下图所示。

                                    

     目前大量使用的IP地址属于A、B、C三类IP地址中的一种。D类地址是组播地址,E类地址保留。A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。在IETF(Internet Engineering Task Force)发布的RFC1166 Internet Numbers中详细描述了各类IP地址。

         3.IPv4报文格式

            IPv4报文格式如下图所示。

         

一个IPv4数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20个字节,是所有IPv4数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

       主要字段的解释如下表所示。

字段

长度

含义

版本

4比特

IP协议的版本号,分为IPv4和IPv6协议。

首部长度

4比特

IPv4的首部长度。

区分服务

8比特

用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。

总长度

16比特

指首部和数据之和的长度。

标识

16比特

IPv4软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。

标志

3比特

目前只有两位有意义。最低位为1表示后面“还有分片”的数据报,为0表示这已经是最后一个数据片;中间一位为1表示“不能分片”,为0才允许分片。

片位移

13比特

指出较长的分组在分片后,该片在原分组中的相对位置。

生存时间

8比特

表示数据报在网络中的寿命,英文缩写是TTL(Time To Live),功能是“跳数限制”。

协议

8比特

指出此数据报携带的数据是使用何种协议。

首部检验和

16比特

数据报每经过一个路由器,路由器都要重新计算一下首部检验和,若首部未发生变化,则此结果必为0,于是就保留这个数据报。这个字段只检验数据报的首部,但不包括数据部分。

源地址

32比特

报文发送方的IPv4地址。

目的地址

32比特

报文接收方的IPv4地址。

选项字段(长度可变)

0~40字节

用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。

数据部分

可变

用来填充报文。

四、IPv6

        IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。

       IPv6报文的整体结构分为IPv6报头、扩展报头和上层协议数据3部分。IPv6报头是必选报文头部,长度固定为40B,包含该报文的基本信息;扩展报头是可选报头,可能存在0个、1个或多个,IPv6协议通过扩展报头实现各种丰富的功能;上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6I报文、TCP报文、UDP报文或其他可能报文。

IPv6的报文头部结构如图:

版本号表示协议版本.值为6
流量等级主要用于QoS
流标签用来标识同一个流里面的报文
载荷长度表明该IPv6包头部后包含的字节数,包含扩展头部
下一报头该字段用来指明报头后接的报文头部的类型,若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型,它是IPv6各种功能的核心实现方法
跳数限制该字段类似于IPv4中的TTL,每次转发跳数减一,该字段达到0时包将会被丢弃
源地址标识该报文的来源地址
目的地址标识该报文的目的地址

扩展头部:IPv6报文中不再有“选项”字段,而是通过“下一报头”字段配合IPv6扩展报头来实现选项的功能。使用扩展头时,将在IPv6报文下一报头字段表明首个扩展报头的类型,再根据该类型对扩展报头进行读取与处理。每个扩展报头同样包含下一报头字段,若接下来有其他扩展报头,即在该字段中继续标明接下来的扩展报头的类型,从而达到添加连续多个扩展报头的目的。在最后一个扩展报头的下一报头字段中,则标明该报文上层协议的类型,用以读取上层协议数据。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值