最近做服务器项目在学习mac和phy,总结了一些知识点,拿来分享一下
说到mac和phy首先要提到osi七层模型
osi七层模型 | tcp/ip四层模型 | 对应网络协议 |
---|---|---|
应用层(application) | 应用层 | http、tftp, ftp, nfs, wais、smtp |
表示层(presentation) | telnet, rlogin, snmp, gopher | |
会话层(session) | smtp, dns | |
传输层(transport) | 传输层 | tcp, udp |
网络层(network) | 网络层 | ip, icmp, arp, rarp, akp, uucp |
数据链路层(data link) | 数据链路层 | fddi, ethernet, arpanet, pdn, slip, ppp |
物理层(physical) | ieee 802.1a, ieee 802.2到ieee 802.11 |
在osi七层模型中,最下面两层是硬件层面,上面五层是软件层面,由于博主是硬件,主要关注硬件的这两层。
数据链路层:
mac即media access control,即媒体访问控制子层协议.该协议位于osi七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质.在发送数据的时候,mac协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,mac协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至llc层.该层协议是以太网mac由ieee-802.3以太网标准定义.最新的mac同时支持10mbps和100mbps两种速率.
以前,每个公司会定义自己的电路信号分组方式,后来出现了以太网。一组电信号就是一个数据包,也就是帧(frame),它分为两部分,标头(head)和数据(data),标头里一般会放一些说明的东西,比如发送者、接收者和数据类型等等。
那么数据包中是如何确定发送者位置的呢?
以太网规定每个网卡必须包含一个mac地址,mac地址就是这个网卡的身份证。接入网络的所有设备都得有网卡,数据包中就是通过mac地址进行网卡定位的。每块网卡出厂时就有一个唯一的mac地址。48位的二进制,但是一般用12个16进制数字表示,前6个16进制是厂商编号,后6个16进制是网卡流水号。
那么以太网的数据包是怎么从一个mac地址发送到另一个mac地址的呢?这个其实不是点对点的,而是会广播给局域网内的所有网卡,然后每个网卡会从数据包中获取接收者的mac地址进行比对,如果相同就说明是给自己的数据包。
以太网数据链路层其实包含mac(介质访问控制)子层和llc(逻辑链路控制)子层.一块以太网卡mac芯片的作用不但要实现mac子层和llc子层的功能,还要提供符合规范的pci界面以实现和主机的数据交换.
物理层phy
物理层协议定义电气信号、线的状态、时钟要求、数据编码和数据传输用的连接器
物理层负责用网线、wifi、光纤等方式把电脑连接起来,形成一个网络。它传输的是计算机最底层的0 1信号
网线上传输的是模拟信号.因为它传出和接收是采用的模拟的技术.虽然它传送的信息是数字的(并不是传送的信息是数字的信号就可以叫做数字信号).
cpu<---pcie bus-->mac<----mii&smi bus--->phy<----mdi bus--->ac coupling/lan transformer<--rj45网口-->网线
mii(media independent interface)即媒体独立接口,mii接口是mac与phy连接的标准接口。它是ieee-802.3定义的以太网行业标准。
"媒体独立"表明在不对mac硬件重新设计或替换的情况下,任何类型的phy设备都可以正常工作.它包括一个数据接口,以及一个mac和phy之间的管理接口.
通过管理接口,上层能监视和控制phy.其管理是使用smi(serial management interface)总线通过读写phy的寄存器来完成的.phy里面的部分寄存器是ieee定义的,这样phy把自己的目前的状态反映到寄存器里面,mac通过smi总线不断的读取phy的状态寄存器以得知目前phy的状态,例如连接速度,双工的能力等.当然也可以通过smi设置phy的寄存器达到控制的目的,
lan transformer
把phy送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端.这样不但使网线和phy之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还可以在不同0v电平的设备中传送数据.
隔离变压器本身就是设计为耐2kv~3kv的电压的.也起到了防雷感应保护的作用
一张网卡的传输最大距离和与对端设备连接的兼容性主要是phy决定的.但是可以将信号送的超过100米的phy其输出的功率也比较大,更容易产生emi的问题.这时候就需要合适的transformer与之配合.作phy的老大公司marvell的phy,常常可以传送180~200米的距离,远远超过ieee的100米的标准.
rj-45的接头实现了网卡和网线的连接.它里面有8个铜片可以和网线中的4对双绞(8根)线对应连接.其中100m的网络中1,2是传送数据的,3,6是接收数据的.1,2之间是一对差分信号,也就是说它们的波形一样,但是相位相差180度,同一时刻的电压幅度互为正负.这样的信号可以传递的更远,抗干扰能力强.同样的,3,6也一样是差分信号.
————————————————
本文参考了以下大佬的文章:
发表评论