网络基础三——IP协议补充和Mac帧协议

全球网络及网段划分的理解

​ 根据国家组织地区人口综合评估进行IP地址范围的划分;

​ 假设前8位用来区分不同的国家,国际路由器负责全球数据传输,子网掩码为IP/8;次6位区分不同的省份,国内路由器负责全国数据的传输,子网掩码为IP/14,国际路由器也可以参与;再往后4位区分不同的市,由省内路由器负责全省的数据传输,子网掩码为IP/18;最后根据主机号形成一个完整的IP地址;

​ IP报文传输的过程中,通过IP目的地址和子网掩码不断地进行路由转发,最终发送到目标主机;公网IP地址会根据国家省市划分出不同的网段;在全国范围内通信是由运营商来进行维护的;

​ 一般网民使用的都是私有IP地址,而家用路由器是可以构建子网的;当普通人上网时,会将数据先传输到家用路由器,然后传输到运营商路由器,再传输到公网被接收,最后实现了通信;

​ 一个路由器是由至少两个IP地址的,一个用于子网内部路由LAN口IP,一个用于跨网络传输WAN口IP,家用路由器的WAN口IP就是运营商路由器构建的子网中的一个IP;每一个IP报文在传输时会先进行判断,如果目的IP是在子网内,源IP地址就会不会替换,如果要跨网络传输就需要将子网IP替换成WAN口IP;

​ 私有IP不断被替换的过程就是NAT技术;

通过公网 + 私有(可重复)构成了互联网

​ 当发送的目标IP是跨国的时候,运营商接收到报文就会丢掉,不允许发送出去;私有根据入网数量的多少,从高到低选用10.*,172.16.*,192.168.*的私有IP划分;

3.6路由

route
#查看路由表
#1.Destination,表示当前连接的网络号;
#2.Gateway,表示下一跳的路由器;
#3.Genmask,表示子网掩码;
#4.UG,U表示正在使用,G表示该条目是路由器;
#5.Iface,表示本地的网络接口,通过网络将数据报文发送出去;

在这里插入图片描述

​ 查询路由表的过程其实就是拿着目标主机的IP & Genmask 得到一个网络号,然后和Destination对比,如果是就使用对应的网络接口将数据发送出去并进入下一跳,否则继续向下查询路由表,如果都找不到就发送到默认路由器(同网段的可以跨网络传输的路由器);最终就会到达入口路由器;入口路由器到达目标主机使用Mac地址实现;

4.IP分片与组装

​ 实际上在一台主机中,报文并没有直接糖果网络层转发出去,而是继续交给了自己的下一层协议,最后查询路由表决定是发送给同网段主机还是路由器;

数据链路层一般不能发送过大的报文,所以要求上层不能一次交付过大的报文(TCP的发送缓冲区发送报文是一个一个进行);

ifconfig
#mtu表示的是Mac帧有效载荷最大是1500字节;

在这里插入图片描述

​ 如果I发送的IP报文过大就会在IP层进行分片转发,目标路由器收全之后就会进行组装形成一个完整的报文;

​ 在IP报头中具有相关切片和组装的字段;

在这里插入图片描述

16位标识,不同的IP报文对应的16位标识是不一样的,但是分片之后的报文16位标识是一样的;

3位标志,第1位不使用,第2位标志为0/1表示允许/不允许分片,第3位标志表示结束标志,当前是否是最后一个小包,0/1表示是/不是最后一个小包;

13位片偏移,原始报文被分成了若干片,表示此分片在原来报文的偏移量;

​ 当原始报文被分片后,每一个分片都要进行添加报头;对于分片的组装,先将具有相同16位标识的IP分片聚集在一起,然后根据片偏移将分片排序,最后完成组装;

​ 1.分片问题,一般报文片偏移量不为0,则说明报文被分片了,特殊第一个分片偏移量为0,但是它的第3位标志为1,表示此报文分片且不是报文结尾分片,如果两个都为0则说明是正常报文;

