计算机网络(9) --- 数据链路层与MAC帧

计算机网络(8) --- IP与IP协议_哈里沃克的博客-CSDN博客IP与IP协议https://blog.csdn.net/m0_63488627/article/details/132155460?spm=1001.2014.3001.5502

目录

1.MAC帧

1.MAC地址

2.MAC帧报头

3.资源碰撞

4.MTU

1.对IP协议的影响

2.对UDP协议的影响

3.对TCP协议的影响

2.ARP协议

1.网络传输的本质

2.ARP协议

3.APR和MAC帧的关系

3.其他协议或技术

1.DNS

4.ICMP协议

3.ping命令

4.NAT技术

NAT

NAPT


1.MAC帧

1.MAC地址

1.在局域网内的主机可以直接通信

2.而标识每一个不同的主机是通过MAC地址所确定的

3.IP是表示去向最终地址的,而MAC地址是用与传输直接的下一个连接的节点

2.MAC帧报头

MAC帧是用于封装MAC地址的报文协议

在局域网中,所有的主机都收到了数据,但是由于mac地址而都在数据链路层中断了,只有mac地址一致的才被确定是需要传输的。

3.资源碰撞

1.那么在局域网中,发送的数据所有的主机都能看见,其实把整个网络看成操作系统,那么传输的数据就是临界资源。这种之间连接的主机,可以直接进行数据传输的区域被称之为临界区

2.数据发送之时,并不是只有两台主机进行交互,而是多台主机进行交互。而不同的主机在同时发送的时候,会出现数据碰撞问题。碰撞的数据就是无效的数据。

3.为了减少数据碰撞的问题,在局域网中出现了一种设备:交换机,它用于缩小碰撞的概率。这样就可以划分出碰撞域。

4.我们在看待网络设备时,应该更加宏观,所谓的网线传输数据其实速度极快,毕竟是光速的,那么数据碰撞的概率其实比较低的。要知道发送数据是有长有短的,我们不能将数据设置的太长,因为一旦过长,所谓的发送中的时间就会加长,碰撞的概率增大,所以MAC帧向上的网络层中IP协议的数据不可以超过1500字节。

5.当然为了减少出现数据碰撞的问题,我们有一些决策来进行减低概率。如:令牌环和以太网

4.MTU

MTU: 以太网的最大传输单元

1.对IP协议的影响

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

2.UDP协议的影响

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

3.TCP协议的影响

1.TCP的一个数据报也不能无限大, 还是受制于MTU。TCP的单个数据报的最大消息长度, 称为MSS。也就是说,滑动窗口的大小其实是受:MSS,网络拥塞,接收方窗口大小
2.TCP在建立连接的过程中, 通信双方会进行MSS协商.
3.最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度
3.双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值. 然后双方得知对方的MSS值之后, 选择较小的作为最终MSS. MSS的值就是在TCP首部的40字节变长选项中

2.ARP协议

1.网络传输的本质

1.所谓的网络传输,就是在一个一个的局域网中传输。而中间的桥梁就是路由器,它分开了两个局域网,却联通了两个局域网。那么在局域网之间传输就需要依靠mac地址。

2.当前的MAC帧协议没有包含mac地址的任何数据,只知道IP地址,那么此时就需要引入ARP协议

2.ARP协议

1.以太网目的IP和源IP提供在局域网内部判断是否为自己要接收的依据,帧类型表示MAC帧的类型。这些字段作为以太网的首部。
2.硬件类型指链路层网络类型,1为以太网;协议类型指要转换的地址类型,0x0800为IP地址。硬件地址长度对于以太网地址为6字节;;协议地址长度对于和IP地址为4字节。这些数据基本上是固定不变的
3.op字段为1表示ARP请求,op字段为2表示ARP应答
4.发送端发送时,不知道目的以太网的mac地址,所以全部位设计为F;而发送mac地址是知道的
5.接收应答方返回自己对应的mac地址和对方的目的mac地址

3.APR和MAC帧的关系

