《TCP/IP详解 卷1:协议》之第二章:链路层

目录

一、前言

二、以太网标准与802.3标准

三、ppp:点对点协议

四、环回接口

五、MTU与路径MTU

六、交互分组数据&“大块分组数据”

七、PPP 与 PPPoE


一、前言

这一章节主要讲的是 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 允许多个用户共享一个以太网连接,同时保持每个用户的独立性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值