协议簇:IPv4 解析

本文详细介绍了IPv4协议的基本原理,包括寻址、分片功能及其在实际网络传输中的作用。通过分析IPv4头部的各个字段,如Version、IHL、Flags和Fragment Offset,阐述了数据包如何在不同链路上被正确处理和分片。此外,通过实例展示了如何利用Wireshark抓包工具分析未分片和分片IP数据包,进一步理解IP分片的过程和规则。
摘要由CSDN通过智能技术生成

简介

IP 是一种无连接的协议. 操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包。

尽最大努力意味着:
IP 协议不保证数据的可靠传输, 没有流量控制机制, 不保证传输序列(意味着 IP 数据包会在传输过程中乱序), 没有接受确认 (ACK) 机制, 也没有重传机制.

主要功能

IP 协议提供了两个基本的功能 寻址(Address)分片(Fragmentation).

这里我们先简单看一下概念,后面会详细分析具体是如何实现的.

寻址(Address)

IP 协议定义了 32 bit 的 IP 地址. IP 协议的实现模块会根据 IP 数据包头部中的目的地址发送/转发数据包到目的地址.

  1. 数据包在由源地址到目的地址的过程中,可能会经过多个中间节点, 这些节点需要使用适当的路由协议转发数据包。也可能丢弃数据包。
  2. IP 协议实现模块认为每个 IP 数据包都是独立的,任意两个 IP 数据包之间没有任何联系.

IP 协议还提供了以下机制来配置 IP 协议提供的服务:

  1. Type of Service: 用来保证 IP 协议服务的的质量.
  2. Time to Live: 指定一个 IP 数据包的生命周期的上限. 这个值由发送发设置,该数据包没经过一个中间节点,该数据包中的 Time to Live 值便减少1,当这个值变为零并且还未到达目的地址,该数据包会在该中间节点被丢弃.
  3. Options: 一些控制位,在某些情况下会被使用.
  4. Header Checksum: 用来检测数据包在传输过程中是否发生了错误. 如果在某个节点发现数据出错,数据会在该节点被丢弃.

分片(Fragmentation)

由于不同的物理链路对于数据的最大长度有着不同的限制,因此 IP 数据在传输过程中可能会被拆分为多个较小的数据包进行传输.

发送方可以将数据包设置为 ”don‘t fragment", 这种数据包会被丢弃当数据包的大小大于当前物理链路的最大数据包限制.

IPv4 Header 格式

IP Header Format
接下来,我们逐一介绍一下每个字段的含义:

  1. Version: 4 bit. 表明当前 IP 协议的版本.
  2. IHL: 是 Internet Hander Length 的缩写,长度为 4 bit. 它的值是一个整数,指向 IP 数据包中所承载的实际数据的开始字节
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值