OSI网络的七大模型简介

2023-10-31

先声明本文摘自https://www.cnblogs.com/carlos-mm/p/6297197.html是一片非常易懂的文章,以下做了压缩的摘要!!

物理层:它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

数据链路层:为网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。

传输层:

例如TCP,是用于发大量数据的,我发了1万个包出去,另一台电脑就要告诉我是否接受到了1万个包,如果缺了3个包,就告诉我是第1001,234,8888个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。

 

例如UDP,是用于发送少量数据的。我发20个包出去,一般不会丢包,所以,我不管你收到多少个。在多人互动游戏,也经常用UDP协议,因为一般都是简单的信息,而且有广播的需求。如果用TCP,效率就很低,因为它会不停地告诉主机我收到了20个包,或者我收到了18个包,再发我两个!如果同时有1万台计算机都这样做,那么用TCP反而会降低效率,还不如用UDP,主机发出去就算了,丢几个包你就卡一下,算了,下次再发包你再更新。

网络层:为了寻址!传输层只是解决了打包的问题。但是如果我有多台计算机,怎么找到我要发的那台?或者,A要给F发信息,中间要经过B,C,D,E,但是中间还有好多节点如K.J.Z.Y。我怎么选择最佳路径?这就是路由要做的事。 

会话层:会话层的作用就是建立和管理应用程序之间的通信,即可以自动去调用tcp 协议发包ip协议去寻址

表示层:解决不同系统之间的通信语法问题,如linux 系统与windows系统不一样的语法

Socket:

 

这不是一个协议,而是一个通信模型。其实它最初是伯克利加州分校软件研究所,简称BSD发明的,主要用来一台电脑的两个进程间通信,然后把它用到了两台电脑的进程间通信。所以,可以把它简单理解为进程间通信,不是什么高级的东西。主要做的事情不就是:

 

A发包:发请求包给某个已经绑定的端口(所以我们经常会访问这样的地址182.13.15.16:1235,1235就是端口);收到B的允许;然后正式发送;发送完了,告诉B要断开链接;收到断开允许,马上断开,然后发送已经断开信息给B。

 

B收包:绑定端口和IP;然后在这个端口监听;接收到A的请求,发允许给A,并做好接收准备,主要就是清理缓存等待接收新数据;然后正式接收;接受到断开请求,允许断开;确认断开后,继续监听其它请求。

 

可见,Socket其实就是I/O操作。Socket并不仅限于网络通信。在网络通信中,它涵盖了网络层、传输层、会话层、表示层、应用层——其实这都不需要记,因为Socket通信时候用到了IP和端口,仅这两个就表明了它用到了网络层和传输层;而且它无视多台电脑通信的系统差别,所以它涉及了表示层;一般Socket都是基于一个应用程序的,所以会涉及到会话层和应用层。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OSI网络的七大模型简介 的相关文章

  • 前端学习之原生JS实现addClass及removeClass方法的封装

    addclass方法封装 HTML代码 div class two div div class two three div JS代码 var o1 document querySelector b1 var o2 document quer
  • python 选择结构

    选择 用于判断 注意符号 单分支 If 条件 条件成立就执行if缩进的代码 双分支 If 条件 条件成立就执行if缩进的代码 Else 条件 条件不成立就执行else缩进的代码
  • 调整计算机硬盘大小,详细教您怎么调整硬盘分区

    新买的电脑很多磁盘只有一两个 很多时候需要对资料分区管理 甚至有些磁盘容量的分配不是很合理的 这时候怎么解决呢 就要我们对硬盘重新分区大小了 下面由小编给你带来硬盘分区的详细操作步骤 新买的笔记本 有时候会发现整个硬盘只有一个分区 如果将所
  • SpringCloud之服务发现

    1 服务提供者接口 以获取一个订单接口为例 order服务对user服务进行远程调用获取user基本信息 user服务提供的接口如下 package com acx controller import com acx pojo vo Act
  • 白盒测试——代码检查法

    代码检查法是静态的 不用生成测试用例并驱动被测程序运行来发现错误 代码检查法分为三种 一 代码审查 代码审查被认为是软件业最佳的实践 人们可以审查任何一种软件工作产品 包括需求和设计文档 源代码 测试文档及项目计划等 1 代码审查角色 主持
  • unity AR 教程

    start Frist 去Vuforia 官网注册新号 获取 LicenseKey链接地址 https developer vuforia com 如果unity是2017 2以上会在unity安装的时候自带AR组件 如果是老版本 就下载下

