网络是如何进行通信
网络是如何进行通信的
简介
在现代社会中,网络已经成为我们生活中不可或缺的一部分。从上网搜索信息、在线购物到远程工作和社交媒体,我们几乎无时无刻不与网络保持着联系。但是,网络究竟是个什么玩意,它是如何工作的呢?让我们来深入探讨一下网络的本质和通信原理。
何为网络
网络
从它的字面意思来看,“网”指的是由线交叉形成的结构,而“络”指的是线的交织、交绕,也常用于形容事物的联系和关系。因此,从字面上看,“网络”可以理解为“由线交叉形成的联系和关系”。
在网络中,由线与线交叉在一起的点,称为节点,这个节点就是网络中的实体,他们可以是物理设备,也可以是虚拟的逻辑实体,它们在网络中扮演着不同的角色和功能。
- 物理设备:
- 物理节点就是网络中的实际硬件设备,如计算机、服务器、交换机、路由器等。这些设备通过物理连接(如网线、光纤)将它们连接在一起,形成一个网络。每个物理设备节点都具有自己的硬件特征和功能,如计算能力、存储能力和网络传输能力。
- 逻辑实体
- 逻辑节点是指在网络中的虚拟实体或服务,它们通过网络连接进行通信和交互。逻辑实体节点可以是一个运行在物理设备上的软件程序、虚拟机、容器等。它们可能不具备独立的硬件特征,但通过运行在物理设备上实现了特定的功能,如网络服务、数据存储、应用程序等。
网络就是通过他们组成了一张庞大的网,我们可以通过这张网,去获取更多的信息,这张庞大的网就是互联网,它连接了世界各地的设备和人们,使信息能够自由流动。
这就是网络,它帮助我们能更容易的获取信息、去看到世界上各处美丽的经典、让我们能足不出户就能享受生活。
网络是如何工作的
我们知道在人与人之间的沟通中,都是靠语言和文字等方式来进行沟通,但是不同的国家有不同的语言,甚至说在不同地区都会存在着语言差异,那我们是怎么解决的呢,规定一个通用的语言,例如我们中文就用普通话和汉字作为规则,它是我们的通用语言。那么在网络中,节点与节点之间是怎么沟通的呢?在此处就要引入协议
这一概念了。
我们已经知道了,在网络中节点与节点之间进行沟通,它们是使用协议
,那么构造协议
的方法又是怎么样的呢?总不可能,随意定下几个协议,就可以用了吧!所以说既然是协议,那就要是一种大家都能做到的一定规则,在网络中协议有三个基本要素:语法
语义
时序
他们分别代表着:
语法
:信息的结构,可以看作是"模版"
语义
:信息的意义和操作,通俗来讲就是“要干什么”
时序
:信息发送的顺序和间隔,通俗来讲就是“先后顺序”
他们相互配合,就形成了的网络协议雏形,这些要素确保了信息的结构、意义和传输顺序的一致性,为网络通信提供了一套统一的规则和约定。通过网络协议的指导和规范,不同节点能够按照共同的规范进行通信和交互,实现数据的可靠传输和正确处理。
网络通信的原理
通过网络协议的基本要素,形成了非常多的网络协议,而最为经典的协议架构就是OSI模型,它是现在TCP/IP协议族的原型。
在OSI模型中,提出了层次化网络概念,它将网络通信分解为不同的层次,每个层次都履行特定的功能和任务。这种层次化的结构有助于协议的设计、开发和维护,同时也提供了灵活性和可扩展性。
OSI模型的七个层次分别是:
-
物理层(Physical Layer):负责传输比特流,并管理物理连接。
-
数据链路层(Data Link Layer):在直接相连的节点之间传输帧(帧是数据和控制信息的组合)。
-
网络层(Network Layer):负责为数据包(包括源和目标地址)选择并建立路径。
-
传输层(Transport Layer):提供端到端的可靠的数据传输服务,并管理分段和流量控制。
-
会话层(Session Layer):负责建立、管理和终止会话(进程之间的通信)。
-
表示层(Presentation Layer):处理数据的表示形式,如加密、解密和压缩。
-
应用层(Application Layer):提供各种网络应用服务。
通过将网络通信分解为多个层次,OSI模型的设计目标是使不同层次之间的关注点和责任分离,从而实现模块化和可组合性。每个层次专注于解决特定的问题,并提供特定的功能,而不需要了解和干涉其他层次的实现细节。
而在TCP/IP协议族中,通过将多个层次合并或整合到较少的层次,形成一个更简化和实用的协议栈。在TCP/IP协议族中,它的分层是这样的:
-
网络接口层(Network Interface Layer):
- 该层负责处理网络硬件和物理传输,确保数据能够在网络中正确地传输。它包括了物理层和数据链路层的功能。
-
网络层(Internet Layer):
- 这是TCP/IP协议族中的核心层次,它负责处理数据包的路由和转发,确保数据能够在不同的网络之间传输。IP协议是这个层次中最重要的协议。
-
传输层(Transport Layer):
- 这个层次负责提供端到端的可靠数据传输服务,也就是确保数据从源节点传输到目标节点的可靠性和完整性。在TCP/IP协议族中,主要有TCP(传输控制协议)和UDP(用户数据报协议)两种协议。
-
应用层(Application Layer):
- 这是协议栈的最上层,提供各种应用程序之间的通信服务。在这个层次上,有各种特定的应用层协议,例如HTTP(超文本传输协议)、DNS(域名系统)、FTP(文件传输协议)等。
我们已经大致的了解了网络协议,现在我们再来看看,从微信发送一个信息,它会经历那些故事。
信息的故事
当我们发送一条信息时,首先是在应用层使用微信,编辑好一条信息,这就好像是在邮寄快递,应用层的微信为在这张快递单上,写下目的ip的地址,然后它会进入到第一道工厂,到传输层进行处理。
传输层接受到信息后,会根据应用层的socket(套接字)判断,它是属于UDP还是TCP,确定使用的是TCP后,传输层会先把信息分割为更小的数据块,并为每个数据块个包装好,包装标题是,源端口号、目的端口号,序号等的一系列控制信息,并发往下一站网络层。
网络层就相当于是一个中转站,在收到穿传输层工厂,在网络层接收到数据块后,它根据目的IP地址和路由表,来确定数据块的传输路径。类比中的中转站会根据目的地信息将快递送往正确的下一站,网络层也会根据目的IP地址将数据块传递到适当的下一站网络节点。
在网络层的处理过程中,首先通过目的IP地址查找路由表来确定最佳的传输路径。路由表中存储了一系列规则和路由信息,指示数据包应该被发送到哪个接口或下一跳路由器。根据路由表的信息,网络层选择合适的接口或下一跳路由器,并将数据块发送给它们。
到达下一站的网络节点后,数据块经过一系列的中转和路由选择,直至到达目标主机。类比中的中转站进行中转和选择合适的交通工具,网络层也进行类似的操作,将信息传输到目标主机。
在目标主机上,网络层接收到数据块后,会将数据块交给传输层进行后续处理。传输层会根据数据块的源端口号和目的端口号,将数据块分发给对应的应用程序微信。
就这样信息完成了一次历险旅程。
总结
随着科技的不断发展,网络将继续在我们的生活中扮演重要的角色。5G技术的普及和物联网的发展将使连接更加广泛和快速。人工智能和大数据分析的应用将进一步改善网络性能和服务。虚拟现实和增强现实技术将为我们带来更丰富的互动体验。
然而,网络发展也面临一些挑战。网络安全和隐私保护是亟待解决的问题,黑客入侵、数据泄露等问题已经时常发生。此外,数字鸿沟和网络普及度的不平衡也需要关注和解决。
尽管存在挑战,网络的意义和潜力无可否认。网络作为现代社会的重要基础设施,正不断推动着社会的进步和创新。我们应该共同努力解决网络发展中的问题,并充分利用网络所带来的方便和机遇,以推动更加智慧和可持续的未来。
相关文章:

