网际协议

一、IP地址分类与子网掩码

Classful Routing规定,IP地址有五种分类:A, B, C, D, E.
- A类地址:前8位是0~126(127不可用)的IP地址。它们的 网络地址是前8位, 主机地址是后24位。   如
07位网络号24位主机号
- B类地址:前8位是128~191的IP地址。它们的 网络地址是前16位, 主机地址是后16位。
- C类地址:前8位是192~223的IP地址。他们的 网络地址是前24位, 主机地址是后8位。
- D类和E类地址:前8位是224~255之间的地址。D类用于 组播,E类用于科学实验。
其中主机号可以被划分为子网号加主机号。如B类地址150.14.1.12
16位网络号8位子网号8位主机号
而子网掩码是用来划分子网号与主机号的。如上面例子中,子网掩码为11111111 11111111 11111111 00000000(即255.255.255.0),24个1表示前24位为非主机号,后8位为主机号。
当然,默认状态下,子网掩码前面为8、16、24个1。此类位有类路由地址。相对应的,存在无类路由地址,该地址下子网长度是可变的,可以变成其他数值如23个或者25个1。如B类地址140.117.13.65/23中/23表示有23个1。

二、IP封装

IP数据报格式如下:

   (1)版本:4位,用来指明所使用的IP的版本号。IP当前使用的版本号为4,因此换成二进制就是“0100”。
    (2)IHL:4位, IHL字段指定IP报头的长度(以32位为单位),这是由于“任选项+填充”字段是可变的,因此IP报头的总长度是可变的。但因为IHL字段只有4位,意味着IP报头的最大长度只能是15个32位长的字(即60个字节)。其中报头中固定长度的部分有20个字节。所以“任选项+填充”字段最大长度只能是40个字节。注意IHL与总体长度的区别。
    (3)服务类型TOS:8位,服务类型通知IP协议如何处理IP报。其中3位表示优先级(现已被忽略),4位表示服务类型TOS (Type Of Service),1位未用但必须置零。4位的服务类型TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用参数。4位中只能置其中1位为1,一旦某位被设置为1,则意味着要求数据报的传输应满足相应的要求。如果所有4位均为0,则意味着是一般服务。
    (4)总体长度:16位,指定了IP数据报的总长(以字节为单位),包括报头和有效负载。总长度字段是指整个IP数据报的长度,以字节为单位。利用报头长度字段和总长度字段,我们就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据报最长可达65535字节。当数据报被分片时,该字段的值也随着变化。尽管可以传送一个长达65535字节的IP数据报,但是大多数的链路层都会对它进行分片。而且,主机也要求不能接收超过576字节的数据报。由于TCP把用户数据分成若干片,因此一般来说这个限制不会影响TCP。我们在后面的章节中将遇到大量使用UDP的应用(RIP, DNS以及SNMP),它们都限制用户数据报长度为512字节,小于576字节。但是,事实上现在大多数的实现(特别是那些支持网络文件系统,NFS的实现)允许超过8192字节的IP数据报。      • 总长度字段是IP报头中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46字节,但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。
    (5)标识号:16位,标识号字段唯一地标识主机发送的每一份数据报。是一个递增序号,通常每发送一份报文它的值就会加1,用于数据报的分段与重装。RFC 791 认为标识字段应该由让IP发送数据报的上层来选择。假设有两个连续的IP数据报,其中一个是由TCP生成的,而另一个是由UDP生成的,那么它们可能具有相同的标识字段。
    (6)分段标志:3位,是数据报是否分段的标志。
    (7)分段号:13位,这是赋予每个相连数据报段的一个数值。目的地的IP协议软件使用该分段号,将数据报段重新组合成正确的数据报。
    (8)生存期:8位,允许数据报在网间传输的时间(以秒或路由器划分的跳为单位)。当IP数据报经过每个路由器时,路由器查看该值并且至少将它递减1,或者减去该数据报在路由器内延迟的秒数。当该字段的值达到0时,该数据报即被删除。
    (9)协议:8位,指出发送数据报的上层协议的代码。如:“1”代表ICMP,“6”代表TCP,“17”代表UDP等。根据它可以识别是哪个协议向IP传送的数据。
    (10)报头校验和:16位,用于对报头的正确性检查,为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对报头中每个16 bit的二进制反码进行求和(整个报头看成是由一串16 bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样对报头中每个16 bit的二进制反码进行求和。由于收方在计算过程中包含了发方存在报头中的检验和,因此报头在传输过程中没有发生任何差错时,收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
    (11)源IP地址:32位,发送数据报的源主机IP地址。
    (12)目的IP地址:32位,接收数据报的目的主机IP地址。
    (13)任选项:可变长度,用于提供任选服务,如时间戳、错误报告和特殊路由等。最后一个字段是任选项,是数据报中的一个可变长的可选信息。目前,这些任选项定义如下:
    • 安全和处理限制(用于军事领域,详细内容参见RFC 1108[Kent 1991])
    • 记录路径(让每个路由器都记下它的IP地址)。
    • 时间戳(让每个路由器都记下它的IP地址和时间)。
    • 宽松的源站选路(为数据报指定一系列必须经过的IP地址)。
    • 严格的源站选路(与宽松的源站选路类似,但是它要求只能经过指定的这些地址,不能经过其它的地址)。
    • 这些选项很少被使用,并非所有的主机和路由器都支持这些选项。
    (14)填充:可变长度,由于选项字段一直都是以32 bit作为界限,在必要的时候插入值为0的填充字节。这样就保证IP报头始终是32 bit的整数倍(这是报头长度字段所要求的)。
   

 三、IP路由选择

1)网络层用于封装数据并发送分组。对于主机来说,如果目的主机与源主机直接相连或在一个共享网络上(以太网或令牌环路),那么IP数据报就直接送到目的主机上。否则,主机将数据报发往一默认的路由器上,由路由器来转发该数据报。

 

 

2)网络中的IP地址

****同一局域网内主机或路由器的IP地址相同

****路由器具有两个及以上的IP地址

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值