当前位置: 首页 > news >正文

【Linux】计算机网络的背景和协议分层

文章目录

  • 网络发展
  • 协议
    • 何为协议
    • 网络协议
    • 协议分层
    • OSI七层模型
    • TCP/IP五层模型(四层)
  • 基本通信流程
  • mac地址和ip地址
  • 网络通信本质

网络发展

从一开始计算机作为一台台单机使用,到现在网络飞速发展,从局域网Lan建立起局域网,到广域网Wan将远隔千里的电脑联系在一起,网络极大的促进了社会的发展和人类之间的交流,自从同一台主机进程间相互通信开始,网络的出现就是必然的。

协议

何为协议

何为协议,顾名思义,协议是双方都要遵守的 “约定” ,而在计算机的世界里,数据都是光电信号,用01表示强弱,要想传递好各种各样的信息,就要约定好对应的格式

举个简单的例子,在现代社会我们使用纸币交易,而在古代我们使用银子交易,这些交易方式其实就是“协议”

网络协议

为什么要有网络协议?
1、计算机硬件设备很多,都是由不同的厂商生产
2、计算机操作系统也很多。

为了让这么多厂商生产出来这么多产品能够相互的流畅的通信,自然就需要一套标准让大家都要遵守,在这种要求下,网络协议就自然诞生咯

协议分层

协议为什么要分层?我们先来看一下网络传输带来的问题:

1、首先,网络传输是长距离传输,容易出现数据异常的问题,比如丢失。
2、其次,网络中主机数量非常庞大,如何定位一台主机。
3、然后,如何进行数据转发、路径选择
4、最后,选择好路径,又要如何在硬件上传输

为什么会带来这么多问题? 很简单,数据传输的距离变长了而已。
这些问题是有上下关系的,比如定位问题解决后,如何数据转发路径选择?选择好路径又如何在硬件上传输?

基于这样的特点,网络被设计为高内聚、低耦合的 层状结构 ,这样每一层都只关注自己同层的功能,使用下一层的接口,任何一层出现问题,都不会直接影响另外一层。

高内聚:把相关的问题放在一起,设计出解决方案
低耦合:按照不同的功能,设计不同的模块

OSI七层模型

在这样的要求下,第一个网络标准协议模型就制定出来了,该模型非常完善的制定了网络中的各个层的功能,在真正设计的时候,由于有些层与应用高度相关,因此我们重点来学习另一个模型

在这里插入图片描述

在这里插入图片描述

TCP/IP五层模型(四层)

