IP协议详解

Posted _Karry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP协议详解相关的知识,希望对你有一定的参考价值。

文章目录

IP服务的特点

IP协议为上层提供无状态、无连接、不可靠的服务
无状态是指IP通信双方不同步传输数据的状态信息,IP数据报的发送、传输和接受都是相互独立、无上下文关系的。最大的缺点是无法处理乱序和重复的IP数据报。接收端的IP模块只要收到了完整的IP数据报(如果是IP分片的话,IP模块先重组),就将其数据部分上交给上层协议。
虽然IP数据报头部提供了一个标识字段用以唯一标识一个IP数据报,但是这是为了处理分片和重组,而不是用来指示接收顺序。

无连接是指IP通信双方不长久地维持对方的任何信息。

不可靠是指尽最大努力交付,发送端的IP模块一旦检测到IP数据报发送失败,就通知上层协议发送失败,而不会试图重传。

IPv4头部结构


具体功能描述详见之前的文章

IP分片

当IP数据报的长度超过帧的MTU时,就会被分片。分片可能发生在发送端或者中转路由上,而且也可能在传输过程中被多次分片。最终在目标机器上重新组装

IP头部的数据报标识值、标志和片偏移为分片提供了足够信息。每个IP数据报都具有自己的IP头部,具有相同的标识值,但具有不同的片偏移。并且除了最后一个分片,其他分片都将设置MF标志。

IP路由

IP协议的一个核心任务是数据报的路由,即决定发送数据报到目的机器的路径。

从右往左看,如果IP数据报的头部中目的IP地址是本机IP地址或者广播地址,即该数据报是发送给本机的,则IP模块就根据数据报头部中的协议字段决定将它派发给哪个上层应用(分用)。

如果IP模块发现这个数据报不是发给本机的,就调用数据报转发子模块来处理该数据。
IP数据报应该发送至哪个下一跳路由(或者目标机器)以及经过哪个网卡来发送,就是IP路由的过程,其核心结构就是路由表。这个表按照数据报的目标IP地址分类,同一类型的IP数据报将被发往相同的下一跳路由(或者目标机器)

虚线箭头表示路由表更新的过程。这一过程是通过路由协议或者route命令调整路由表,使之更适应最新的网络拓扑结构。

以上是关于IP协议详解的主要内容,如果未能解决你的问题,请参考以下文章

第二章IP协议详解

《Linux高性能服务器编程》学习总结——IP协议详解

SNI协议分析

基于 CADisplayLink 的 FPS 指示器详解

IP数据报格式

Web协议详解与抓包实战:HTTP1协议-请求与响应的上下文