网络封装分用
目录
1,交换机
2,IP
3,接口号
4,协议
分层协议的好处:
5,OSI七层网络模型.
6,TCP/IP五层网络模型(主流):
[站在发送方视角]
[接收方视角]
1,交换机
交换机和IP没有关系,相当于是对路由器接口的扩充,这时相当于主机都与路由器相连处于局域网中,把越来越多的路由器连接起来成一个非常复杂的网络,称为广域网(万维网就是指将世界上的所有路由器连接到一起)
2013年,移动互联网全面普及,"应用市场"的出现,可以将主机上的功能进行扩充
单机->局域网->广域网->移动互联网
2,IP
IP:描述了一台主机在互联网中所处的地址,用一个32为的整数来表示,使用"点分十进制"(方便人们阅读)这样的方式来描述IP
3,接口号
接口号:区分当前主机指定的应用程序(进程),一个主机上,使用网络的程序有很多,通过端口号进行区分,从而表示当前主机收到的信息是交给那个进程使用.接口号是一个两个字节的整数(0->65535),0->1023是有特殊的含义的,所以我们日常程序开发的时候,一般使用剩下的接口号
4,协议
协议:就是在约定通信双方,交互数据的规则.协议是一切通信的基础,通信至少有两个主机,发送方的数据需要让接收方可以读懂,也就是双方按照相同的规则来构造/解析数据.此时我们就将网络通信问题转换成如何使用通信协议的问题
网络上传输数据,一般是以光信号/电信号/电磁波...二进制数据.由于网络通信非常负责,如果使用协议就会使协议非常庞大,复杂.,所以对对协议进行拆分,让每个小协议专注解决一个/一类问题.协议布局:约定好协议之间不能随意交互,但是但是相邻的层之间可以相互交互,上层协议可以调用下层协议,下层协议给上层协议提供服务.我们称之为协议栈.
分层协议的好处:
1),降低了使用成本,使用某个协议不需要关注关注其他协议的实现.
2),降低了整个体系的耦合性,可以灵活的变更某个层次的协议
5,OSI七层网络模型.
6,TCP/IP五层网络模型(主流):
(用户)应用层(应用系统):
↓ 传输层(操作系统):关注网络通信中的起点和终点,并不关心其中的细节
↓ 网络层(操作系统):网络通信的路径规划"路由选择".负责地址管理
↓ 数据链路层(硬件):在针对上述规划好的路径,进行具体实施
(硬件)物理层(硬件):描述的是硬件设备(网络这样的设备)需要满足的条件
驱动程序:操作系统和硬件通信,管理硬件,使用的软件程序(一般是由硬件厂商提供)
• 对于⼀台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四 层;
• 对于⼀台路由器,它实现了从⽹络层到物理层,也即是TCP/IP五层模型的下三层;
• 对于⼀台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
• 对于集线器,它只实现了物理层;
上述只是站在经典模型上来讨论的,但是现实是,交换机,也可能是工作在网络层,甚至是传输层/应用层
路由器,也有可能是工作在数据链路层,也有可能是传输层,也有可能是应用层
数据在网络通信的整体流程:分装和分用
[站在发送方视角]
1,用户在文本框中输入"hello"字样,然后点击发送,程序就会把这个数据从输入框读取到,构造成一个"应用层数据包".应用层网络协议就描述了这个数据包的构造,此处的应用层协议往往是程序员自行定义的.
进行网络传输数据,通常要把"结构化的数据"转化成一个"二进制字符串",这个过程称之为序列化,把二进制字符串转化成结构化数据这个过程称之为反序列化
举例:
应用层数据包:数据包格式:发送者;接受者;时间;内容\n
2,应用程序,就会调用操作系统提供的API(传输层给应用层通过API)
操作系统会提供一个类似于"发送数据"这样的的API,然后应用层会将上述准备好的应用层数据包作为参数传进来,于是应用层数据包就到了系统内核里进入到传输层的代码层面,到达传输层层面就会把上述应用层数据包再次封装成一个传输层数据包(传输层有诸多协议,但主要的是TCP和UDP)具体使用那种,看的是在应用层方面使用的是那种API就是使用的那种协议(不同的协议提供的API是不相同的)(计算机网络中的封装实际上就是字符串的拼接)
传输层数据包(这里假设使用的是UDP协议):
这时UDP报头里面就包含了UDP的相关信息,比如发送者的端口号和接受者的端口号...
3,传输层构造成数据之后,就会继续使用网络层是API进一步把数据交给网络层,网络层也有诸多协议,其中最主要的就是IPv4协议,简称(IP协议),IP协议就会把上述拿到的传输层数据包构造成网络层数据包
网络层数据包:
此时IP报头里面包含了很多信息,主要是发送方的IP地址,和接收方的IP地址
4,网络层继续调用数据链路层的API,把数据交给数据链路层处理,数据链路层的常见协议是以太网协议
网络传输数据的基本单位:1,数据包,2数据报3,数据段4,数据帧>>>这几个术语之间是有差别的,但是在日常交流中不会过分去区分
5,上述得到的数据,需要进一步交给物理层(硬件设备)网卡会针对上述的二进制数据,进行真正的传输操作,就需要将上述的00101这样的信号转换成光信号/电信号/电磁波...
[接收方视角]
1,接收方接受的是光信号/电信号,把这样的信号还原成10101这样的二进制字符串数据.
2,物理层转换回来的数据,会交给数据链路层,以太网拿到这个数据包,就会对这个数据包进行分析,拿出这里的报头和荷载,根据报头的信息决定这个数据包是丢弃还是转发,还是自己保留(将载荷交给上层协议)
3,网络层拿到解析好的数据包,然后根据IP协议,对这个数据包进行解析,取出IP报头和荷载,根据报头的信息进行处理(丢弃/转发/保留[交给上层协议])
4,传输层UDP协议也要针对数据进行解析,取出UDP报头和载荷,此处也需要将载荷交给应用层协议
5,数据就到了应用程序这里,这时程序就会针对数据进行"反序列化",针对这里的数据就要进行下一步逻辑(显示到屏幕上或者声音提醒)
两台主机之间往往不仅只有一根网线,而是有诸多的交换机和路由器连接完成数据的转发的
中间的交换机和路由器都涉及到了封装和分用,交换机的分装和分用到了数据链路层,就可以决定数据是丢弃还是继续进行转发,不用再继续进行分用
路由器是分装分用到了网络层,就可以决定数据是否丢弃还是继续转发了,不用在继续进行分用
相关文章:

网络封装分用
目录 1,交换机 2,IP 3,接口号 4,协议 分层协议的好处: 5,OSI七层网络模型. 6,TCP/IP五层网络模型(主流): [站在发送方视角] [接收方视角] 1,交换机 交换机和IP没有关系,相当于是对路由器接口的扩充,这时相当于主机都与路由器相连处于局域网中,把越来越多的路由器连接起…...

【Finetune】(一)、transformers之BitFit微调
文章目录 0、参数微调简介1、常见的微调方法2、代码实战2.1、导包2.2、加载数据集2.3、数据集处理2.4、创建模型2.5、BitFit微调*2.6、配置模型参数2.7、创建训练器2.8、模型训练2.9、模型推理 0、参数微调简介 参数微调方法是仅对模型的一小部分的参数(这一小部分可…...

ubuntu24系统普通用户免密切换到root用户
普通用户登录系统后需要切换到root用户,这边需要密码,现在不想让用户知道密码是多少。 sudo: 1 incorrect password attempt $ su - Password: root-security-cm5:~#开始配置普通用户免密切换到root用户,编辑配置文件 /etc/sudoers 最后增加…...

如何应对pcdn技术中遇到的网络安全问题?
在应对网络安全问题时,需要采取一系列的操作措施,以确保网络环境的稳定性和数据的安全性。以下是一些建议: 选择可靠的PCDN提供商:与有良好安全记录的PCDN提供商合作,确保提供商具备专业的安全团队,能够提…...

【WRF工具】WRF Domain Wizard第一期:软件下载及安装
【WRF工具介绍】WRF Domain Wizard下载及安装 1 WRF Domain Wizard 的主要功能2 使用 WRF Domain Wizard 的步骤2.1 安装 WRF Domain Wizard:2.2 启动 WRF Domain Wizard:2.3 定义计算域:2.4 生成配置文件:2.5 运行 WPS 和 WRF&am…...

使用CUBE_MX实现STM32 DMA功能 (储存器发送数据到外设串口)+(外设串口将数据写入到存储器)
目录 一、配置串口打印(参考串口打印的文章) 二、CUBE_MX配置 三、KEIL5配置 1.打开dma.c文件(默认初始化DMA中断函数) 2.打开usart.c文件 3.打开main.c文件(储存器发送数据到外设串口) 4.打开main.c…...

【JavaScript】数据结构之树
什么是树形结构? 一种分层数据的抽象模型,用来分层级关系的。虚拟dom它所组织的那个数据原理就是树形结构 深度优先搜索(遍历)- 递归 从根出发,尽可能深的搜索树的节点技巧 访问根节点对根节点的children挨个进行深…...

【AI大模型】LLM主流开源大模型介绍
目录 🍔 LLM主流大模型类别 🍔 ChatGLM-6B模型 2.1 训练目标 2.2 模型结构 2.3 模型配置(6B) 2.4 硬件要求 2.5 模型特点 2.6 衍生应用 🍔 LLaMA模型 3.1 训练目标 3.2 模型结构 3.3 模型配置(7B) 3.4 硬件…...

Uniapp的alertDialog返回值+async/await处理确定/取消问题
今天在使用uniui的alertDialog时,想添加一个确定/取消的警告框时 发现alertDialog和下面的处理同步进行了,没有等待alaertDialog处理完才进行 查询后发现问题在于 await 关键字虽然被用来等待 alertDialog.value.open() 的完成,但是 alertDi…...

Spring Boot中的响应与分层解耦架构
Spring Boot中的响应与分层解耦架构 在Spring Boot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。下面将详细探讨这两个方面,包括Spring Boot的响应机制、分层解耦的三层架构以及它们在实际…...

基于python+django+vue的图书管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的图…...

Oracle数据库安装与SQL*Plus使用
一、实验过程 1、安装完数据库服务器程序后,查看系统服务启动状况并截图。 2、启动 SOL Plus工具,分别以SYS用户和 SYSTEM用户登录数据库,并解锁scott用户,用scott用户登录。每次登录完成后用show user命令查看当前用户,并截图。…...

C#通过MXComponent与三菱PLC通信
1,MXComponent安装包与手册。 https://download.csdn.net/download/lingxiao16888/89767137 2,使用管理员权限打开MXComponent,并进行配置。 3,引用相应的类库。 //通信类库 ActUtlTypeLib.dll或者ActProgType.dll 注明&#x…...

深度学习实战91-利用时空特征融合模型的城市网络流量预测分析与应用
大家好,我是微学AI,今天给大家介绍一下深度学习实战91-利用时空特征融合模型的城市网络流量预测分析与应用。本文围绕基于时空特征融合的城市网络流量预测展开。介绍了城市网络流量预测的重要性和现实需求,以及时空特征融合模型,包括其原理和优势。然后展示所使用的数据集,…...

GlusterFS 分布式文件系统
一、GlusterFS 概述 1.1 什么是GlusterFS GlusterFS 是一个开源的分布式文件系统,它可以将多个存储服务器结合在一起,创建一个大的存储池,供客户端使用。它不需要单独的元数据服务器,这样可以提高系统的性能和可靠性。由于没有…...

论文学习笔记6:Relation-Aware Heterogeneous Graph Neural Network for Fraud Detection
文章目录 Abstract一、Introduction二、Preliminaries2.1Problem Definition2.2Related Works 三、Proposed Method3.1Model Architecture3.2Computation Graph Pre-process3.3Heterogeneous Propagation Abstract 欺诈检测是金融和社交媒体领域的一项重要数据挖掘任务。传统的…...

无人机光电吊舱的技术!!
1. 成像技术 可见光成像:通过高分辨率相机捕捉地面或空中目标的清晰图像,提供直观的视觉信息。 红外热成像:利用红外辐射探测目标的温度分布,实现夜间或恶劣天气条件下的隐蔽目标发现。 多光谱成像:通过不同波段的光…...

C++——判断year是不是闰年。
没注释的源代码 #include <iostream> using namespace std; void Y(int y); int main() { int year; cout<<"请输入一个年份:"; cin>>year; Y(year); return 0; } void Y(int y) { if(((y%40)&&(y%100!0))||(y%…...

31. 三维向量Vector3与模型位置
点模型Points、线模型Line、网格网格模型Mesh等模型对象的父类都是Object3D (opens new window),如果想对这些模型进行旋转、缩放、平移等操作,如何实现,可以查询Threejs文档Object3D (opens new window)对相关属性和方法的介绍。 三维向量Ve…...

C# Action和delegate区别及示例代码
Action和delegate类似但没有返回值 Action和delegate在C#编程语言中有明显的区别,主要体现在它们的定义、用途和特性上。 1. 定义 Delegate:Delegate是C#中用于定义方法签名的类型,它允许将方法作为参数传递,或者将方法赋值给变…...

深度优先搜索: 探索图结构的括号化旅程
深度优先搜索: 探索图结构的括号化旅程 图的括号化结构示例图深度优先搜索的伪代码C语言实现解释运行结果总结在解决图相关问题时,深度优先搜索(DFS)是一种非常有用的算法。DFS 通过递归或使用栈的方式遍历图的节点,尽可能深地搜索每一个分支,然后回溯以搜索其他未访问的节…...

LINUX网络编程:传输层
目录 1.端口号 1.1知名端口号 1.2注意 2.UDP协议 2.1UDP报头的格式 2.2UDP的特点 2.3UDP的缓冲区 1.端口号 端口号的作用标识一个网络中主机的一个进程。 网络之间通信无非就是,发送端和接受端进程之间的通信,所以通过ip地址找到目标主机之后&am…...

PyTorch框架
PyTorch是一个开源的深度学习框架,由Facebook AI Research(FAIR)团队开发,自2017年发布以来,凭借其出色的灵活性、易用性和强大的功能,在深度学习和机器学习领域得到了广泛的应用和认可。以下是对PyTorch框…...

分布式系统实战经验
分布式系统是现代软件架构的核心部分,它通过多个计算节点协同工作来处理大规模数据和请求,提供高可用性、可扩展性和容错能力。在实际开发和运维中,构建分布式系统需要考虑多方面的挑战。以下是一些在分布式系统中的实战经验: 1.…...

软考(中级-软件设计师)(0919)
软考 一、软件设计师-历年考试考点分布情况-上午-计算机与软件工程知识 知识点分数说明比例软件工程基础知识11开发模型、设计原则、测试方法、质量特性、CMM、Pert图、风险管理14.67%面向对象12面向对象基本概念、面向对象分析与设计、UML、常见算法16.00%数据结构与算法10…...

WhaleStudio 与飞腾 S5000C 处理器完成产品兼容测试!
中秋佳节后喜讯传来!经过飞腾信息技术有限公司和北京白鲸开源科技有限公司的联合严格测试,白鲸开源 WhaleStudio 套件 V2.6 版本已在飞腾信息技术有限公司的腾云 S5000C 处理器平台上成功安装并稳定运行。 这标志着白鲸开源商业与飞腾的合作进入了一个新…...

【Arduino】Arduino使用USB-TTL无法下载程序问题
问题描述 自己绘制了一套基于Arduino MEGA的电路,没有在板子上面绘制CH340的标准下载电路,只保留了UART0的插针用于调试和下载程序。 使用ISP烧录完bootloader后,发现无法使用USB-TTL工具烧录程序 问题解决过程 在网上搜索了相关资料&…...

使用源代码编译R包的过程
R包的安装方式可以归纳为 源代码安装 和 二进制文件安装 两类: 源代码安装 是指从包的源代码进行编译安装。包括:① 通过CRAN安装源代码版本的包(如果没有二进制版本,或者指定了安装源代码)。② 从GitHub、Bioconducto…...

基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现
基于JavaWeb开发的java springbootmybatis电影售票网站管理系统前台后台设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获…...

【论文阅读】Face2Diffusion for Fast and Editable Face Personalization
code:mapooon/Face2Diffusion: [CVPR 2024] Face2Diffusion for Fast and Editable Face Personalization https://arxiv.org/abs/2403.05094 (github.com) 论文 介绍 目标:向 T2I 模型不知道的图像中插入特定概念(例如某人的脸ÿ…...