以太网协议介绍(ARP、UDP、ICMP、IP)

以太网协议介绍

一、ARP协议

image-20230927174655552

请求:

image-20230928093935204

应答:

image-20230928094117392

ARP协议:

image-20230928094353878

0x0001 0x0800 6 4硬件类型:2个字节,arp协议不仅能在以太网上运行还能在其他类型的硬件上运行。以太网用1来表示;
协议类型:两字节。指的是arp协议的上层协议是什么,以太网中上层协议是IP,用0x0800表示;
硬件地址长度:1个字节。表示MAC地址的长度,即12-34-56-78-9a-ab,一共6位,所以这里填写6;
协议地址长度:一个字节。表示的是IP地址的长度。192.168.1.102,一共4个字节(byte);
OP:表示操作码,为1时表示请求,为2的时候是应答操作;
源mac地址:主机A的mac地址。长度为6字节;
源IP地址:主机A的IP地址。4个字节;
目的MAC地址:B主机的MAC地址。4个字节;
目的IP地址:B主机的IP地址。长度为6字节。注意:
A发送请求时,源地址是指A的;当B主机应答的时候源地址是指B的。即谁发送源地址就是谁,目的地址是要发送的目标地址。

以太网ARP数据包格式:

image-20230928100413094

FCS:校验

在以太网帧头部分也包含了目的地址的mac和ip地址。

二、以太网帧格式:

image-20230928100643903

以太网通信是通过包的形式进行传输的,不像串口协议一样单位是byte。

前导码:7个字节。由7个0x55组成,0x55=0101_0101;
SFD:帧开始的界定符,长度为1个字节。固定值0xd5;
目的MAC地址:数据发送给谁,目的端的MAC地址,6个字节;
源MAC地址:谁发送的数据,6个字节;
长度or类型:如下图解析;
以太网数据格式:这个字段最低46byte,最高1500Byte,1500是最大的传输单元,单个数据包如果超过1500字节的话会被对端设备丢弃;

image-20230928101927779

image-20230928101029056

帧间隙:

image-20230928110639925

三、以太网的UDP协议

image-20230928114741852

TCP和UDP的区别

image-20230928115105059

​ osi 7层模型:实现通信的任务image-20230928115454453

对于fpga开发,只需要关注传输层,网络层、数据链路层、物理层,嵌入式开发需要关注的是应用层、表示层、会话层。

物理层:底层硬件支持,利用传输介质为数据链路层提供物理连接,实现比特流的透明传输,使数据链路层不必考虑网络的介质是什么。PHY芯片、网线、RJ45座子等;
数据链路层:定义在单个链路上如何传输数据,其功能就是将数据组合成数据块(数据)。并提共数据差错校验的功能,帧是数据链路层传输的单位。如以太网的数据帧格式;
网络层:通过IP寻址来建立两个节点之间的连接,为数据包选择路由,如IP协议层;
传输层:作用是为上层协议提供端到端(端口到端口)的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题,如:TCP/UDP;会话层:建立和管理应用程序之间的通道
表示层:主要的功能就是定义数据传输过程中的数据格式以及加密;
应用层:计算机用户以及各种应用程序和网络之间的接口,功能说就是直接向用户提供服务,完成用户希望在网络上完成的各种工作。如文件传输服务(FTP)、超文本传输协议(HTTP)

UDP数据格式:

image-20230928135547991

四、IP协议简介

IP:internet protocol(网际协议)

IP协议是TCP/IP协议簇中的核心协议之一,也是TCP/IP协议的载体,IP协议规定了数据传输时的基本单元和格式。所有的TCP、UDP以及ICMP数据都是以IP数据报格式传输的。

IP数据报格式:

image-20230928140215148

IP首部是以4(32bit)个字节为单位,

image-20230928141746026

版本:IPv4 or IPv6;IPv4的地址是4个字节,即为0100,IPv6是6个字节,即0110; 
首部长度:指的是IP首部一共有多少个4个字节(以4个字节为单位),如果不包含可选字段,这里就填写5,5 * 4byte = 20 byte;
服务类型:一般设置为0,表示一般的服务;
总长度:IP首部和IP数据一共多长,最大的值为65535,但是实际上传送不了那么多,因为还要考虑以太网的帧格式长度,也就是只能传输1千多;
标识:初始值为0,每发送一个UDP数据包,这个值就累加1
标志:3bit,表示如有10000个数据,但是一次传输不了那么多,用于表示分片,需要对数据包进行分片;位号表示2  1  0,位号2为保留位为0,位号1为禁止分片位(不需要分片置为1,需要分片置为0),位号0表示需要更多的分片(在位号1使能的情况下使用),一般使用值为0。一般设为:010,表示不分片;
片偏移:分片的时候才有意义,当前的数据包位于整个数据包哪一个位置,方便后面解析的时候对其进行拼接;
生存时间:防止数据被无止境的复制下去,数据每经过1次路由器,生存时间就会减1;一般设置为64或者128;
协议:如果是UDP协议的时候就是17.如下图常用国际协议编号所示;
首部校验和:下面进行讲解,IP首部校验和计算方法图;
源IP地址:发送端的IP地址;
目的IP地址:接收端的IP地址;
可选字段:也是按照4个字节为单位;

image-20230928144649361

image-20230928145047538

举个例子:

image-20230928145257602

以太网UDP数据格式:

image-20230928150127685

UDP首部中端口号很重要,用于表示数据来自哪里和发送到哪里。

image-20230928150221276

