数据链路层 + NAT技术

数据链路层:负责设备之间的数据帧的传送和识别。

一、以太网

以太网的帧格式

如何分离报头和有效数据?

报头是固定长度的

如何将数据交给上层协议?

通过类型,如果是0800,则交给IP协议,如果是0806,就交给ARP协议

Mac地址

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

在网络传输时,源IP地址/目的IP地址不变(NAT技术将内网IP替换成公网IP除外),表示横跨多个网络的地址,源Mac地址/目的Mac地址会一直变化,描述的是路径上的每段路途的起点和终点

认识MTU

MTU相当于发快递时对包裹尺寸的限制,这个限制是不同的数据链路对应的物理层产生的限制

  • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)
  • 不同的数据链路层标准的MTU是不同的

所以UDP/TCP发送的数据报文的大小都要在一定的范围内,不然在IP层就会被分片,让数据丢失的概率变大,效率变低。

UDP的报文中的有效数据<=1500-20-8=1472,TCP的报文中的有效数据<=1500-20-20=1460(最大段长度MSS)。TCP在建立连接时就会约定好MSS的大小,取两者的较小值


二、ARP协议

在局域网通信中,我们总是能通过主机的IP地址找到主机的Mac地址,从而将数据发送出去,但是我们如何通过IP地址得到Mac地址呢?--- ARP协议

ARP协议格式

  • 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
  • 硬件类型指链路层网络类型,1为以太网
  • 协议类型指要转换的地址类型,0x0800为IP地址
  • 硬件地址长度对于以太网地址为6字节
  • 协议地址长度对于和IP地址为4字节
  • op字段为1表示ARP请求,op字段为2表示ARP应答

这里有三点需要注意:

  • 主机会将收到的ARP结果缓存起来(一段时间后失效) --- 有效减少ARP请求的次数,同时也防止别人的主机换了,我们还在往过期的地址发送数据
  • 一台主机既能收到ARP请求也能收到ARP应答
  • 主机会按照最新的地址信息来跟新缓存

 用arp -a 命令,就能看到主机中缓存的地址

和ARP协议对应的还有一个RARP协议,作用是已知Mac地址要求IP地址,有兴趣可以了解一下


三、DNS协议(域名解析协议)

所谓的域名,就是我们日常输入的网址中写的类似www.baidu.com的字符串,它可以帮助我们记忆网站地址,不需要在使用IP地址。DNS协议的作用在于将域名翻译成IP地址。会有专门的域名解析服务器来帮助我们完成这一动作。

域名使用 . 连接

  • com:一级域名,表示这是一个企业域名,同级的还有 "net"(网络提供商),"org"(非盈利组织) 等
  • baidu:二级域名,公司名(或者组织的名称)
  • www:只是一种习惯用法,之前人们在使用域名时,往往命名成类似于www.xxx.xxx这样的格式,来表示主机支持的协议

四、ICMP协议

ICMP 协议是一个 网络层协议
一个新搭建好的网络, 往往需要先进行一个简单的测试, 来验证网络是否畅通, 但是 IP 协议并不提供可靠传输, 如果丢包了,IP 协议并不能通知传输层是否丢包以及丢包的原因,ICMP正是提供这种功能的协议
ICMP 主要功能包括
  • 确认IP包是否成功到达目标地址
  • 通知在发送过程中IP包被丢弃的原因
  • ICMP也是基于IP协议工作的,但是它并不是传输层的功能,因此把它归结为网络层协议
  • ICMP只能搭配IPv4使用,如果是IPv6的情况下,需要是用ICMPv6

 

ICMP 大概分为两类报文 :一类是通知出错原因,一类是用于诊断查询

以下是ICMP协议的一些主要特点和用途:

  1. 错误报告:当IP数据包在传输过程中出现问题时,如无法到达目的主机、TTL(Time To Live)超时等,目标主机会向源主机发送一个ICMP错误报告。这些错误报告有助于源主机了解数据包为何未能成功传输,从而采取相应的措施。
  2. 网络探测和诊断:ICMP协议提供了一些用于网络探测和诊断的工具,如ping命令。ping命令使用ICMP回显请求和回显应答报文来测试两台主机之间的网络连通性。当源主机发送一个ICMP回显请求报文给目标主机时,如果目标主机可达且工作正常,它会返回一个ICMP回显应答报文给源主机。
  3. 路由跟踪:traceroute(在Windows中为tracert)是一个使用ICMP报文和TTL值来追踪数据包从源主机到目标主机所经过的路由器路径的工具。通过逐步增加TTL值并观察ICMP超时或目标不可达报文,traceroute可以确定数据包在传输过程中经过的每一跳路由器。
  4. 网络管理:ICMP协议还可以用于网络管理,如地址掩码请求和应答(用于动态主机配置协议DHCP)以及路由器发现等。

