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

网络通信基础概念介绍

网络通信基础概念介绍

局域网LAN

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

局域网,即 Local Area Network,简称LAN。

局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。

局域网是指在一个相对较小的范围内,例如家庭、办公室、学校等地方内部建立的计算机网络。

广域网WAN

广域网则是指覆盖范围更广的计算机网络,通常是跨越城市、国家或者甚至是全球的。

IP地址

通过 IP 地址,来描述网络上的一个设备所在的位置。

端口号

区分一个主机上的不同应用程序。

一个网络程序,在启动的时候,都需要绑定一个或者多个端口号,后续的通信过程都需要依赖端口来进行展开的。mysql 默认绑定的端口3306

认识协议

协议就只是表示—种约定。这样的约定可以是任意的。网络通信协议,虽然更复杂,但都是人为约定出来的协议。

网络协议是网络通信经过的所有网络设备都必须共同遵从的一组约定。只有遵守这个约定,计算机之间才能相互通信交流。

协议分层

<1> 分层的作用

网络通信,是一个比较复杂的工作。会涉及到一系列非常繁琐,非常细节的工作…靠一个协议解决所有问题,导致这个协议非常复杂,非常庞大。

因此就需要对协议进行拆分,这么一拆分,拆分出来的协议就有点太多了。

于是就对这些协议进行 分类 - 分层。

分层:

上层协议调用下层,下层协议给上层协议提供服务。从而避免跨层级调用引起的混乱。

给这些协议搞了明确的层级关系,避免跨层之间的交互。降低耦合,提高整个系统的可读性。

<2> 两种主要方式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. OSI 七层网络模型(只存在于教科书中)

  2. TCP / IP五层网络模型(实际环境中)

    物理层:描述的网络通信中的一些基础设施需要遵守的规范.

    数据联络层:相邻节点之间,数据如何传输.

    网络层:路径规划.

    传输层:只关注起点和终点,不关注中间过程。(数据从哪里出发,要到哪里去)

    应用层:拿这个数据具体要用来做什么

封装和分用

封装和分用都是网络数据传输的基本流程。

主机A,从上到下,依次添加报头的过程 (发送的过程),称为封装。主机B,从下到上,依次解析报头的过程 (接收到过程),称为分用。

以 QQ 发送消息为例,介绍网络传输数据的基本流程。 整个流程可以想象成快递员发快递的过程。

例:主机 A 把消息通过QQ 发给主机 B.


发送方的情况(主机A)

1.应用层

QQ应用程序,从输入框中获取到你要输入的消息。构造成应用层数据报 (根据应用层协议)

注:所谓的"构造应用层数据报"过程,就是按照一定的格式进行字符串拼接

因为很多应用程序里会自定义应用层协议,所以 qq 用的什么协议咱也不知道。只能假设:发送人QQ号,接收人QQ,时间,消息内容。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

应用程序,就会调用传输层提供的接口,把上述数据交给传输层进行处理~~

2.传输层

传输层协议有很多,其中最主要的是 TCP 和 UDP 此处假设使用 UDP.

上面把数据从应用层传到了传输层,交给了UDP。于是 UDP 协议就要按照自己的协议格式,生成一个 UDP 数据报~~

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此时,传输层会把构造好的 udp 数据报,进一步的交给网络层。

3.网络层

网络层最主要的协议,是IP协议。

IP 协议也会根据自己的格式,来构造出IP数据报。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,还需要继续把数据传输给数据链路层。

4.数据联络层

以太网,又会针对IP数据报,进行进一步的封装。再添加上数据头和数据尾。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上述这样的数据,还需要进一步交给物理层~~

5.物理层

硬件设备(网卡)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上述数据本质上都是二进制的数据(一组0101构成的)

硬件设备就需要对上述数据进行转换了,转换成 —— 光信号/电信号/电磁波


