网络的四层五层七层网络

news/2024/11/15 15:54:13/文章来源:https://www.cnblogs.com/littlecc/p/18298862
Markdown Example

聊聊网络协议

参考:https://zhuanlan.zhihu.com/p/665914921
参考:https://blog.csdn.net/weixin_43988680/article/details/123754721

网络的七层协议概念

1、物理层:这一层的数据叫做比特-将数据传递给访问对象
解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。
它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。
它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。
。2、数据链路层:(访问)这一层的数据叫做帧-添加通讯对象(google)的mac地址
在计算机网络中由于各种干扰的存在,物理链路是不可靠的。
该层的主要功能就是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
它的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;
同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。
。3、网络层:(访问)IP协议-添加访问服务器的IP地址(google)
计算机网络中如果有多台计算机,怎么找到要发的那台?如果中间有多个节点,怎么选择路径?这就是路由要做的事。
该层的主要任务就是:通过路由选择算法,为报文(该层的数据单位,由上一层数据打包而来)通过通信子网选择最适当的路径。
这一层定义的是IP地址,通过IP地址寻址,所以产生了IP协议。4、传输层:(访问)确定访问对象(如google)所使用的传输协议(tcp、udp等协议)、通讯端口
当发送大量数据时,很可能会出现丢包的情况,另一台电脑要告诉是否完整接收到全部的包。如果缺了,就告诉丢了哪些包,然后再发一次,直至全部接收为止。
简单来说,传输层的主要功能就是:监控数据传输服务的质量,保证报文的正确传输。5、会话层:建立维护与应用程序之间的当前会话(socket)
虽然已经可以实现给正确的计算机,发送正确的封装过后的信息了。
但我们总不可能每次都要调用传输层协议去打包,然后再调用IP协议去找路由,所以我们要建立一个自动收发包,自动寻址的功能。
于是会话层出现了:它的作用就是建立和管理应用程序之间的通信。6、表示层:(访问请求)将访问的数据传输转换加密(SSL/TLS)-将应用层的数据接收翻译成机器语言-发送到会话层
表示层负责数据格式的转换,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。7、应用层:(返回)将数据展示给用户-(访问)用户访问的数据-通过http协议发送到表示层
-- (http、https-http+ssl、ftp-文件传输协议、POP3-邮局协议、SMTP-邮箱、telnet-远程终端协议)
应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。
前端同学对应用层肯定是最熟悉的。

模型参考图
图一
图二

四层协议

应用层(http+ssl/tls+socket)
传输层(tcp/udp)
网络层(ip)
网络接口层(mac地址)
参考图

数据通讯流程

发包流程

应用层数据:首先,应用程序生成需要发送的数据。这可以是HTTP请求、电子邮件、文件传输等。
套接字发送:应用程序使用套接字接口将数据发送到传输层协议,例如TCP或UDP。套接字负责将数据封装为数据包,并提供接口供应用程序发送。
传输层处理:传输层协议(例如TCP或UDP)在这里负责将应用层数据分割成适当的数据包,添加首部信息,然后将它们传递给网络层。
网络层处理:网络层协议(通常是IP协议)接受传输层的数据包,并根据目标IP地址进行路由选择。它添加IP首部信息,然后将数据包传递给链路层。
链路层处理:链路层负责将数据包封装为帧,并发送到物理网络介质,如以太网、Wi-Fi等。这一层还可以进行MAC地址解析和ARP操作,以确定目标主机的物理地址。
物理层传输:数据包通过物理层发送到网络中,经过各种中间设备,例如交换机、路由器等,最终到达目标主机。

收包流程

物理层接收:在目标主机上,物理层接收到数据包,然后将其传递到链路层。
链路层处理:链路层接收到数据包后,进行物理层解封装,然后将数据包传递给网络层。
网络层处理:网络层接收到数据包后,解析IP首部,检查目标IP地址,然后将数据包传递给传输层。
传输层处理:传输层接收到数据包,解析传输层首部,将数据包分发给相应的套接字,完成数据包的重新组装。
套接字接收:应用程序通过套接字接口接收数据包,并将其传递给应用层进行处理。
应用层处理:应用层接收到数据包后,进行数据解析和处理,以完成通信过程。

数据的封装

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。
其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图所示:

数据的传输

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易优cms网站videoplay功能:该标签仅限于视频模型的文档,用于在线播放视频选集列表里的第一个视频-Eyoucms

