计算机网络-02-物理层和数据链路层

物理层

物理层主要功能是为数据端设备提供传送数据的通路以及传输数据。

物理层主要解决的问题:
尽可能的屏蔽掉物理设备和传输媒体、通信手段的不同,使得数据链路层不需要考虑这些差异,只需要考虑本层的协议和服务;
在两个相邻系统之间唯一的标识数据电路;
解决物理连接的建立、维持和释放的问题,给数据链路层在一条物理的信道上传送和接收比特流的能力。

信道

信道是往一个方向传送信息的媒体,一条通信电路包含一个接收信道和一个发送信道。

单工通信信道
只能一个方向通信,没有反方向反馈的信道,例如有线电视、无线电收音机等等

半双工通信信道
双方都可以发送和接收信息,不能双方同时发送,也不能同时接收

全双工通信信道
双方都可以同时发送和接收信息

分用-复用技术

分用-复用技术允许多个用户使用一个共享信道进行通信,可以降低成本,提高利用率。

数据链路层

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。

数据链路层有两个功能:帧编码差错控制

帧编码

物理层只负责传输比特流,为了使传输过程发生差错后只将有限数据进行重发,数据链路层将比特流组合成以太帧作为单位传送。

每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。

假设现在从网络层过来了一个IP数据报,数据链路层会将这个数据报作为帧进行传送。

当然物理层是不管你帧不帧的,它只会将数据链路层传过来的帧以比特流的形式发送给另一台物理设备。

帧首部和尾部是特定的控制字符(特定比特流)
SOH: 00000001
EOT: 00000100
如果数据帧里恰好也有这些特定的比特流,为了不让数据链路层将其识别成帧尾部,需要添加转义字符。
如果需要传输转义字符,则需要在转义字符前添加转义字符。
最大传输单元 MTU Maximum Transmission Unit

由前面的文章可知:总时延 = 发送时延 + 排队时延 + 传播时延 + 处理时延

数据链路层的数据帧不是无限大的,数据帧过大或过小都会影响传输的效率,数据链路层使用MTU来限制数据帧长度。

以太网MTU一般为1500字节, 路径MTU由链路中MTU的最小值决定

差错检测

一个实用的通信系统必须具备发现(即检测)这种差错的能力,并采取某种措施纠正之,使差错被控制在所能允许的尽可能小的范围内,这就是差错控制过程。物理层只管传输比特流,无法控制是否出错,所以差错检测成了数据链路层的主要功能之一。

一般的检测方法有奇偶校验码和CRC循环冗余校验码。

MAC地址

网络中需要唯一标识物理设备的地址,用于确定数据传输时的发送地址和目的地址。

MAC地址(物理地址、硬件地址)共48位,使用十六进制表示,每一个设备都拥有唯一的MAC地址。

虽然MAC地址是物理硬件地址,但其属于数据链路层的MAC子层。

以太网协议

以太网(Ethernet)是一种使用广泛的局域网技术,它是应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输。

以太网数据报文主要由五个部分组成:

类型主要表示帧数据的类型,例如网络层的IP数据。

定义完数据结构后,就需要进行数据传输。由上文可知,MAC地址唯一标识了设备,那么怎么获得目的设备的MAC地址呢?

MAC地址表

MAC地址表记录了与本设备相连的设备的MAC地址。

假设主机A发送了一个以太网数据报文,数据帧到达路由器,路由器取出前6字节(通过报文数据结构可知前6位位目的地址)。

路由器匹配MAC地址表,找到对应的网络接口,路由器往该网络接口发送数据帧。

当路由器的MAC地址表中没有目的地址,此时路由器会将此MAC地址进行广播(发送方A除外),接收局域网中与该路由其相连的其他设备的MAC地址并记录。

由于MAC地址表只能知道当前设备的下一个设备的MAC地址,简而言之就是只能进行相邻物理节点的数据传输。

有关跨设备传输数据的功能是交由网络层处理的,具体见下一章。

你可能感兴趣的:(计算机网络-02-物理层和数据链路层)