网络结构及mac和phy介绍

这两天想看看网卡驱动,就先收集了一些网络结构的相关资料,这些基本上都是凑的,是伪原创


网络七层协议   
网络七层协议
OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7  应用层 6  表示层 5 会话层 4  传输层 3  网络层 2  数据链路层 1  物理层 其中高层,既7、6、5、4层定义了 应用程序的功能,下面3层,既3、2、1层主 要面向通过网络的端到端的 数据流





OSI的七个层次:

第7层应用层—直接对应用程序提供服务,应用程序可以 
变化,但要包括电子消息传输 
第6层表示层—格式化数据,以便为应用程序提供通用接 
口。这可以包括加密服务 
第5层会话层—在两个节点之间建立端连接。此服务包括 
建立连接是以全双工还是以半双工的方式进行设 
置,尽管可以在层4中处理双工方式 
第4层传输层—常规数据递送-面向连接或无连接。包括 
全双工或半双工、流控制和错误恢复服务 
第3层网络层—本层通过寻址来建立两个节点之间的连接, 
它包括通过互连网络来路由和中继数据 
第2层数据链路层—在此层将数据分帧,并处理流控制。本层 
指定拓扑结构并提供硬件寻址 
第1层物理层—原始比特流的传输,电子信号传输和硬件接口

OSI七个层次的功能:

物理层 为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。 
数据链路层 负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。 
网络层 为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。 
传输层 传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。 
会话层 该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,确定是双工还是半双工工作。 
表示层 该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表示层的任务。 
应用层 该层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终端功能等。

TCP/IP的四个层次:

应用层 
传输层 
网络互联层 
网络接口层

TCP/IP四个层次的功能:

