JavaWeb——数据链路层详解

news2024/11/19 17:33:00

目录

一、以太网

1、定义

2、以太网格式帧

二、MTU

1、定义

2、MTU对IP协议的影响

3、MTU对UDP协议的影响

4、MTU对TCP协议的影响

三、ARP协议

1、定义

2、ARP协议的作用

3、ARP协议的工作流程


一、以太网

1、定义

"以太网" 不是一种具体的网络,而是一种技术标准。它既包含了数据链路层的内容,也包含了一些物理层的内容。

例如:规定了网络拓扑结构,访问控制方式,传输速率......

此外以太网中的网线必须使用双绞线,其传输速率有10M,100M,1000M等。

注:以太网是当前应用最广泛的局域网技术,和以太网并列的还有令牌环网,无线LAN等。

2、以太网格式帧

mac的目的地址和源地址都是六个字节,相比于IPv4四个字节的地址大了6万多倍。虽然IPv4的地址不够用了,但mac地址还是够用的。目前每个设备的mac地址都是唯一的,并且不需要动态分配,是在网卡出厂时固化的。因此mac地址可以作为网络上身份识别的一种有效技术手段。

帧末尾是CRC校验码。

其中1500的意思是,一个以太网数据帧的载荷最大长度就是1500(硬件限制)。不同的数据链路层协议,对应不同的硬件物理设备,传输数据的上限也不一样。

帧协议类型字段有三种值,分别对应IP、ARP、RARP,其中ARP和RARP是特殊的以太网帧。

二、MTU

1、定义

数据链路层数据帧的最大载荷长度称为MTU,就相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应物理层时产生的限制。

  • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片
  • 不同的数据链路层标准的MTU是不同的

2、MTU对IP协议的影响

由于数据链路层MTU的限制,对于较大的IP数据包要进行分包。

  1. 将较大的IP包分成多个小包,并给每个小包打上标签
  2. 每个小包IP协议头的16位标识都是相同的
  3. 每个小包的IP协议头的3位标志字段中,第2位置为0,表示允许分片,第3位来表示结束标记(当前是否是最后一个小包,是的话置为1,否则置为0)
  4. 到达对端时再将这些小包,会按顺序重组,拼装到一起返回给传输层
  5. 一旦这些小包中任意一个小包丢失,接收端的重组就会失败。但是IP层不会负责重新传输数据

例:

注:IP报头搞多份是为了接收方组包,UDP报头就不必搞多份了。 

3、MTU对UDP协议的影响

一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)),那么就会在网络层分成多个IP数据报。

如果这些IP数据报有任意一个丢失,都会引起接收端网络层重组失败。那么这就意味着,如果UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加了。

4、MTU对TCP协议的影响

TCP的一个数据报也不能无限大,还是受制于MTU。TCP的单个数据报的最大消息长度,称为MSS(Max Segment Size)

TCP在建立连接的过程中,通信双方会进行MSS协商。最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU)。

双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。然后双方得知对方的MSS值之后选择较小的作为最终MSS。MSS的值就是在TCP首部的40字节变长选项中(kind=2)

三、ARP协议

1、定义

ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议。

ARP和RARP是二层转发的必要辅助工具。

注:二层转发即数据链路层的转发,交换机中有一个转发表,ARP就是用来构造转发表的机制。

2、ARP协议的作用

ARP协议建立了主机 IP地址 和 MAC地址的映射关系:

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址。数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。

3、ARP协议的工作流程

  • 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播)
  • 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中
  • 每台主机都维护一个ARP缓存表。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷歌浏览器 | Chrome DevTools系统学习篇-概述

Chrome DevTools是一套直接内置到谷歌Chrome浏览器的web开发工具。DevTools可以帮助您即时编辑页面并快速诊断问题,最终帮助您更快地构建更好的网站。我们今天的概述主要讲述谷歌浏览器的日常使用和几大常见控制面板的介绍。 目录 1.打开谷歌浏览器 2.谷歌浏览器的…

MySQL 页、页结构、页目录、索引

MySQL中,数据存到了什么地方? 存储到了硬盘的文件上,被称为:数据文件 或 表空间 每个数据库都是由 一组数据文件 组成,这些文件包含了:所有表、索引、其他相关对象的数据 MySQL 以什么样的方式访问&#…

安卓联发科MT6737手机开发核心板 开发模块

MT6737核心板是一款基于联发科MT6737T平台高性能、可运行安卓操作系统的4G智能模块。它支持多种制式,包括LTE-FDD/LTE-TDD/WCDMA/TD-SCDMA/EVDO/CDMA/GSM等。此外,它还支持WiFi 802.11a/b/g/n和BT4.0LE近距离无线通信,并支持GPS/GLONASS/北斗…

机器学习笔记之计算学习理论(二)PAC学习

机器学习笔记之计算学习理论——PAC学习 引言回顾:霍夫丁不等式霍夫丁不等式的问题及其优化 PAC \text{PAC} PAC引出新问题——霍夫丁不等式无法通过直接比较获取最优假设函数问题的解决方法新方法对于霍夫丁不等式的约束证明 总结 引言 上一节从霍夫丁不等式为切入…

STC32G12K128单片机的 moubus-rtu 从机测试工程

