IP协议
简介
IP协议是网络层协议,目前主要有两种架构,IPV4和IPV6,IPV4是目前应用广泛的互联网协议。
工作原理
- 分片
当IP数据报的长度超过帧的MTU时,它将被分片传输。分片可能发生在发送端,也可能发生在中转路由器上,而且可能在传输过程中多次分片,但只有在最终的目标机器上,这些分片才会被内核中的IP模块重新组装。
- 增加协议头
- Type Of Service:服务的类型,是为了响应不同的用户诉求,用来选择延迟、吞吐量和丢包率之间的关系。
- IHL(Internet Header Length):IP协议头的大小。
- Total Length:报文(封包datagram)的长度。
- Identification:报文的ID,发送方分配,代表顺序。
- Fragment offset:描述是否要分包(拆分),和如何拆分。
- Time To Live:封包存活的时间。
- Protocol:描述上层的协议,比如TCP=6,UDP=17
- Options:可选项
- Checksum:检验封包的正确性
- 寻址
给一个地址,然后找到这个东西,IPv4地址(32位):逐级寻址。
- 路由
若寻找的IP地址不在局域网中,需要路由找到去往对应网络的路径;IP地址和子网掩码位与的过程是由路由算法实现的。
IP服务的特点
- 无状态
IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是相互独立、没有上下文关系的。这种服务最大的缺点就是无法处理乱序和重复的IP数据报。面向连接的协议,比如TCP协议,能够自己处理乱序的、重复的报文段,它递交给上层协议的内容绝对是有序的、正确的。无状态服务的优点也很明显:简单、高效。我们无需为保持通信的状态而分配一些内核资源,也无需每次传输数据时都携带状态信息。
- 无连接
IP通信双方都不长久地维持对方的任何信息。这样上层协议每次发送数据的时候,都必须明确指定对方的IP地址。
- 不可靠
IP协议不能保证IP数据报准确地到达接收端,它只是承诺尽最大努力。很多情况都可以导致IP数据报发送失败。比如,某个中转路由器发现IP数据报在网络上存活地时间太长,那么它将丢弃该报文,并返回一个ICMP错误消息给发送端。因此,使用IP服务地上层协议需要自己实现数据确认、超时重传等机制以达到可靠传输的目的。
IPv6和IPV4的区别
- 地址
IPv4长度为32位,文本格式为 nnn.nnn.nnn.nnn,总数为 4 294 967 296;IPv6长度为 128 位(16个字节),文本格式为 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,IPv6 地址的数目比 IPv4 地址的数目大 1028(79 228 162 514 264 337 593 543 950 336)倍。
- 寻址
IPv4通过子网掩码计算网络地址;
IPv6有固定的计算方式划分网络。如下:
站点前缀
(Site Prefix):48bit,一般是由ISP(Internet Service Providor,运营商)或者RIR(Regional Internet Registry, 地区性互联网注册机构)。RIR将IP地址分配给运营商。
子网号
(Subnet ID):16bit,用于站点内部区分子网。
接口号
(Interface ID):64bit,用于站点内部区分设备。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~