如果IP的检验和不正确的话,接收端将会丢掉数据包,UDP校验和大部分的接收端是不管的,所以一般置为0x00。

五、ICMP协议

ICMP(Internet control message protocol的缩写),即互联网控制消息协议。它用于TCP/IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些消息,使得网络管理者可对所发生的问题做出诊断,然后适当的措施解决问题。

ICMP信息功能:

查询类报文:主要用于信息的查询和采集,比较教材传输路径上的每个路由器都是谁,本次传输的报文是否达到目的地等等。如ping功能就是这个。

差错诊断类报文:主要用于诊断网络故障,比如传输报文被丢弃的原因是什么等等。

ICMP协议包格式:

image-20230928152007534

ICMP查询报文:

image-20230928152318672

ICMP报文类型:

image-20230928152521484

	--晓凡   2023年10月2日于武汉书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/146329.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雷柏mv20鼠标使用体验

用了1年多,第一次用竖着的鼠标,现在已经很习惯了,感觉还不错。说说使用感受: 1、 仍然是长时间使用鼠标,但是很少出现手腕痛的情况,确实是有一定效果的。 2、使用场景是有限制的,我是配合笔记…

PHP8中final关键字的应用-PHP8知识详解

在PHP8中,final的中文含义是最终的、最后的意思。被final修饰过的类和方法就是“最终的版本”。 如果关键字final放在类的前面,则表示该类不能被继承。 如果关键字final放在方法的前面,则表示该 方法不能被重新定义。 如果有一个类的格式为…

php eayswoole node axios crypto-js 实现大文件分片上传复盘

不啰嗦 直接上步骤 步骤1.开发环境配置 项目需要node.js 做前端支撑 官网下载地址: http://nodejs.cn/download/ 根据自己需要下载对应的版本,我下载的是windows系统64位的版本。 包下载好后 进行安装,安装步骤在此省略... 测试是否安装成功 …

探索ClickHouse——连接Kafka和Clickhouse

安装Kafka 新增用户 sudo adduser kafka sudo adduser kafka sudo su -l kafka安装JDK sudo apt-get install openjdk-8-jre下载解压kafka 可以从https://downloads.apache.org/kafka/下找到希望安装的版本。需要注意的是,不要下载路径包含src的包,否…

1.4.C++项目:仿muduo库实现并发服务器之buffer模块的设计

项目完整版在: 一、buffer模块: 缓冲区模块 Buffer模块是一个缓冲区模块,用于实现通信中用户态的接收缓冲区和发送缓冲区功能。 二、提供的功能 存储数据,取出数据 三、实现思想 1.实现换出去得有一块内存空间,采…

14:00面试测试岗,14:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到9月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,…

DAMA-DMBOK2重点知识整理CDGA/CDGP——第17章 数据管理和组织变革管理

目录 一、分值分布 二、重点知识梳理 1、引言 2、变革法则 3、并非管理变革:而是管理转型过程 4、科特的变革管理八大误区 5、科特的重大变革八步法 6、变革的秘诀 7、创新扩散和持续变革 8、持续变革 9、数据管理价值的沟通 一、分值分布 CDGA&#xff…

Guava限流器原理浅析

文章目录 基本知识限流器的类图使用示例 原理解析限流整体流程问题驱动1、限流器创建的时候会初始化令牌吗?2、令牌是如何放到桶里的?3、如果要获取的令牌数大于桶里的令牌数会怎么样4、令牌数量的更新会有并发问题吗 总结 实际工作中难免有限流的场景。…

AI智能问答系统源码/AI绘画商业系统/支持GPT联网提问/支持Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图…

【数据结构】排序之插入排序和选择排序

🔥博客主页:小王又困了 📚系列专栏:数据结构 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、排序的概念及其分类 📒1.1排序的概念 📒1.2排序…

【视频去噪】基于全变异正则化最小二乘反卷积是最标准的图像处理、视频去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Academic accumulation|英文文献速读

一、英文文献速读法 (一)明确目的 建议大家阅读一篇论文之前先问一下自己是出于怎样的目的来阅读这篇文章,是为了找选题方向、学某个问题的研究设计、学某种研究方法、学文章写作还是别的。不同的阅读目的会导致不同的关注重点,例…

基于SpringBoot的仿京东商城系统

前台部分实现效果截图 后台部分实现效果截图 源码地址:https://download.csdn.net/download/qq_50954361/87647905

二、局域网联机

目录 1.下载资源包 2.配置NetworkManager 3.编写测试UI 1.下载资源包 2.配置NetworkManager (1)在Assets/Prefabs下创建Network Prefabs List 相应设置如下: (2) 创建空物体“NetworkManager”并挂载NetworkMan…

11链表-迭代与递归

目录 LeetCode之路——206. 反转链表 分析: 解法一:迭代 解法二:递归 LeetCode之路——206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head […

029-从零搭建微服务-消息队列(一)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):mingyue: 🎉 基于 Spring Boot、Spring Cloud & Alibaba 的分布式微服务架构基础服务中心 源…

华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs,可使用HLS协议

华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs,可使用HLS协议 什么是华为云云耀云L实例 云耀云服务器L实例,面向初创企业和开发者打造的全新轻量应用云服务器。提供丰富严选的应用镜像,实现应用一键部署&#x…

云安全之HTTP协议介绍

HTTP的基本概念 什么是网络协议 网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“,有了这种”约定不同厂商生产的设备,以及不同操作系统组成的计算机之间,就可以实现通信。 网络协议由三个要素构成:1、语…

Tomcat启动后的日志输出为乱码

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…