tcp/ip 卷一 读书笔记(2)物理层和链路层网络

时间:2023-03-08 15:45:42

物理层和链路层网络

术语

链路
是一对相邻结点间的物理线路,中间没有任何其他的交换结点。

数据链路
除了物理线路外,还必须有通信协议来控制这些数据的传输。


数据链路层的协议数据单元(PDU)

串行线路
使用点对点信道的数据链路层,设备之间通过串口线连接,不能广播

MAC地址
硬件地址又称物理地址或MAC地址,因为该地址用于MAC帧中。它是IEEE802标准为局域网规定的48位的全球地址(简称地址),指的是局域网上每台计算机中固化在适配器的ROM中的地址,在同一个局域网能,mac地址一定不能重复。

简介

我们的Internet(WAN)由无数个局域网(LAN)组成,以太网标准是当今主流的局域网标准,以太网标准是指IEEE802.3以及其派生出来的整个协议族。IEEE802标准定义了ISO/OSI七层网络模型中的的物理层和数据链路层。

物理层网络包括电缆,光纤,终端设备,中继器,等,提供在设备之间进行数据传输的能力。

数据链路层包括操作系统上的设备驱动和对应的网络接口卡,他们和物理层沟通一起处理与传输介质(电缆光纤)接口的细节,有标识标识不同的设备,在不同的设备间建立连接,传输数据,断开连接的能力。链路层的工作在于,将数据从一个网口发往另一个网口,最终送达目的网口。

在TCP/IP协议族中,链路层网络主要有三个功能:

  • 为IP层发送和接收数据
  • 为ARP模块发送ARP请求和接收ARP应答
  • 为RARP模块发送RARP请求和接收RARP应答

以太网协议

DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。RFC894
IEEE 的 802.3 标准。RFC1042
DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网

虽然802.3 标准和以太网标准差别很小,但是帧格式却是其中一种,在链路层我们的数据通常有两种封装格式,分别是以太网封装和IEEE802封装,802标准也是不断演进的,比如说开始没有vlan,后来有了,所以一个数据包,通过不同线路不同交换设备,他的封装格式也可能是不一样的。具体的两种格式的区别不再细说,这毕竟只是笔记。

串行线路和PPPOE

网络中有很多线路是串行线路,比如电信公司建了很多串行通信网络,设备之间通过串行接口和串口线相连。
串行线路时,最初我们使用SLIP协议,他有很多缺点,已经被淘汰,后来我们使用更好的PPP协议,调制解调器的拨号上网,使用的是PPP(Point-to-Point Protocol)协议。PPP协议和SLIP协议的优劣见网络。
因为以太网的迅速发展,我们使用PPPOE,即 PPP over Ethernet,在以太网协议中包装符合ppp协议的数据。目前家庭拨号上网,几乎都是使用ADSL,基于PPPOE协议。
PPPOE以太网帧的格式:

link header PPP Header IP Data link trailer
14bit 8bit 38~1492bit 4bit

PPPHeader中的内容和协议暂不学习。

关于我们为什么要使用PPPOE,有人这么说:

PPP是为串行通信设计的,现在它与以太网(Ethernet)相结合,成为在以太网络中转播PPP帧信息的技术。也称PPP over Ethernet,即PPPoE协议。PPP协议与以太网并不是兼容的东西,因此用户经常感到十分的迷惑,为什么要将以太网与PPP结合在一起呢?
如果我们将TCP/IP通信与公路交通相比的话,那么基本的TCP/IP协议就是这个城市的街道网。街道上有许多的路口(或者停车点),人们在马路上可以很容易地上车或者下车。但是人们不知道每条街上有多少辆车在跑,而且每新增加一个路口将带来新的管理任务,因为你将更不清楚有多少人,有多少车在街道上跑了。PPP就好比铁路,人们只能在固定的站点上上车或者下车,因此对乘客的管理和控制也相对容易(比如上车必须买票。)因此不妨再打个比喻,PPPoE就象是在街道上跑的火车,事实上这不是不可能的,比如电车轨道,地铁。它带来的好处是显而易见的,首先它不影响城市里其它的交通,其次还给你带来铁路的优点,比如流量的控制。
有些ISP并不是通过串行链路与用户相连的,这种情况下PPPoE也可以带来部分好处;使用串行链路的ISP早已经在调制解调器通信上使用PPP了,另一方面,DSL提供商通过以太网,而不是串行链路通信,因此PPPoE可以满足许多人的需要。并且,许多人对于PPPoE的附加能力感到特别满意。因为PPPoE允许ISP们对用户的登录安全进行控制和测量用户流量。

我这么理解:以太网是高速公路,修建高速公路的电信公司在高速路的入口修建了管理站,也就是串行线路,使用ppp协议,也就是以太网数据包进来,他都给数据包在里面加一层ppp头部,这就是pppoe了,相当于每个车进站,收费站都给驾驶员发一张卡,驾驶员拿卡进高速公路。数据包从收费站出去的时候,ppp头部被剥掉,相当于出公路的时候退卡。电信公司通过ppp中的数据,实现对用户带宽的控制,流量监视,收费等各项功能.这种在以太网帧里面,ip数据包外面,插入ppp首部的协议,叫做pppoe.

环回接口

大多数系统支持环回接口:

  • 任何传给环回接口的数据,传入ip层输入队列.
  • 当发送的数据是本机某个网口的ip地址,那么将数据直接送到环回接口.
  • 不经过物理网口发出去,如果是广播,多播地址时,数据复制一份交给环回接口。

MTU

除去以太网首部和尾部外,链路层所支持的以太网帧的最大长度,如果ip层将超过这个长度的数据传给链路层,链路层会直接丢弃,且不产生任何错误信息,所以MTU得设置一定要正确,绝对不能大于物理设备允许的值。由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes,最大不能超过1518bytes,去掉以太网首部和尾部,以太网链路层的MTU,最大是1500.
另外:

  • 如果链路层运行pppoe协议,那么要扣掉8字节的pppoe头部,最大MTU要设置成1492,如果是vxlan,最大是1472
  • 如果使用vxlan,虚拟机的mtu最大为1450 = 1500 – 20(ip头) – 8(udp头) – 8(vxlan头) – 14(以太网头)
  • 如果使用gre网络,虚拟机的mtu最大为1462 = 1500 – 20(ip头) – 4(gre头) – 14(以太网头)

后续需要待完善部分

网口设备在链路层的地址,即mac地址,是这个网口的身份证号,在一个局域网内,这个地址不能重复。也正是因此,所以我们理论上可以局域网内通过mac地址通信,传输数据。但是在不同局域网之间通信,我们还需要ip地址,详细下一节再讨论。

局域网会限制一个链路层网络的大小,防止广播风暴,所以链路层网络有它的边界所在,在不同局域网之间的数据传输,需要经过路由器。

vlan,vxlan,gre的部分

PPPOE帧的格式