计算机网络第四章笔记(二)

一、主机发送IPv4数据报的过程

1. 交付方式

主机发送数据报前,需通过IP地址与子网掩码的逐比特逻辑与运算 ,判断目的主机与自身是否在同一网络,从而选择交付方式:

  • 直接交付 :同一网络内主机通信,无需路由器中转,直接发送数据报。

  • 间接交付 :不同网络主机通信,需将数据报发送给默认网关(路由器) ,由路由器中转。

2. 具体实例

已知:主机A的IP为10.1.1.1,子网掩码255.255.255.0;主机B的IP为10.1.1.2,主机C的IP为10.2.2.1。

  1. 主机A计算自身网络地址:10.1.1.1 & 255.255.255.0 = 10.1.1.0。

  2. 主机A计算主机B的网络地址:10.1.1.2 & 255.255.255.0 = 10.1.1.0(与自身一致,直接交付)。

  3. 主机A计算主机C的网络地址:10.2.2.1 & 255.255.255.0 = 10.2.2.0(与自身不同,间接交付 )。

3. 默认网关配置

  • 以太网1(10.1.1.0/24(10.1.1.0/24))主机的默认网关:路由器R的接口0(10.1.1.254)。

  • 以太网2(10.2.2.0/25(10.2.2.0/25))主机的默认网关:路由器R的接口1(10.2.2.126)。

二、路由器转发IPv4数据报的过程

1. 转发前提:正确接收数据报

路由器需确认收到的IPv4数据报满足两个条件:

  • 首部无差错(无字段缺失、非法值);

  • 生存时间(TTL)字段未到期。

2. 查表转发的具体步骤(以路由器R转发主机A→主机C的数据报为例)

  1. 提取目的地址 :数据报首部的目的IP为10.2.2.1。

  2. 路由表匹配(路由器R的路由表条目):

    |------------------------|--------------------------------------|-------|
    | 目的网络 | 地址掩码 | 下一跳 |
    | 10.1.1.0(10.1.1.0) | 255.255.255.0(255.255.255.0) | 接口0直连 |
    | 10.2.2.0(10.2.2.0) | 255.255.255.128(255.255.255.128) | 接口1直连 |

  3. 网络地址计算 :将目的IP10.2.2.1与路由表中10.2.2.0的掩码255.255.255.128做与运算,得到10.2.2.0,匹配第二条条目。

  4. 转发执行:按"接口1直连"的指示,从接口1将数据报直接交付给主机C。

3. 广播数据报的处理规则

路由器不转发广播IPv4数据报,包括:

  • 直接广播(如以太网1的10.1.1.255、以太网2的10.2.2.127);

  • 受限广播(255.255.255.255)。

→ 路由器是隔离广播域的核心设备。

4. 路由匹配的规则

  • 无匹配条目:丢弃数据报,并向源主机发送ICMP差错报文;

  • 多条匹配条目:采用最长前缀匹配原则(匹配掩码最长的条目)。

三、IPv4数据报分片

1. 分片原因

数据链路层有最大传输单元(MTU) (如以太网MTU=1500字节),若IPv4数据报总长度超过MTU,无法直接封装成帧,需拆分为更小的分片。

2. 分片相关首部字段

|-----|-------|--------------------------------------------------------------------------------|
| 字段 | 长度/单位 | 核心作用 |
| 标识 | 16比特 | 同一原数据报的所有分片标识相同,用于目的站重组。 |
| 标志 | 3比特 | MF(最低位):MF=1表示后续有分片,MF=0为最后一片;DF(中间位):DF=1禁止分片,DF=0允许分片;保留位(最高位):固定为0。 |
| 片偏移 | 13比特 | 以8字节为单位,指示分片在原数据报中的位置(最后一片除外,其他分片数据载荷需为8字节整数倍)。 |

3. 分片计算实例

原数据报:总长度3820字节(首部20字节+数据载荷3800字节),以太网MTU限制数据载荷最大1420字节。

  1. 分片1:总长度1440字节(20+1420),MF=1,片偏移0(0/8)。

  2. 分片2:总长度1440字节(20+1420),MF=1,片偏移175(1400/8)。

  3. 分片3:总长度1020字节(20+1000),MF=0,片偏移350(2800/8)。

若分片2需再次分片(载荷800+600字节):

  • 分片2-1:总长度820字节(20+800),MF=1,片偏移175。

  • 分片2-2:总长度620字节(20+600),MF=0,片偏移275(2200/8)。

四、与发送/转发相关的IPv4首部字段

1. 基础字段

  • 版本 :4比特,IPv4对应值为4,通信双方版本需一致。

  • 首部长度 :4比特,以4字节 为单位,最小值为5(对应20字节固定首部),最大值为15(对应60字节首部);若首部长度非4字节整数倍,需用填充字段补全。

  • 总长度 :16比特,以1字节为单位,指示数据报首部+数据载荷的总长度,最大值为65535字节(受MTU限制,实际很少用满)。

2. 生存时间(TTL)

  • 长度:8比特,路由器转发前将TTL减1;若TTL减至0,丢弃数据报并发送"时间超过"的ICMP报文。

  • 作用:防止数据报因路由环路无限兜圈;可实现traceroute/tracert路由跟踪、限制多播范围。

3. 协议字段

  • 长度:8比特,指示数据载荷对应的上层协议,典型值:TCP(6)、UDP(17)、IPv6(41)。

4. 首部检验和

  • 长度:16比特,仅检验数据报首部(减少计算量),数据载荷不参与。

  • 发送方计算步骤:

    • 将首部检验和字段置0;

    • 把首部划分为若干16比特字序列;

    • 对序列做反码算术求和,将结果按位取反后写入检验和字段。

  • 接收方检验步骤:

    • 把首部划分为若干16比特字序列;

    • 对序列做反码算术求和,结果按位取反;

    • 若结果为0,首部无差错;否则丢弃数据报。

相关推荐
为思念酝酿的痛1 小时前
数据链路层--帧传输与链路控制
网络·网络协议·计算机网络·数据链路层
龙仔7251 小时前
RustDesk 1.5.0 升级安装故障处理笔记
笔记
程序员z71 小时前
【从0开始学计算机网络】| HTTP 协议的进化史
网络协议·计算机网络·http
星恒随风2 小时前
Linux基础IO万字详解:从文件描述符fd到重定向、FILE缓冲机制及MiniShell升级
linux·运维·笔记·学习·状态模式
喜欢打篮球的普通人2 小时前
MiniMind 学习笔记(二十二):数学 Cookbook——把概率空间、期望、似然一次讲明白
人工智能·笔记·学习
乐橙开放平台3 小时前
通道国标 ID 贴反会串店:海康大华宇视摄像头怎么用 GB28181 统一接入?
网络·笔记·物联网·自动化·音视频·智能家居
ab1237684 小时前
Spring Integration 完整笔记 + 和 spring-integration-mqtt、Paho、EMQX 的关系
java·笔记·spring
ACP广源盛139246256735 小时前
Type-C 扩展坞方案选型笔记|国产 DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP 评估
开发语言·笔记·硬件架构·硬件工程·hdmi·国产芯片
旖旎夜光5 小时前
【LangGraph实战】LangGraph 学习笔记(四):持久化——从线程记忆到跨会话长期记忆
人工智能·笔记·python·学习·ai编程·langgraph
为思念酝酿的痛5 小时前
NAT技术--网络地址转换原理
网络·计算机网络·智能路由器