计算机网络-数据链路层:以太网协议、ARP协议、MAC、MTU

简介: 【2月更文挑战第2天】

一、以太网协议

1. 认识以太网

       (1)以太网不是一种具体的网络,而是一种技术标准。其中既包含了数据链路层的内容,也包含了一些物理层的内容。比如:规定了网络拓扑结构、访问控制方式,传输速率等。

       (2)以太网中的网线必须使用双绞线,传输速率有10M、100M,1000M等。

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

2. 协议格式

image.png

48位对端MAC地址,48位源端MAC地址,16位上层协议,数据,32位数据帧尾。

48位对端&源端MAC地址:

       描述了相邻的两个指定物理硬件设备。

16位上层协议类型:

       描述的是以太网帧中数据所使用的协议,用于数据分用时协议选择。

32位数据帧尾:

       包含了校验和(CRC校验码)。

二、 MAC地址

1. 认识MAC地址

MAC地址:物理硬件地址

(1)MAC地址是每一块网卡在出厂时设定的地址,固定且不可修改(早期)。(虚拟机中的MAC地址不是真实的MAC地址,可能会产生冲突)

(2)MAC地址用来识别数据链路层中相邻的节点。

(3)MAC地址长度为48位,及6个字节。一般用16进制数字加上冒号的形式来表示。

2. 对比MAC地址与IP地址

IP地址:描述的是路途总体的起点和终点。

MAC地址:描述的是路途上的每一个区间的起点和终点。

三、ARP协议

1. 认识ARP协议

       ARP协议是介于数据链路层和网络层之间的一个协议,作用就是通过IP地址获取指定设备的MAC地址。

2.  ARP协议的作用

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

(1)在网络通讯时,源端主机的应用程序知道对端主机的IP地址和端口号,但是不知道对端主机的硬件地址。

(2)数据包是先被网卡接收到,再去处理上层协议,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。

(3)所以在通讯前,必须先获得目的主机的硬件地址。

3. ARP协议的工作流程

(1)广播ARP请求,将目的端MAC地址设置为全1(广播地址),其中包含了自己的IP地址和MAC地址,以及指定设备的IP地址。

(2)收到ARP请求的主机,会验证目标IP地址与自己是否一致:一致,则组织ARP响应,填充自己的MAC地址进行回复;不一致,则丢弃。

(3)主机获取到指定主机的MAC地址后,会在arp缓存表中临时存储起来(默认保存30分钟)。

4. ARP欺骗攻击

       在局域网中有个恶意主机,不断的给局域网每个主机大量的进行发送ARP响应,覆盖主机上的ARP映射表,告诉主机自己是网关,然后给网关发送ARP响应,告诉自己是主机。

解决方法:设置防火墙,添加局域网的MAC白名单等方式。

四、MTU

1. 认识MTU

MTU:链路层限制的最大传输单元,以太网默认是1500字节。

(1)以太网帧中的数据长度规定,最小为46字节,最大为1500字节。若ARP数据包的长度不足46字节,需要在后面补填充位。

(2)最大值1500字节称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU

(3)若一个数据包从以太网路由到拨号链路上,数据包长度大于了拨号链路的MTU,则需要对数据包进行分片。

(4)不同的数据链路层标准的MTU不同。

2. MTU对IP协议的影响(了解)

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

(1)将较大的IP包分成多个小包,并给每个小包打上标签。

(2)每个小包IP协议头的16位标识(id)都是相同的。

(3)每个小包的IP协议头的3位标志字段中,第2位置0,标识允许分片,第3位来表示结束标记(当前是最后一个小包,则置1,否则置0)。

(4)到达对端时,再将这些小包按序重组,拼接到一起后再交付给传输层。

(5)一旦这些小包中任意一个包丢失,接收端就会重组失效,但是IP层不会负责进行数据重传。

3. MTU对TCP协议的影响

回顾一下TCP协议:

(1)TCP的一个数据报不能无限大,也是受限于MTU。TCP的单个数据报的最大信息长度,称为MSS。

(2)TCP在建立连接的过程中,通信双方就会协商MSS。

(3)最理想的情况下,MSS的值正好是IP不会被分片处理的最大长度(这个长度,仍然是受限于数据链路层的MTU)。

(4)双方在发送SYN的时候会在TCP头部写入自己所能支持的MSS值。

(5)双方得知对方的MSS值后,会选择较小的值作为最终的MSS。

TCP通信时,程序员通常不用过多考虑:

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

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

4. MTU对UDP协议的影响

回顾一下UDP协议:

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

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

       UDP通信时,不存在MSS协商过程,只要数据报整体大小小于64k就可以进行传输,但是在网络层会因为大于MTU而导致数据分片,分片后的数据到达对端主机后就需要进行分片重组,而一旦有一个分片有问题,整个数据报文就会被丢弃。

       所以程序员需要最好在应用层就考虑到更多的要素,如果数据过大,就要最好在应用层分包,分包大小需要考虑MTU,尽可能的减少分片可能。

相关文章
|
9月前
|
数据采集 算法 数据挖掘
模块化控制协议(MCP)在网络中增强智能体执行效率的研究
随着Web3技术的迅速发展,去中心化应用和智能体在各种领域的应用逐渐增多。MCP(Modularized Control Protocol,模块化控制协议)作为一种增强智能体执行能力的关键技术,为Web3场景中的智能体提供了更强的灵活性和可扩展性。本文将探讨如何利用MCP技术提升智能体在Web3场景中的执行能力,并通过实例代码展示其实现路径。
889 22
|
6月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
7月前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
11月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
337 18
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
353 22
|
网络协议 数据安全/隐私保护 网络架构
|
缓存 网络协议 API
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
|
人工智能 自然语言处理 决策智能
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
521 6