数据链路层是计算机网络的底层,主要负责相邻设备之间的数据帧传输

链路层就是负责每一个相邻结点之间的数据传输,但是相邻设备之间也需要描述识别,主要是因为每一个设备都有可能有多个相邻的设备。这种识别在链路层中是通过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协议相关推荐

  1. 计算机网络实验5以太网链路帧实验,计算机网络实验-使用Wireshark分析以太网帧与ARP协议.docx...

    编号:_______________ 本资料为word版本,可以直接编辑和打印,感谢您的下载 计算机网络实验-使用Wireshark分析以太网帧与ARP协议 计算机网络实验-使用Wireshark分析 ...

  2. 以太网协议、ARP协议、NAT协议、DNS协议

    目录 1. 数据链路层的以太网协议 2. ARP协议 3. NAT协议 NAPT协议(动态NAT重载) 4. DNS协议 1. 数据链路层的以太网协议 数据链路层的以太网协议本质上其实就是相邻设备之间 ...

  3. 交换机与IP数据报、ICMP协议、ARP协议

    文章目录 1 交换机 1.1 基本的架构图 1.2 交换机的工作原理 1.3 交换机以太网接口的工作模式 1.4 交换机使用命令行进行配置管理 2 IP数据报格式 3 ICMP协议 4 ARP协议 4 ...

  4. IP协议,ARP协议

    IP协议,ARP协议 这两个协议处于同一层,ARP协议用来找到目的主机以太网卡的mac地址,IP承载发送的信息.链路层从IP得到要传输的数据,从ARP得到要传输的数据的信息. IP协议是TCP/IP协 ...

  5. 计算机网络常见的协议之ARP协议

    ARP协议是一个三层协议,工作在第二层(数据链路层) ARP协议是一种地址解析协议,将一至IP地址解析为MAC地址,从而进行数据交互,ARP协议是一个2.5层协议 一,ARP协议 地址解析协议,即AR ...

  6. 软件测试面试题:I P协议、RARP协议、ICMP协议与ARP协议的功能是什么?

    I P协议.RARP协议.ICMP协议与ARP协议的功能是什么? IP 协议(Internet Protocol,因特网协议),属于 OSI7 层参考模型中的网络层协议.它提供两个基本功能:寻址和分段 ...

  7. IP数据包格式(ICMP协议与ARP协议)

    这里写目录标题 IP数据包格式 网络层的功能 IP数据包格式 ICMP协议 ping 广播域 ARP协议(地址解析协议) 无故ARP ARP工作原理: ARP报文 查看arp缓存表(静态arp和动态a ...

  8. 网络协议:ARP协议

    一 ARP协议 ARP协议: 地址转换协议,即Address Resolution Protocol缩写,主要用于向局域网查找指定IP地址的MAC地址. 每一个主机或者路由器都会维护一个ARP高速缓存 ...

  9. Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信

    大家好,本次我们需要完成的任务是: 完成两台主机之间的数据通信(数据链路层) 仿真ARP协议获得网段内主机的MAC表 使用帧完成两台主机的通信(Hello! I'm -) 声明:本文章的目的是为大家的 ...

最新文章

  1. SAP MM 带有Return标记的STO,不能创建内向交货单?
  2. 【金三银四】java多线程并发编程pdf
  3. 道格拉斯算法 java_道格拉斯-普克算法的java的实现代码如下
  4. Java命令行界面(第26部分):CmdOption
  5. mysql数据结构_mysql的底层数据结构
  6. 2017-06-23
  7. IntelliJ IDEA :解决idea导入项目爆红
  8. 什么是防抖和节流?有什么区别?如何实现?
  9. scipy.misc 介绍
  10. Spark OOM:java heap space,OOM:GC overhead limit exceeded解决方法
  11. java mysql 周_java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...
  12. 数据挖掘算法和实践(八):K-means 聚类(西瓜数据集)
  13. 在家或者公司如何登录服务器
  14. word忘记密码怎么解除
  15. 在高分辨率屏幕上用VMware运行ubuntu显示过小的问题
  16. Android心电数据分析,Android 根据心电图(ECG)数据分析绘制心电图
  17. 每日算法----929. 独特的电子邮件地址----2022/06/04
  18. Revit API: Dimension 尺寸标注
  19. 整整26本!由单墫教授主编、葛军等人操刀的高中数学教材都在这里!
  20. 第一次作业:每段经历都是财富

热门文章

  1. 电信网连微软服务器有问题,宽带有问题?找我们就对了。
  2. win7安装vmtools的折腾
  3. 监听套接字 连接套接字的区别
  4. 教你一招从谷歌商店下载应用?
  5. AI_图像标注:图像标注简介
  6. 如何重命名文件名,设置编号位数及位置
  7. 熟悉 Spring boot 的 Actuator 的使用方法(三)
  8. unicloud aggregate的group保留查询数据,提取每个分组第一条数据某个字段值
  9. CST2021安装方法与安装问题解决
  10. 如何拍出更好看的照片,那是有技巧的