ping命令

  • 注意,此处 ping 的是域名,而不是url,一个域名可以通过DNS解析成IP地址
  • ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存周期)
  • ping命令会先发送一个 ICMP Echo Request给对端,对端接收到之后,会返回一个ICMP Echo Reply
  • ping是基于网络层的ICMP协议的,没有端口号

五、NAT技术

NAT技术,全称为Network Address Translation(网络地址转换),是一种在IP网络中用于解决IPv4地址短缺问题的技术。以下是NAT技术的简单介绍:

定义与背景

  • NAT技术是在1994年提出的,旨在通过将一个外部IP地址和端口映射到更大的内部IP地址集来转换IP地址。
  • NAT允许在本地网络中使用私有IP地址,当连接互联网时则使用全局IP地址。

工作原理

  • NAT使用流量表将流量从一个外部(主机)IP地址和端口号路由到与网络上的终结点关联的正确内部IP地址。
  • NAT的实现方式有三种:静态转换(Static NAT)、动态转换(Dynamic NAT)和端口多路复用(OverLoad或PAT)。

NAT技术的缺点:

1、外网无法直接访问内网中的主机,因为转化表是内部主机访问外网时才会创建映射关系

2、 装换表的生成和销毁都需要额外开销

代理服务器

NAT vs 代理服务器

  • 从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器
  • 从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换。代理服务器往往工作在应用层
  • 从使用范围上讲,NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网
  • 从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上
代理服务器的应用场景

内网穿透 && 内网打洞

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

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

相关文章

JavaScript正则表达式

一、介绍 正则表达式是用于匹配字符串中字符组合的模式。在javascript中&#xff0c;正则表达式也是对象。通常用来查找、替换那些符合正则表达式的文本&#xff0c;许多语言都支持正则表达式。 正则表达式的作用&#xff1a; 表单验证&#xff08;匹配&#xff09;、过滤敏感…

筛斗数据提取:解锁信息宝藏的关键步骤

在数字化时代&#xff0c;数据已成为推动社会进步和企业发展的关键要素。然而&#xff0c;数据本身并不直接产生价值&#xff0c;其价值在于我们如何从中提取有用的信息。数据提取&#xff0c;作为解锁信息宝藏的关键步骤&#xff0c;对于任何希望从海量数据中获取洞察力和竞争…

十四天学会Vue——Vue核心(理论+实战)上篇(第一天)

一、Vue核心&#xff08;上篇&#xff09; 热身tops&#xff1a;选取开发模式 ①用于开发模式 我们只需要知道 我们是开发模式&#xff0c;开发模式他会跟你提示代码出现错误的地方以及出错原因&#xff0c;而生产模式比较简洁。 ②用于生产模式 1.1 new Vue()实例 了解Vue&a…

人脸识别——筛选与删除重复或近似重复数据提高人脸识别的精确度

1. 概述 人脸识别研究通常使用从网上收集的人脸图像数据集&#xff0c;但这些数据集可能包含重复的人脸图像。为了解决这个问题&#xff0c;我们需要一种方法来检测人脸图像数据集中的重复图像&#xff0c;并提高其质量。本文介绍了一种检测人脸图像数据集中重复图像的方法。该…

有趣的css - 双开门按钮

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是一个双开门的按钮&#xff0c;交互效果比较强&#xff0c;但是实现很简单&#xff0c;快学起来吧。 最新文章通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码cs…

充电宝哪家好用推荐?买什么充电宝性价比高?2024年充电宝排行榜

说实话&#xff0c;我其实是个手机重度使用者&#xff0c;买过的充电宝也有无数款了&#xff0c;每次手机没电的时候插座都离得不是特别近&#xff0c;不是要下床充电就是要固定在一个位置充电感觉怪麻烦的&#xff0c;但是有了充电宝后可以在床上玩手机都不用担心手机没电&…

惯性测量单元M-G366PDG提供低误差系数的解决方案

人形机器人、自动驾驶的快速发展&#xff0c;促成了惯性测量单元(IMU)的爆火市场。据相关研究报告统计&#xff0c;IMU全球市场规模从2018年的99.94亿美元增加至2021年的135.95亿美元预计2027年将达到222.53亿美元&#xff0c;2021年至2027年复合增长率达8.56%。而由于智能技术…

VUE3+TS+elementplus创建table,纯前端的table

一、前言 开始学习前端&#xff0c;直接从VUE3开始&#xff0c;从简单的创建表格开始。因为自己不是专业的程序员&#xff0c;编程主要是为了辅助自己的工作&#xff0c;提高工作效率&#xff0c;VUE的基础知识并不牢固&#xff0c;主要是为了快速上手&#xff0c;能够做出一些…

