网络封装分用

目录

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.xdnf.cn/news/143604.html

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

相关文章

宠物空气净化器该怎么选?希喂、352、霍尼韦尔哪款对吸附浮毛有效

明明我都成年很久了,我爸妈还把我当小孩一样,我干什么前都要和他们说一声。前段时间去朋友家玩,本来对宠物无感的我一下子就被她家可爱的猫咪萌化了。猫咪好可爱呀,毛茸茸的摸起来很舒服,眨巴的大眼睛看着你真的心软软…

ai头像免费软件有哪些?卡哇伊头像用这些

如果你的个性头像不再局限于单调的自拍,而是可以是任何你喜爱的动物形象! 无论是温顺的小猫、活泼的小狗,还是憨态可掬的熊猫,ai技术都能将这些可爱的动物形象变成你独特的虚拟代表。 现在,就让我们一起探索这些超萌…

webGL 综合教程100+【目录】

webGL 综合教程100旨在为开发者提供两大方面的知识信息:(1)提供详细的每个api知识点的详解 (2)提供实战的示例,提供源代码。 在这量大系统性的知识下,给用户提供清晰的思路和示例参考&#xff0…

Kettle的安装与基本使用

什么是Kettle? Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。是一个功能丰富的ETL工具,它允许用户轻松地进行数据抽…

Flutter 项目结构的区别

如果需要调用原生代码,请创建一个plugin类型的项目开发。如果需要调用C语言,请参考文档:Flutter项目中调用C语言plugin 其实是 package 的一种,全称是 plugin package,我们简称为 plugin,中文叫插件。 1. A…

动态分析基础

实验一 Lab03-01.exe文件中发现的恶意代码 问题: 1.找出这个恶意代码的导入函数与字符串列表? 2.这个恶意代码在主机上的感染迹象特征是什么? 3.这个恶意代码是否存在一些有用的网络特征码?如果存在,它们是什么? 解答: 1.找出这个恶意代…

idea使用阿里云服务器运行jar包

说明&#xff1a;因为我用的阿里云服务器不是自己的&#xff0c;所以一些具体的操作可能不太全面。看到一个很完整的教程&#xff0c;供参考。 0. 打包项目 这里使用的是maven打包。 在pom.xml中添加以下模块。 <build><plugins><plugin><groupId>org…

保护您的隐私:隐藏 IP 地址的重要性

在当今的数字时代&#xff0c;我们的在线隐私和安全变得比以往任何时候都更加重要。浏览互联网时保护自己的一种方法是隐藏您的 IP 地址。 但是为什么要隐藏您的 IP 地址以及如何有效地做到这一点&#xff1f; 隐藏您的 IP 地址有助于保护您的在线匿名性。您的 IP 地址就像您的…

鹰眼降尘模型

鹰眼降尘模型是一种集成了先进图像识别技术、机器学习算法和精准控制技术的环保解决方案&#xff0c;旨在解决无组织排放粉尘污染问题。以下是朗观视觉小编对鹰眼降尘模型的详细解析&#xff1a; 一、技术原理 鹰眼降尘模型主要基于以下关键技术原理实现其功能&#xff1a; 图…

网络安全。

文章目录 目录 文章目录 一. 网络安全概述 二. 密码学原理 三. 报文完整性和数字签名 密码散列函数 报文鉴别码 数字签名 公钥认证 四. HTTPS通信 总结 一. 网络安全概述 网络安全是保护计算机网络及其数据免受各种威胁和攻击的实践和技术。随着互联网的普及和数字化…

「数据科学」清洗数据,真实数据集中缺失值的查看与处理

在数据科学的工作过程中&#xff0c;我们通过查看数据的基本要素和元数据之后&#xff0c;需要根据查看的结果&#xff0c;考虑是否需要清洗数据。缺失值的查看与处理&#xff0c;就是清洗数据的一部分。如果我们的数据集中&#xff0c;存在缺失值的话&#xff0c;就需要考虑如…

利用WPF绘制轮廓并保存为图片

1.前言 WPF作为显示工具也挺好用&#xff0c;用C#开发应用软件会比较省力&#xff0c;当然也有其缺点&#xff0c;如在对效率要求较高的情况下有性能问题&#xff0c;本文记录用WPF绘制轮廓并保存为图片相关内容。 显示效果也还不错&#xff0c;满足调试使用了&#xf…

使用JS实现tab栏切换

重要知识点了解 环境对象&#xff08;this&#xff09; 1.环境对象&#xff1a;指的是函数内部特殊的变量 this 2.this的使用&#xff1a;当我们在一个函数里面需要去调用一个变量是。需要去引用如 函数的调用方式不同&#xff0c;this 指代的对象也不同 【谁调用&…

应用AI技术的销售进化论

该文章聚焦AI技术在销售行业中的实际应用&#xff0c;解读销售人员如何利用先进技术及工具突破传统限制&#xff0c;增强业务能力帮助销售人员保持竞争优势&#xff0c;提升工作效率与业绩。 1、AI如何重塑销售规则 1.1 AI在销售领域的应用&#xff1a;不只是数字游戏 在销售…

python调用c++动态链接库,环境是VS2022和vscode2023

目录 前言&#xff1a;配置环境&#xff1a;基础夯实&#xff08;对于ctypes的介绍&#xff09;&#xff1a;1. 加载共享库2. 定义函数原型3. 调用函数4. 处理数据结构5. 处理指针6. 错误处理7. 使用 ctypes.util总结 效果展示&#xff1a;操作步骤(保姆级教学)一在VS中创建dll…

train_llava记录

首先时build_model 【自定义多模态大模型LLaVA——LLaVA系列】 https://www.bilibili.com/video/BV1GS411P74b/?share_sourcecopy_web&vd_source820e17ab3d5412c1c94e68f2e5f07ae7 作者用的4B的qwen1.5 但是这里发现3090是只能部署但是推理爆显存所以只能换成0.5B的 问…

计算机毕业设计汽车选购销售平台管理系统车辆用户分类订单评价购买/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

‌计算机毕业设计&#xff1a;汽车选购销售平台管理系统‌ ‌一、项目概述‌ 本毕业设计项目旨在构建一个全面的汽车选购销售平台管理系统&#xff0c;该系统将涵盖车辆管理、用户分类、订单处理、评价系统以及购买功能。通过采用Spring Boot、JavaWEB、J2EE等后端技术&#…

【java系】记录一次ClassLoader.getResourceAsStream获取不到文件流

问题描述反馈&#xff0c;开发同事在本地获取对应文件流是可以正常业务操作&#xff0c;发布到linux服务器对应环境就会出现异常。 源码部分截图 看到这里&#xff0c;我猜想是否和window底层文件操作系统不区分大小写有关呢&#xff1f;而服务器linux是严格区分大小写这个应该…

黑神话悟空mac可以玩吗

黑神话悟空mac上能不能玩对于苹果玩家来说很重要&#xff0c;那么黑神话悟空mac可以玩吗&#xff1f;目前是玩不了了&#xff0c;没有针对ios系统的版本&#xff0c;只能之后在云平台上找找了&#xff0c;大家可以再观望下看看。 黑神话悟空mac可以玩吗 ‌使用CrossOver‌&…