首页 > 其他分享 >以太网:UDP包结构

以太网:UDP包结构

时间:2024-03-30 15:44:05浏览次数:20  
标签:UDP 字节 IP MAC 地址 数据包 以太网 结构

参考:

UDP协议报文结构_udp报文结构-CSDN博客

千兆以太网(3):接收——包校验和数据筛选 - 咸鱼IC - 博客园 (cnblogs.com)

计算机网络·啥玩意是源MAC地址,目标MAC地址,源ip地址,目标ip地址_目的mac地址和源mac地址-CSDN博客

数据的校验和筛选

仅供参考

帧首部:

7个h55+hd5

MAC首部:

目的MAC:发送目的的MAC(FPGA MAC)

目的MAC处的广播包指的是全F,意为此网段内的所有主机都能接收。

源MAC:发送源的MAC(PC MAC)

  • 字节0-6: 0x55,前导码,帧头,用于标识数据包的开始。
  • 字节7: 0xD5,界定符,标识帧头结束和实际数据开始的地方。
  • 字节8-13: 0xFF_FF_FF_FF_FF_FF,目的MAC地址,EII格式,表示以太网目的地地址。
  • 字节14-19: 0xA8_BB_C8_07_D9_9F,源MAC地址,表示发送数据包的设备的以太网地址。

IP首部:

  • 字节20-21: 0x0800,Type字段,指定了上层协议(这里是IP协议)。
  • 字节22: 0x45,IP版本和头部长度(4表示IPv4, 5表示头部长度是5*4=20字节)。
  • 字节23: 0x00,服务类型字段TOS,指定数据包的处理优先权。
  • 字节24-25: 0x041C,总长度字段,指IP头部、UDP头部和数据的总长度,这里是0x041C即1052字节。(20+8+1024)
  • 字节26-27: 0x0000,标识字段,每发一个数据包就增加的值。
  • 字节28-29: 0x0000,标志和片偏移字段。
  • 字节30: 0x80,TTL字段,通过最多路由跳数。
  • 字节31: 0x11,协议字段,表示使用的是UDP协议。
  • 字节32-33: 0x0000,头部校验和字段,用于错误检测,发送时计算。(接收端可以不校验,仅校验首部,类似MIPI的ECC)
  • 字节34-37: 0xC0A80001,源IP地址,这里为192.168.0.1。(发送源地址)
  • 字节38-41: 0xFFFFFFFF,目的IP地址,这里为广播地址255.255.255.255。(目的地址)

 

UDP协议,或者说OSI模型下每一层是互相隔离的,CRC解析完以后数据会送完不同的层数,字节32-33仅能在IP层面解析;

  • 字节30: 0x80,TTL字段,通过最多路由跳数。

其值在这个例子中被设置为0x80,即十进制的128。TTL字段用于指定数据包在网络中可以通过的最大路由器跳数。每当数据包通过一个路由器,它的TTL值会减一。当TTL值达到0时,数据包会被丢弃,这样防止了一个数据包在网络中无限期地循环。128是一个常用的默认值,足够大以确保数据包可以通过大多数网络而不会因为TTL耗尽而被丢弃。

 

UDP头部 (8字节)

  • 字节42-43: 0x04D2,源端口号,这里为十进制的1234。
  • 字节44-45: 0x007B,目的端口号,这里为十进制的123。
  • 字节46-47: 0x0408,UDP长度,包括UDP头部和数据负载的长度,这里为1032字节。(8+1024)
  • 字节48-49: 0x0000,UDP校验和,用于错误检测,发送时计算。

数据负载

  • 字节50-1073: 跟随UDP头部的数据负载。(数据长度其实是任意字节,但需要小于等于1.5K字节)

尾部

  • 字节1074-1077: CRC(循环冗余检验),4字节,用于错误检测。
  • 校验范围:除了8字节帧首部外的8-1077区域是否传输错误;

 

IP地址规范化

IP 地址分为五类,A 类保留给政府机构,B 类分配给中等规模的公司,C 类分配给任何需要的人,D 类用于组播,E 类用于实验,各类可容纳的地址数目不同。 A、B、C 三类 IP 地址的特征: 当将 IP 地址写成二进制形式时, A 类地址的第一位总是 0, B 类地址的前两位总是 10, C 类地址的前三位总是 110。 地址格式为: IP 地址=网络地址+主机地址或 IP 地址=网络地址+子网地址+主机地址。  

MAC(Media Access Control,介质访问控制)地址

