趣谈网络协议学习笔记——IP包的发送过程

本文详细介绍了IP包从发送到目标主机的过程,包括同一网段内的直接发送,不同网段时通过网关的转发,以及网关处理IP包的两种方式:NAT网关和转发网关。此外,还讲解了CIDR和子网掩码的概念,以及如何判断两个IP是否在同一网段,并提供了一个面试题来加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个主机发送一个网络包到一个IP,第一步先看这个IP是不是和自己在同一个网段,如果是在同一个网段,使用ARP协议查询出目标的MAC地址,填入MAC头,就能直接发送给目标主机。(在物理上还是要到达路由器的网口的,但是不会经由网关处理)。如果不在同一个网段,则需要查询网关的MAC,将网关的MAC填入MAC头,将目标的IP填入IP头,发往网关。

网关拿到这个包后有3种可能:

  1. 如果通过这个IP能直接找到目标主机的MAC,则将目标主机的MAC放入MAC头,发往目标主机
  2. 通过路由表查到了这个IP应该继续发给下一个网关,则将下一个网关的MAC填入MAC头发给下一个网关。
  3. 发现这个IP是一个NAT,根据NAT表将IP转为局域网的IP,然后根据局域网的IP找到主机MAC,将局域网IP和主机MAC分别填入IP头和MAC头发送给目标主机。

改变IP头的网关叫做NAT网关,不改变IP头的网关叫做转发网关

如何判断是否同一个网段?

CIDR

CIDR,无类型域间选路。这种方式打破了原来IP设计的几类地址的做法,将32位的IP地址分为两部分,前边是网络号,后边是主机号。我们一般看到IP地址会有一个斜杠,如10.100.122.2/24,这表示前24位是网络号,后8位是主机号。伴随CIDR出现的就是子网掩码,子网掩码的作用是,将子网掩码和IP地址按位计算AND,就可以得到网络号。一般如果家里手动配置IP,子网掩码都配置成255.255.255.0。但是这不总是正确的,255.255.255.0只是24位网络号划分的子网掩码。所以在办公室经常看到255.255.0.0或者255.255.254.0等子网掩码,这样一个子网可以容纳更多的主机。

一个面试题:

16.158.165.91/22这个IP所在网段的第一个地址是什么?广播地址是什么?子网掩码是什么?

因为网络号是22位而不是24位。应该这样计算:将第17-24位的165写成二进制10100101,然后截掉后两位得到网段第一个IP 16.158<101001>.1,翻译成10进制就是1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值