计算机网络 1

两台主机想通信,其实本质就是两个文件的资源交换,但是长距离的通信,面临的是很多的问题。这个时候需要通过一些方式来保证可靠性
在这里插入图片描述

什么是协议

这样一个例子,我是住在农村,我读高中了我需要去县里面读书。这个时候呢,本来给的生活费就不多,我不想把生活费浪费在打电话上。我就和家里面有一个约定。说,如果电话响了一声,证明我安全达到学校,如果电话响了两声,就证明我没有生活费了,你需要给我打钱,如果电话响了两声以上,就是证明我有其他事情找你,你必须接电话了。

但是这样就行了吗?

这个是代表我们能够正常的聊天,但是在真正聊天之前我们还需要做一些事情的。
比如说我们是一个帮派,很大很大。就是全国各地都有,我们为了确认对方是不是跟我们是一个帮派的,这个帮派的军师定了一个暗号,说“天王盖地虎” -》回答“小鸡炖蘑菇”才算正确。这个跟我们上面讲的协议差不多,但是有各种各样的人啊。方言对于军师来说听得懂,但是对于那些普通的小跟班,听不懂啊!怎么办?就不把对方当成一派的,杀了、。后面军师怪罪下来,说你为什么把对方杀了,对方回答正确了,那个小跟班说我听不懂啊我确认不了。军事一想确实是这样,但是就要求只是要这个帮派的都要学习普通话,用普通话会答暗号。这样就没问题啦。

这就是传说中的网络分层模型

在这里插入图片描述

为什么要分层,想想我们上面的两个例子。

在这里插入图片描述

协议 = 报头+有效载荷

协议我知道了,这个报头和有效载荷是什么呢?
我们想一下我们在网上购物,我们买了一个东西,但是商家发快递的时候会包装一个纸盒,顺丰快递呢会包装一个快递单在纸盒上。那我明明就只是买了东西(有效载荷),为什么要给我一个快递单子(报头呢)?这个快递单就是一个报头。使用俩区分是哪家快递公司的。同样,这里的每一层都有对应的协议。

在这里插入图片描述
在这里插入图片描述

mac的理解

我们要知道,ipv4现在已经不够用了,但是为了保证全国的机器可用,就会先给一个区域的位置的分一个地址,这个地址叫ip地址,然后,我们对这个区域的机器里面是公用一个ipv4地址的。然后但是我们又要区分这个区域里面的每一个机器,这个地址就是mac地址。到时候我们通信的时候,大多数都是由路由转到这个地址(mac地址)
在这里插入图片描述

这是一个用户A给用户b发送请求的过程,每一层都需要加一个报头。

在这里插入图片描述
在这里插入图片描述

有两个关键的问题

1 如何判断哪里是报头,哪里是有效载荷?
2 如何判断自己的有效载荷要交给上层的哪一个协议呢?

如何找这个问题很简单,就是一个倒着的多叉树,往上每一个节点一一比对就行。
针对第一个问题,可以用一个特殊额分隔符作为切分(这里后面会自己实现)

在这里插入图片描述

局域网的类别

在这里插入图片描述

西游记的例子
首先我们会有一个例子,唐僧的目的地是从东土大唐到西方如来佛主哪儿去,但是他到女儿国的时候,这样给女儿国国王说,女儿国国王给他说你的下一步是去黑风岭。
在这里插入图片描述

那么接下来我们要理解一下传输的过程了

在同一个局域网中,这个并不会完整的这样进行。当我们访问127.0.0.1的时候,直接从连路层直接就回到本机了。
在这里插入图片描述

令牌环网机制就是锁(后续了解一下)

跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.
在这里插入图片描述
简要的叙述一下流程,首先我们跟上面的西游记一样,有一个初始ip 和 目标ip 但是网络这么大,不可能一下就从A发到B 。这时候我们用一些图的深度优先啊,广度优先啊算法之类。搜索目标路径。我们从物理层开始传输,传输到下一个节点的时候,物理层要往上开始分解之前的报头,分解之前的ip。到了这一步判断ip对不对。不对,就往下封装自己的报头,在物理层这样一步一部的往下发送,直到ip正确。

数据包封装和分用

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封(Encapsulation).
首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理

下图为数据封装的过程

在这里插入图片描述

解封过程

在这里插入图片描述

网络中的地址管理

认识IP地址

IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4
IP地址是在IP协议中, 用来标识网络中不同主机的地址;
对于IPv4来说, IP地址是一个4字节, 32位的整数;
我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

认识MAC地址

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

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

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

相关文章

VL15 优先编码器Ⅰ

两种思路 module encoder_83(input [7:0] I ,input EI ,output wire [2:0] Y ,output wire GS ,output wire EO );reg [4:0] temp1 ; always (*) begincasex({EI,I}) 9b0_xxxx_xxxx:begin temp1 5b000_0_0;…

冒泡排序和递归排序

目录 一.冒泡排序 1.1概念: 1.2原理: 1.3简单示例讲解: 二.递归排序 1.1概念: 1.2原理: 1.3简单示例讲解: 一.冒泡排序 1.1概念: 冒泡排序是一种最基础的交换排序。 通过反复交换相邻…

Jupyter Lab 软件安装与使用

软件简介 Jupyter Lab 软件是一个基于web 的交互式开发环境,集成了代码编辑器、终端、文件管理器等功能,使得开发者可以在一个界面中完成各种任务。JupyterLab是Jupyter Notebook的全面升级,是一个集文本编辑器、终端以及各种个性化组件于一…

Java进阶学习笔记29——Math、System、Runtime

