UDP协议

一、以太网

以太网是一种计算机局域网技术,它使用广播信道进行数据传输。以太网的标准由IEEE制定,其技术标准定义了物理层的连线、电子信号和介质访问控制等内容。以太网是目前应用最普遍的局域网技术,它取代了其他局域网标准如令牌环、FDDI和ARCNET。以太网具有广播功能,便于系统的扩展和逐渐演变,同时提高了系统的可靠性、可用性、生存性。以太网有两种类型:经典以太网和交换式以太网。经典以太网是以太网的原始形式,运行速度从3~10 Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在100、1000和10000Mbps那样的高速率。

二、UDP

UDP(User Datagram Protocol,用户数据报协议)是计算机网络中的一种传输层协议,与TCP(Transmission Control Protocol,传输控制协议)相对应。UDP协议是一种无连接的协议,它在传输数据之前不需要建立连接,也不需要等待对方的确认。

UDP的主要特点包括:

  1. 无连接:UDP协议在传输数据之前不需要建立连接,发送方可以直接发送数据报给接收方,而无需等待对方的确认。
  2. 不可靠性:由于UDP协议没有确认机制,因此它无法保证数据报的可靠传输。如果数据报在传输过程中丢失或损坏,UDP协议不会自动进行重传或修复。
  3. 高效性:由于UDP协议没有复杂的连接建立和确认机制,因此它的传输效率较高,适用于实时性要求较高的应用,如音频和视频流等。
  4. 面向数据报:UDP协议以数据报为单位进行传输,每个数据报都是独立的,可以单独进行路由选择和转发。

UDP协议广泛应用于网络中的许多应用,如DNS(域名系统)查询、SNMP(简单网络管理协议)消息、VoIP(语音通话)在线视频等。尽管UDP不提供可靠性保证,但许多应用通过上层协议或应用程序本身的机制来实现数据的可靠传输。例如,在VoIP中,可以通过使用RTP(实时传输协议)和RTCP(实时传输控制协议)来保证音频和视频流的传输质量。

总之,UDP是一种无连接、不可靠但高效的传输层协议,适用于实时性要求较高的应用。在网络应用中,需要根据具体的需求和场景选择合适的传输层协议来实现数据的传输。

三、以太网接口

以太网的硬件接口通常包括MAC(媒体接入控制器)和PHY(物理接口收发器)。MAC由IEEE 802.3以太网标准定义,实现了数据链路层。常用的MAC支持10Mbit/s或100Mbit/s两种速率。MII(管理接口)包含两个信号,一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。一个以太网接口的硬件电路原理从CPU到最终接口依次为CPU、MAC、PHY、以太网隔离变压器、RJ45插座。以太网隔离变压器是以太网收发芯片与连接器之间的磁性组件,在其两者之间起着信号传输、阻抗匹配、波形修复、信号杂波抑制和高电压隔离作用。许多处理器内部集成了MAC或同时集成了MAC和PHY,另有许多以太网控制芯片也集成了MAC和PHY。

四、协议内容

 1.OSI

OSI(Open Systems Interconnection)模型是一种概念模型,表征和标准化了通信功能的电信或计算系统,不考虑它们的底层内部结构和技术。

该体系结构标准定义了网络互连的七层框架,即物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI模型的目标是不同通信系统与标准协议的互操作性,它是一个产品的开放系统互连在项目国际标准化组织(ISO),通过识别ISO / IEC 7498-1维持。

在本章中udp协议对于我们fpga连接来讲只用到了物理层。

2.物理层

这方面我们需要知道MAC与PHY两个是什么,MAC是属于发送端的物理地址管理,PHY是属于物理接口管理,两个都在物理层但极容易混淆成两个层,因为翻译过来都是物理层的意思。

MAC地址

MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡的EPROM。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的 。

MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是唯一的。

PHY

PHY是物理接口收发器。像咱们fpga的话一般是连接外部芯片实现PHY连接的。例如:

3.接口

目前使用的接口大多数是MII、GMII、RGMII,区别的话就是引脚数量和速度,理论都是通过MII开发的。

具体引脚的作用可以参考下面文章,我就不多描述了。

关于MII、RMII、GMII、RGMII、PHY、网络变压器、RJ45的硬件总结-CSDN博客

4.以太网帧协议

 规定的协议格式:

前导码帧开始符目标MAC地址源MAC地址帧类型IP数据段FCS帧间距

前导码:用于数据帧同步;固定发送7个字节的 8'h55