​ 2.分片丢失问题,如果丢失了第一个分片则因为所有的分片没有0,识别出第一个分片丢失;如果丢失了最后一个分片则因为没有一个第3位标志为0,被识别出最后一个分片丢失;当前分片的片偏移量与前一个分片的长度不一样时,则说明当前分片之前已经有报文分片丢失;

​ 解决上述问题就可以保证将所有的分片聚在一起,然后排序组装;其实一般是不建议IP报文进行分片的,因为只要有分片丢失,就会造成所有分片都被丢弃,重新发送所有切片,增加了丢包的概率;但是Mac帧规定了上层不能交付过大的报文,所以应该在传输层就保证数据报文较小;

二、以太网

​ 通过网络层判断是将数据报文发送到同网段的主机还是跨网络发送到下一跳;想要进行跨网络传输或者同网段主机间通信,就需要确保设备之间数据帧的传输;所以数据链路层解决的就是如何让直接相连的主机设备进行数据交付;

​ 每个主机除了要有公网或者私有IP地址之外,还需要有对应的网卡,而路由器则是有至少两张网卡,不同的网卡配对不同的IP就可以集连不同的网段;每一个网卡都对应着唯一的一个Mac地址;

​ ether以太网,表示的是48位的Mac地址;Mac地址的主要作用是区分同一子网中不同的主机;

1.Mac帧报文格式

在这里插入图片描述

​ 1.Mac帧报文通过使用定长报头进行解包和分用;

​ 2.Mac帧根据类型来进行分用,如:0800表示交付给IP协议,0806交付给ARP协议,8035交付给RARP协议;

数据大小范围,46-1500字节;

2.局域网通信的原理

​ 在局域网中的所以主机都可以收到发送到局域网的数据帧,但是通过对比Mac地址决定是丢弃数据帧还是接收数据帧;

​ 在局域网中是会存在数据碰撞问题的,需要使用碰撞避免算法减少碰撞次数,原理就是进行休眠,使得发送时间可以叉开,并且在休眠时其他主机可以发送数据帧;当检测到碰撞发生时,进行碰撞避免,之后进行数据帧的重发;

​ 局域网的特点是任何时间只能有一个主机发送数据帧,换句话说就是局域网是一个临界资源;

​ 一个主机要跨网络发送到远端主机就要通过路由器不断地路由到下一个网段;而经过路由器时会进行Mac帧的解包和重新封装;换句话说Mac帧只是在局域网中有效;

​ 主机数越多,发生碰撞的概率越大,所以需要增加交换机,进行碰撞域的划分,减少碰撞的发生;1.如果发生了碰撞,通信双方主机进行了休眠,交换机识别到了此碰撞域的不发送数据,就可以让其他碰撞域的主机进行发送数据帧;2.检测到不是跨碰撞域的通信,变相地减少了其他碰撞域发生碰撞的概率;3.跨碰撞域的通信就和原来进行的局域网通信是一样的,只不过多经过了交换机设备;单次发送的数据帧尽量不要太大,否则会使得与局域网通信的时间变长,导致发生碰撞的可能性增加;

​ Mac帧协议为了减少碰撞概率,所以要求上层IP协议发送的IP报文不能过大,可以进行IP分片,但是分片增大丢包概率所以不建议分片,这时候就需要上层TCP协议来保证数据段小一些,使得IP报文小,进而使得Mac帧小;如:TCP和IP都使用标准报头20字节,则TCP单次发送的数据段的有效载荷最多只有1460字节;1460字节就是MMS(max segment size),要求TCP的发送缓冲区要分割成一个一个的数据段;

​ MMS是TCP的一个方案,数据链路层的方案是MTU(max transmisson unit),有效载荷最大为1500字节,1500字节为MTU;

​ 由于设备的差异MMS和MTU可能不一样,还是会出现分片的情况,所以需要通信双方协商,使得MMS尽量保持一致;即TCP通信时会进行三次握手,协商MMS,取较小值为最终的MMS;