免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)

Python蓝桥杯等级考试真题–第13级 一、 选择题 答案&#xff1a;C 解析&#xff1a;正向下标由0开始&#xff0c;下标3代表第四个元素&#xff0c;故答案为C。 答案&#xff1a;A 解析&#xff1a;range&#xff08;0,4&#xff09;的取前不取后&#xff0c;元组的符号是小括…

AI大模型在测试中的深度应用与实践案例

文章目录 1. 示例项目背景2. 环境准备3. 代码实现3.1. 自动生成测试用例3.2. 自动化测试脚本3.3. 性能测试3.4. 结果分析 4. 进一步深入4.1. 集成CI/CD管道4.1.1 Jenkins示例 4.2. 详细的负载测试和性能监控4.2.1 Locust示例 4.3. 测试结果分析与报告 5. 进一步集成和优化5.1. …

Transformer模型的简单学习

前言 Transformer 来源于一篇论文&#xff1a;Attention is all you need TRM在做一件什么事情呢&#xff1f;其实一开始它是被用于机器翻译的&#xff1a; 更详细的&#xff1a; 更详细的&#xff1a; 从上图可以看出&#xff0c;一个Encoders 下面包含了 n 个 Encoder&…

triton之paged attention

一 原理 图解大模型计算加速系列之&#xff1a;vLLM核心技术PagedAttention原理 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/691038809 二 源码分析 1 测试参数设置 test_paged_attention(num_seqs32,num_heads(64, 64),head_size64,block_size16,dtypetorch.float16,…

【ARM+Codesys案例】RK3568 +Codesys 软PLC方案在电镀生产线的应用

1 电镀生产简介 电镀是一种比较重要的工艺&#xff0c;产品经过电镀工艺处理后&#xff0c;不仅产品质量获得提高&#xff0c;产品性能也会大幅度提高&#xff0c;同时延长了产品的使用时间。电镀生产线是指按一定的电镀生产工艺要求,将有关的各种电镀处理槽、电镀行车运动装置…

ubuntu移动硬盘重命名

因为在ubuntu上移动硬盘的名字是中文的&#xff0c;所以想要改成英文的。 我的方法&#xff1a; 将移动硬盘插到windows上&#xff0c;直接右键重命名。再插到ubuntu上名字就改变了。 别人的方法&#xff1a; ubuntu下如何修改U盘名字-腾讯云开发者社区-腾讯云 在自带的软件…

安卓获取内部存储信息

目录 前言获取存储容量 前言 原生系统设置里的存储容量到底是怎么计算的&#xff0c;跟踪源码&#xff0c;涉及到VolumeInfo、StorageManagerVolumeProvider、PrivateStorageInfo、StorageStatsManager......等等&#xff0c;java上层没有办法使用简单的api获取到吗&#xff1f…

力扣239. 滑动窗口最大值

Problem: 239. 滑动窗口最大值 文章目录 题目描述思路复杂度Code 题目描述 思路 1.编写实现优先队列类&#xff1a; 1.1.实现push(int n):将元素n添加到队列尾&#xff0c;同时将n前面大于n的元素删除 1.2.实现int max():将队列头元素取出&#xff08;由于实现了push所以此时队…

「光储充放」一体充电站-一文读懂光储充放充电站

“光储充放”一体充电站作为一种储能充电的新形式渐渐走进人们的生活&#xff0c;全国很多地区都开始陆续投放运营“光储充放”一体充电站&#xff0c;今天的这篇文章&#xff0c;就带大家全面了解“光储充放”这一新型充电站。 头图来源 | 视觉中国 01 政策背景 早在2020年…

AI大模型实现德语口语练习

利用AI大模型实现德语口语练习的应用需要整合多种技术和资源&#xff0c;以确保学生能够获得全面、互动和有效的学习体验。以下是实现德语口语练习应用的详细流程和技术要点。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 实现流程 …

人脸防欺骗——基于皮肤斑块的快速安全的生物识别实现人脸识别防欺骗方法

1. 概述 深度学习的进步促使面部识别技术在许多领域得到应用&#xff0c;例如在线身份验证&#xff08;eKYC&#xff09;和电子设备的安全登录。面部识别是一种生物识别技术&#xff0c;对安全性要求很高。近年来&#xff0c;为了提高人脸识别技术的可靠性&#xff0c;人们引入…

12.Redis之补充类型渐进式遍历

1.stream 官方文档的意思, 就是 stream 类型就可以用来模拟实现这种事件传播的机制~~stream 就是一个队列(阻塞队列)redis 作为一个消息队列的重要支撑属于是 List blpop/brpop 升级版本.用于做消息队列 2.geospatial 用来存储坐标 (经纬度)存储一些点之后,就可以让用户给定…