帧开始:标明下一个字节为目的 MAC 字段;固定为8'hd5

目标MAC地址:目标物理地址

源MAC地址:源发送端物理地址

帧类型:2个字节长度,当这两个字节的值小于 1518 时,那么它就代表其后数据字段的长度;如果这两个字节的值大于 1518则表示该以太网帧中的数据属于哪个上层协议(例如 0x800 ,代表 IP 数据包; 0x806 ,代表 ARP 数据包等。)

IP数据端:46~1500个字节,高层的数据,通常为 3 层协议数据单元。对于 TCP/IP是 IP 数据包。

帧校验值FCS:对接收网卡提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧。

帧间距:12个字节,缓冲,为下一帧做准备。

对MAC地址的说明:

将这里的6 字节目的地址按照下面的格式来书写,如:00-01-02-03-04-05。这6个字节在以太网中是按照从左到右(先发该字段的高字节后发字段的低字节)的顺序发送的,同时对每个字节来说,最先发送的是最低位bit0,最后是最高位bit7。

在以太网帧中,目的MAC 地址可以分为三类:单播地址、多播地址和广播地址。单播地址通常与一个具体网卡的 MAC 地址相对应,它要求第一个字节的 bit0 (即最先发出去的位)必须是 0 ;多播地址则要求第一个字节的 bit0 为 1 ,这样,在网络中多播地址不会与任何网卡的 MAC 相同,多播数据可以被很多个网卡同时接收;广播地址的所有 48 位全为 1(即 FF FF FF FF FF FF ),同一局域网中的所有网卡可以接收广播数据包。

5.IP数据段格式:

IP 报头的最小长度为 20 字节,上图中每个字段的含义如下:

1) 版本(version):占 4 位,表示 IP 协议的版本。通信双方使用的 IP 协议版本必须一致。目前广泛使用的IP协议版本号为 4(4'b0100),即 IPv4。

2) 首部长度(网际报头长度IHL):占 4 位,可表示的最大十进制数值是 15。这个字段所表示数的单位是 32 位字长(1 个 32 位字长是 4 字节)。因此,当 IP 的首部长度为 1111 时(即十进制的 15),首部长度就达到 60 字节。当 IP 分组的首部长度不是 4 字节的整数倍时,必须利用最后的填充字段加以填充。数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时较为方便。首部长度限制为 60 字节的缺点是,长度有时可能不够用,之所以限制长度为 60 字节,是希望用户尽量减少开销。最常用的首部长度就是 20 字节(即首部长度为 0101),这时不使用任何选项。

3) 区分服务(tos):也被称为服务类型,占 8 位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998 年 IETF 把这个字段改名为区分服务(Differentiated Services,DS)。只有在使用区分服务时,这个字段才起作用。

4) 总长度(totlen):首部和数据之和,单位为字节。总长度字段为 16 位,因此数据报的最大长度为 2^16-1=65535 字节。

5) 标识(identification):用来标识数据报,占 16 位。IP 协议在存储器中维持一个计数器。每产生一个数据报,计数器就加 1,并将此值赋给标识字段。当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。具有相同的标识字段值的分片报文会被重组成原来的数据报。

6) 标志(flag):占 3 位。第一位未使用,其值为 0。第二位称为 DF(不分片),表示是否允许分片。取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片。第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片。

7) 片偏移(offsetfrag):占 13 位。当报文被分片后,该字段标记该分片在原报文中的相对位置。片偏移以 8 个字节为偏移单位。所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍。

8) 生存时间(TTL):表示数据报在网络中的寿命,占 8 位。该字段由发出数据报的源主机设置。其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源。路由器在转发数据报之前,先把 TTL 值减 1。若 TTL 值减少到 0,则丢弃这个数据报,不再转发。因此,TTL 指明数据报在网络中最多可经过多少个路由器。TTL 的最大数值为 255。若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送。

9) 协议:表示该数据报文所携带的数据所使用的协议类型,占 8 位。该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。

10) 首部检验和(checksum):用于校验数据报的首部,占 16 位。数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值。

11) 源地址:表示数据报的源 IP 地址,占 32 位。

12) 目的地址:表示数据报的目的 IP 地址,占 32 位。该字段用于校验发送是否正确。

13) 可选字段:该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的。这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制。

14) 填充:由于可选字段中的长度不是固定的,使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍。

15) 数据部分:表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据。数据部分的长度不固定。

就先到这里吧,下一期补充一下:IP数据段中 首部校验和的计算,以及udp报头和udp数据段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值