IP协议详解

从两个方面讨论IP协议:

1.IP头部信息。用于指定IP通信的源端IP地址,目的端IP地址,指导IP分片和重组以及指定部分通信行为。

2.IP数据报的路由和转发。

 

IPv4头部结构

             

 

 

IP路由

 

                              

 

当IP模块接收到来自数据链路层的IP数据报时,首先对该数据报的头部做CRC校验,确认无误之后就分析其头部的具体信息。若该IP数据报的头部设置了源站选路选项,则IP模块调用数据报转发子模块来处理。若目标IP地址是本机,即该数据报是发送给本机的。若IP模块发现这个数据报不是本机的,则调用数据报转发子模块来处理该数据报。


数据报转发子模块检测系统是否允许转发,若不允许,IP模块就将该数据报丢弃;若允许,数据报转发子模块将对该数据报执行一些操作,然后交给IP数据报输出子模块。

 

 

路由机制

使用route命令查看路由表

 

IP的路由机制:
1.查找路由表中和目标IP地址完全匹配的主机IP地址。若找到,就使用该路由项。没找到则转步骤2.

2.查找路由表中和数据报的目标IP地址具有相同网络ID的网络IP地址(即网关:表示处于同一个网络)。若找到,就使用该路由项。没找到则转步骤3.

3.选择默认路由项,这通常意味着数据报的下一跳路由是网关。

 

 

IP转发

路由器都能执行数据报的转发操作,而主机一般只发送和接受数据报,这是因为主机上 /proc/sys/net/ipv4/ip_forward 内核参数默认被设置为0。通过修改它使能主机的数据报转发功能 (修改为1).

 

对于允许IP数据报转发的系统(主机或路由器),数据报转发子模块将对期望转发的数据报执行如下操作:

1.检查数据报头部的TTL值。如果TTL值已经是0,则丢弃该数据报。

2.查看数据报头部的严格源路由选择选项。如果该选项被设置,则检测数据报的目标IP地址是否是本机的某个IP地址。若不是,则发送一个ICMP源站选路失败报文给发送端。

3.如果有比要,则给源端发送一个ICMP重定向报文,告诉它一个更合理的下一跳路由器。

4.将TTL值减1。

5.处理IP头部选项。

6.如果有必要,执行IP分片操作。

 

 

 

IPv6固定头部结构

                

 

 

IPv6扩展头部

可变长的扩展头部使得IPv6能支持更多的选项,并且很便于将来的扩展需要。

       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值