网络协议 网络层,万物归于IP
2026/6/15 6:24:32 网站建设 项目流程

网络协议物理层,"地基"是怎么练成的

网络协议 数据链路层,“帧”建立统一新秩序

网络协议 网络层,万物归于IP

撰稿:未来侦察班

咨询:aynaixibaba

网络协议 网络层,万物归于IP

图片 | 华为技术社区

TCP/IP是必修课,物理层Phy、数据链路层、网络层、传输层、应用层五层... 本节接着聊网络层。

1. 网络层

从网络层开始,彻底摆脱硬件强相关,无论有线网、无线网、蓝牙PAN网络等,都可以通过ip地址互联互通,应用APP发包也只需要关心IP地址,不用知道对方的MAC地址等信息。

简单类比,家里用的电,无论是风力发电、太阳能、核能、或者火力发电,底层发电技术各式各样(物理层、数据链路层)。但只要去了电网(网络层),然后通过特高压输电线(运输层),就可以在庞大的电网中,将电力送到千家万户。用户不用关心是怎么发的电,怎么运输过来的。

2. 网络层详解

2.1 核心作用

网络层Network核心作用屏蔽物理层和数据链路层,网络设备可以动态分配ip地址,灵活组网。可以划分如下四个功能点:

  • 逻辑寻址

  • 路由选择

  • 分组转发

  • 网络诊断

2.2 协议数据单元

TCP/IP5层的PDU都有自己专属名称,网络层PDU称为数据包Packet。

IP数据包目前两个版本的,IPv4使用32位的4字节地址,IPv6使用128位的16字节地址,因此报文自然也不相同。一般场景下未明确描述的IP地址都是IPv4版本。

  • IPv4格式

网络层的协议数据单元PDU中,IP头长度可变,有效范围从20字节~60字节,

Version占用4bit位 4表示IPv4,6表示IPv6

IHL(Internet Header Length)网络头长度,控制IP报文包头长度,最小5(表示20字节),最大15(表示60字节)。

Type of Service简称TOS字段,服务类型

Total Length整个数据包的长度,最大65535但不能超过最大传输单元MTU

Identification,2字节标记数据包顺序,到65535最大值后归零重新计数,用于分片重组环节。Flags是否分片的标记,bit0表示是否分片,bit1表示是否是分片的最后一片。

Fragment Offset 用于分片重组,不受各分片接收顺序影响,还原整个数据包。

Time to Live即TTL 生命时间,表示数据包在网络网络中可以经过路由器最大数,减为0时丢弃。

Protocal协议1字节,表示ip数据包携带的数据单元使用什么协议解析,如ping包使用ICMP解析,使用协议号1。

Header Checksum数据包首部校验;

Source Address和Destination Address源ip地址和目的ip地址

  • IPv6格式

v6包头长度固定40字节,扩展头部不再严格限制长度,也遵循TLV(Type Length Value)格式更加灵活。

Version版本4bit和IPv4用法相同

Traffic class流量类型类似v4的type TOS字段

Payload Length有效字段长度,不包括头部

Next Header没有扩展头是指协议类型即解析有效字段的类型,和IPv4的protocol协议字段类似,有扩展头时指向扩展头类型。

Hop Limit跳数限制,和v4的TTL类似;使用跳数表示更为贴切。

Source Address和Destination Address源ip地址和目的ip地址,各自16个字节。

2.3 IP地址

ip地址版本IPv4、IPv6,局域网设备依然沿用IPv4,服务器地址已经悄悄支持ipv6版本。

IPv4划分为ABCDE 5类地址;

子网掩码可以改变网络可见范围,其长度32bit,和ipv4地址长度相同,也分为网络ID和主机ID两部分,不同的ip地址类型使用不同的掩码格式;和ip地址区别在于,没有固定的字段;局域网多使用255.255.255.0作为子网掩码。

当然在局域网中也可以人为调整子网掩码划分改变网络大小,比如10.0.0.x的A类地址路由器使用C类地址的子网掩码255.255.255.0。

每个类型的地址内部都有对应的广播地址,并且也可以使用有限广播地址255.255.255.255发送给本网络所有设备,如DHCP协议动态分配ip地址。

主机位同时也指明,当前网络可以容纳的主机数量,如常见的家用路由器C类地址局域网中,最多支持254个设备。

2.4 寻址

