目录
一、前言
这一章节主要讲的是 tcp/ip 协议族四层模型中的最底层(第一层):链路层。
现如今,链路层常见的有以太网帧、PPP帧。
二、以太网标准与802.3标准
IEEE 802.3 是以太网的标准,因此以太网报文实际上就是基于 IEEE 802.3 标准的报文。
1、原文中说道:幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。
这是因为以太网的结构存在一个特殊的字段:Type/Length。一个典型的以太网帧(IEEE802.3)结构如下:
-
前导码(Preamble)
-
帧起始定界符(SFD)
-
目的MAC地址(DA)
-
源MAC地址(SA)
-
类型/长度字段(Type/Length)
-
数据负载(Payload)
-
帧校验序列(FCS)
这时会有一个疑问,类型/长度字段(Type/Length)在某一次报文中究竟是表示类型还是表示字段?
①、表示长度
如果字段的值小于或等于 1500(十进制),则该字段表示帧的长度(单位为字节)。这里的长度指的是帧的数据部分(即数据负载)的长度,不包括前导码、帧起始定界符、MAC地址、类型/长度字段和帧校验序列。
注:这个长度为实际的负载长度,不包含 padding 的长度。
②、表示类型
如果字段的值大于或等于 1536(十进制),则该字段表示帧内数据的协议类型。协议类型用于指示帧的数据部分所使用的网络层协议(例如 IPv4、IPv6、ARP 等)。
-
IPv4:0x0800(十进制 2048)
-
ARP:0x0806(十进制 2054)
-
IPv6:0x86DD(十进制 34525)
这种设计是为了兼容早期的以太网标准(如 Ethernet II)和一些旧的网络技术(如 IEEE 802.3 原始标准)。在早期的以太网实现中,帧的长度和协议类型是分开处理的,但随着技术的发展,Ethernet II 标准将两者合并到了一个字段中。但“幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。”(正如原文所说的一般)
三、ppp:点对点协议
ppp数据帧格式如下:
-
标志字段(Flag):
0x7E -
地址字段(Address):
0xFF -
控制字段(Control):
0x03 -
协议字段(Protocol):
0x0021(表示 IPv4 数据) -
信息字段(Information):实际的 IPv4 数据包
-
帧校验序列(FCS)
ppp帧与以太网帧都属于链路层,两者之间有自己的使用场景:
-
PPP 主要用于点对点链路,如拨号上网、串行连接和 VPN,适用于两个节点之间的直接连接,提供链路控制和封装功能。
-
以太网帧 主要用于局域网(LAN)、数据中心和无线局域网(WLAN),适用于多节点网络,支持高速、可靠的数据传输。
四、环回接口
环回接口(Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。一个传给环回接口的IP数据报不能在任何网络上出现。

上图表示了:
1、传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入。
2、传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。
3、任何传给该主机IP地址的数据均送到环回接口。
4、收包时经过以太网,解析以太网首部,确定送往上层的协议栈是 ARP 还是 IP(基于以太网帧类型进行分用)。
五、MTU与路径MTU
MTU:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。
路径MTU:网络中两台通信主机路径中的最小MTU。
1、你可能会有一个疑问:以太网MTU是1500,那么1492又是什么意思?
这是因为在某些网络配置中,额外的封装或协议头可能会占用部分数据负载空间。例如:
PPPoE(Point-to-Point Protocol over Ethernet):在以太网帧中封装 PPP 数据时,会额外增加一个 8 字节的 PPPoE 头部。因此,如果以太网的 MTU 为 1500 字节,那么 PPPoE 的 MTU 将是 1492 字节(1500 - 8 = 1492)。
2、在以太网中,MTU 通常指的是IP层(网络层)数据包的最大大小,不包括以太网首部和尾部。如果传输的数据大于MTU值,就需要对 IP数据包进行分片。
六、交互分组数据&“大块分组数据”
交互分组数据一般属于控制类的数据,传输优先级比较高。
大块分组数据属于一般的数据信息,传输优先级比较低。
七、PPP 与 PPPoE
最后补充一下 PPP 与 PPPoE 两者之间的关系。
PPP 是基础协议:PPPoE 是基于 PPP 的一种扩展协议。PPPoE 使用 PPP 的协议字段、LCP、认证协议和 IPCP 等功能,但将其封装在以太网帧中。
封装方式不同:PPP 直接在点对点链路上传输数据,而 PPPoE 将 PPP 数据帧封装在以太网帧中。PPPoE 在以太网帧的数据负载部分添加了一个额外的 PPPoE 头部(8 字节)。
应用场景不同:
- PPP:主要用于串行链路(如拨号连接)或点对点的物理链路。
- PPPoE:主要用于以太网环境,特别是在宽带接入场景中,如 DSL(数字用户线路)接入。PPPoE 允许多个用户共享一个以太网连接,同时保持每个用户的独立性。
544

被折叠的 条评论
为什么被折叠?