随机推荐

  • 华硕主板如何设置开机自启_华硕主板每次开机都进bios 华硕主板开机总是自动进入了BIOS设置界面怎么办?...

    华硕主板开机总是自动进入了BIOS设置界面怎么办 华硕笔记本若电脑一开机自动进入bios设置 可按以下操作更改BIOS设置 1 开机的时候长按F2键进入BIOS界面 通过方向键进 Secure 菜单 通过方向键选择 Secure Boot
  • Android疑难解决-Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

    编译项目报错 版本错误 Build file xxx build gradle line 2 An exception occurred applying plugin request id com android application
  • flutter 手势控制

    flutter 手势控制 事件监听 1 指针事件Point 2 手势识别Gesture 3 跨组件事件 在大前端的开发中 必然存在着各种各样和用户交互的情况 比如手指点击 手指滑动 双击 长按等 在Flutter中 手势有两个不同的层次 第
  • QT 的 QSS 的基本概念

    https www cnblogs com davesla archive 2011 01 30 1947928 html 借用css 的灵感 Qt也支持Qt自己的css 简称qss 同css 相似 qss的主要功能与最终目的都是能使界面的
  • C - Check The Text(string)

    C Check The Texthttps vjudge csgrandeur cn problem Gym 102263C Roze有一个特殊的键盘 只有29个键 26个字母a z键 打印26个小写拉丁字母 空格 键 打印一个空格 Cap
  • 机器学习比较好的视频资源

    吴恩达 经典入门课程 中英字幕 吴恩达机器学习系列课程 哔哩哔哩 bilibili www bilibili com video BV164411b7dx spm id from 333 999 0 0正在上传 重新上传取消 双语字幕 吴恩
  • JavaScript中window.print()打印

    JavaScript中使用window print 打印方法时 打印的是当前页的所有内容 所以如果直接在当前页使用此打印方法应先保存当前页面再把打印部分替换当前页面执行完之后再替换回来 或者新打开一个页面 把所打印的部分都写到新打开的页面上
  • Windows10中CUDA cundnn pytorch环境搭建记录

    关于在win10中安装cuda cudnn及pytorch全家桶 torch torchvision torchaudio 的详细安装步骤 可以参考这个帖子 说的非常详细 win10下pytorch gpu安装以及CUDA详细安装过程 仅在
  • ArchLinux安装slock锁屏(suckless)

    简介 一款suckless团队开发的锁屏小工具 下载 git clone https git suckless org slock 或者点击该链接下载 https dl suckless org tools slock 1 4 tar gz
  • JS高级(2)函数高级 — 原型与原型链

    原型与原型链 1 原型prototype 每个函数都有一个prototype属性 它默认指向一个Object空对象 即原型对象 里面没有我们的属性 原型中有一个属性constructor 它指向函数对象 构造函数和原型对象相互引用 func
  • 从零开发区块链应用(六)--gin框架使用

    文章目录 一 Gin 框架介绍 二 Gin安装 三 Gin使用 3 1 设置gin模式 3 2 创建新路由 3 3 创建多路由分组 3 4 创建路由 3 5 编写接口执行函数 3 6 启动服务 参考文档 Gin框架介绍及使用 https w
  • bread是可数还是不可数_在英语语法里,为什么bread是不可数名词?

    学英语 我们要分清楚名词的类型 可数名词 不可数名词 可数名词就是能够用 1 2 3 4 5 这样数的人或事物 比如苹果 茶杯 汽车 都可以这样数 但是 当我们打算去 数 water 水的时候 就水本身而言 它是液体 没有固定的形状和结构
  • SingleThreaded是如何进入cull_draw()的?

    正如以前所说 单线程模式是通过cull draw 进行剔除绘制的 如何进入的呢 其实很简单 逆推下 最后 回到梦开始的地方
  • React学习之围棋记谱本制作(二)棋盘、棋子、交替落子

    与儿子一起学围棋 上网上找 发现好用的记谱本软件特别少 打算自己做一个 不知能不能克服惰性 完成这个目标 千里之行 始于足下 今天完成了基础工作 棋盘 棋子组件 并完成了交替落子功能 是React基本功能的很好示范 代码贴一下 下一步就是多
  • 状态机的思想

    http blog sina com cn s blog 3e71aaaa0100834m html 转载于 https www cnblogs com as3lib p 3518613 html
  • 谷歌云活动

    Google x Cloud Ace 线下活动即将开始 本期主题 解锁 AIGC 密码 探寻企业发展新商机 期待您的莅临 时间 5月24日13 30 17 00 地点 深圳南山 本次活动定向邀请 CXO 们请扫码报名获取地址信息
  • 因果推断--Uplift model的原理和python实操(三)

    目录 一 Uplift Model的应用场景 二 Uplift Model原理及建模方法 2 1 建模目标 2 2 建模方法 1 双模型 差分响应模型 2 标签转化 Class Transformation Method 2 3 模型评估
  • Anaconda实验环境的搭建

    Anaconda和Jupyter notebook Anaconda Conda Package 和 Environment Data Science IDE vs Developer IDE 从IPython 到 Jupyter mac上
  • 30天自制操作系统学习-第9天

    1 整理源文件 昨天对鼠标键盘的控制函数都放在了HariMain主函数中 今天我们先将这些功能独立一个对应的C文件中即可 修改后的文件目录结构 只需在bootpack h头文件中声明即可 2 内存管理 高速缓存 维基百科 Cache一词来源
  • OSI网络的七大模型简介

    先声明本文摘自https www cnblogs com carlos mm p 6297197 html是一片非常易懂的文章 以下做了压缩的摘要 物理层 它的主要作用是传输比特流 就是由1 0转化为电流强弱来进行传输 到达目的地后在转化为