接收方的情况(主机B)

  1. 物理层:把收到的 光信号/电信号/电磁波 进行解调,得到一串 0101 二进制数据序列。

    解调后得到以太网数据帧,这个数据就要被交给上一层:数据联络层。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 数据联络层:以太网协议就会针对这个数据进行解析,此时把载荷部分取出来,交给上一层(IP协议)

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 网络层:IP协议针对这个数据进行解析。去掉 IP 报头,取出载荷,进一步的交给传输层。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  4. 传输层:根据 ip 报头中的字段,就知道当前这个载荷是一个UDP数据报,交给UDP处理。UDP也是要针对数据报进行解析,去掉报头,取出载荷,进一步的交给应用程序。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  5. 应用层:UDP报头中,有一个字段,目的端口。根据目的端口找到关联的应用程序,就交给这个程序即可。qq 程序收到这个数据了,就会按照qq的应用层协议,进行解析。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


每次网络数据的传输都要经历上述过程,主机 A 和主机 B 之间互通消息,会经过很多个交换机或者路由器。

消息转发到某个设备,每个设备处理流程都是和上面的封装分用是一样的。

交换机:分用到数据链路层即可

交换机解析出以太网数据帧,进一步的获取帧头中的“mac 地址”,根据 mac 地址查询交换机内部的转发表,确定接下来数据从哪个网口发出去。在发送之前又会重新把以太网数据帧分装好。

路由器:则是分用到网络层

解析出 IP 数据报,获取到 IP 报头,根据 IP 报头中的目的 IP 进一步规划接下来要走的路线。接下来又会把这个数据重新封装,进行转发。

相关文章:

网络通信基础概念介绍

网络通信基础概念介绍 局域网LAN 局域网&#xff0c;即 Local Area Network&#xff0c;简称LAN。 局域网内的主机之间能方便的进行网络通信&#xff0c;又称为内网&#xff1b;局域网和局域网之间在没有连接的情况下&#xff0c;是无法通信的。 局域网是指在一个相对较小的…...

quickapp_快应用_全局数据

全局数据 [1]本地数据存储[2] 数据缓存问题 有时在接口请求的某个数据需要在多个页面使用&#xff0c;此时有2个方法 [1] 将数据存储在本地—> 等价于浏览器的localStorage[2] 将数据存储在数据缓存中 -> 等价于vue中的vuex [1]本地数据存储 官方文档&#xff1a;官方…...

Unity接入Protobuf介绍

Protobuf介绍 Protobuf&#xff08;Protocol Buffers&#xff0c;简称Proto&#xff09;是一种轻量级和高效率的数据序列化格式&#xff0c;由Google公司开发。与XML和JSON等文本格式不同&#xff0c;Protobuf是一种二进制格式&#xff0c;它具有更小的体积和更快的速度。在大…...

【anaconda】numpy.dot 向量点乘小技巧

假设向量A[1,1], 向量B[2,3]。如果想知道他们的内积就可以输入如下代码: 当然&#xff0c;如果是两个列向量相乘&#xff0c;肯定是不对的 但是如果没有维度也一样可以求得内积&#xff0c;而且结果不会套在列表里...

YOLOv5小目标检测层

目录 一、原理 二、yaml配置文件 一、原理 小目标检测层,就是增加一个检测头,增加一层锚框,用来检测输入图像中像素较小的目标 二、yaml配置文件 # YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters nc: 3 # number of classes depth_multiple: 0.33 # model…...

mysql 更改密码

由于两台设备的mysql数据库的密码不一样&#xff0c;开发时每次连接数据库都需要更改配置文件&#xff0c;所以想修改一下mysql数据库的密码。 mysql 修改密码千万不要直接修改&#xff0c;直接修改的话会出现两种情况&#xff1a; 1&#xff0c;修改成功&#xff0c;无法登录。…...

Android YUV存储方式

排名 性能&#xff1a;YUV444 > YUV422 > YUV420 > YUV411 YUV444&#xff1a;YUV444 提供最高质量的色彩准确性和图像细节&#xff0c;但需要更多的存储空间和传输带宽。适用于对图像质量要求很高的应用&#xff0c;如专业视频编辑或高端图像处理。YUV422&#xff1…...

SSM家具个性定制管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 家具个性定制管理系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用…...

来自Microsoft Teams的摄像头背景图片

