Java ee 数据链路层重点协议 以太网

本文介绍了以太网的基本概念,包括其帧格式和应用场景。接着探讨了MTU(最大传输单元)对IP、UDP、TCP协议的影响,以及分包过程。此外,还阐述了ARP协议在IP地址到MAC地址转换中的作用。最后提到了应用层协议DNS的作用和域名解析流程。
摘要由CSDN通过智能技术生成


一、认识以太网

数据链路层重点协议主要是“以太网”
比如我们平时插的网线,就叫做“以太网线”

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

例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等;
以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

1)以太网帧格式

在这里插入图片描述

在这里插入图片描述
我们这里的目的地址和源地址都是用6个字节表示的,这个比IPv4更长,长了约6w倍。

这里的地址称为“mac”地址(也叫物理地址)
mac地址做到了,每个设备都是唯一的(每个网卡都是唯一的),这是在网卡出厂的时候就写死了

可能会有人问:“这个网卡物理地址能不能改呢?”
回答:有些网卡可以改,因为有些网卡是支持手动配置的

在这里插入图片描述
这里的物理地址00-EO-4C-8D-46-E6

注:一台电脑上可能会有多个网卡,这些不同网卡的物理地址也是不同的

可能会有同学问:“都有IP地址了,为啥还要物理地址?”
因为当年网络层协议和数据链路层协议是独立研发出来的,ip地址和mac地址按理来说有一套就够了。

现在的现状就是当前的mac地址和IP地址同时使用,表示不同的功能。

IP地址用来表示一次传输过程中的起点和终点

mac来表示传输过程中,任意两个相邻节点之间的地址
(一个以太网数据帧,在每次转发的过程中,源mac和目的mac都会改变)

二、认识MTU

在这里插入图片描述
MTU相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制(简单说就是这个范围取决于硬件设备)。比如上图的46~1500

以太网和硬件也是密切相关的,其他硬件设备,对应的数据链路层协议,可能又不一样,MTU可能也不相同。

数据链路层考虑的是相邻节点之间的数据传输
考虑这个细节的时候,就需要关注到交通工具是什么
不同的交通工具,能够搭载的数据量就不太同

1)MTU对IP协议的影响

如果数据报超过了MTU怎么办?
IP层能够分包
IP层的分包,其实不是分给IP的报头的64k准备的,更多的是为了适应数据链路层的MTU

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

2)MTU对UDP协议的影响

我们之前说过UDP数据也是有长度限制的,但是UDP其实很容易触发这里的MTU,如果UDP的包达到或超过MTU的一个范围,就会导致IP分包(一个包变成多个包,丢包概率会更高)

3)MTU对TCP协议的影响

ps:让我们再回顾一下TCP协议:
TCP的一个数据报也不能无限大,还是受制于MTU。
TCP的单个数据报的最大消息长度,称为MSS(Max Segment Size);

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

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

然后双方得知对方的MSS值之后,选择较小的作为最终MSS。

MSS的值就是在TCP首部的40字节变长选项中(kind=2);

MSS:TCP中在IP不分包的情况下,最多搭载多少载荷,这个值也取决于TCP和IP的报头(报头都是报头的)、
在这里插入图片描述
分包的开销还是有的,MSS对TCP起到一定的提示作用,当前传输TCP的数据长度不超过MSS的时候,是属于最高效的状态。

三、ARP

在这里插入图片描述

ARP报文并不是用来传输数据的,只是起到一个辅助的效果。

路由器这个的设备,在转发设备的时候,首先拿到的是一个IP地址(目的IP),通过IP地址来决定接下来这个数据怎么走(从哪个端口出,发送到哪个端口)

因此就得决定,接下来封装的以太网数据帧,目的mac是什么,需要根据ARP协议,建立起IP->mac这样的映射关系——类似hash表这样的键值对结构,但是这个表不一定是在内存里,也可能是直接在硬件中存储。

当设备启动的时候,就会向局域网中,广播ARP报文,每个设备收到之后,都会给出一个应答。
应答的信息中就包含了自己的IP和mac
发起广播的一方就可以根据这些应答,建立起这个映射表了

举个例子:我想统计每个同学的邮箱
我广播一下:“同学们把自己名字和邮箱发给我”
大家收到这个广播消息,就私信给我,然后我把这些结果整理到一张表格上。

ps:关于RARP只是在偶尔的场景中偶尔用到,我们这里不多介绍了

四、一些补充

1)应用层重点协议DNS

DNS是一个应用层协议,它起到的效果就是域名解析

由于IP地址不好记,即使变成了点分十进制,仍然对人类来说不太友好,就可以使用一串英文单词来表示这个IP地址,这串英文单词就称为域名

比如www.baidu.com这就是域名

域名和IP地址之间,是一个一一对应的关系

DNS系统,最开始的时候,只是一个普通的文件,称为host文件
在这里插入图片描述

现在,虽然host文件已经不再使用了(想用也还是好使的),全世界域名那么多,总不能每时每刻对这个host进行更改

于是,成立了一个专门的机构,赋值维护这里的域名和IP的对应关系,比如你要申请一个域名,就需要去和这个机构进行报备

这个机构维护一组服务器,把host文件存到这个服务器里——域名解析服务器(根域名解析服务器

你自己的电脑如果想进行域名解析,就去访问一下这个机构的服务器

那么问题就来了:全世界设备这么多,每个设备上网都要去访问这个域名解析服务器吗?域名解析服务器不会垮掉?
回答:全世界各个国家、地区、城市都有各自的网络运营商,这些网络运营商就会就近架设域名解析镜像服务器
(镜像就相当于照镜子一样,把里面的数据复刻一遍)

咱们平时上网,一般就是就近访问了我们的镜像服务器

如果有新的域名出现,或者旧的域名消亡,就让镜像服务器和根域名解析服务器定期进行同步即可

当我们的主机查询一次DNS之后,主机就会把这个查询结果缓存一定的时间(比如浏览器进行缓存),下次再访问到同一个域名的时候,就可以省略查询DNS的过程了,因为DNS域名和IP的对应关系是很少变化的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

劲夫学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值