简介 STC32G12K128 是STC 推出的一款32位的 C251 的单片机。最近拿到一块官方申请的 屠龙刀-STC32G开发板,就用它的提供的库函数,查考安富莱提供的 modbus 例程移植了一个 modbus-rtu 从站的工程。 modbus-rtu slave 移植注意点 modbus-rtu 功能配置 …

每日学术速递5.3

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Learning Locally Editable Virtual Humans 标题:学习本地可编辑虚拟人 作者:Hsuan-I Ho, Lixin Xue, Jie Song, Otmar Hilliges 文章链接:htt…

【分享】7-Zip解压缩软件的超详细使用攻略

常用的解压缩软件,除了WinRAR之外,7-Zip也是不错的选择。 7-Zip不仅是一款完全免费的开源解压软件,它的解压缩功能也很强大,可以支持视频、文档、文件夹、图片等文件进行压缩操作。 今天小编就来分享一下,7-Zip解压缩…

python一键登录srun校园网(以深圳技术大学为例)

全世界最(不)好的目录 一、需求分析二、实现过程2.1 分析api2.1.1 连接到校园网,自动弹出登录认证界面2.1.2 先输入错误的账号密码,按F12看会获取哪些信息2.1.3 api 2.2 分析加密2.3 流程总结 三.模拟登录3.1 编写配置文件3.2.功能…

【微软Bing王炸更新】无需等待,人人可用,答案图文并茂,太牛了

🚀 AI破局先行者 🚀 🌲 AI工具、AI绘图、AI专栏 🍀 🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆&am…

opencv实践项目-图像拼接

目录 1.简介2. 步骤2.1 特征检测与提取2.2 关键点检测2.3 关键点和描述符2.4 特征匹配2.5 比率测试2.6 估计单应性 3. 完整代码 1.简介 图像拼接是计算机视觉中最成功的应用之一。如今,很难找到不包含此功能的手机或图像处理API。在本 文中,我们将讨论如…

虹科分享 | 专为创意专业人士设计的Thunderbolt适配器

一、方案介绍 虹科HK-ATTO ThunderLink雷电™ 适配器可以适用于任何地方。 1.小。 2.便携式。 3.强大。 我们的10GBE Thunderbolt适配器的性能至少比内置或附加NIC(包括Mac)高20% , ATTO 360只需点击一个按钮即可优化以太网SAN,并可与Thunder…

xxl-job 使用示例

目录 介绍 下载源码地址 文档网站 源码导入就是这样目录 数据库建表sql 就这么几个表出来了 修改xxl-job-admin项目下的application.properties文件 完事启动就行了 页面 页面访问地址 账号密码 增加自己的定时任务 介绍 这篇写的是接入使用xxl-job 的一个简单流程…

win系统使用macOS系统

最近 win 系统和 ubuntu 系统用的久了,想用一下 MacOS 系统,于是去网上查了相关资料,发现用一款叫 NEXUS 的软件可以实现在 windows 系统体验效果,现把教程记录下来,供大家使用。 目录 一、下载NEXUS 二、 安装NEXU…

IMX6ULL裸机篇之串口实验说明一

一. 串口 本章我们就来学习如何驱动 I.MX6U 上的串口,并使用串口和电脑进行通信。 串行接口指的是数据一个一个的顺序传输,通信线路简单。 UART 作为串口的一种,其工作原理也是将数据一位一位的进行传输,发送和接收各用一 条…

win11本地安全机构保护已关闭怎么办?如何修复windows11本地安全机构保护已关闭?

win11本地安全机构保护已关闭怎么办? 如何修复windows11本地安全机构保护已关闭? 近日有windows11系统用户反映说遇到了这样一个问题:启动电脑后,发现windows右下角的安全中心图标上会显示一个黄色叹号,打开windows安…

操作系统笔记--进程与线程

1--进程 1-1--进程的定义 进程表示一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程; 1-2--进程的组成 一个进程由以下部分组成:① 程序的代码; ② 程序处理的数据;③ 程序计数器中的值,其指示下一条将…

PHP流行框架的报错页面,你见过那些?

在PHP开发过程中,使用框架能够帮助我们更快速、高效地完成项目开发。但是,即使使用了框架,我们还是难免会遇到各种报错。而当我们在开发阶段或调试过程中遇到报错时,框架提供的错误页面可以给我们带来很大的帮助。PHP常用的流行框…

网易一面:如何设计线程池?请手写一个简单线程池?

说在前面 在40岁老架构师 尼恩的读者社区(50)中,最近有小伙伴拿到了一线互联网企业如极兔、有赞、希音、百度、网易的面试资格,遇到了几个很重要的面试题: 如何设计线程池? 与之类似的、其他小伙伴遇到过的问题还有: …

Reinhart FoodService的EDI需求详解

Reinhart FoodService是一家成立于1972年的美国食品服务公司,隶属于上市公司Performance Food Group。Reinhart FoodService为餐馆、酒店、医院、学校等各类机构提供广泛的食品选择和相关服务,产品包括新鲜的肉类、禽类、海鲜、奶制品、烘焙用品、蔬菜和…

迪赛智慧数——柱状图(象形动态图):不同性别消费者点外卖频率

效果图 我国超4亿人叫外卖,你多久点一次外卖? 据数据显示,30.7%男性消费者每周点3-4次外卖,34.3%的女性每周点3-4次,明显女性比男性点外卖频率多。而每周点1-2次外卖中均超过80%。 数据源:静态数据 { "column&…