网络 链路层 | 以太网协议与ARP协议
数据链路层是计算机网络的底层,主要负责相邻设备之间的数据帧传输
链路层就是负责每一个相邻结点之间的数据传输,但是相邻设备之间也需要描述识别,主要是因为每一个设备都有可能有多个相邻的设备。这种识别在链路层中是通过MAC地址来实现的
MAC地址:mac地址就是网卡的硬件地址,用于识别相邻的设备,它是一个无符号6字节的整数 uint8_t mac[6]
以太网协议
以太网协议格式
目的地址和源地址:描述识别相邻的设备之间的数据传输
上层协议类型:网络层的协议类型,进行数据分用时选择上层的解析协议
数据:网络层的数据报文
CRC:数据帧尾,包含校验和,校验数据的一致性
如何获取对端的mac地址
一个主机,第一次通过网线连接到路由器上,然后发送DHCP请求,路由器收到之后就会进行响应,给主机分配IP地址,但是此时是不知道对方的mac地址,那我们如何获取呢?
ARP协议
ARP协议:ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议。主要功能是通过IP地址获取mac地址
ARP协议格式:
以太网目的地址和以太网源地址:描述识别相邻的设备之间的数据传输
上层协议类型:网络层的协议类型,进行数据分用时选择上层的解析协议
硬件类型:链路层网络类型,1为以太网
协议类型:要转换的地址类型,0x0800为IP地址
硬件地址长度:对于以太网地址为6字节
协议地址长度:对于和IP地址为4字节
op字段:1表示ARP请求,op字段为2表示ARP应答
arp协议如何通过IP地址获取MAC地址
封装arp请求,然后将arp请求广播到整个局域网(私网)中,(以太网头中设置的对端mac地址为FFFFFFFFFFFF,在arp请求中描述自己的mac地址和ip地址,以及对端的IP地址和对端的mac地址空白),相邻设备收到arp请求之后,检测目的IP地址是否与自己相符,若相符则组织arp响应,填充自己的mac地址回复过去,若不符合则直接丢弃。
主机获取相邻设备mac地址之后,会缓存一段时间(默认为20 ~30分钟)
arp局域网欺骗攻击:恶意主机收到arp广播请求,伪装自己,告诉主机自己就是目标主机,将自己的mac地址发送过去。解决方案:防火墙白名单,直接列出受信任的相邻主机,如果发送过来的mac地址不在白名单上,则直接丢弃
MTU
MTU:MTU为最大传输单元,是链路层限制的数据帧大小(根据组网方式不同,默认数值也不同,以太网默认为1500B)
mtu对上层协议应用的影响
tcp协议:tcp在传输层进行三次握手时,进行MSS协商,也就是最大数据段大小协商,告诉对方自己的mss是多少,然后通信时取较小的一方作为最大传输数据段大小,每次从缓冲区中取出不大于mss大小数据进行传输。因此通常也说tco在传输层会自动进行数据分段。MSS = MTU - 最小IP报头长度 - 最小TCP报头长度;
udp协议:因为udp不考虑mss,只要数据段大小小于64k-28,就可以进行传输,但是这个数据大小若是大于mtu,则会在网络层进行数据分片
udp不保证数据可靠传输,一个udp报文若在网络层进行了分片,则传输过程中,一个分片出问题,整个udp报文都会被丢弃;也就意味着udp传输过程中,分片越多,在传输过程中出现问题的几率就越大
解决方案:程序员在应用层使用udp协议时最好考虑mss问题,将udp数据段按照计算的mss进行分包处理
网络 链路层 | 以太网协议与ARP协议相关推荐
- 计算机网络实验5以太网链路帧实验,计算机网络实验-使用Wireshark分析以太网帧与ARP协议.docx...
编号:_______________ 本资料为word版本,可以直接编辑和打印,感谢您的下载 计算机网络实验-使用Wireshark分析以太网帧与ARP协议 计算机网络实验-使用Wireshark分析 ...
- 以太网协议、ARP协议、NAT协议、DNS协议
目录 1. 数据链路层的以太网协议 2. ARP协议 3. NAT协议 NAPT协议(动态NAT重载) 4. DNS协议 1. 数据链路层的以太网协议 数据链路层的以太网协议本质上其实就是相邻设备之间 ...
- 交换机与IP数据报、ICMP协议、ARP协议
文章目录 1 交换机 1.1 基本的架构图 1.2 交换机的工作原理 1.3 交换机以太网接口的工作模式 1.4 交换机使用命令行进行配置管理 2 IP数据报格式 3 ICMP协议 4 ARP协议 4 ...
- IP协议,ARP协议
IP协议,ARP协议 这两个协议处于同一层,ARP协议用来找到目的主机以太网卡的mac地址,IP承载发送的信息.链路层从IP得到要传输的数据,从ARP得到要传输的数据的信息. IP协议是TCP/IP协 ...
- 计算机网络常见的协议之ARP协议
ARP协议是一个三层协议,工作在第二层(数据链路层) ARP协议是一种地址解析协议,将一至IP地址解析为MAC地址,从而进行数据交互,ARP协议是一个2.5层协议 一,ARP协议 地址解析协议,即AR ...
- 软件测试面试题:I P协议、RARP协议、ICMP协议与ARP协议的功能是什么?
I P协议.RARP协议.ICMP协议与ARP协议的功能是什么? IP 协议(Internet Protocol,因特网协议),属于 OSI7 层参考模型中的网络层协议.它提供两个基本功能:寻址和分段 ...
- IP数据包格式(ICMP协议与ARP协议)
这里写目录标题 IP数据包格式 网络层的功能 IP数据包格式 ICMP协议 ping 广播域 ARP协议(地址解析协议) 无故ARP ARP工作原理: ARP报文 查看arp缓存表(静态arp和动态a ...
- 网络协议:ARP协议
一 ARP协议 ARP协议: 地址转换协议,即Address Resolution Protocol缩写,主要用于向局域网查找指定IP地址的MAC地址. 每一个主机或者路由器都会维护一个ARP高速缓存 ...
- Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信
大家好,本次我们需要完成的任务是: 完成两台主机之间的数据通信(数据链路层) 仿真ARP协议获得网段内主机的MAC表 使用帧完成两台主机的通信(Hello! I'm -) 声明:本文章的目的是为大家的 ...
最新文章
- SAP MM 带有Return标记的STO,不能创建内向交货单?
- 【金三银四】java多线程并发编程pdf
- 道格拉斯算法 java_道格拉斯-普克算法的java的实现代码如下
- Java命令行界面(第26部分):CmdOption
- mysql数据结构_mysql的底层数据结构
- 2017-06-23
- IntelliJ IDEA :解决idea导入项目爆红
- 什么是防抖和节流?有什么区别?如何实现?
- scipy.misc 介绍
- Spark OOM:java heap space,OOM:GC overhead limit exceeded解决方法
- java mysql 周_java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...
- 数据挖掘算法和实践(八):K-means 聚类(西瓜数据集)
- 在家或者公司如何登录服务器
- word忘记密码怎么解除
- 在高分辨率屏幕上用VMware运行ubuntu显示过小的问题
- Android心电数据分析,Android 根据心电图(ECG)数据分析绘制心电图
- 每日算法----929. 独特的电子邮件地址----2022/06/04
- Revit API: Dimension 尺寸标注
- 整整26本!由单墫教授主编、葛军等人操刀的高中数学教材都在这里!
- 第一次作业:每段经历都是财富