计算机网络-数据链路层

一、认识以太网

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

1、以太网格式

 

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
  • 帧末尾是CRC校验码。
     

2、认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 度为48位, 及6个字节. ⼀般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯⼀的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)

3、对比理解MAC地址和IP地址

  • IP地址侧重于全局的转发,描述的是路途总体的起点和终点。从起点到终点这整个转发过程,通过IP地址负责完成(查询路由表)。
  • MAC地址侧重于局部的转发,两个相邻设备之间的转发,描述的是路途上的每一个区间的起点和终点。

 举例:

我们要从郑州到北京,从郑州到北京会有多种路线,假设通过网络层的路由选择过程,最终确定路线为 郑州 -> 新乡 -> 河北 -> 北京。

那么有:

1、郑州 -> 新乡

  • 源IP:郑州 ;目的IP:北京
  • 源mac:郑州;目的mac:新乡

2、新乡 -> 河北

  • 源IP:郑州 ;目的IP:北京
  • 源mac:新乡;目的mac:河北

3、河北 -> 北京

  • 源IP:郑州 ;目的IP:北京
  • 源mac:河北;目的mac:北京

通过该例子可以很好的看到MAC地址和IP地址的区别。 对于 源mac 和 目的mac 每经过一个路由器或交换机都会发生改变。

二、认识MTU

MTU相当于发快递时对包裹尺寸的限制。 这个限制是不同的数据链路对应的物理层, 产生的限制。
  • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;
  • 如果⼀个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(包);
  • 不同的数据链路层标准的MTU是不同的;

1、MTU对IP协议的影响

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

2、MTU对UDP协议的影响

回顾⼀下UDP协议:
  • ⼀旦UDP携带的数据超过1472(1500(MTU) - 20(IP⾸部) - 8(UDP⾸部)), 那么就会在网络层分成多个IP数据报.
  • 这多个IP数据报有任意⼀个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据
  • 报在网络层被分片, 整个数据被丢失的概率就大大增加了.

3、MTU对于TCP协议的影响

再回顾⼀下TCP协议:
  • TCP的⼀个数据报也不能无限大,还是受制于MTU。TCP的单个数据报的最大消息长度, 称为 MSS;
  • TCP在建立连接的过程中,通信双方会进行MSS协商.
  • 最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的MTU).
  • 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值.
  • 然后双方得知对方的MSS值之后, 选择较小的作为最终MSS.
  • MSS的值就是在TCP首部的40字节变长选项中(kind=2)

三、ARP协议

ARP不是⼀个单纯的数据链路层的协议,而是⼀个介于数 据链路层和网络层之间的协议

ARP协议的作用

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527256.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day23:安全开发-PHP应用后台模块SessionCookieToken身份验证唯一性

目录 具体安全知识点 身份验证-Cookie使用 身份验证-Session使用 唯一性判断-Token使用 总结 源码 思维导图 PHP知识点: 功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用&…

PaddlePaddle----基于paddlehub的OCR识别

Paddlehub介绍 PaddleHub是一个基于PaddlePaddle深度学习框架开发的预训练模型库和工具集,提供了丰富的功能和模型,包括但不限于以下几种: 1.文本相关功能:包括文本分类、情感分析、文本生成、文本相似度计算等预训练模型和工具。…

【C++】二叉树进阶之二叉搜索树

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握二叉搜索树,能自己模拟实现二…

股票价格预测项目

项目介绍 背景 股票价格预测一直是金融领域的热点问题。准确的预测可以帮助投资者作出更明智的决策。本项目旨在使用机器学习技术,特别是长短期记忆网络(LSTM),来预测股票价格。 目标 开发一个基于LSTM的股票价格预测模型。使…

巨型犰狳优化算法(Giant Armadillo Optimization,GAO)的无人机三维路径规划(MATLAB)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。 二、算法介…

寒假作业Day 10

寒假作业Day 10 一、选择题 1、下列数据结构中,不属于线性表的是( ) A.队列 B.顺序表 C.二叉树 D.链表 A. 队列:队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端&#xff08…

软件测试相关内容第三弹--软件测试基础

写在前:在前篇的两篇博客介绍中我们主要学习软件测试的相关概念,对软件测试进行了初步的了解,本篇博客将进一步进行学习。重点内容包括:软件测试的生命周期、如何描述一个bug、如何定义bug的级别、bug的生命周期以及在实际工作中如…

【Claude3】利用Python中完成对Bedrock上的Claude的API调用

文章目录 1. 前期准备工作2. 安装和配置AWS CLI v23. 使用AWS configure命令配置AWS凭据4. 安装访问Bedrock的SDK5. 访问Amazon Bedrock UI6. 订阅Bedrock上的Claude模型7. 通过CLI命令列出所有可用的Claude模型8. 向Claude 3 Sonnet on Bedrock生成文本9. 参考链接 1. 前期准备…

基础 | JVM - [指令 性能监控]

INDEX jps(jvm 进程工具)jinfo(java 配置信息工具)jstack (查看虚拟机栈信息)jmap(jvm 内存影像工具)jstat(jvm 统计信息监控工具)jvisualvm(查看…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (4 / 5)

3.10 将所有内容整合起来 本节概述了图形对象以及如何在 VTK 中使用它们。 图形模型 我们已经讨论了许多在场景渲染中起作用的对象。现在是将它们整合到一个全面的图形和可视化对象模型中的时候了。 在可视化工具包中,有七个基本对象用于渲染场景。幕后有许多其他对…

Windows下安装pip

一、下载pip 官网地址:https://pypi.org/project/pip/#files 1.1、pip工具查找方法 单击官网首页“PyPi”选项 在弹出来的搜索框中输入“pip” 选择最新的pip版本,点进去 下载pip安装包包 二、安装pip 解压“pip-24.0.tar.gz”,进…

数据结构与算法:链式二叉树

上一篇文章我们结束了二叉树的顺序存储,本届内容我们来到二叉树的链式存储! 链式二叉树 1.链式二叉树的遍历1.1二叉树的前序,中序,后序遍历1.2 三种遍历方法代码实现 2. 获取相关个数2.1获取节点个数2.2获取叶节点个数2.3 获取树的…