网络是如何进行通信
网络是如何进行通信的 简介 在现代社会中,网络已经成为我们生活中不可或缺的一部分。从上网搜索信息、在线购物到远程工作和社交媒体,我们几乎无时无刻不与网络保持着联系。但是,网络究竟是个什么玩意,它是如何工作的呢…...
vue3 watch watchEffect
watch & watchEffect 函数都是监听器, 用于监视数据的变化; watch 有惰性,watchEffect 无惰性;watch 需要指定具体的监视属性,watchEffect 不需要指定具体的监视属性和配置参数,会自动感知代码依赖;watch 能获取到…...
lintcode 1410 · 矩阵注水【BFS 中等 vip】
题目链接,描述 https://www.lintcode.com/problem/1410 给一个二维矩阵,每个grid的值代表地势的高度。水流只会沿上下左右流动,且必须从地势高的地方流向地势低的地方。视为矩阵四面环水,现在从(R,C)处注水,问水能否…...
软件架构设计(十) 架构评估(复审)-方法论
我们上一节讲到了为什么么要进行架构的评估, 以及架构评估有哪些质量属性,本节正式来学习架构评估的一些方法论。 再讲到架构评估之前,还需要了解几个概念,也就是风险点,非风险点,敏感点,权衡点等。 风险点:系统架构风险是指架构设计中潜在的,存在问题的架构策略所带…...

