大家好,欢迎来到IT知识分享网。
基础知识:
1.网络结构:计算机网络的层次结构如图所示。
协议:传输层则包含UDP协议,TCP协议,网络层有arp协议和IP协议,数据链路层封装MAC帧,通过物理层的PHY物理收发芯片传输数据。用户数据在不同设备中传输需要经过层层封装,形成一帧数据,如下图所示:
识别:mac帧以mac地址识别(不同设备),IP帧以IP地址识别(不同网络),UDP帧以端口号识别(不同软件)。
2.以太网:以太网包括了数据链路层和物理层,数据链路层可以细分为LLC层和MAC层。
Ⅰ.MAC层:
①每一个网卡分配一个唯一的MAC地址(硬件地址),用以区分不同通信设备。
②对上层的数据进行封装,变成MAC帧,通过接口传到物理层,然后再通过物理介质传输到其他设备。
如图所示,mac与物理层的接口有多种:
①MII:输入输出数据位宽为4bit,时钟频率为2.5MHz或者25MHz,故传输速率为10MHz或者100MHz。RMII是MII的简化版,减少了引脚,采用双沿采样。
②GMII:输入输出数据位宽为8bit,时钟频率为125MHz,支持1000Mbps,即千兆网。
③RGMII:输入输出数据位宽为4bit,在上升沿和下降沿都有采样,所以一个周期采样两次,而时钟频率为125MHz,所以传输速率仍为1000Mbps。由于采用双沿采样,软件实现比较复杂,但是引脚得到简化。
在 FPGA 中设计以太网的接收和发送逻辑时,只需要按照 GMII 接口的形式,先设计出对应的发送和接收逻辑,再将对应的端口连接到 RGMII 与 GMII 接口转换逻辑上,就能够 完成基于 RGMII 接口的以太网接收和发送了。
Xilinx中转接口便是双沿采样的实现,比较复杂,一般例化Xilinx的原语来实现。
quartus则是通过调用Altera® ALTDDIO_IN IP 核使用DDIO寄存器来实现双数据采样。
其中,MII和RGMII接口比较常用。接口的细节可以参见小梅哥的教程,日常我们只要知道有这些接口存在即可。
每个电脑的 MAC 地址可以通过在 cmd 窗口中使用 ipconfig –all 命令查看。
MAC帧组成:
数据有长度限制:<46:无法实现碰撞侦测。
>1500:严重影响其他主机通信。
Ⅱ.PHY芯片(物理层收发器):实现数据并串转换,数模转换,把mac层封装的数据发送给外部设备,也可以接收外被设备的数据传输到FPGA。
常见的有:REALTEK。
Ⅲ.transformer(隔离变压器):把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端.这样不但使网线和PHY之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还可以在不同0V电平的设备中传送数据。
Ⅳ.RJ45接口:通过双绞线来传输数据。RJ是Registered Jack的缩写。
3.ARP帧:
简单地了解:
ARP帧是用来获取目的主机的硬件地址的(即MAC地址),利用已知的目的主机的IP地址和端口号来查找目的MAC地址。
工作时,源主机发出ARP数据包请求并广播,目的主机收到广播后发出一个ARP应答数据包告诉对方它的MAC地址。
ARP和IP是两个相互独立的协议,都属于网络层,ARP更底层,没有ARP提供的映射功能,IP 数据包无法在以太网上发送。
4.IP帧:
IP地址:为连接到Internet网络的每个设备分配的数字地址。
详解可以参考各个教材,这里要注意的点是:
版本:包括IPV4和IPV6两种,以其字节长度命名。
IPV4:使用范围最广,其长度为4字节,用小数点分开每个字节,如192.168.1.1 ,可以算出40亿个唯一地址。但到了2011年,IPV4地址被分配完了。
IPV6:1988年推出的,长度为16字节,用冒号分开每个字节.
注意:IPV4和IPV6无法通信,而多数网站,应用,以及操作系统,路由器支持IPV4,不支持IPV6,所以说IPV4使用广而且难以被替代。
生存周期:该帧可以经过的最大路由器数,超过时该帧被丢弃,并发送ICMP包通知源主机。设置生存周期可以避免某个帧一直到达不了目的地时一直堵在网路上。
报头校验和:只对报头的数据进行计算得出结果,与数据段无关。
5.UDP协议:用户数据报协议
不可靠协议,无法得知发出的报文是否完整安全到达目的地。然而,UDP广泛使用于网络应用中。
每一帧都有UDP报头校验和,对报头和数据进行校验,UDP只查错不纠错,有错就扔掉并提供警告信息。
UDP校验和在数据之前发出,不同于MAC帧,所以程序设计时较难处理,在FPGA发送模块中,可以把校验和字段忽略,设置为0。依旧可以成功发送。校验和可正确可忽略,但不能错误。
—————————————————————————————————
每个帧都要包含前导码和校验码,前导码表示此帧到来,校验码验证此帧的正确性。
工具:
Ⅰ.小兵以太网测试工具:根据你的设置产生特定帧并通过你的电脑网卡发送出去。顺便计算IP报头校验和,UDP校验码。
Ⅱ.wireshark:可以抓包,抓取你的网卡发送和接收的所有数据。
Ⅲ.crc32_cal:计算mac帧的校验码。结果是低位在前,高位在后。
Ⅳ.网站:给出计算校验码的Verilog代码。
Ⅴ.网络调试助手:可以接收帧,并只显示帧里面的用户数据段。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22024.html