3.跨网络通信

​ 所谓的跨网络传输实际上就是连续多个子网路由实现;最终路由到入口路由器时要进行,解包和重新封装,封装时需要知道目标主机的Mac地址;目标主机的Mac地址是未知的,所以需要使用ARP协议(局域网协议,划分在了数据链路层)将目标主机的IP地址转换成Mac地址;

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

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

相关文章

【CSS】MDN

一、CSS构建 1.1 CSS选择器 1.1.1 元素选择器 标签不区分大小写 示例: span {background-color: yellow; }1.1.2 通用选择器 选择文档中所有内容,重置样式表中使用较多 鉴于div:first-child(代表所有的div元素,并且是第一个…

杨辉三角形(蓝桥杯,acwing)

题目描述: 下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, ... 给定一个正整数 N,请你输出数列中第一次出现…

OpenAI曾转录100万小时视频数据,训练GPT-4

4月7日,纽约时报在官网发布了一篇名为《科技巨头如何挖空心思,为AI收集数据》的技术文章。 纽约时报表示,OpenAI曾在2021年几乎消耗尽了互联网有用的文本数据源。为了缓解训练数据短缺的难题,便开发了知名开源语音识别模型Whispe…

Windows完全卸载MySQL后再下载安装(附安装包)

目录 友情提醒第一章:如何完全卸载干净mysql教程(三个步骤完全卸载)1)步骤一:卸载程序2)步骤二:删除文件3)步骤三:删除注册表信息 第二章:下载软件两种方式1&…

langchain LCEL,prompt模块,outputparse输出模块

目录 基本代码 prompt模块 prompt模版控制长度 outputparse格式化输出 LangChain表达式语言,或者LCEL,是一种声明式的方式,可以轻松地将链条组合在一起 langchian 可以使用 通义千问,我们用通义千问,用法也要申请…

Java语言实现文件分割与合并

一: 题目: 写一个方法,将feige.exe文件分割为每份1MB大小的若干份(最后一份可以不满1MB), 存储在一个temp的文件夹中(每份文件名自己定义,例如1.temp 2.temp), 然后再写一个方法,将temp文件夹中的若干份合并为一个文件fg.exe 代码: main…

FreeGPT3.5 开源软件

GPT-3.5不需要付费,也不需要注册用户,可以直接使用了,官方彻底开放了API接口。 该API政策一放开,GitHub很快就已经出现了一个开源项目FreeGPT35,可以自动生成key调用GPT3.5的API接口,再也用不着注册账号和申…

「51媒体」中小初创企业如何做好媒体宣传?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 中小初创企业在做媒体宣传时,由于通常资源有限,需要更加精明地使用外部资源来提升品牌知名度和业务成长。利用专业的媒体服务商可以是一个非常有效的方法。 明确目…

Android OOM问题定位、内存优化

一、常用工具: 1、LeakCanary val refWatcher: RefWatcher? TestApp.getRefWatcher(activity) refWatcher?.watch(activity);//检测是否有泄露,即触发GC回收,看activity是否被回收,没有被回收就是泄露了。 二、常见的几种内…

CSS aspect-ratio属性设置元素宽高比

aspect-ratio 是CSS的一个属性&#xff0c;用于设置元素的期望宽高比。它设置确保元素保持特定的比例&#xff0c;不受其内容或容器大小的影响。 语法&#xff1a; aspect-ratio: <ratio>;其中 <ratio> 是一个由斜杠&#xff08;/&#xff09;分隔的两个数字&…

【机器学习】一文掌握机器学习十大分类算法(上)。

十大分类算法 1、引言2、分类算法总结2.1 逻辑回归2.1.1 核心原理2.1.2 算法公式2.1.3 代码实例 2.2 决策树2.2.1 核心原理2.2. 代码实例 2.3 随机森林2.3.1 核心原理2.3.2 代码实例 2.4 支持向量机2.4.1 核心原理2.4.2 算法公式2.4.3 代码实例 2.5 朴素贝叶斯2.5.1 核心原理2.…