也叫硬件地址,长度是48 比特(6 字节),由 16 进制的数字组成,分为前 24 位和后 24 位: 前 24 位叫做组织唯一标志符(Organizationally Unique Identifier,即 OUI), 是由 IEEE 的注册管理机构给不同厂家分配的代码,区分了不同的厂家。 后 24 位是由厂家自己分配的,称为扩展标识符。 同一个厂家生产的网卡中MAC 地址后 24 位是不同的。 MAC 地址对应于 OSI 参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机 MAC 地址和自身端口的数据库,交换机根据收到的数据帧中的“目的 MAC 地址”字段来转发数据帧。 网卡的物理地址通常是由网卡生产厂家烧入网卡的 EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。 也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一定是全球唯一的。 比如,著名的以太网卡,其物理地址是 48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。   以太网地址管理机构(除了管这个外还管别的)(IEEE)(IEEE:电气和电子工程师协会)将以太网地址,也就是 48 比特的不同组合,分为若干独立的连续地址组, 生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。 物理地址是网卡的身份证,进入网络的通行证。 物理地址不是 IP,是网卡的一个 MAC 地址,这个地址是唯一的。 

 

 

标签:UDP,字节,IP,MAC,地址,数据包,以太网,结构
From: https://www.cnblogs.com/VerweileDoch/p/18105593

相关文章

  • C语言---自定义类型:结构体
    文章目录前言1.结构体类型的声明2.结构体变量的创建和初始化2.1.创建结构体变量2.2.结构体变量的初始化2.3.嵌套结构体变量2.4.结构体的自引用3.结构成员访问操作符3.1.结构体成员的直接访问3.2.结构体成员的间接访问4.结构体内存对齐4.1对齐规则4.2为什么存在内......
  • 金工实习、C语言课设、数据结构课设-报告
    源代码丢失了只剩下报告,配图流程图齐全,可直接使用C语言课设报告:香水管理系统数据结构课设报告:西邮导航金工实习:车工学习、钳工学习、数控学习 文章头部下载三篇报告压缩包~......
  • 校验码-体系结构-指令-流水线
    校验码码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。奇偶校验码:在编码中增加1位校验位来使编码中1的个数为奇数(奇校验)或者偶数......
  • 数据结构:归并排序
    归并排序时间复杂度O(N*logN)如果两个序列有序,通过归并,可以让两个序列合并后也有序,变成一个有序的新数组对于一个数组,如果他的左右区间都有序,就可以进行归并了归并的方法将数组的左右两个有序区间比较,每次都取出一个最小的,然后放入临时数组(不能在原数组上修改,因......
  • 数据结构(六)——图
    六、图6.1图的基本概念图的定义图:图G由顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。若V={v1,v2,…,vn},则用|V|表示图G中顶点的个数,也称图G的阶,,用|E|表示图G中边的条数。注意:线性表可以是空表,树可以是......
  • 数据结构之————线性表ADT、以数组存储方式实现抽象类型的一个实例
    前言:基础填坑1、ADT在文章开始前,我们要弄明白什么是ADT(AbstractDataType)抽象数据类型1、ADT是用户定义的数据类型,它包含一组数据以及在这组数据上进行的操作。只定义操作的行为,没有具体的实现细节2、它存在的目的是使我们能够独立于程序的实现细节来理解数据结构的特......
  • 一文搞懂Python的数据结构-列表
    大道至简:任何技术都来源于生活,每一个技术点都是为了解决生活场景中的某个问题1/Python列表基础1.1什么是列表?从生活场景说起,购物清单=列表当我们去购物时,我们通常会准备一个购物清单,其中列出了我们需要购买的物品。这个购物清单就是一个列表的实际应用。你可......
  • 基本运算符及流程控制语句(顺序、分支、循环结构)
    昨日内容回顾【一】八大基本数据类型#【1】数字类型#(1)整数类型(int)#(2)浮点数类型(float)#【2】字符串类型(str)#【3】列表类型(list)#【4】布尔类型(bool)#【5】字典类型(dict)#【6】集合类型(set)#【7】元组类型(tuple\)#【二】整数类型#能代表整数,代表......
  • DOM(文档对象模型):理解网页结构与内容操作的关键技术
    DOM(文档对象模型)定义了一种访问和操作文档的标准。它是一个平台和语言无关的接口,允许程序和脚本动态访问和更新文档的内容、结构和样式。HTMLDOM用于操作HTML文档,而XMLDOM用于操作XML文档。HTMLDOM示例通过ID获取并修改HTML元素的值:<!DOCTYPEhtml><html><head><style>......
  • C语言 结构体和联合体、解释C语言中的结构体及其用途。
    一、结构体和联合体结构体和联合体在C语言中都是重要的数据类型,但它们在使用和特性上有所区别。结构体是由一批数据组合而成的结构型数据,由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型。结构体中的每个数据成员都占用自己的内存空间,结构体......