videoplay 视频在线播放 [基础用法]名称:videoplay功能:该标签仅限于视频模型的文档,用于在线播放视频选集列表里的第一个视频。 (温馨提示:如果一篇视频文档有多个选集视频,可以同时使用【videolist 视频选集列表】标签,进行视频切换播放。)语法:{eyou:videop…

易优cms网站php功能:执行php代码-Eyoucms

[基础用法]名称:php功能:执行php代码语法:{eyou:php}$a = CMS;echo $a;{/eyou:php} 参数:无底层字段:无本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18298818

易优cms网站notice功能:统计站内通知未读消息条数-Eyoucms

[基础用法]名称:notice功能:统计站内通知未读消息条数语法:{eyou:notice id=field} <a href="{$field.url}">站内消息<span id="{$field.id}"></span></a> {$field.hidden}{/eyou:notice} 参数:id= 可以任意指定循环里的…

学习菜老板知识星球2-Day

今天我们来学习一下 作用域Scope 与 被绑定量Binding 作用域 Scope @Babel解析出来的语法树节点对象会包含作用域信息,这个信息会作为节点Node对象的一个属性保存 这个属性本身是一个Scope对象,其定义位于node_modules/@babel/traverse/lib/scope/index.js中 执行 Scope.dump…

易优cms网站weapp功能:用于网站安装更多的插件,建议放置在文件模板的底部-Eyoucms

【基础用法】名称:weapp功能:用于网站安装更多的插件,建议放置在文件模板的底部。语法:{eyou:weapp type=default /}参数:type= 类型底层字段:无本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18298795

【nvm、node、npm、nrm】安装配置教程(windows版)

一、nvm 的安装与配置 1、nvm 下载与安装 nvm官方下载地址 (我这里使用当前最新版本 1.1.12)2、验证 nvm 是否安装成功 # 查看 nvm 版本 nvm -v # 显示远程可安装 node 列表 nvm ls available # 安装指定 node 版本(版本可以直接输入大版本,比如20,会自动安装20大版本下的最…

易优Eyoucms网站assign功能:模板文件中定义变量,可在其他标签里使用该变量

【基础用法】名称:assign功能:模板文件中定义变量,可在其他标签里使用该变量语法:{eyou:assign name=typeid value=5 /}文件:无参数:name= 变量名value= 赋给变量名的值底层字段:无 【更多示例】-------------------------------示例1--------------------------------描…

易优cms网站notempty功能:判断某个变量是否为空,可以嵌套到任何标签里面使用-Eyoucms

【基础用法】名称:notempty功能:判断某个变量是否为空,可以嵌套到任何标签里面使用,比如:channel、type等语法: {eyou:notempty name=$eyou.field.seo_title /} {$eyou.field.seo_title} {/eyou:notempty} 文件:无参数:name= 变量名底层字段:无 【更多示例】---------…

易优Eyoucms网站channelartlist获取当前频道的下级栏目的内容列表

channelartlist 获取当前频道的下级栏目的内容列表[基础用法]名称:channelartlist功能:获取当前频道的下级栏目的内容列表标签语法: {eyou:channelartlist typeid=栏目ID type=son row=20} <a href={eyou:field name=typeurl /}>{eyou:field name=typename /}</a&g…

如何将pdf文件提取为图片?

如果你经常处理PDF文档,你可能会遇到需要提取其中的图片的情况。无论是用于个人使用、商业用途还是学术研究,提取PDF中的图片都是一项非常有用的技能。本文将为你介绍一些简单而有效的方法,帮助你轻松提取PDF中的图片。 方法一:使用pdf转换器 极速玩转是一款功能强大的PDF转…

帝国CMS网站的编辑器默认会清除多余的word代码,如果要保留word格式怎么修改?

编辑器默认会清除多余的word代码,如果要保留word格式怎么修改?答:CKeditor编辑器默认复制会清除多余word代码,如果要保留word格式可以按下面修改配置:修改 /e/admin/ecmseditor/infoeditor/config.js(后台) 和 /e/data/ecmseditor/infoeditor/config.js(前台) 文件,找到:…

Fatal error: Call to a member function read() on a non-object in 错误解决方法(织梦程序报错)

大家都说这是因为织梦代码优化不好怎么着怎么着的,其实有一些是因为这个原因,但不是完全因为这个。dede登录后台卡死原因分析登录完后台,加载的分别为顶部、左侧、右侧内容三个部分。  顶部只是简单的查询一下权限不会卡、左侧也是简单的查询了一下也不会卡,那么原因就是…