TCP/IP是一组协议的代名词,他们共同组成了TCP/IP协议族

  • 1、物理层 :负责光电信号的传递方式 物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器工作在物理层
  • 2、数据链路层:负责设备之间的数据帧的传送和识别。冲突检测(自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机工作在数据链路层.
  • 3、网络层:负责地址管理和路由选择。在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器工作在网路层.
  • 4、传输层:负责两台主机间的数据传输。
  • 5、应用层:负责应用程序间的数据传输。比如Http协议、SMTP(电子邮件传输)、FTP(文本传输协议)、Telnet(网络远程访问协议)

同层协议都要有两个功能:
1、报头要和有效载荷分离
2、报头必须支持将有效载荷交付给上层哪个具体协议(TCP?UDP?)

封装:报头+有效载荷 —>发送给下一层
分用:将二者分开,并将有效载荷交予上一层
在这里插入图片描述

基本通信流程

根据冯诺依曼体系结构,操作系统是计算机软件和硬件的管理者,要使用网卡这个硬件设备,就需要使用操作系统提供的接口,这也就注定了网络一定会贯穿操作系统,而传输层和网络层正是被设计进了操作系统里,操作系统可以有很多种,但是网络只能有一种。

如果不那么做,有人使用ip,有人不用,会直接无法通信。

跨网段的传输基本流程如图,中间要经过一个或多个路由器,路由器一定是级联至少两个子网的,路由器工作在IP层,而正是通过这样的方式,IP层屏蔽了底层子网之间的差异,可以说,IP是整个网络世界的基石!这样印证了那句话:在计算机设计哲学里,任何一个问题都可以在之间添加一层软件层。

在这里插入图片描述

mac地址和ip地址

在网络传输里通常会有两个地址,即mac地址和ip地址,通俗点来讲,目的ip地址就是最终目标,而目的mac地址决定下一站去哪里。即目的ip是不变的,而目的mac地址是一直在变化的。

需要注意的是,mac地址是全球唯一的,每一台网络设备都要有自己唯一的mac地址!而ip地址则是一台主机在公网内的唯一标识。

网络通信本质

理解本质之前,我们先要想一个问题:网络通信是两个主机在通信吗?

对,也不对,网络通信不单单是两台主机在通信,在主机接收到对方的数据后,要向上交付,交给对应的进程来处理,而网络通信的本质就是进程间通信。

暴漏自己的进程pid是不理智的,因此使用端口号来代替pid,一个进程可以绑定多个端口号,但一个端口号不可以被多个进程绑定!

我们把这种通过[源ip,源端口 + 目的ip,目的端口]的通信方式称为socket通信,即套接字通信。

相关文章:

【Linux】计算机网络的背景和协议分层

文章目录 网络发展协议何为协议网络协议协议分层OSI七层模型TCP/IP五层模型(四层) 基本通信流程mac地址和ip地址网络通信本质 网络发展 从一开始计算机作为一台台单机使用,到现在网络飞速发展,从局域网Lan建立起局域网&#xff0…...

代理模式:静态代理+JDK/CGLIB 动态代理

文章目录 1. 代理模式2. 静态代理3. 动态代理3.1. JDK 动态代理机制3.1.1. 介绍 3.1.2. JDK 动态代理类使用步骤3.1.3. 代码示例3.2. CGLIB 动态代理机制3.2.1. 介绍3.2.2. CGLIB 动态代理类使用步骤3.2.3. 代码示例 3.3. JDK 动态代理和 CGLIB 动态代理对比 4. 静态代理和动态…...

gps虚拟定位 AnyGo for Mac 中文

要在AnyGo中进行Gps位置模拟,您只需连接您的设备并选择“位置模拟”选项,然后输入您想要模拟的位置信息即可。通过使用AnyGo,您可以轻松地模拟任何地方的位置,而无需实际去到那个地方。 借助AnyGo,您可以通过在地图上…...

LLM reasoners 入门实验 24点游戏

LLM reasoners Ber666/llm-reasoners 实验过程 实验样例24games,examples/tot_game24,在inference.py中配置使用代理和open ai的api key。 首先安装依赖 git clone https://github.com/Ber666/llm-reasoners cd llm-reasoners pip install -e .然后…...

【LeetCode 算法】Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值-前缀和

文章目录 Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值问题描述:分析代码前缀和前缀和 Tag Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值 问题描述: 给你一个整数数组 nums 。一个子数组 [ n u m s l ,…...

怎么建立大型语言模型

建立大型语言模型通常涉及以下主要步骤: 数据收集:收集大规模的文本数据作为模型的训练数据。可以从各种来源获取数据,如互联网、书籍、新闻文章等。数据的质量和多样性对于模型的性能至关重要。 数据预处理:对收集到的数据进行预…...

docker简介和安装

什么是docker? docker是基于Go语言编写的开源容器引擎,是操作系统级别的轻量级虚拟技术。主要用于应用打包、分发、部署。 打包:软件开发过程中,打包是将程序打包成软件包或者镜像的过程;在容器化程序中,打…...

记录问题: servlet获取项目包绝对路径

【2023-8-8 23:46:27 星期二】 如何获取在webapp下的路径?而不是target包下的webapp目录 比如这里应该获取到 F:\Tiam\Desktop\freemarker\freemarker-demo01\src\main\webapp 而readPath总是获取到 F:\Tiam\Desktop\freemarker\freemarker-demo01\target\freemarker-demo0…...

C语言文件操作基本方法

1、文件的分类 ANSI C 的缓冲文件系统 缓冲文件系统 缓冲文件系统是指,系统自动地在内存区为每个正在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据时,必须首先输出到缓冲区中。待缓冲区装满后,再一起输出到磁盘文件中。 从磁盘文件向内…...

SQL 相关子查询 和 不相关子查询、Exists 、Not Exists、 多表连接(包含自连接)

不相关子查询 子查询的查询条件不依赖于父查询,称不相关子查询。子查询可以单独运行的 select stu_id,sex,age from student t where sex(select sexfrom studentwhere stu_id10023 )相关子查询 关联子查询 子查询的查询条件依赖于父查询,称为 相关子…...

项目规范 编写规范(范例)

项目目录 目录接口参考 项目目录结构设计,增加部分领域模型后缀强制定义,方便统一编码风格。 controller:请求处理 RestController module:按大业务区分,对多个业务对象数据聚合处理 Component manager:…...

MongoDB数据库操作及操作命令

目录 一、基础概念 二、安装mongod 三、命令交互数据库 (1)数据库命令 (2)集合命令 (3)文档命令 四、Mongoose (1)增加一条数据 (2)插入多个数据 &am…...

Linux命令(62)之tee

linux命令之tee 1.tee介绍 linux命令tee于读取标准输入的数据,并将内容输出为文件 2.tee用法 tee [参数] [filename] tee参数 参数说明-a读取标准输入的数据,并将内容追加到文件,而非覆盖-i忽略中断信号 3.实例 3.1.将ls -l输出内容作为…...

搭建Repo服务器

1 安装repo 参考&#xff1a;清华大学开源软件镜像站:Git Repo 镜像使用帮助 2 创建manifest仓库 2.1 创建仓库 git init --bare manifest.git2.2 创建default.xml文件 default.xml文件内容&#xff1a; <?xml version"1.0" encoding"UTF-8" ?…...

安卓:MMKV——键值存储库

目录 一、MMKV介绍 1.特点和优势&#xff1a; 2.使用指南&#xff1a; 3.依赖包&#xff1a; 二、MMKV的常用方法 1、初始化和获取实例&#xff1a; 2、存储数据&#xff1a; 3、读取数据 4、删除数据 5、其他操作&#xff1a; 三、MMKV的使用例子 MainActivity&#xff…...

使用Python将图像转换为PDF:一次性解决您的批量转换需求

导语&#xff1a; 在数字化时代&#xff0c;我们经常需要处理大量的图像文件。将这些图像转换为PDF格式可以方便地存档、分享和打印。本文将介绍如何使用Python编程语言将图像批量转换为PDF&#xff0c;并提供了一个简单易用的图形界面来跟踪转换进度。 准备工作 在开始之前…...

Vue——webpack

webpack 一、Install1.全局安装2.局部安装 二、总结1.打包2.定义脚本3.配置文件定义&#xff08;webpack.config.js)4.项目重新加载依赖5.webpack打包Css6.style-loader 一、Install 1.全局安装 npm install webpack webpack-cli -g2.局部安装 以项目为单位&#xff0c;一个项…...

springboot房地产管理java购房租房二手房j客户sp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 springboot房地产管理 系统1权限&#xff1a;管理员 …...

Gartner 发布影响数据科学和机器学习未来方向重要趋势

出品 | CSDN 云计算 供稿 | Gartner Gartner今日发布了影响数据科学与机器学习&#xff08;DSML&#xff09;未来方向的重要趋势。随着DSML行业的快速发展和演变&#xff0c;数据对于人工智能&#xff08;AI&#xff09;开发与运用的重要性日益提高&#xff0c;尤其是投资重点…...

72. 编辑距离

题目介绍 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 示例 1&#xff1a; 输入&#xff1a;word1 "horse", word2 &q…...

Android12.0 原生系统SystemUI下拉状态栏和通知栏视图之锁屏通知布局

1.前言 在12.0的系统rom定制化开发中,对于系统原生systemui的锁屏界面的功能也是非常重要的,所以在锁屏页面布局中,也是有通知栏布局的,所以接下来对于息屏亮屏 通知栏布局的相关流程分析,看下亮屏后锁屏页面做了哪些功能 2.原生系统SystemUI下拉状态栏和通知栏视图之锁…...

周末在家值班,解决几个月前遗忘的Bug

问题&#xff1a; 周末被迫在家值班&#xff0c;无聊之际打开尘封已久的Bug清单&#xff0c;发现有Bug拖了几个月还没解决… 场景是这样子的&#xff0c;有个功能是拿Redis缓存热点数据进行展示&#xff0c;暂且称它为功能A&#xff0c;有个另外的功能B&#xff0c;它会去更新缓…...

Shell编程基础(十五)文本三剑客(sed)

文本三剑客&#xff08;sed&#xff09; 使用场景基本语法实例命令列表 使用场景 sed提供了一种面交互的方式修改文件内容。 它是一行一行处理&#xff0c;可以通过正则匹配要修改的部分 基本语法 基本语法 sed [-opt] command files(多个文件 空格隔开) sed 使用正则 sed -…...

5,二叉树【p6-p7】

二叉树 5.1二叉树5.1.1例1&#xff1a;用递归和非递归两种方式实现二叉树的先序、中序、后序遍历5.1.1.1递归序的先序、中序、后序遍历先序遍历&#xff1a;中序遍历&#xff1a;后序遍历&#xff1a; 5.1.1.2非递归序的先序、中序、后序遍历先序遍历&#xff1a;中序遍历&…...

【Spring】如果你需要使用重试机制,请使用Spring官方的Spring Retry

文章目录 前言Spring Retry的基本使用第一步&#xff0c;引入Spring Retry的jar包第二步&#xff0c;构建一个RetryTemplate类第三步&#xff0c;使用RETRY_TEMPLATE注意事项 拓展方法降级操作重试策略&#xff1a;时间策略重试策略&#xff1a;指定异常策略 前言 Spring Retr…...

pagehelper 优化自定义分页和排序位置

pagehelper开源地址 https://github.com/pagehelper/Mybatis-PageHelper 1.手写Count查询优化 源码分页count时首先是判断是否存在手写的 {业务查询id}_COUNT 的查询count统计 private Long count(Executor executor, MappedStatement ms, Object parameter,RowBounds rowBound…...

Linux下查询文件夹中文件数量的方法

一、前言 在Linux系统中&#xff0c;我们经常需要查询文件夹中包含多少文件。本文将介绍三种在Linux中查询文件夹中文件数量的方法&#xff0c;帮助你轻松获取所需信息。 二、方法 1、使用ls命令和wc命令 使用ls命令的-l选项和管道操作符|结合wc命令来统计文件数量&#xf…...

PS透明屏,在科技展示中,有哪些优点展示?

PS透明屏是一种新型的显示技术&#xff0c;它将传统的显示屏幕与透明材料相结合&#xff0c;使得屏幕能够同时显示图像和透过屏幕看到背后的物体。 这种技术在商业展示、广告宣传、产品展示等领域有着广泛的应用前景。 PS透明屏的工作原理是利用透明材料的特性&#xff0c;通…...

Hbase-面试题

1. Hbase-region切分 自动切分&#xff0c;默认情况下 2.0版本&#xff0c;第一次region的数据达到256M&#xff0c;会进行切分&#xff0c;以后就是每达到10G切分一次&#xff0c;切分完成后&#xff0c;会进行负载均衡&#xff0c;均衡到其他regionserver预分区自定义rowke…...

图的宽度优先深度优先遍历

图常见的遍历方式有两种&#xff0c;一种是宽度优先遍历&#xff0c;一种是深度优先遍历。 宽度优先遍历 宽度优先遍历和之前介绍的二叉树的层级遍历类似&#xff0c;主要也是利用Queue来完成层级的遍历&#xff0c;除此之外&#xff0c;因为图中很可能有环&#xff0c;所以还…...

网站建设对教育解决方案/博客是哪个软件

一、统计表中的数据 count()函数&#xff0c;完成统计 count(*)&#xff1a;全部数据都统计 count(列名)&#xff1a;null 数据不统计eg:统计当前班级共多少人&#xff1f; mysql> select *from student;###查看表&#xff08;我没有第九条数据&#xff09; -------------…...

vr播放器 wordpress/每日财经最新消息

Are you sure you want to open context Menu on Click of Menu button?因为,上下文菜单适用于特定视图,上下文菜单提供影响UI中特定项目或上下文框架的操作.您可以为任何视图提供上下文菜单,但它们通常用于ListView,GridView或其他视图集合中的项目,用户可以在其中对每个项目…...

网站首页设计分析/网上营销的平台有哪些

1.直方图的绘制也需要用到matplotlib下的pylab&#xff0c;只不过在绘制折线图时我们采用的是plot()&#xff0c;而绘制直方图时我们需要采用hist()。由于在绘制过程中缺少真实数据&#xff0c;我在这里采用np.random.normal(a,b,c)生成的随机数绘制直方图&#xff0c;a为平均值…...

做文案需要用到的网站/西安网站建设公司电话

夜光序言&#xff1a; 我们太年轻&#xff0c;以致都不知道以后的时光&#xff0c;竟然那么长&#xff0c;长得足够让我忘记你&#xff0c;足够让我重新喜欢一个人&#xff0c;就像当初喜欢你那样。 正文&#xff1a;SQL语法扩展...

广州网站制作建设/营销策略怎么写

工程物资云_中建君联一、建立知识管理体系有助于提高企业的知识管理层次和水平。随着“知识经济”的来临&#xff0c;“知识管理”也越来越受到人们的重视。知识管理中的知识创造、收集、提炼和利用是施工企业技术和效益提升的关键&#xff0c;其中对知识的有效利用&#xff0c…...

可以做物理题的网站/关键词怎么选择技巧

类似于快排的算法&#xff1a;从左开始找&#xff0c;为奇数&#xff0c;则left1;从后开始找&#xff0c;则right-1&#xff1b;若不满足&#xff0c;则前后两数交换 void move_num(int arr[], int sz) {int left 0;int right sz - 1;while (left < right){//从前往后找w…...