寻址简单点就是找到对方设备的过程,广域网靠ip地址逐跳搜索,局域网最终靠mac地址上门签收。

  • 局域网寻址

局域网设备各自都维护ARP表(记录ip和mac地址对应关系),特点是不仅可以通过ip找到对方,也可以通过mac地址找到对方;

当A设备的arp表中已经保存B的ip和mac信息,直接在帧头的目的MAC地址填充B的MAC信息发送数据;

当A设备的arp表未保存B信息,先使用ARP协议在局域网中广播B的ip地址,等待B回复自己的mac地址信息,然后A更新自己的arp表,最后再将B的mac地址填充到帧头发送数据。

  • 广域网寻址

广域网寻址就不同,MAC地址仅用于局域网内寻址,数据包穿过路由器后,MAC帧头的源mac地址会被替换成此路由器的MAC地址,目的mac地址换成相邻的下一跳路由器MAC地址;因为有规定,网络设备收到的数据包中MAC地址必须是自己直接相邻的设备,并且收到的帧中目的地址必须是自己否则丢弃。

上海的电脑要访问美国的Apple官网,无需知道它的mac地址,只需要对方域名/解析IP地址即可,中间会经过的很多路由器等设备,而这部分的层层MAC地址转换用户也是感知不到的。

特例,路由器级联的情况,属于局域网的范围,但是寻址却和广域网类似,每经过一个路由器需要替换原始的MAC源地址和目的地址信息。

2.5 封装和拆包

数据单元PDU传递的核心点在于,每一层都有自己的特定的签名,只是名字上不同而已,如前导码、包头、帧头等等,每层只检验自己层的签名。

封装过程:应用层和传输层PDU向下发送到网络层打上IP包头和包尾,到数据链路层再打上MAC帧头和帧尾,最后到达物理层加上前导码,编码成模拟信号后,最终发送出去。将上层的整个数据单元作为本层的数据部分“透明传输”给下层协议。

拆包过程:双绞线上的电信号和光纤上的光信号,到达物理层后,由模拟信号解码成数字信号,去掉前导码和帧首界定符,传递给MAC层后拆掉MAC的帧头帧尾,传递给网络层拆掉IP层包头包尾到达更高层处理。

类比物流运输场景,生鲜符合要求发食品检验证(高层协议)然后装车,物流卡车穿过高速公路需要高速收费卡(网络层包头包尾),而高速是不检查食品合格证,到达目的地后才需要复查食品安全(拆包数据校验),毕竟运输过程中也可能变质(丢包/干扰等现象)。

2.6 路由算法

分为静态路由和动态路由,静态路由依赖管理员手动配置,指定下一跳的明确地址,若网络拓扑改变需要重新配置。常见的动态路由算法

  • 距离矢量算法搜索邻居设备,并交换邻居路由信息,适用于小型网络;

  • 链路状态算法基于链路状态的内部网关协议(IGP),每台路由器独立构建全网拓扑图并通过SPF算法计算无环路径。

2.7 网络层协议家族

网络层的以IPv4/IPv6协议为基础,众多网络层协议可以分两类,直接以数据链路层建立的如ARP,和基于IP协议的如IGMP、ICMP等。

ARP地址解析协议 将IP地址解析成MAC协议,实际以MAC地址为基础,arp请求使用广播帧,相应使用单播帧。

数据链路层的目的mac地址(Destination MAC地址)为全FF的广播地址,网路层目标MAC地址(Target MAC地址)为全0地址。

3. 网络诊断

3.1 ICMP协议

ICMP全称Internet Control Message Protocol网络控制消息协议,传递网络状态信息和错误报告。常用的ping工具则是使用ICMP实现。ICMP是基于标准IP协议,单独的ICMP报文格式如下,包头固定的8字节,其中消息字段为可变长度。

3.2. 常见问题

IP地址ping不通,先检查双方的网络IP地址是否存在,ifconfig和ip addr网卡是否有多组IP地址;再检查系统防火墙策略是否拦截ping包;tcpdump抓包检查mac地址是否合法,尤其是自定义mac地址的设备。

IP地址丢失,检查物理链路状态,如RJ45网口指示灯是否正常亮,ifconfig查看网卡状态lower_up是否正常,再网卡总线如lspci,lsusb等确定是否存在。

欢迎评论区再补充 ...

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询