什么是 IP 协议
IP(Internet Protocol)是一种网络通信协议,它是互联网的核心协议之一,负责在计算机网络中路由数据包,使数据能够在不同设备之间进行有效的传输。IP协议的主要作用包括寻址、分组、路由和转发数据包,并为上层协议提供无状态、无连接、不可靠的服务。
- 无状态:无状态是指 IP 通信双方是不同步传输数据的状态信息。所有 IP 数据报的发送、传输和接收都是相互独立。
- 无连接:无连接是指IP通信双方都不长久地维持对方的任何信息。上层协议每次发送数据的时候,都需要明确指出对方的IP地址。
- 不可靠:不能保证 IP 数据报准确到达接收端,它只承诺尽最大努力交付。IP 模块一旦检测到数据报发送失败,就通知上层协议,而不会试图重传。
注意,IP协议负责的是数据包的路由。其作用类似于邮政系统中的邮政地址。它为数据包提供了唯一的地址,并规定了如何将数据包从发送方路由到接收方。
举个例子理解一下:想象一封电子邮件从您的计算机发送到朋友的计算机。在这个过程中,IP协议充当了邮递员的角色。它确保邮件(数据包)具有正确的发送地址和接收地址,并且知道如何跨越网络中的路由点(类似邮局)以最终到达目的地。无论您的朋友身在世界的哪个地方,IP协议都能确保邮件准确地送达。
IP 协议头部
通过 IP 进行通信时,需要在数据的前面加入 IP 首部信息。IP 首部包含着用于 IP 协议进行发包控制时所有的必要信息。
- 版本
由 4 比特构成,用来标识 IP 首部的版本号。IPv4 版本号就是 4。 - 首部长度
表示 IP 首部的大小,单位是 4字节(32bit)。IP 头部的长度也就是 length * 4 的字节数. 当没有可选项时,length 是 5,也就是20字节。 - 区分服务(TOS)
用来表示服务的质量。可划分为 DSCP 和 ECN,DSCP 用来进行质量控制,ECN 用来报告网络拥堵情况。 - 总长度
表示的是 IP 首部 与数据部分合起来的总字节数,最大长度是 65535 字节。 - 标识
用于分片重组。同一个分片的标识值是相同的,不同分片的标识值不同。每发送一个 IP 包,它的值也会逐渐递增。 - 标志
表示包被分片的相关信息。每一位的具体含义如下图。
- 片偏移
用来标识被分片的每一个分段相对于原始数据的位置。 - 生存时间(TTL)
这个不是一个时间的概念,实际上是指可以中转多少个路由器的意思,每经过一个路由器,TTL会减少 1,直到变成0 则丢弃该包。 - 协议
表示 IP 首部的下一个首部属于哪个协议。 - 首部校验和
该字段只会校验数据包的首部,不会去校验数据部分。这个字段主要目的是用来确保 IP 数据包不被破坏。 - 源地址
表示发送端的 IP 地址。 - 目标地址
表示接收端的 IP 地址。 - 可选字段
长度可变,通常只在进行实验或诊断时使用。 - 填充
在有可选字段的情况下,首部长度可能不是 32 比特的整数倍。通过向字段填充 0,调整为 32 比特的整数倍。 - 数据
用来存入实际要传输的数据,同时将 IP 上层协议的首部也作为数据进行处理。
IP协议属于网络层的。TCP,UDP协议属于传输层的。
IP层是用于底层传输的,所以里面是有源地址和目标地址的。所以地址是属于IP层。
TCP/UDP属于上层应用,里面有端口,来找到具体的应用。
参考:
https://blog.csdn.net/weixin_67596609/article/details/133633592
https://blog.csdn.net/GG_Bruse/article/details/130640438