SQL注入案例
目录 一、简介 二、案例 1.发现注入点 2.寻找注入类型 3.寻找字段数 4.将传参值设为超出数据量的大值,联合查询找到回显位置 5.找到数据库 6.寻找库中的表 7.寻找表中列 8.查看表中数据 附:SQLMap注入 1.输入指令查数据库 2.输入指令查表 3…...

lv3 嵌入式开发-5 linux shell命令(进程管理、用户管理)
目录 1 进程处理相关命令 1.1 进程的概念 1.2 查看进程的命令 1.3 发送信号命令 2 用户管理相关命令 2.1 用户管理相关文件介绍 2.2 用户管理相关命令介绍 1 进程处理相关命令 1.1 进程的概念 进程的概念主要有两点: 进程是一个实体。每一个进程都有它自己…...

学习Bootstrap 5的第六天
目录 信息警告框 警告框 实例 警告框链接 实例 关闭警告框 实例 警告框动画 实例 按钮 按钮样式 实例 按钮轮廓 实例 编辑按钮尺寸 实例 块级按钮 实例 实例 活动/禁用按钮 实例 加载器按钮 实例 扩展小知识 按钮组 按钮组 实例 实例 垂直按钮组…...

攻防世界-WEB-NewsCenter
打开环境 有查询,猜测是sql注入 保存请求头到文件中 准备利用sqlmap 查找数据库 python sqlmap.py -r ./123.txt --dbs 查找表 python sqlmap.py -r ./123.txt --tables -D news 查找字段 python sqlmap.py -r ./123.txt --column -D news -T secret_table 显示字…...
vue router 路由跳转获取不到参数
问题: 路由传参一直不能获取到参数, 未出现报错 原因: 混淆 query 和 params 的使用方法, 在使用 params 传参时错误的使用了 path 代码: 正确写法1: 使用path要对应query ...this.$router.push({path: /Health,query: {title:…...

将 Llama2 中文模型接入 FastGPT,再将 FastGPT 接入任意 GPT 套壳应用,真刺激!
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景! Llama2 是Facebook 母公司 Meta 发布的开源可商用大模型,国内的…...

Ubuntu之apt-get系列--apt-get安装软件的方法/教程
原文网址:Ubuntu之apt-get系列--apt-get安装软件的方法/教程_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Ubuntu使用apt-get安装软件的方法。 安装软件 先更新列表 sudo apt-get update 安装软件 sudo apt-get install <package name>[<version>]…...

redux的理解
技术栈: react redux webpack react-router ES6/7/8 immutable 运行项目(nodejs 6.0) git clone https://github.com/bailicangdu/react-pxq.gitcd react-pxqnpm i 或者运行 yarn(推荐)npm startnpm run build (发布&…...
【Java】Java 多线程的应用场景
文章目录 前言多线程的常见应用场景多线程使用的主要目的在于业务需求程序设计代码示例运行结果总结 前言 Java多线程程序设计到的知识: 对同一个数量进行操作 对同一个对象进行操作 回调方法使用 线程同步,死锁问题 线程通信 … 多线程的常见应用…...

Mysql--技术文档--索引-《索引为什么查找数据快?》-超底层详细说明索引
索引的概念 在MySQL中,索引是一种数据结构,它被用于快速查找、读取或插入数据。索引能够极大地提高数据库查询的速度。 索引的工作方式类似于图书的索引。如果你想在图书馆找到一本书,你可以按照书名进行查找。书名就像是一个索引…...

jmeter 接口快速创建
通过cURL命令创建测试计划 从浏览器获取接口 从postman获取接口...

docker 笔记10:Docker轻量级可视化工具Portainer
1. 是什么 Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。 2.安装 https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux 步骤 docker命令安装 docker run -d …...

028:vue上传解析excel文件,列表中输出内容
第028个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…...

在VR全景中嵌入3D模型有哪些优势?
现阶段,很多商企都会引入VR全景展示来宣传推广自己的产品、服务以及环境,但是环境展示凸显的沉浸式体验只是 VR全景一部分的价值所在,商企使用VR全景还有一个优势就是互动性,通过丰富多样的互动性,让用户同VR场景中的物…...

c高级day2 linux指令的补充和shell脚本
思维导图 写一个1.sh脚本,将以下内容放到脚本中: 在家目录下创建目录文件,dir 在dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中, 把当前目录下的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2.tar.xz 再把di…...

Rabbitmq 常见问题处理
Rabbitmq queue NaN status code 如下图: 参考文章 ## https://groups.google.com/g/rabbitmq-users/c/4MlYbOXvy4E## https://groups.google.com/g/rabbitmq-users/c/SsXtN165_30### https://www.cnblogs.com/weschen/p/13321817.html### https://community.piv…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...