博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈OSI七层架构模型1
阅读量:5149 次
发布时间:2019-06-13

本文共 1194 字,大约阅读时间需要 3 分钟。

OSI模型的优点在于:

  1. 将网络通信过程划分成更小、更简单的组件,这有助于组件的开发、设计和故障排除
  2. 通过标准化网络组件,让不同的厂商能够协作开发
  3. 定义了每层执行的功能
  4. 让不同类型的网络硬件和软件能够通信

OSI规范最大的作用是帮助在不同的主机之间传输数据。

OSI模型包括7层,分为上3层和下4层,上3层指定了终端中应用程序如何彼此通信以及如何与用户交流;下4层指定了如何进行端到端的数据传输。如下图:

 

下面是我在学习每层的一些笔记

应用层

应用层是用户与计算机交流的场所,它负责确定目标通信的可用性,并判断是否有足够的资源进行想要的通信。应用层是实际应用程序之间的接口,这意味着如word、IE等应用程序并不位于应用层,而是与应用层协议交互。

表示层

表示层是向应用程序提供数据,并负责数据转换代码格式化,从本质上说,该层就是一个转换器,提供编码和转换功能

会话层

会话层负责表示层实体之间建立、管理和终止会话,还对设备或节点之间的对话进行控制。提供了3种不同的模式:单工、半双工和全双工

传输层

传输层将数据进行分段重组成数据流。它提供了端到端的数据传输服务,并建立逻辑连接。它提供了建立、维护、拆除虚电路的机制,还提供传输错误检测恢复机制。传输层使用确认、排序和流量控制。它还提供透明的数据传输,从而对高层隐藏随网络而异的信息。TCP和UDP就运行在这一层,TCP是一种面向连接的可靠传输,UDP是无连接的不可靠的。

下面是面向连接(可靠)的协议

  1. 流量控制

    流量控制旨在提供一种机制,让接收方能够控制发送方发送的数据量

  2. 面向连接的通信

    传输设备首先与其对等系统建立面向连接的会话(这种虚电路的建立称之为开销),成为三次握手,然后传输数据。传输完成后,执行呼叫终止,拆除虚电路。

    三次握手的步骤:

  • 第一个是"连接协定"数据段,用于请求同步
  • 接下来的数据段确认请求,并在主机之间确定连接参数(即规则)。这些数据段也请求同步接收对方的排序,已建立双向连接
  • 最后一个数据段也是用来进行确认的,它通知目标主机连接协定已被接受且连接已建立,可以开始传输数据了。当数据传输完成后,就会产生呼叫终止,以断开虚电路

在面向连接的可靠数据传输中,数据报到达接收主机的顺序与发送顺序完全相同;如果顺序被打乱了,传输将失败。如果有任何的数据段丢死、重复和受损,传输也将失败。为解决此问题,可以让接收主机确认它收到的每个数据段。

如果服务具有以下特征,就是面向连接的

  1. 建立虚电路(如三次握手)
  2. 使用排序技术
  3. 使用确认
  4. 使用流量控制

     

  • 流量控制方式包含缓冲、窗口技术和拥塞避免

    3.窗口技术

  1. 窗口大小控制了一方传输给另一方的信息量。

    如果未收到所有应确认的字节,接收方应缩小窗口,以改善通信

转载于:https://www.cnblogs.com/ilovenetwork/p/3532995.html

你可能感兴趣的文章
作业1:求500到1000之间有多少个素数,并打印出来
查看>>
for循环:用turtle画一颗五角星
查看>>
浅谈JavaScript中的eval()
查看>>
操作系统学习(七) 、保护机制概述
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
MySQL建表语句+添加注释
查看>>
[Leetcode][JAVA] LRU Cache
查看>>
本周内容
查看>>
js兼容公用方法
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>
一种简单的数据库性能测试方法
查看>>
如何给JavaScript文件传递参数
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Kettle学习系列之Kettle能做什么?(三)
查看>>
【Mac + GitHub】之在另一台Mac电脑上下载GitHub的SSH链接报错
查看>>
Day03:Selenium,BeautifulSoup4
查看>>
awk变量
查看>>