网络传输数据链路层,MAC和PHY芯片


声明:资料来源于网络整理。

一、TCP/IP四层模型

数据链路层:实现网卡接口的网络驱动程序,处理数据在物理媒介(比如以太网、令牌环等)上的传输。数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(ReverseAddress Resolve Protocol,逆地址解析协议)。

  • ARP:将物理地址转化为IP地址;
  • RARP:将IP地址转换为物理地址;
  • 网络层使用IP地址寻址设备,数据链路层使用物理地址(MAC地址)寻址设备;
  • ARP协议很不安全,它会全网广播你的IP和MAC。

二、网络收包

1、硬件结构

intel82546:PHY与MAC集成在一起的PCI网卡芯片;
bcm5461:PHY芯片,与之对应的MAC是TSEC;
TSEC:Three Speed Ethernet Controller,三速以太网控制器,TSEC内部有DMA子模块;
DMA:(Direct Memory Access,直接存储器访问) ,它将数据从一个地址空间复制到另外一个地址空间,而无需CPU的参与。

2、收包原理

no NAPI:mac每收到一个以太网包,都会产生一个接收中断给cpu,即完全靠中断方式来收包。缺点是当网络流量很大时,cpu 大部分时间耗在处理mac中断;
netpoll: 轮询收包,缺点是实时性差;
NAPI: 采用 中断 + 轮询 的方式。mac收到一个包来后会产生接收中断,但是马上关闭。
直到收够了n个包,或者收完mac上所有包后,才再打开接收中断。

3、收包流程

网线 -> Rj45网口 -> MDI 差分线->bcm5461(PHY芯片进行数模转换) -> MII总线->
TSEC(MAC) -> DMA把网络数据包搬到CPU收包缓存->收够n个包,CPU开始处理

三、网络发包

预先把发送的数据拷贝到一个物理连续的缓冲区里,然后把缓冲区的物理地址传递给网卡,启动网卡传输,网卡就用DMA方式把数据发送出去。发送成功后给出一个中断,表示发送完成。

四、关键硬件

1、PHY

物理接口收发器,它实现物理层。IEEE-802.3标准定义了以太网PHY,包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI子层。它符合IEEE-802.3k中用于10BaseT(第14条)100BaseTX(第24条和第25条)的规范。

2、MAC

MAC即Media Access Control,即媒体访问控制子层协议。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC层。

3、MII总线

在IEEE802.3中规定的,MII总线是一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线,使网络控制器可以用同样的硬件接口与任何PHY 通信。ETHERNET的接口实质是MAC通过MII总线控制PHY的过程。

五、问答

:10BaseT100BaseTX PHY实现方式不同的原因何在?

:两种实现的分组描述本质上是一样的,但两者的信令机制完全不同。其目的是一种让硬件,容易实现处理两种速度。10BaseT采用曼彻斯特编码,100BaseTX采用4B/5B编码

:网卡的MACPHY间的关系?

:网卡工作在osi的最后两层,物理层和数据链路层。

物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口,物理层的芯片称之为PHY。

数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。很多网卡的这两个部分是做到一起的,他们之间的关系是PCI总线接MAC总线,MAC接PHY,PHY接网线(PHY与网线间,还有一个变压装置)。