原文件在&#x1f446;&#xff0c;下面是预览图 如果你安装了Microsoft Teams也可以搜索MSTeams&#xff0c;就在MSTeams/Backgrounds...

飞书如何接入ChatGPT-打造个人智能问答助手实现无障碍交流

目录 前言 环境列表 1.飞书设置 2.克隆feishu-chatgpt项目 3.配置config.yaml文件 4.运行feishu-chatgpt项目 5.安装cpolar内网穿透 6.固定公网地址 7.机器人权限配置 8.创建版本 9.创建测试企业 10. 机器人测试 总结 前言 在飞书中创建chatGPT机器人并且对话&am…...

Proteus仿真--基于1602LCD的秒表设计

本文介绍基于1602LCD的秒表设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 本设计中80C51单片机作为主控&#xff0c;用1602LCD作为显示模块&#xff0c;共有2个按键&#xff0c;K1按键用于秒表计时启停控制&#xff0c;K2用于清零显示内容 仿真运…...

香港站群服务器中1C/2C/4C/8C 的概念及区别

​  在选择香港站群服务器时&#xff0c;经常会看到1C、2C、4C和8C等不同的IP段。这些IP段代表了不同的子网掩码长度&#xff0c;也反映了服务器的IP地址数量和丰富性。 让我们来了解一下什么是IP段。IP段是指一组连续的IP地址&#xff0c;其中每个地址的前三个数字相同&…...

搭建SRS视频服务器

去官方网站下载FFmpeg6.1 https://ffmpeg.org/download.html拷贝到CentOS7.9中的/opt目录下&#xff0c;解压并重命名 tar -xvf ffmpeg-6.1.tar.xz 解压后编译安装 ./configure make make install从github下载SRS4.0release 解压后 如果ffmpeg的路径不在/usr/local/bin/ffmpe…...

【C++初阶】STL详解(八)List的模拟实现

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…...

Day02嵌入式---按键控灯

一、简单介绍 按键控制灯开关是一种常见的嵌入式系统示例项目&#xff0c;它通常用于演示嵌入式系统的基本控制能力。该项目由一个或多个LED和一个按键组成。通过按下按键&#xff0c;可以控制LED的开关状态&#xff0c;从而实现灯的亮灭控制。 二、查看功能手册 2.1 查看硬件…...

Centos设置nginx开机自启动设置

Centos设置nginx开机自启动设置 要设置CentOS中的Nginx开机自启动&#xff0c;可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;登录到CentOS服务器上&#xff0c;并以root用户或具有sudo权限的用户身份执行以下命令来安装Nginx&#xff08;如果尚未安装&#xff09;&a…...

拼接合并yuv序列转成mp4

ffmpeg需要用支持libx264的版本&#xff0c;如果需要&#xff0c;可以从这个网站下载编译支持libx264\x265的ffmpeg https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1-essentials_build.7z #-*- coding:utf-8-*- import osif __name__ "__main__":# 1 输入…...

访谈 破风之人毛京波,选择难而正确的路

“无论是在燃油时代还是电动时代&#xff0c;我们所做的一切&#xff0c;只为回归纯粹的驾驶乐趣。”履新路特斯中国总裁整整一年的毛京波&#xff0c;从不放过任何一个展示路特斯品牌驾驭精神的机会。 11月17日&#xff0c;广州车展开幕首日&#xff0c;位于5.2馆的路特斯“冠…...

java实现一个简单的监听器

在 Java 中&#xff0c;我们可以通过实现监听器&#xff08;Listener&#xff09;模式来处理事件和回调。监听器模式是一种常见的设计模式&#xff0c;用于实现对象间的松耦合通信。本文将介绍如何在 Java 中实现一个简单的监听器。 步骤 以下是实现一个监听器的基本步骤&…...

用HALCON标定助手对相机进行标定

任务要求&#xff1a; 已知相机镜头焦距f为8mm&#xff0c;相机单个CCD像素在水平和竖直两个方向上的尺寸均为3.75微米&#xff0c;相机为普通透光镜头和面阵相机&#xff0c;对相机进行标定&#xff0c;测量相机的内外参数。 操作步骤&#xff1a; 1. 在HALCON中运行gen_ca…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...