CPU问题排查

经常发现生产环境CPU运行很高&#xff0c;我们想知道到底是什么代码这么消耗CPU TOP命令 此时我们经常使用top来找到 CPU 使用率比较高的一些线程 容器中的docker 备注&#xff1a; 如果是docker 中的top命令。需要关注&#xff0c;一般来说不需要&#xff0c;挂载内容的多…

SQL注入sqli_libs靶场第一题

第一题 联合查询 1&#xff09;思路&#xff1a; 有回显值 1.判断有无注入点 2.猜解列名数量 3.判断回显点 4.利用注入点进行信息收集 爆用户权限&#xff0c;爆库&#xff0c;爆版本号 爆表&#xff0c;爆列&#xff0c;爆账号密码 2&#xff09;解题过程&#xff1…

云安全在金融领域的作用是什么?

云安全在金融领域发挥着至关重要的作用&#xff0c;使金融机构能够保护敏感数据、遵守监管要求并推动创新。通过实施强有力的安全措施、利用先进技术并对新出现的威胁保持警惕&#xff0c;金融机构可以保护其数字资产并维持客户的信任。 金融机构面临的挑战 1.缺乏全网数据支撑…

Django交易商场

Hello&#xff0c;我是小恒不会java 最近学习django&#xff0c;写了一个demo,学到了不少东西。 我在GitHub上开源了&#xff0c;提示‘自行查看代码&#xff0c;维护&#xff0c;运行’。 最近有事&#xff0c;先发布代码了&#xff0c;我就随缘维护更新吧 介绍&#xff1a; 定…

spikingjelly训练自己的网络---量化 --测试

第二个 但是我发现&#xff0c;都要反量化&#xff0c;因为pytorch是只能支持浮点数的。 https://blog.csdn.net/lai_cheng/article/details/118961420 Pytorch的量化大致分为三种&#xff1a;模型训练完毕后动态量化、模型训练完毕后静态量化、模型训练中开启量化&#xff0c;…

苍穹外卖11(Apache ECharts前端统计,营业额统计,用户统计,订单统计,销量排名Top10)

目录 一、Apache ECharts【前端】 1. 介绍 2. 入门案例 二、营业额统计 1. 需求分析和设计 1 产品原型 2 业务规则 3 接口设计 2. 代码开发 3. 功能测试 三、用户统计 1. 需求分析和设计 1 产品原型 2 业务规则 3 接口设计 2. 代码开发 3. 功能测试 四、订单统…

MacOS初识SIP——解决快捷指令sh脚本报错Operation not permitted

前言 因为一些原因&#xff0c;设计了一套快捷指令&#xff0c;中间涉及到一个sh脚本的运行&#xff0c;通过快捷指令运行时就会报错&#xff1a;operation not permitted 奇怪的是在快捷指令窗口下运行一切正常&#xff0c;但是从其他地方直接调用&#xff0c;例如通过Comma…

网络安全:重要性与应对措施

1. 网络安全的重要性 随着互联网的普及和信息技术的快速发展&#xff0c;网络安全问题已经变得日益突出。网络攻击者可以通过各种手段窃取个人信息、破坏系统、传播病毒等&#xff0c;给个人和社会带来巨大的损失。因此&#xff0c;网络安全已经成为信息化时代的重要问题之一。…

上门服务小程序|上门服务系统|上门服务软件开发流程

在如今快节奏的生活中&#xff0c;上门服务小程序的需求越来越多。它们向用户提供了方便、高效的服务方式&#xff0c;解决了传统服务行业中的很多痛点。如果你也想开发一个上门服务小程序&#xff0c;以下是开发流程和需要注意的事项。 1、确定需求&#xff1a;在开始开发之前…