计算机网络(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不同

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

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

相关文章

ARM-M0内核MCU,内置24bit ADC,采样率4KSPS,传感器、电子秤、体脂秤专用,国产IC

ARM-M0内核MCU 内置24bit ADC ,采样率4KSPS flash 64KB,SRAM 32KB 适用于传感器,电子秤,体脂秤等等

2023国赛数学建模E题思路模型代码 高教社杯

本次比赛我们将会全程更新思路模型及代码,大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022国赛c题matlab_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛c题matlab_UST数模社…

TCP协议报文结构

TCP是什么 TCP(传输控制协议)是一种面向连接的、可靠的、全双工的传输协议。它使用头部(Header)和数据(Data)来组织数据包,确保数据的可靠传输和按序传递。 TCP协议报文结构 下面详细阐述TCP…

循环内的try-catch 跟循环外的try-catch有什么不一样

起因:一位面试管突然问了这么一道基础的面试题,反而秀了面试者一脸,经常用的却被问到时不知道怎么回答,所以我们平时在写代码的时候,要多注意细节跟原理。也许你不服:不就是先这样,再那样&#…

《论文阅读18》 SSD: Single Shot MultiBox Detector

一、论文 研究领域: 2D目标检测论文:SSD: Single Shot MultiBox Detector ECCV 2016 数据集 论文链接论文github 二、论文概要 SSD网络是作者Wei Liu在ECCV 2016上发表的论文。对于输入尺寸300x300的网络 使用Nvidia Titan X在VOC 2007测试集上达到74…

通过css设置filter 属性,使整个页面呈现灰度效果,让整个网页变灰

通过css设置filter 属性设置页面整体置灰 效果图: 通过设置 filter 属性为 grayscale(100%)&#xff0c;页面中的所有元素都会被应用灰色滤镜效果&#xff0c;使整个页面呈现灰度效果。 <style type"text/css"> html { filter: grayscale(100%); -webkit-f…

【C语言】什么是结构体内存对齐?结构体的大小怎么计算?

目录 1.结构体内存对齐 对偏移量的理解&#xff1a;​ 2.结构体的大小计算 2.1结构体中只有普通的数据类型的大小计算 2.2 结构体中有嵌套的结构体的大小计算 3.修改默认对齐数 4.为什么存在内存对齐? 这篇文章主要介绍结构体内存对齐和如何计算大小。 在学习结构体内存…

axios详解

目录 一、axios 的理解和使用1.1 axios 是什么?1.2 axios 特点1.3 axios 常用语法1.4 axios基本使用1.5 axios.request()使用1.6 axios默认配置1.7 axios创建实例对象1.8 拦截器1.9 取消请求 二、axios 运行的整体流程三、如何取消未完成的请求 一、axios 的理解和使用 1.1 a…

【ElasticSearch】一键安装ElasticSearch与Kibana以及解决遇到的问题

目录 一、安装ES 二、安装Kibana 三、遇到的问题 一、安装ES 按顺序复制即可 docker network create es-net # 创建网络 docker pull images:7.12.1 # 拉取镜像 mkdir -p /root/es/data # 创建数据卷 mkdir -p /root/es/plugins # 创建数据卷 chmod 777 /root/es/** # 设置权…

1、Spring_IOC

IOC 1.概述 IOC&#xff1a;Inversion of Control 控制反转&#xff0c;可以让容器负责对象的创建以及销毁操作&#xff0c;对象在容器中叫 bean 2.回顾问题 问题&#xff1a;写了太多与业务无关的代码 耦合度非常高&#xff0c;写了很多和业务无关的代码不利于项目的升级迭…

Java 项目日志实例:Log4j2

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ Apache Log4j 2 是对 Log4j 的升级&#xff0c;与其前身 Log4j 1.x 相比有了显着的改进&#xff0c;并提供了许多 Logback 可用的改进&#xff0c;同时支持 JCL 以及 SLF4J…

Linux网络服务之iptables防火墙工具

I P T A B L E S 一、防火墙简介1.1 netfilter1.2 firewalld和iptables 二、iptables工具简述2.1 定义2.2 三种报文流向2.3 iptables的表、链结构&#xff08;非常重要&#xff09;2.3.1 "四表" ----- 规则表2.3.2 "五链" ----- 规则链 三、iptables配置3.…

Vscode详细安装教程

Vscode官网下载 官网地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 通过链接可以直接跳转到下面的页面当中&#xff0c;支持的版本有Windows、Linux、Mac&#xff0c;可以选择适配自己电脑的版本&#xff0c;一般来说应该是Windows x64的。不要直接点W…

clion软件ide的安装和环境配置@ubuntu

1.官网&#xff1a; Download CLion 2.安装Clion 直接在官网下载并安装即可&#xff0c;过程很简单 https://www.jetbrains.com/clion/ https://www.jetbrains.com/clion/download/#sectionlinux 3.激活码 4.配置Clion 安装gcc、g、make Ubuntu中用到的编译工具是gcc©…

无涯教程-PHP - 预定义变量

PHP为它运行的脚本提供了预定义变量数组&#xff0c;其中包含来自Web服务器&#xff0c;环境和用户输入的变量。这些新数组称为超全局变量- PHP超全局变量 Sr.NoVariable & Description1 $GLOBALS 全局变量数组。 2 $_SERVER 存放提交过来的web路径、域名、来源、IP及各…

【小沐学NLP】Python进行统计假设检验

文章目录 1、简介1.1 假设检验的定义1.2 假设检验的类型1.3 假设检验的基本步骤 2、测试数据2.1 sklearn2.2 seaborn 3、正态分布检验3.1 直方图判断3.2 KS检验&#xff08;scipy.stats.kstest&#xff09;3.3 Shapiro-Wilk test&#xff08;scipy.stats.shapiro&#xff09;3.…

基于知识蒸馏的两阶段去雨、雪、雾算法调试记录

前言 该项目的介绍可以参考博主这篇博文&#xff1a;基于知识蒸馏的去雪、去雾、去雨算法 调试过程 该项目中inference.py可以直接使用&#xff0c;只要将student的权重文件放入即可&#xff0c;博主实验过其去噪后的结果&#xff0c;貌似是变清晰了一点。但train时的meta里的…

AMBA总线协议(3)——AHB(一)

目录 一、前言 二、什么是AHB总线 1、概述 2、一个典型的基于AHB总线的微处理器架构 3、基本的 AHB 传送特性 三、AMBA AHB总线互联 四、小结 一、前言 在之前的文章中我们初步的了解了一下AMBA总线中AHB,APB,AXI的信号线及其功能&#xff0c;从本文开始我们…

Unity VR:XR Interaction Toolkit 输入系统(Input System):获取手柄的输入

文章目录 &#x1f4d5;教程说明&#x1f4d5;Input System 和 XR Input Subsystem&#xff08;推荐 Input System&#xff09;&#x1f4d5;Input Action Asset⭐Actions Maps⭐Actions⭐Action Properties&#x1f50d;Action Type (Value, Button, Pass through) ⭐Binding …

Python学习笔记_基础篇(七)_常用模块

模块&#xff0c;用一砣代码实现了某个功能的代码集合。 类似于函数式编程和面向过程编程&#xff0c;函数式编程则完成一个功能&#xff0c;其他代码用来调用即可&#xff0c;提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来&#xff0c;可能需要多个函数才能完成…