Math: 代表的是数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法。 示例代码: package cn.ensourced1_math;public class MathTest {public static void main(String[] args) {// 目标:了解Math类提供…

那智不二越机器人维修案例分享

那智不二越工业机器人在工业范围内广泛应用于各种生产领域。其示教器作为人机交互的重要设备,常常需要定期维护和Nachi不二越机械手示教盒修理。 【Nachi不二越机器人示教器维修步骤】 1. 关闭电源 在进行任何那智不二越机器人维修操作之前,务必确保机器…

<商务世界>《75 微课堂<茶叶(1)-质量分级>》

1 中国茶叶分级 中国的10级标准是按照茶叶的外观、香气、滋味、汤色、叶底五个方面进行评分,分别用10分制进行评分,总分为50分,得分越高,茶叶的品质就越高。具体的分数和等级如下表所示: 2 每级的特点 茶叶的质量等级…

OceanBase SQL 诊断和调优实践——【DBA从入门到实践】第七期

数据库作为绝大多数应用系统储存数据的核心系统,在用户系统需要访问数据时,有着至关重要的作用。在这些交互中,SQL 语言是应用与数据库系统之间“沟通”的桥梁,它负责将应用的指令传达给数据库。因此,SQL 的性能好坏直…

弱类型解析

php中 转化为相同类型后比较 先判断数据类型后比较数值 var_dump("asdf"0);#bool(true) var_dump("asdf"1);#bool(false) var_dump("0asdf"0);#bool(true) var_dump("1asdf"1);#bool(true)1、md5撞库 例&#xff1a; <?php incl…

【智能算法应用】模拟退火算法求解多车型车辆路径问题HFVRP

目录 1.算法原理2.多车型车辆路径HFVRP数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 模拟退火算法&#xff08;Simulated Annealing, SA&#xff09;是一种通用概率算法&#xff0c;用于在给定一个大的搜索空间内寻找问题的近似最优解。这种算法受到物理中退火过程的启…

ffplay 使用文档介绍

ffplay ffplay 是一个简单的媒体播放器,它是 FFmpeg 项目的一部分。FFmpeg 是一个广泛使用的多媒体框架,能够解码、编码、转码、复用、解复用、流化、过滤和播放几乎所有类型的媒体文件。 ffplay 主要用于测试和调试,因为它提供了一个命令行界面,可以方便地查看媒体文件的…

消息队列拉模式下的订阅关系不一致问题及解决方法

引言 在分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;MQ&#xff09;是一种常用的组件&#xff0c;用于解耦生产者和消费者&#xff0c;缓解系统负载&#xff0c;提升系统的可靠性和可扩展性。在Java行业中&#xff0c;常见的消息队列中间件有Apach…

烟囱ERP系统

一、烟囱系统定义 “烟囱式”系统&#xff0c;来自维基百科的解释是&#xff1a;一种不能与其他系统进行有效协调工作的信息系统&#xff0c;又称为孤岛系统。 二、烟囱系统的案例 比如&#xff1a;就像以下一样&#xff0c;各个系统之间是独立的&#xff0c;所有对接是通过…

深度学习复盘与小实现

文章目录 一、查漏补缺复盘1、python中zip()用法2、Tensor和tensor的区别3、计算图中的迭代取数4、nn.Modlue及nn.Linear 源码理解5、知识杂项思考列表6、KL散度初步理解 二、处理多维特征的输入1、逻辑回归模型流程2、Mini-Batch (N samples) 三、加载数据集1、Python 魔法方法…

【Android】安卓设备上的Fastboot模式详解与使用指南

原谅把你带走的雨天 在渐渐模糊的窗前 每个人最后都要说再见 原谅被你带走的永远 微笑着容易过一天 也许是我已经 老了一点 那些日子你会不会舍不得 思念就像关不紧的门 空气里有幸福的灰尘 否则为何闭上眼睛的时候 又全都想起了 谁都别说 让我一个人躲一躲 你的承诺 我竟然没怀…

c++笔记3

优先队列 普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。优先队列是一种按照优先级决定出队顺序的数据结构&#xff0c;优先队列中的每个元素被赋予级别&#xff0c;队首元素的优先级最高。 例如&#xff1a;4入队&#xff0c…

多文件和静态/动态链接以及虚拟内存管理

多目标文件链接 //stack.c char stack[512]; int top -1; void push(char c){stack[top] c; }char pop(void){return stack[top--]; }int is_empty(void){return top 1; }// main.c #include <stdio.h> int a,b 1; int main(){ push(a); push(b); push(c); while(!is…

Vue项目中npm run build 卡住不执行的几种情况(实战版)

方法一 一&#xff1a;比较常见是镜像导致的原因 我们可以找到build/check-versions文件 将这段代码注释,重新运行就可以解决这个问题 if (shell.which(npm)) {versionRequirements.push({name: npm,currentVersion: exec(npm --version),versionRequirement: packageConfig.en…

MySQL 存储过程返回更新前记录

在MySQL中&#xff0c;如果我们想在存储过程中返回更新前的记录&#xff0c;这通常不是直接支持的&#xff0c;因为UPDATE语句本身不返回更新前的数据。但是&#xff0c;我们可以通过一些策略来实现这个需求。 1.MySQL 存储过程返回更新前记录常用的方法策略 以下是一个常见的…

应用程序图标提取

文章目录 [toc]提取过程提取案例——提取7-zip应用程序的图标 提取过程 找到需要提取图标的应用程序的.exe文件 复制.exe文件到桌面&#xff0c;并将复制的.exe文件后缀改为.zip 使用解压工具7-zip解压.zip文件 在解压后的文件夹中&#xff0c;在.rsrc/ICON路径下的.ico文件…

代码随想录-Day20

654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums…