网络封装分用

news2024/9/19 14:06:08

目录

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,数据就到了应用程序这里,这时程序就会针对数据进行"反序列化",针对这里的数据就要进行下一步逻辑(显示到屏幕上或者声音提醒)

两台主机之间往往不仅只有一根网线,而是有诸多的交换机和路由器连接完成数据的转发的

中间的交换机和路由器都涉及到了封装和分用,交换机的分装和分用到了数据链路层,就可以决定数据是丢弃还是继续进行转发,不用再继续进行分用

路由器是分装分用到了网络层,就可以决定数据是否丢弃还是继续转发了,不用在继续进行分用

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

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

相关文章

月入10000+,蓝海项目!少儿英语赛道

一、项目原理 少儿英语赛道的话,我们主要通过英语小短文,来让孩子学习英语,虽然现在有很多英语的课程,但针对少儿的英语是比较少的,所以这个赛道还是很吃香的。 整体流程也简单,先用AI写出故事&#xff0…

axure的下载,激活,汉化全过程,多图

1.前言 下载地址:https://pan.baidu.com/s/12xo1mJer2hmBK7QrYM5v-Q?pwd0107#list/path%2Fcsdn%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6 源文章:https://blog.csdn.net/iwanttostudyc/article/details/123773796?ops_request_misc%257B%2522request%25…

基于SpringBoot+Vue的篮球馆会员信息管理系统

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

高中数学:立体几何-平面的定义与公理

文章目录 一、平面定义及画法1、定义2、表示方法 二、公理1、公理12、公理23、公理3 一、平面定义及画法 1、定义 平面是向四周无限延展的。 2、表示方法 我们常用矩形的直观图,即平行四边形表示平面. 我们常用希腊字母α,β&#xff0c…

docker创建rabbitmq容器

创建rabbitmq容器 1.docker导入镜像 2.写docker-compose文件 并创建容器 3.访问15672端口 账号和密码都是guest

资产市场的战争-基于资产的媒体矩阵宣传和IP打造

在资产市场的战争中,基于资产的媒体矩阵宣传和IP打造是提升品牌竞争力、增强市场影响力的重要手段。 不同类型的媒体平台 以下是对这两个方面的详细分析: 一、基于资产的媒体矩阵宣传 1. 媒体矩阵的构建 平台选择:根据资产的特点和目标受众,选择合适的媒体平台进行宣传。…

TMS320F28335的GPIO

1 TMS320F28335 GPIO 介绍 1.1 GPIO 概念 1.2 GPIO 结构框图

neo4j安装为服务+配置环境变量

目录 neo4j安装为服务 windows services 参照JDK,将neo4j加入到环境变量 neo4j安装为服务 windows services 我的上一篇文章详细写明了如何安装启动neo4j《neo4j安装启动教程对应的jdk配置》,文末的启动neo4j是通过cmd命令行访问bin目录,这…

【设计模式-适配】

Adapter Pattern(适配器模式) 是一种结构型设计模式,其主要目的是让不兼容的接口能够协同工作。适配器模式通过引入一个适配器类,转换一个类的接口,使得原本不兼容的接口可以互相配合,从而实现接口的兼容性…

国庆旅游高峰期,景区如何利用可视化大屏保障游客安全?

国庆假期即将来临,中国文化和旅游部发布的数据显示,今年国庆期间国内旅游市场将迎来爆发式增长,预计出游人次将达到8.96亿,同比增长86%,旅游收入预计将达到7825亿元人民币,同比增长138%。这一繁荣景象无疑给…

使用Apache SeaTunnel高效集成和管理SftpFile数据源

本文为Apache SeaTunnel已经支持的SftpFile Source Connector使用文档,旨在帮助读者理解如何高效地使用SFTP文件源连接器,以便轻松地使用Apache SeaTunnel集成和管理您的SftpFil数据源。 SftpFile 是指通过 SFTP(Secure File Transfer Proto…

CC工具箱1.3.6更新_免费_120+工具

CC工具箱1.3.6更新【2024.9.11】 使用环境要求:ArcGIS Pro 3.0 一、下载链接 https://pan.baidu.com/s/1OJmO6IPtMfX_vob3bMtvEg?pwduh5r 二、使用方法 1、在下载链接中下载安装文件【CC工具箱1.3.6.esriAddinX】,直接点击安装即可。 2、安装好后打…

诸葛智能助力唐山银行、三峡媒体斩获「数智卓越企业」大奖

近日,2024爱分析第六届数据智能高峰论坛在北京成功举办,旨在深入探讨AI大模型与数据要素在企业智能化转型中的重要作用,分享前沿技术成果与头部企业实践经验。 诸葛智能作为数智化转型的优秀厂商,携手同样走在行业转型前沿的先锋…

网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据

在数据爬取领域,百度云盘作为国内领先的云存储服务平台,拥有海量的用户和数据资源。因此,对于技术开发者而言,如何高效、稳定地对百度云盘中的公开资源进行数据抓取成为了一个值得探讨的课题。本文将结合 PHP 的 set_time_limit()…

PVE虚拟机被锁定locked解决方法

打开pve节点的shell&#xff0c;执行以下命令 qm unlock <VMID> 示例&#xff1a; qm unlock 112

Mobile net V系列详解 理论+实战(1)

Mobilenet 系列 论文精讲部分0.摘要1. 引文2. 引文3. MobileNet 模型架构3.0 卷积个人理解3.1 深度可分离卷积3.2 网络结构和训练3.3 宽度乘数&#xff1a;更细的模型 α3.4 分辨率乘数&#xff1a;降低表示的维度ρ 4. 实验4.1 模型选择4.2. 模型缩减超参数4.3. 细粒度识别4.4…

YOLOv9改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失

一、本文介绍 本文记录的是利用Haar小波下采样对YOLOv9网络进行改进的方法研究。传统的卷积神经网络中常用的最大池化、平均池化和步长为2的卷积等操作进行下采样可能会导致信息丢失&#xff0c;为了解决信息丢失问题&#xff0c;HWD作者受无损信息变换方法的启发&#xff0c;…

python本地进程通讯----共享内存变量

背景 最近在开发实践中&#xff0c;接触到了需要多进程开发的场景。众所周知&#xff0c;进程和线程最大的区别就在于&#xff1a;进程是资源分配的最小单位&#xff0c;线程是cpu调度的最小单位。对于多进程开发来说&#xff0c;每一个进程都占据一块独立的虚拟内存空间&#…

大数据新视界 --大数据大厂之探索ES:大数据时代的高效搜索引擎实战攻略

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

致计算机新生们

欢迎你们踏入计算机科学的世界&#xff0c;这是一个充满挑战与机遇的领域。在你们即将开始的大学旅程中&#xff0c;了解计算机专业的就业方向和行业现状是非常重要的。以下是一些关于计算机专业就业方向和行业现状的介绍&#xff0c;希望能够帮助你们更好地规划自己的未来。 …