8、链路层以太网协议,ARP协议32

网络层IP协议描述了通信中的起点到终点,但是数据不是飞过去的,是经过了大量的中间节点转发完成的。

一、以太网协议

1、MAC地址

物理硬件地址,是每一块网卡在出厂时设定的地址,固定且不可修改(早期,现在可以修改但没必要)

48位对端&48位源端MAC地址:描述了相邻的俩个指定物理硬件设备

16位上层协议:描述的是以太网帧中数据所使用的协议,用于数据分用时协议选择

32位数据帧尾:包含了校验和

 2、ARP协议

介于链路层与网络层之间的一个协议,作用就是通过IP地址获取指定设备的mac地址

  1. 广播ARP请求:将目的端MAC地址设置为全1(广播地址),其中包含了自己的IP和MAC地址,以及指定设备的IP地址
  2. 收到ARP请求的主机,会验证目标IP地址是否与自己一致,不一致则丢弃,一致则组织ARP响应填充自己的MAC地址进行回复

3、ARP欺骗攻击

在局域网中有个恶意主机,不断地给局域网每个主机大量进行发送ARP响应,覆盖主机上的ARP映射表中的信息,告诉主机自己是网关,然后给网关发送ARP响应自己是主机。(设置防火墙,局域网中mac白名单)

4、MTU链路层限制最大传输单元:以太网默认是1500

对上层协议的影响:

4.1tcp

MSS——最大数据段大小,他就是根据MTU计算得到,tcp在传输层发送数据时,就是从缓冲区中取出不大于MSS大小的数据封装报头进行传输。(tcp传输数据时,在网络层不会出现数据分片)

MSS = MTU - 最小IP报头 - 最小TCP报头大小

4.2udp

没有MSS的协商,只要数据封装报头后大小小于64k就可以发送,但是在网络层若封装IP报头后大于MTU就会分片,然而一旦数据在网络层进行了数据分片,在对端主机上的网络层就需要进行分片重组(源端传输层交给网络层什么数据,对端网络层就要交给传输层什么数据)

然而一旦传输过程中,某个分片丢失,会导致分片重组失败,则整个报文就会被丢弃(udp不保证可靠传输-丢了就没了)
意味着分片越多,传输风险越大

 

因此tcp通信咱们程序员通常不用多管,但是udp通信时,程序员在应用层最好就要考虑更多要素,就是数据如果较大,就要在应用层,最好分包,分包大小就要考虑MTU,尽可能的减少分片的可能。

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

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

相关文章

C语言模拟实现字符串处理函数

需要多一点点勇气,来面对变差的自己 大家好,我是纪宁。 这篇文章为大家带来的是5大字符串处理函数的模拟实现。 文章目录 1.strlen函数的模拟实现 2.strcpy函数的模拟实现 3.strcmp函数的模拟实现 4.strcat函数的模拟实现 5.strstr函数的模拟实现…

软件测试|SQL常用语法,你都会吗?

前言 SQL作为一门语言,和其他编程语言一样,都是需要遵循一些特定的规范和准则的,这也就是我们常说的语法(Syntax)。 下面是几个SQL的语法规则: 所有的 SQL 语法都必须以关键字(也称命令&…

04-spring配置文件加载过程

文章目录 spring配置文件加载过程 spring配置文件加载过程 调用refresh方法中obtainFreshBeanFactory() Overridepublic void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// Prepare this context for refreshing.…

我们如何在 Elasticsearch 8.6、8.7 和 8.8 中加速数据摄入

作者:Adrien Grand, Joe Gallo, Tyler Perkins 正如你们中的一些人已经注意到的,Elasticsearch 8.6、8.7 和 8.8 在各种数据集上带来了良好的索引加速,从简单的关键字到繁重的 KNN 向量,以及摄取管道繁重的摄取工作负载。 摄取涉及…

推荐10个Flutter开源项目

作为跨平台应用开发的领头羊,Flutter从已发布就受到广大开发者的追捧。使用Flutter技术开发的应用不仅体验上无限接近原生应用,在开发效率上也是其他技术无法比拟的。随着其开发者社区的不断壮大,Flutter生态系统已经相当强大,并且众多开源应用程序也相继诞生。这些开源应用…

ceph--cephFS的使用

ceph分布式存储—cephFS的使用 1、cephfs的概念 ceph FS 即 ceph filesystem,可以实现文件系统共享功能,客户端通过 ceph 协议挂载并使 用 ceph 集群作为数据存储服务器。 Ceph FS 需要运行 Meta Data Services(MDS)服务,其守护进程为 ceph-mds&#x…

MongoDB

安装 数据存放路径:D:\data\db 安装目录:D:\MongoDB\mongodb-windows-x86_64-5.0.19\mongodb-win32-x86_64-windows-5.0.19\bin 配置环境变量 开启服务端,客户端 # 开启服务端,指定数据存放路径 mongod --dbpath D:\data\…

【HCIA】11.ACL与NAT地址转换

ACL 通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的。 ACL是由permit或deny语句组成的一系列有顺序的规则的集合;它通过匹配报文的相关字段实现对报文的分类。ACL是能够匹配一个IP数据包…

vue 通过多组复选框来过滤数据

1.通过if else 来筛选数据 <template> <div><div><label><input type"checkbox" v-model"checkedNames" value"北京"> 北京</label><label><input type"checkbox" v-model"chec…

【Web UI自动化测试】Web UI自动化测试之框架篇(全网最全)

本文大纲截图&#xff1a; UnitTest框架&#xff1a; PyTest框架&#xff1a; 框架&#xff1a; 框架英文单词 framework&#xff0c;为解决一类事情的功能的集合。需要按照框架的规定&#xff08;套路&#xff09;去书写代码。 一、UnitTest框架介绍【文末分享自动化测试学习…

【iOS】—— 编译链接

【iOS】—— 编译链接 文章目录 【iOS】—— 编译链接编译流程预处理&#xff08;预编译Prepressing&#xff09;编译&#xff08;Compilation&#xff09;汇编&#xff08;Assembly&#xff09;链接&#xff08;Linking&#xff09; 编译流程 编译流程分为四步 预处理&#…

Windows搭建Nginx实现RTMP转为HLS流

所需软件 nginx-1.7.11.3-Gryphon&#xff08;这个包含必须的RTMP模块&#xff0c;普通的Ngxin没有这个&#xff09;ffmpegVLC 配置Nginx 1为Nginx配置RTMP和HLS 这里定义了一个叫live的RTMP路径。同时设置其开启HLS功能&#xff0c;那么所有推送到这个地址的RTMP流都会自动生…