【计算机网络】简学深悟启示录:网络层

张开发
2026/5/4 5:11:12 15 分钟阅读
【计算机网络】简学深悟启示录:网络层
文章目录1.网络层2.IP协议2.1 IP协议头2.2 IP分片和组装3.网段划分4.私有IP和公网IP5.路由表希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力1.网络层应用层和传输层主要负责定内容发什么数据业务逻辑和定应用哪个应用发 / 收端口 可靠 / 快速接下来就是要准备发数据了网络层就是负责选择跨网络的传输路径网络是由多个局域网组成的各个局域网之间依靠路由器进行转发IP就是用于标识转发身份的IP目标网络目标主机2.IP协议2.1 IP协议头4位版本: 指定 IP 协议的版本4位首部长度: 告诉接收方首部有多长。因为底下的“选项”字段长度可变所以这个字段是必须的。注意单位是4字节。标准的20字节首部这里的数值是5 (5 * 4 20)。8位服务类型: 用于标记数据包的优先级例如语音通话需要低延迟文件下载可以容忍延迟16位总长度 (Total Length): 整个IP数据报的长度首部 数据第二行放到后面讲8位生存时间(TTL): 防止路由死循环的关键不是按时间计算而是路由转发次数数据包每经过一个路由器TTL减1当TTL变为0时路由器会丢弃该包并发送ICMP超时消息给源地址8位协议: 告诉IP层数据是谁的6: 代表TCP17: 代表UDP1: 代表ICMP(Ping命令用的)16位首部检验和: 确保IP首部在传输过程中没有损坏。路由器每转发一次都要重新计算因为TTL变了32位源 IP 地址: 发送端的IP例如客户端的IP32位目的 IP 地址: 接收端的IP例如你服务器绑定的IP选项: 可变长很少使用。可用于安全、源路由选择等高级功能数据: 这里装的就是TCP段上一层的有效载荷报文就是下一层的有效载荷2.2 IP分片和组装IP协议头的第二行非常关键。如果数据包太大超过了链路层的MTU例如以太网通常是1500字节IP层会将数据包切碎分片这一行就是用来记录如何把碎片拼回去的。16位标识: 给数据包打个ID。同一个原始包切出来的所有碎片ID都是一样的3位标志 (Flags):第一位: 保留位必须是0第二位: 如果设为1意思是不许被切开。如果网络一定要切分才能通过路由器就会直接丢弃这个包并报错如果设为0意思是允许切分第三位: 后面还有。如果置1说明这不是最后一个碎片13位片偏移: 当前这个碎片在原始数据中的位置。接收方根据这个把乱序到达的碎片拼回原来的顺序举个例子假设你要发一个4000字节的大数据包但是中间的网线限制一次只能过1500字节MTU为了方便计算我们假设IP头部长20字节所以数据部分实际上是原始数据总长3980字节数据 20字节IP头 4000字节MTU限制1500字节其中数据最多装1480字节头部20字节路由器会把这个大包切成3片假设原始包的标识(ID)是666第一片 (Fragment 1)这是开头部分。16位标识666(跟原始包一样)3位标志 (MF)1(设为1表示“后面还有”)13位片偏移0(这是开头偏移量是0)携带数据第0 ~ 1479字节 (共1480字节)第二片 (Fragment 2)这是中间部分。16位标识666(我是属于ID 666的一份子)3位标志 (MF)1(设为1表示“后面还有”)13位片偏移185前面发了1480字节。偏移量单位是8字节所以1480 / 8 185携带数据第1480 ~ 2959字节 (共1480字节)第三片 (Fragment 3)这是最后剩下的部分。16位标识666(我也是ID 666的一份子)3位标志 (MF)0(注意这里设为0表示最后一个了)13位片偏移370前面两片总共发了1480 1480 2960字节2960 / 8 370携带数据第2960 ~ 3979字节 (剩下的1020字节)当目的主机的IP层接收到这些分片后会根据标识字段将属于同一个数据报的所有分片挑选出来。利用片偏移字段IP层会对属于同⼀个数据报的分片进行排序当所有的分片都到达并正确排序后IP层会将这些分片重新组装成一个完整的IP数据报传递给上层的协议进行处理3.网段划分网络号保证相互连接的两个网段具有不同的标识主机号同一网段内主机之间具有相同的网络号但是必须有不同的主机号路由器本质也是个子网的主机也需要配置IP路由器一般连接至少两个子网是子网里的第一台设备路由器就是用来在各个子网之间转发用的子网内新增的主机由路由器分配IPIP地址本身看不出哪部分代表 “所属的网络”哪部分代表 “网络里的自己”把子网掩码和IP进行按位与计算来区分网络号和主机号例子1同一路由器下手机和电脑互传文件同局域网电脑IP192.168.1.100子网掩码255.255.255.0手机IP192.168.1.105子网掩码255.255.255.0子网掩码的作用分家掩码255.255.255.0规定前3段是网络号最后1段是主机号→ 电脑/手机的网络号都是192.168.1主机号分别是100和105判邻居两者网络号完全相同判定为同一局域网。✅ 结果不用走任何路由器手机和电脑能直接互传文件、投屏路由器只负责连外网不插手内网通信。例子2你家电脑连朋友家的打印机跨局域网你家电脑IP192.168.1.100掩码255.255.255.0→ 网络号192.168.1朋友家打印机IP192.168.2.88掩码255.255.255.0→ 网络号192.168.2子网掩码的作用分家同样按前3段划网络号两者网络号明显不同判邻居网络号不一样判定为不同局域网。✅ 结果你家电脑不能直接连朋友家打印机必须通过路由器/宽带网络转发数据才能实现跨网访问。例子3子网掩码帮你避免“IP混乱”简单划小网假设一个小公司有3个部门各20台电脑路由器给的大网段是192.168.1.0掩码255.255.255.0能连254台设备。如果所有电脑都用这个掩码会混在一个网里数据传输乱、还不安全。用子网掩码微调比如255.255.255.192把大网段拆成3个小子网行政部192.168.1.1~62网络号192.168.1.0技术部192.168.1.65~126网络号192.168.1.64市场部192.168.1.129~190网络号192.168.1.1284.私有IP和公网IP一个路由器可以配置两个IP地址一个是WAN口IP一个是LAN口IP(子网IP)路由器LAN口连接的主机都从属于当前这个路由器的子网中不同的路由器子网IP其实都是一样的(通常都是192.168.1.1)。子网内的主机IP地址不能重复但是子网之间的IP地址就可以重复了每一个家用路由器其实又作为运营商路由器的子网中的一个节点。这样的运营商路由器可能会有很多级最外层的运营商路由器WAN口IP就是一个公网IP了。子网内的主机需要和外网进行通信时路由器将IP首部中的IP地址进行替换(替换成WAN口IP)这样逐级替换最终数据包中的IP地址成为一个公网IP。这种技术称为NAT映射技术5.路由表路由表就是路由器或主机内部的一张核心导航清单。它的唯一作用是告诉数据包「下一步该发给谁」才能最快到达目的地当一个IP数据包到达路由器或主机时设备只知道目标IP但不知道怎么走。路由表就是用来做决策的直连如果目标在本地局域网直接发过去转发如果目标在互联网发给网关下一跳路由器让它继续送一句话总结路由表 目的IP走哪条路下一跳用哪个网卡出口目标网络 (Destination)子网掩码 (Genmask)网关 (Gateway)标志网卡 (Iface)含义0.0.0.00.0.0.0192.168.1.1UGeth0默认路由找不到路时全发给192.168.1.1192.168.1.0255.255.255.00.0.0.0Ueth0直连路由去192.168.1网段直接在本地发127.0.0.0255.0.0.00.0.0.0Ulo本机路由发给自己的走回环接口目标网络数据包要去哪里。0.0.0.0代表“所有其他地方”。网关下一跳Next Hop。如果是0.0.0.0或onlink说明是直连不用经过路由器直接通过ARP找MAC地址发如果是具体IP如192.168.1.1说明要把包发给这个路由器。网卡从本机的哪个网口eth0/wlan0把包发出去。希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力

更多文章