在网络中,主机与主机之间总是通过一个网线把各自的网卡对接起来,数据链路层的功能就是把一帧数据从当前主机(的某个网卡)传递到相连的下一个主机上(的某个网卡);

数据链路层为适应物理层采用的不同硬件,它支持多种协议,例如以太网、令牌环网、FDDI等,在我们日常使用过程中,以太网是最常见,也是TCP/IP采用的主要局域网技术,它采用CSMA/CD(带冲突检测的载波侦听多路介入)的媒体接入方法,速率为10Mb/s地址为48位(6字节)。

数据链路层的以太网(Ethernet)帧格式,如下图所示:

以太网帧格式

上图以太网的帧格式中:

(1)            最前面6个字节为目的mac地址(即我们通常说的网卡地址),即这个报文即将发往的下个主机的网卡地址;

(2)            紧接着的6个字节为源mac地址,即本机的网卡(在一个主机有多个网卡时应该怎么办?);

(3)            再紧挨着是2字节的类型字段,以太网需要承载三种类型的报文:IP数据报(类型为:0X0800)、ARP请求/应答报文(类型为:0X0806)、RARP请求/应答报文(类型为:0X8035);

(4)            以太网帧中数据部分的大小为46~1500字节,即数据部分的最小长度也要为46字节,不足时要补充(补零)填够46位。

承载IP报文的帧分析

如下图为一个IP数据包的抓包,可以看到,其开始的6个字节b0 83 fe 9b d0 4d为目的mac地址,紧接着是6个字节b0 83fe 9b d9 06的源mac地址,再接下来的两个字节0800表示该帧中的数据为IP报文,再看起数据部分:从第0000行的45 00 开始到第0030行的f7fc 8e cd 00 00,总共40字节,小于以太网帧对数据段的最小值要求(46),因此还需要在最后补充6字节的0来凑够46个字节。

承载ARP报文的帧分析

ARP协议主要完成IP地址到mac地址的解析,在每个主机中都有一个ARP缓存,下图为201服务器的arp缓存,其内容为:

发往***IP的帧在网卡***上,其mac地址为***

ARP缓存的内容可以手动添加,也可以自动产生,其产生过程为:当主机有数据要发送时,首先查询本地缓存中是否有对应的ARP缓存项,如果没有,则发送一个ARP广播,该主机所在的局域网都会收到此广播,IP与本机匹配的主机会反馈消息“***IP在我这里”,在反馈数据帧中就包含应答主机的mac地址,本主机收到ARP的应答之后就把该IP和MAC地址添加到本地的ARP告诉缓存中。

如下图可以看到,ARP的请求报文中,目的mac地址为全1的广播地址;

在获取到应答之后,ARP会将该IP和mac的对应关系存储到本地的ARP缓存中。

数据链路层的一些总结相关推荐

  1. 王道考研 计算机网络笔记 第三章:数据链路层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...

  2. linux网络管理原理,Linux__网络管理(物理层 数据链路层 网络层工作原理)

    千锋云计算逆战班11点后打卡 今天学习后,进行复习下,物理层 数据链路层  网络层 的工作原理 物理层关心的两件事情:1.信号 2.介质 先说信号:信号分为模拟信号和数字信号 模拟信号: 模拟信号,不 ...

  3. mac 思科 链路聚合_TCP/IP协议栈-之-数据链路层分析

    数据链路层 一.数据链路层的概述 1.1 概述 数据链路层是TCP/IP协议栈的第二层! 数据链路层的传输单元:帧(也就是传输单位) 1.2 帧结构 帧结构分析如下: 帧结构的构成:MAC子层 + 上 ...

  4. OSI第二层:数据链路层功能及作用

    OSI七层模型第二层:数据链路层,Data Link Layer 数据链路层工作在两台设备互联的这条链路之间,为每一段单独的链路解决数据传递的问题. 那么,一条链路上有什么呢? 首先搞清楚一个概念:不 ...

  5. 计算机网络谢希仁第七版课后答案第三章 数据链路层

    3-01 数据链路(即逻辑链路)与链路(即物理链路)有何区别? "电路接通了"与"数据链路接通了"的区别何在? 答:数据链路与链路的区别在于数据链路出链路外,还 ...

  6. 第三章--数据链路层

    第三章--数据链路层 本章目录: 3.1使用点对点信道的数据链路层 3.1.1数据链路和帧 3.1.2三个基本问题 3.2点对点协议PPP 3.2.1PPP协议的特点 3.2.2PPP协议的帧格式 3 ...

  7. 数据链路层和传输层的区别

    数据链路层和传输层的区别 https://zhidao.baidu.com/question/585539848.html

  8. 3.1 数据链路层功能概述

    3.1 数据链路层功能概述

  9. NS2源码图示---数据链路层 (转帖)

    MAC(媒介访问控制子层)     Mac对象模拟媒介访问协议,由于网络中的发送和接收机制大部分与Mac层紧密联系,所以Mac对象必须是双工的.在发送端,Mac对象把数据包加上Mac头后传送到物理层( ...

  10. TCP/IP详解--学习笔记(2)-数据链路层

    数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP ...

最新文章

  1. oracle修改备库状态,Oracle-CRSCTL命令显示备库状态不正确
  2. [Android] 输入系统(三):加载按键映射
  3. 【嵌入式】——对#define GPBCON (*(volatile unsigned long*)0x56000010)的理解
  4. go语言mysql操作_使用Go语言操作MySQL数据库的思路与步骤
  5. Spring Boot中使用模板引擎引用资源
  6. FreeModbus离散量输入
  7. stm32 python界面开发_【STM32开发】使用Qt Creator 开发STM32
  8. vector添加元素java_在Java中的Vector中间添加元素
  9. 机器学习之 决策树(Decision Tree)
  10. 移动端H5解惑-页面适配
  11. Python学习指南——1.常用库说明
  12. Kali安装AWVS
  13. 关于U盘免疫的一些自我认识
  14. angularJs - 弹窗
  15. 枪林弹雨 该服务器维护中,枪林弹雨登陆BUG解决方法
  16. 鱼塘钓鱼 优先队列 多路归并排序 贪心
  17. 关于Word样式自动更新的详解
  18. 怎么用matlab作出两个系统的相位差,如何求两个信号的相位差
  19. 小米2s Android pie,Android 9.0 Pie正式版发布,小米MIX 2S率先升级,国内第一款!
  20. 排列组合Cnm的计算公式

热门文章

  1. Nginx代理介绍、安装及配置详解
  2. jQuery学习之六---属性
  3. day33 java的多线程(5)
  4. linux部署3proxy源码,在CentOS 7系统中从源码安装RTPProxy的方法
  5. react更改路由入参_react路由传参方式
  6. 组合模式_Java设计模式-组合模式
  7. mysql 1021 disk full_大分区使用xfs文件系统存储备份遇到的问题
  8. 【NLP】毕设学习笔记(二)transformer
  9. es6 新增数据类型_ES6新增特性整理
  10. unicode 转换