(2)链路层
1. 基本概念
链路层(Link Layer)是计算机网络的四层模型中的第二层,它负责在网络节点之间传输数据.以下是一些关于链路层的基本知识: 对于开发者来说,以下是一些在链路层需要了解的关键概念:
- MAC地址:
- 这是链路层用来标识网络设备的唯一地址.在某些应用中,如MAC地址过滤,你可能需要处理MAC地址.
- 以太网,源MAC地址和目标的MAC地址在一个数据包里传输.MAC的网卡发现数据包,是自己的,就会把包收进来,打开ip包,发现ip地址是自己的就打开tcp包(不然就将继续查目标mac地址,然后打包转发出去),然后打开tcp包,发现端口也是自己的(这里也说明了,整个tcp是通过端口传输数据的)80,就会提交给一个监听这个端口的应用程序,然后应用程序就会把请求的返回数据返给源mac地址的设备,这是源mac地址就改成目标mac,原目标mac就改成源mac地址.
- 帧:
- 链路层的数据单位是帧.理解帧的结构,包括头部/数据负载和尾部,对于理解网络数据的传输和处理很重要.
- 错误检测和纠错:
- 链路层使用各种技术,如奇偶校验/循环冗余检查(CRC)来检测和纠正数据传输中的错误.在开发网络应用或硬件时,可能需要实现或使用这些技术.
- 在以太网,CRC(Cyclic Redundancy Check)是用来做 循环冗余检测的.通过XOR异或的算法,来计算整个包是否在发送发的过程中出错.它只能检测数据是否出错,不提供纠正功能.出错了怎么办?丢弃吗?
- 流量控制和可靠传输:
- 链路层可以使用流量控制技术来防止发送方过快地发送数据,导致接收方无法处理.此外,一些链路层协议还提供了可靠传输功能,如自动重传请求(ARQ).
- 链路层交换:
- 理解链路层交换和链路层交换设备(如交换机)的工作原理,对于理解网络数据的路由和转发很重要.
- 链路层协议:
- 了解常见的链路层协议,如以太网(Ethernet)/Wi-Fi和点对点协议(PPP),可以帮助你理解网络数据的封装和传输.
2. MAC地址
2.1 mac地址有什么用?
MAC地址,全称媒体访问控制地址,是网络设备在链路层进行通信时使用的唯一标识符。以下是MAC地址的一些主要用途:
-
设备标识:每个网络设备的MAC地址都是唯一的,这使得设备可以在链路层进行通信。当一个设备需要向另一个设备发送数据时,它会将数据帧的目标MAC地址设置为接收设备的MAC地址。
-
数据帧的传输:在以太网中,数据帧包含源MAC地址和目标MAC地址。当一个设备接收到一个数据帧时,它会检查数据帧的目标MAC地址,如果这个地址与设备的MAC地址匹配,设备就会处理这个数据帧。
-
网络安全:在某些网络安全应用中,如MAC地址过滤,MAC地址被用来控制哪些设备可以访问网络。网络管理员可以设置一个白名单,只有白名单中的MAC地址才能访问网络。
-
多路访问:在多个设备共享同一网络媒体的情况下,MAC地址可以帮助解决多路访问问题。通过使用不同的MAC地址,设备可以在不需要广播的情况下进行通信。
总的来说,MAC地址在链路层的通信中起着关键的作用,它使得设备可以在物理网络上进行有效、可靠的通信。
3. 以太网协议
以太网协议是一种在局域网(LAN)中使用的链路层协议,它定义了网络设备如何在共享媒体上进行通信。以下是以太网协议的一些主要用途:
-
数据帧的封装和解封装:以太网协议定义了数据帧的格式,包括源MAC地址、目标MAC地址、类型字段和数据负载。当一个设备需要发送数据时,它会将数据封装成以太网帧;当一个设备接收到一个以太网帧时,它会将帧解封装成数据。
-
媒体访问控制:以太网协议使用CSMA/CD(载波侦听多路访问/冲突检测)技术来控制设备在共享媒体上的数据传输。当一个设备需要发送数据时,它会先检查媒体是否空闲,如果空闲,它就开始发送数据;如果媒体正在被其他设备使用,它就等待直到媒体变为空闲。
-
错误检测:以太网帧的尾部包含一个循环冗余检查(CRC)字段,用于检测数据在传输过程中是否发生错误。如果接收设备检测到数据帧中的错误,它可以请求发送设备重新发送数据帧。
-
网络互连:以太网协议可以与其他网络协议(如IP协议)一起使用,以实现网络设备之间的互连。例如,一个设备可以使用IP协议来发送数据,然后使用以太网协议来在局域网中传输数据。
总的来说,以太网协议在局域网中的通信中起着关键的作用,它使得设备可以在物理网络上进行有效、可靠的通信。
3.1 数据帧的结构是怎么样的?
简单来说: 以太网帧头部:
- 目的地址-6字节
- 源地址-6字节
- 类型信息-2字节
- 负载-46-1500字节
- FCS-4字节
其中负载是其他层的帧结构,如IP网络层,前面会有IP头部之类的,网络会逐层拆解首部信息处理。 FCS(Frame Check Sequence)是帧校验序列,它是数据帧尾部的一部分,用于检测数据在传输过程中是否发生错误。CRC(Cyclic Redundancy Check)是一种常用的FCS生成算法。
4. 交换机
4.1 什么是交换机,交换机的作用是什么?
交换机是一种网络设备,它用于连接多个设备,如计算机、打印机、路由器、服务器等,使它们能够在局域网(LAN)中进行通信。交换机主要在数据链路层(第二层)工作,但也有一些高级的交换机可以在网络层(第三层)工作。
交换机的主要作用包括:
-
转发数据帧:交换机可以接收来自一个端口的数据帧,并将其转发到正确的目标端口。这个过程是基于数据帧的目标MAC地址进行的。
-
隔离冲突域:每个交换机端口都是一个独立的冲突域,这意味着在一个端口上发生的数据冲突不会影响到其他端口。这大大提高了网络的总体性能。
-
建立虚拟局域网(VLAN):交换机可以用来建立虚拟局域网,这可以将一个物理网络分割成多个逻辑网络,从而提高网络的安全性和效率。
总的来说,交换机是实现局域网通信的关键设备,它可以有效地管理和转发数据帧,提高网络的性能和安全性。
99. quiz
1. mac地址,以太网协议是哪个设备识别和处理的?
以太网协议主要由网络接口卡(NIC)和交换机处理。
-
网络接口卡(NIC):NIC是计算机或其他网络设备上的硬件组件,用于与网络进行通信。NIC负责将数据封装成以太网帧,并在接收到以太网帧时进行解封装。NIC还负责处理CSMA/CD协议,以控制在共享媒体上的数据传输。
-
交换机:交换机是一种网络设备,用于在多个设备之间转发以太网帧。交换机根据以太网帧的目标MAC地址,将帧转发到正确的端口。交换机还可以处理VLAN和QoS等高级以太网功能。
除此之外,路由器也可以处理以太网协议,尤其是在处理与局域网连接的接口时,当一般是家用小型网络才这样。企业网络,城域网络都有专门的交换机。 华为数通部门、思科就是做这种交换机设备的。 而普联则是做家用级别路由器的。