数据链路层之以太网

目录

前言

什么是以太网?

以太网帧格式

6位源地址和目的地址

什么是MAC地址?

MAC地址和IP地址的区别

2位类型

ARP协议

ARP协议的作用

ARP协议的工作流程

数据长度

MTU对IP协议的影响

CRC校验和


前言

在前面,我们已经讲了在TCP/IP模式下的几个层次:应用层------程序员自定义协议、传输层------常用的TCP协议、UDP协议、网络层------IP协议,那么本篇我们就来了解一下在数据链路层的以太网协议。

什么是以太网?

  • 以太网不是一种具体的网络,而是一种技术标准;既包括了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等;
  • 以太网中的网线必须使用双绞线;传输速率有10M,100.100M等;
  • 以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网、无线LAN等。

以太网帧格式

6位源地址和目的地址

源地址和目的地址记录了该数据帧要从哪里发送到哪里 ,记录了发送方和接收方的地址,需要注意的是,这里的地址不是IP地址,而是指网卡的硬件地址(MAC地址)。

什么是MAC地址?

MAC 地址,全称为 Media Access Control 地址,是分配给网络接口控制器(NIC)的唯一标识符,用于在物理网络段中进行通信。它是网络通讯的基础组成部分,尤其是在局域网(LAN)技术中,包括 Ethernet 和 Wi-Fi。MAC 地址由 48 位或 64 位组成,通常以六组两位十六位进制数表示 ,例如 00:1A:2B:3C:4D:5E。这种格式使得 MAC 地址既容易阅读又便于处理。

MAC地址在网卡出厂时就确定了,不能修改,MAC地址通常是唯一的(虚拟机中饭的mac地址不是真实的mac地址,可能会冲突;也有些网卡支持用户配置mac地址)。

我们可以打开cmd输入ipconfig -all进行查看:

MAC地址是用6个字节表示的,比4个字节的IP地址能够分配的数量多上6w多倍,现在的MAC地址其实是能够满足人类的需求,那为什么还要有IP地址?

这是在网络最开始的时候,IP地址和mac地址是由两个团队在同一个时间段各自独立的提出来的,虽然这两个都能用来表示地址,但是使用场景不同,IP地址是在网络层的,MAC地址是在数据链路层使用的 ,且一个设备具有唯一的MAC地址,一般不能修改。

IP地址用来表示在网络上两个设备之间的起始地和目的地,而MAC则表示在从发送方到接收方路径上每两个节点之间的起始地和目的地。

假设我现在在广东汕头,想要去西安。那么我们就先得做好路径规划,从汕头------>广州------>长沙------>西安。路径规划就是网络层做的事,源IP地址是汕头,目的IP地址是西安。那么如果我们现在要出发从汕头到广州,,此时在以太网数据帧(数据链路层)中,源IP地址是汕头,目的IP地址是西安,但源MAC是汕头,目的MAC地址是广州。从广州到长沙,源IP和目的IP依旧是汕头和西安,但源MAC是广州,目的MAC是长沙;而从长沙到西安,源MAC地址是长沙,目的MAC地址是西安。 我们可以观察到,源IP地址和目的IP地址从始至终都是不变的,但源MAC地址和目的MAC地址则是根据两个相邻节点不断变化的。

MAC地址和IP地址的区别

  • IP地址是由服务商分配的,MAC地址是网卡的物理地址;
  • IP地址空调在局域网内随意更改,但MAC地址一般不能更改;
  • IP地址是32位(4个字节),而MAC地址是48位(6个字节);
  • IP地址应用于网络层,MAC地址应用于数据链路层。
  • IP地址描述的是路径总体的起点和终点;而MAC地址描述的是路途上每两个节点的起点和终点。

2位类型

2位类型字段用来描述载荷中存储的是什么类型的数据。可以用来区分不同的以太网帧类型,如以太网帧、IP数据报(0800)、ARP请求(0806)和应答、RARP请求和应答(8035)等

ARP协议

ARP(全称Adress Resolution Protocol,地址解析协议),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

IP协议路由转发的过程中都是拿着IP地址来进行查路由表的,从而来得到"网络接口",具体来说就是要传输给哪个MAC地址的设备。这个过程就涉及到了IP地址转换成MAC地址,就需要用到ARP协议来建立IP地址和MAC地址的映射关系。

ARP协议的作用

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

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

数据长度

在以太网帧格式中,能够容纳的IP数据包的字节数最大为1500字节(相当于1.5kb),在数据链路层中能容纳最大载荷长度 又叫做MTU最大传输单元)。MTU的大小跟硬件设备直接相关,不同的硬件设备,对应到了不同的数据链路层协议,也就对应不同的MTU。

MTU会对上层协议作出限制,IP数据包的分包和组包更多的是为了应对MTU的限制。当一个IP数据报达到了1500以上,就会自动拆包。

MTU对IP协议的影响

由于数据链路层MTU的上层协议的限制,因此,对于较大的IP数据包需要进行拆包。

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

CRC校验和

校验和用来校验数据在网络的传输过程中是否出现了错误。以太网协议校验和是在帧尾。不同于其他协议。


以上就是有关数据链路层中以太网协议的相关知识点咯~

若有不足,欢迎指正~

相关推荐
GQH1000几秒前
运算符、分支语句
linux·c语言
zundujia12 分钟前
C语言进程
linux·运维·服务器
Y_3_724 分钟前
Redis 中 String 字符串类型详解
linux·数据库·redis·缓存·bootstrap
_shenash36 分钟前
Linux C# DAY3
linux·运维·服务器
Fab1an37 分钟前
打靶记录18——narak
服务器·网络·安全·web安全·网络安全
媛媛要加油呀1 小时前
web功能测试总结(自用分享)
运维·服务器·前端·功能测试
青果网络_xz1 小时前
爬虫中,短效IP和长效IP哪个更好用?
服务器·爬虫·网络协议·tcp/ip·http
2401_872514971 小时前
在线代理提取IP:一文详解其含义和应用
服务器·网络·网络协议·tcp/ip·安全
极地星光1 小时前
使用脚本自动化管理外部Git仓库依赖
运维·git·自动化
小白爱电脑2 小时前
路由器的天线有什么用?数量多≠信号强?
网络·智能路由器