可以用这图表示

也就是说,如果想要传输数据,需要先封装ARP协议再对MAC帧进行封装 

3.其他协议或技术

1.DNS

1.DNS 是一整套从域名映射到 IP 的系统
2.TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序 但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西, 是一个字符串 , 并且使用 hosts 文件来描述主机名和 IP 地址的关系

有两种方法:

1.通过互连网信息中心来管理这个hosts文件的,即自己的本地存放hosts映射

2.DNS系统:一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系;

如果新计算机接入网络, 将这个信息注册到数据库中;用户输入域名的时候, 会自动查询DNS服务器, 由DNS服务器检索数据库, 得到对应的IP地址

4.ICMP协议

ICMP 协议是一个 网络层协议
一个新搭建好的网络 , 往往需要先进行一个简单的测试 , 来验证网络是否畅通 ; 但是 IP 协议并不提供可靠传输 . 如果丢包了, IP 协议并不能通知传输层是否丢包以及丢包的原因

3.ping命令

1.ping 的是域名, 而不是url,一个域名可以通过DNS解析成IP地址
2.ping命令不光能验证网络的连通性, 同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期).
3. ping 命令基于 ICMP, 是在网络层 . 而端口号 , 是传输层的内容 . ICMP 中根本就不关注端口号这样的信息

4.NAT技术

NAT

NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系
具体原理之前解释过~

NAPT

那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机

1. 为了找到之前的地址返回消息,NAT路由器中存储四元组。针对内网:四元组包含内网IP和内网PORT 以及 路由器的LAN口IP和LAN口PORT;针对公网:四元组包含公网IP和公网PORT 以及 路由器的WAN口IP和WAN口PORT

2.那么当访问特定服务器,NAT路由器会得出转换表,该表存储两份四元组为key值,这样双方都能找到彼此

3.同一个子网下的不同客户端访问相同的服务器,那么该NAT转换表对应的服务器四元组不同的点就在于路由器的WAN口IP地址的PORT不同

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是深拷贝和浅拷贝?

面试回答 在计算机内存中,每个对象都有一个地址,这个地址指向对象在内存中存储的位置。当我们使用变量引用一个对象时,实际上是将该对象的地址赋值给变量。因此,如果我们将一个对象复制到另一个变量中国,实际上是将对象…

【开个空调】语音识别+红外发射

废话少说,直接上空调板子:YAPOF3。红外接收发射模块用的某宝上发现的YF-33(遗憾解码还没搞清楚,不然做个lirc.conf功能才多)。最后是语音识别用的幻尔的,某宝自然也有,它是个i2c的接口。 本篇胡说八道其实纯粹为了留个…

什么是遗传算法(Genetic Algorithm,简称 GA)?