网络接口层 这是TCP/IP协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网络接口层的功能是接收IP数据报并通过特定的网络进行传输,或从网络上接收物理帧,抽取出IP数据报并转交给网络互联层。 
网络互联层(IP层) 该层包括以下协议:IP(网际协议)、ICMP(Internet Control Message Protocol,因特网控制报文协议)、ARP(Address Resolution Protocol,地址解析协议)、RARP(Reverse Address Resolution Protocol,反向地址解析协议)。该层负责相同或不同网络中计算机之间的通信,主要处理数据报和路由。在IP层中,ARP协议用于将IP地址转换成物理地址,RARP协议用于将物理地址转换成IP地址,ICMP协议用于报告差错和传送控制信息。IP协议在TCP/IP协议组中处于核心地位。 
传输层 该层提供TCP(传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两个协议,它们都建立在IP协议的基础上,其中TCP提供可靠的面向连接服务,UDP提供简单的无连接服务。传输层提供端到端,即应用程序之间的通信,主要功能是数据格式化、数据确认和丢失重传等。 
应用层 TCP/IP协议的应用层相当于OSI模型的会话层、表示层和应用层,它向用户提供一组常用的应用层协议,其中包括:Telnet、SMTP、DNS等。此外,在应用层中还包含有用户应用程序,它们均是建立在TCP/IP协议组之上的专用程序。 

OSP与TCP/IP的参考层次图:

 

 

OSP与TCP/IP的比较:

分层结构 
OSI参考模型与TCP/IP协议都采用了分层结构,都是基于独立的协议栈的概念

<think>好的,我现在需要回答用户关于以太网MACPHY的关系及配置的问题。首先,我得回忆一下相关知识。记得MAC属于数据链路层,而PHY属于物理层,对吧?用户可能想知道它们如何协同工作以及如何进行配置。 首先,应该从OSI模型开始解释。MAC数据链路层,处理帧的组成错误检测,而PHY在物理层,负责信号转换传输。需要明确两者的分层职责,这样用户能理解基本结构。 接下来是MACPHY的连接方式。常见的接口有MII、RMII、GMII这些。不同的接口标准支持不同的速率,比如MII是10/100Mbps,GMII支持千兆。这部分需要详细说明,因为接口类型直接影响硬件设计。 然后是地址问题。MAC地址是数据链路层的地址,由厂商分配,而PHY本身没有地址,但可能有管理接口地址,比如MDIO管理时的PHY地址。这里需要区分清楚,避免用户混淆。 关于配置方法,MAC通常由处理器或交换机芯片集成,配置涉及寄存器设置,比如速度、双工模式。PHY的配置则通过MDIO/MDC接口,使用寄存器配置工作模式、自协商等。需要举例说明如何通过寄存器配置PHY,比如设置0x00寄存器控制自动协商。 可能还需要提到硬件设计中的注意事项,比如时钟同步、阻抗匹配,这些影响信号质量。软件方面,驱动开发需要正确初始化MACPHY,确保两者协同工作。 用户可能的问题包括MACPHY的区别、配置流程、常见接口类型,以及如何排查连接问题。需要预见到这些问题,并在回答中涵盖,或者生成相关问题供用户进一步探索。 最后,确保引用正确,用户提供的参考中提到了MDIO的作用,需要在相关部分添加引用标识,比如在讨论PHY配置时引用[^1]。 需要检查术语是否正确,比如MII的全称是媒体独立接口,RMII是简化版。同时,确保配置步骤清晰,比如通过MDIO访问PHY寄存器,可能需要代码示例,但用户示例中没有代码,所以可能用伪代码或配置流程描述。 可能还需要提到自协商过程,PHY如何与对端协商速度双工模式,以及如何通过寄存器检查连接状态。这部分对配置故障排除很重要。 总结结构:先分述MACPHY的职责,再讲连接方式,接着地址区别,配置方法分MACPHY,最后硬件软件考虑。确保每个部分都有引用支持,特别是关于PHY处理信号转换的部分引用。</think>### 以太网 MACPHY 的关系及配置 #### 1. **MACPHY 的层级关系** - **MAC(介质访问控制层)**:位于 OSI 模型的数据链路层,负责数据帧的组装/拆分、错误检测(如 CRC 校验)、流量控制等逻辑操作。MAC 地址是其核心标识,用于局域网内的设备寻址。 - **PHY(物理层芯片)**:位于 OSI 模型的物理层,负责将 MAC 层的数字信号转换为模拟信号(如电信号或光信号),并通过物理介质(如网线)传输。接收时则执行反向操作,包括信号解码、时钟恢复等[^1]。 #### 2. **MACPHY 的连接方式** 两者通过标准接口协议连接,常见类型包括: - **MII(Media Independent Interface)**:支持 10/100Mbps,数据位宽 4 位,时钟频率 25MHz。 - **RMII(Reduced MII)**:简化版,数据位宽 2 位,时钟频率 50MHz。 - **GMII(Gigabit MII)**:支持千兆速率,数据位宽 8 位,时钟频率 125MHz。 - **SGMII(Serial GMII)**:串行化接口,减少引脚数量,支持千兆速率。 #### 3. **MAC 地址与 PHY 地址** - **MAC 地址**:全球唯一的 48 位标识符,由 IEEE 分配厂商前缀后缀组成,固化在硬件或由软件配置。 - **PHY 地址**:PHY 本身无网络层地址,但在管理接口(如 MDIO)中,每个 PHY 在总线上需分配唯一地址(通常 5 位),用于寄存器配置。 #### 4. **配置方法** - **MAC 配置**: - **寄存器设置**:通过处理器或交换机芯片配置 MAC 工作模式(如速度、全/半双工)。 - **DMA 控制**:设置数据缓冲区与传输描述符。 - 示例代码片段(伪代码): ```c // 设置 MAC 为千兆全双工模式 mac_reg_write(CONTROL_REG, SPEED_1000M | FULL_DUPLEX); ``` - **PHY 配置**: - **MDIO/MDC 接口**:通过管理总线访问 PHY 寄存器,常用寄存器包括: - **寄存器 0x00(控制寄存器)**:启用自协商(Auto-Negotiation)、复位 PHY。 - **寄存器 0x01(状态寄存器)**:获取链路状态、协商结果。 - **寄存器 0x04(自协商通告)**:声明支持的速率与模式。 - 示例配置流程: 1. 复位 PHY:`phy_write(0x00, RESET_BIT);` 2. 启用自协商:`phy_write(0x00, AUTO_NEG_ENABLE);` 3. 检查链路状态:`status = phy_read(0x01);` #### 5. **硬件设计注意事项** - **时钟同步**:MACPHY 的接口时钟需严格同步(如 RMII 需外部提供 50MHz 参考时钟)。 - **阻抗匹配**:PCB 走线需控制特性阻抗(如 50Ω 单端或 100Ω 差分)。 - **电源隔离**:PHY 的模拟电源与数字电源需通过磁珠或电感隔离,避免噪声干扰。 #### 6. **软件驱动开发** - **初始化顺序**:先配置 PHY 建立物理链路,再初始化 MAC 层。 - **中断处理**:处理 PHY 的中断事件(如链路状态变化)。 - **状态轮询**:周期性读取 PHY 寄存器以监控链路健康度。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值