初步学习IP协议

IP协议(Internet protocol)是网络层最核心的协议,IP协议根据数据包的目的IP来决定如何投递它。


IP协议特点

  • 无状态

就是所有IP数据报的发送,传输,接收都是互相独立,没有上下文关系的。所以它带来的缺点就是无法处理乱序和重复的数据报,

 虽然IP报头有16位的标识可以唯一的标识数据报,但它被用来处理IP分片。当然无服务的优点是  高效  简单。无需为保持通信而分配内核资源,也不用每次都传输数据都携带状态信息。

  • 无连接

IP通信双方都不长久的维持对方的任何信息,所以每次发送数据的时候都要明确对方的IP地址。

  • 不可靠

不可靠是指IP协议不能保证数据包能准确到达接收端,只是、承诺尽最大努力。

IPv4的头部结构

 

4位版本号:IP协议的版本号

4位头部长度:标识出该IP报头有多少个4字节,因为4位最大能表示到5,所以IP头部长度最大为60字节

8位服务类型:4位的TOS字段和一位的保留字段(必须置0)

16位总长度:整个IP数据报的长度,以字节为的单位.所以IP数据报的最大长度为2^16-1,但是由于MTU(帧的最大传输单元)的限制,长度超过MTU的数据报都会被分片传输,所以IP数据报的长度都远远没有达到最大值。

16位标识:用于唯一的标识数据报,其初始值由系统随机生成,每发送一个数据报都将其值加1,该值再分片时被复制到每个分片中,所以一个数据报的所有分片都有相同的标识。

3位标识字段:第一位保留,第二位标识“禁止分片”,如果设置了这个位,IP模块就不会对数据报地进行分片,这时候如果数据包的长度超过MTU,就将丢弃数据报 并返回一个ICMP差错报文。第三位标识“更多分片”,除了数据报的最后一个分片外,其他分片都要将此位设置为1.

13位分片偏移:是分片相对于原始数据报开始出数据部分的偏移。实际的偏移值是该值左移3位(乘8)得到的。所以IP分片的数据部分长度都是必须是8的倍数(以此来保证后面的IP分片有合适的偏移值)

8位生存时间:Time to Live,TTL.  是数据报到达目的地之前允许经过的路由器的跳数。当TTL减为0时,路由器将丢弃数据报。并向源端发送一个ICMP错误报文,TTL可以防止数据报进入路由循环。

8位协议:用来区分上层协议。

16位头部校验和:由发送端填充,接收端对其使用CRC算法以检验IP数据报头部在传输过程中有没有损坏。

32位的源端地址和32位的目的地址:用来标识数据报的发送端和接收端。

选项字段:可变长的可选字段,最多包含40个字节。

IP模块工作流程

如果IP数据报的头部目的IP地址是本机的某个IP地址,或者是广播地址,即这个该数据报是发送给本机的,则IP模块就会根据报头的协议字段决定将它发送到哪个上层应用。如果不是发送给本机的,则数据转发子模块就会检测数据是否是允许发送的,如果不允许,IP模块就会将数据丢弃。如果允许,数据报转发子模块将会对数据报执行一些处理,然后交给IP模块的输出子模块。

IP的输出队列存放所有等待发送的IP数据报,其中除了需要转发的IP数据报外,还包括封装了本机上层数据(ICMP报文,TCP报文段和UDP报文段)的IP数据报。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值