目录 一、遗传算法介绍二、遗传算法应用场景三、遗传算法具体案列1、求解旅行商问题(TSP 问题)2、求解一个矩阵中的最大值3、基于遗传算法的图像压缩方法 四、遗传算法重要意义五、生物进化与遗传算法之间的关系 一、遗传算法介绍 遗传算法(…

基于PHP的电脑商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的电脑商城系统 一 介绍 此电脑商城系统基于原生PHP开发,数据库mysql,前端bootstrap。用户可注册登录,购物下单,评论等。管理员登录后台对电脑商品,用户,订单&a…

C语言小白急救 指针进阶讲解1

文章目录 指针一、 字符指针二、 指针数组三、数组指针1.数组的地址2.数组指针3.数组指针的应用 四、数组参数、指针参数1. 一维数组传参2.二维数组传参3.一级指针传参4.二级指针传参 五、函数指针1.函数的地址2.函数指针3.练习 指针 指针的概念: 1.指针就是个变量…

时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测

时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测 目录 时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单…

分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测

分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测 目录 分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测 程序设计 完整源码和数据获取方式: …

Spring Cache的介绍以及怎么使用(redis)

Spring Cache 文章目录 Spring Cache1、Spring Cache介绍2、Spring Cache常用注解2.1、EnableCaching注解2.2、CachePut注解2.3、CacheEvict注解2.4、Cacheable注解 3、Spring Cache使用方式--redis 1、Spring Cache介绍 Spring Cache是一个框架,实现了基于注解的缓…

删除链表的中间节点

题目: 示例: 思路: 这个题类似于寻找链表中间的数字,slow和fast都指向head,slow走一步,fast走两步,也许你会有疑问,节点数的奇偶不考虑吗?while执行条件写成fast&&…

JVM——类加载与字节码技术—字节码指令

2.字节码指令 2.1 入门 jvm的解释器可以识别平台无关的字节码指令,解释为机器码执行。 2a b7 00 01 b1 this . init() return 准备了System.out对象,准备了参数“hello world”,准备了对象的方法println(String)V&#xff…

如何优化因为高亮造成的大文本(大字段)检索缓慢问题

首先还是说一下背景,工作中用到了 elasticsearch 的检索以及高亮展示,但是索引中的content字段是读取的大文本内容,所以后果就是索引的单个字段很大,造成单独检索请求的时候速度还可以,但是加入高亮之后检索请求的耗时…

Prometheus+Grafana+AlertManager监控Linux主机状态

文章目录 PrometheusGrafanaAlertManager监控平台搭建开始监控Grafana连接Prometheus数据源导入Grafana模板监控Linux主机状态 同系列文章 PrometheusGrafanaAlertManager监控平台搭建 Docker搭建并配置Prometheus Docker拉取并配置Grafana Docker安装并配置Node-Exporter …

WordArt Designer:基于用户驱动与大语言模型的艺术字生成

AIGC推荐 FaceChain人物写真开源项目,支持风格与穿着自定义,登顶github趋势榜首! 前言 本文介绍了一个基于用户驱动,依赖于大型语言模型(LLMs)的艺术字生成框架,WordArt Designer。 该系统包含四个关键模块:LLM引擎、…

微人事 登录问题完善

重启服务端的时候,发现前端页面会操作不了,这样后端session会失效,我们就需要让页面重新跳转到登录页 springsecurity配置类后端配置 前端拦截器进行拦截跳转

【C++数据结构】二叉搜索树

【C数据结构】二叉搜索树 目录 【C数据结构】二叉搜索树二叉搜索树概念二叉搜索树操作二叉搜索树的查找二叉搜索树的插入二叉搜索树的删除二叉搜索树的实现二叉搜索树的应用二叉搜索树的性能分析 作者:爱写代码的刚子 时间:2023.8.22 前言:二…

SpringMVC入门笔记

一、SpringMVC简介 1. 什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean&#xff1…

怎么维护自己的电脑

文章目录 我的电脑日常维护措施维护技巧键盘&屏幕清洁清理磁盘空间控制温度 电脑换电池 无论是学习还是工作,电脑都是IT人必不可少的重要武器,一台好电脑除了自身配置要经得起考验,后期主人对它的维护也是决定它寿命的重要因素&#xff0…

如何使用NLP库解析Python中的文本

Python是一种强大的面向对象的编程(object-oriented programming,OOP)语言,在人工智能领域有着广泛的用途。正是鉴于其实用性,以Google为首的大型科技公司,已经对其开发了Tensorflow等代码库,帮…

Flask狼书笔记 | 03_模板

文章目录 3 模板3.1 模板基本使用3.2 模板结构组织3.3 模板进阶 3 模板 模板(template):包含固定内容和动态部分的可重用文件。Jinja2模板引擎可用于任何纯文本文件。 3.1 模板基本使用 HTML实体:https://dev.w3.org/html5/htm…

Ubuntu系统安装之后首需要做的事情

Ubuntu系统的初步环境搭建 1、换源2、显卡3、浏览器4、输入法5、终端6、ROS7、VSCode8、设置时间与win一致9、 TimeShift10、 Anaconda(考虑装不装) 1、换源 点开Software&&Update,找到Ubuntu Software中的Download from&#xff0c…