OSI七层网络模型中各层的作用

物理层

物理层提供了两台机器互联的物理链路,比如网线(双绞线,光纤),无线网(电波)。

物理层不仅提供了物理链路,还提供了数据传输能力,比如双绞线使用电信号,光纤使用光信号,无线网使用电波信号,实现数据传输。

物理层使用信号来模拟出二进制数据0和1,来实现复杂数据的简单表示,所以物理层中数据也被称为比特流(因为二进制每一位都是bit,比特)。

数据链路层

物理层的比特流是一串0和1组成的信息流,它们之间没有分隔,所以无法被机器识别。而数据链路层的首要任务就是将物理层的比特流 按照 八位一组(字节) 的方式,依次发送。这样比特流就会被转成字节流(帧),就可以被机器有效解析了。

数据链路层还有一个重要作用就是:

发送请求时:加入发送方机器的MAC地址 和 接收方的MAC地址。作用是,方便接收方确认数据发送方MAC地址,以及帮助接收方确认数据是否是给它的。

收到响应时:解析接收方的MAC地址,确认该数据是否发送给本机。如果是,数据中接收方的MAC地址就应该是本机的MAC地址。

网络层

在数据链路层中,发送请求时,如何获取到接收方的MAC地址呢? 解决方案:ARP协议

如果发送方和接收方不在一个子网下,请求该如何发送?如果在一个子网下,请求该如何发送?

解决方案:IP协议

发送方如何选择最优路径找到接收方?解决方案:一组路由协议(静态路由,动态路由)

传输层

当发送的数据过多过大时,需要的传输事件就很长,如果传输过程中网络中断,那么如何保证数据重传?如何保证数据的完整性?

传输层会对发送的数据进行封装,会根据TCP协议或UDP协议进行封装。

数据的源头是来自于应用层的某个应用,而数据最终也要反馈到应用层的对应应用,那么我们如何将数据反馈到对应的应用中呢?

我们知道每个应用都会占用操作系统下的一个端口,且应用占用的端口号是固定的,无论应用安装在哪个机器上。此时,就可以通过端口号找到对应的应用。

所以传输层需要记录下数据来源的应用端口号,这样就可以根据端口找到对应应用,并将数据发送给他。

会话层

如果数据较大时,需要花费较多时间来进行数据传递,但是过程中网络中断,则需要数据重传。此时我们希望的是从网络断开时数据段开始重传,即断点续传。

会话层的作用就是从一个校验点开始恢复数据传递。

另外会话层还实现了自动收发包功能和自动寻址功能。

表示层

网络中互相通信的两台设备之间的操作系统完全可能不同,而操作系统不同就会导致数据传递实现方式出现差异,而表示层的作用就是提供一种公共语言,所有操作系统都可以识别的,来解决不同操作系统之间通信实现的差异性。即表示层做了一个翻译工作。

应用层

应用层直接面向用户,它需要将用户输入的数据整理后发送,即按照一定的协议(如HTTP协议),编排请求报文。

或者将从底层传递过来的字节流数据转化为可以被用户识别的语言。

TCP/IP协议族 四层网络模型 及 和OSI各层对应关系

为什么会出现TCP/IP 四层网络模型

OSI七层网络模型是一种理想化的模型,但是当前网络通信实现基本都是按照TCP/IP协议族四层网络模型进行设计的。

TCP/IP 四层网络模型中,将 OSI的 应用层,表示层,会话层  全部归纳为 应用层。

因为OSI前三层的功能,当前都由应用软件整体完成了,即应用软件本身完成了 对用户输入的整理,以协议要求来组装请求报文以及解析响应报文;应用软件本身会针对不同操作系统开发出不同版本的软件,来适配对应的操作系统;并且将断点重传,自动重传,以及会话控制等能力写在自身软件逻辑中。

所以完全没有必要单独分出表示层和会话层,这样既会造成表示层和会话层的复杂性,它们要考虑到各种应用软件的情况,也造成了应用软件开发的约束性。

另外TCP/IP还将OSI最后两层:数据链路层和物理层 归纳为 数据链路层。 其实可以分析出来,网络分层模型中大部分层都是软件层面的,而物理层作为硬件层面出现在网络分层中,显得很鸡肋,物理层本身没有复杂的逻辑,只管将数据转成二进制形式的信号进行传输。但是物理层确实是网络通信中必不可少的一个环节。所以TCP/IP直接将其划分到数据链路层。

而OSI模型中,传输层和网络层 具有鲜明的特色,无法和其他层合并。

TCP/IP 模型中 数据传输过程

举个例子:

我在自己HP笔记本上的Edge浏览器的地址栏中输入一个网址 https://www.baidu.com,按下回车后,浏览器显示了一个百度搜索网页。

这一过程就涉及了网络中数据的传输,当前我们只关注数据在网络分层模型中的传输,不关注其他地方,所以可以画出如下示意图

(为了方便理解,我们还是将TCP/IP模型中物理层单独列出来)

请求过程,浏览器负责封装请求数据,服务器负责解封请求数据

响应过程类似于上面,只不过是服务器负责封装响应数据,浏览器负责解封响应数据

前端网络基础-网络分层模型相关推荐

  1. 074.JAVA网络编程_网络概述和分层模型

    1. 计算机网络 1.1. 计算机网络的概念 1.2. 网络分层 1.3. 网络各层常用协议 1.3.1. OSI 分层模型 1.4. 分层模型各层含义 1.4.1. 应用层 1.4.2. 表示层 1 ...

  2. 前端开发基础——网络相关(TCP、UDP、HTTP等)

    文章目录 网络分层模型 TCP和UDP 什么是TCP/IP.TCP.UDP TCP和UDP的区别 TCP三次握手 TCP四次挥手 HTTP和HTTPS HTTP和HTTPS的区别 HTTP请求头 HT ...

  3. 网络基础——网络的发展史

    作者简介:一名计算机萌新.前来进行学习VUE,让我们一起进步吧.   座右铭:低头赶路,敬事如仪 个人主页:我叫于豆豆吖的主页 目录 前言 一.网络发展史 1. ARPANET 2.TCP/IP协议 ...

  4. 网络基础 -- 网络分层与三次握手、四次挥手

    网络分层 OSI协议网络分层为七层,从上到下分别是 应用层(application layer) 表示层(presentation layer) 会话层(session layer) 传输层(tran ...

  5. 网络基础——网络传输基本流程

    目录 一.网络背景 1.1 网络的发展 二.协议 2.1 概念 2.2 协议的分层 2.2.1 OSI七层模型 2.2.2 TCP/IP五层(四层)模型 三. 网络传输基本流程 3.1 网络传输流程图 ...

  6. p2p 网络基础 网络高并发

    原文地址:http://www.52im.net/thread-50-1-1.html ➊ 本文是<P2P理论详解>系列文章中的第2篇,总目录如下: <P2P技术详解(一):NAT详 ...

  7. 网络基础 - 网络服务器带宽Mbps、Mb/s、MB/s的区别?

    我们经常听到IDC提供的服务器接入带宽是10M独享,或者100M独享,100M共享之类的数据.这的10M.100M到底是什么概念呢? 例如:所谓 10M 带宽,其实是指 10Mbps (兆比特) 计算 ...

  8. 网络基础OSI七层参考模型和TCP/IP五层模型及数据封装过程

    目录 学习目标: 网络基础 OSl分层 数据格式 每层对应协议 数据封装过程 图形演示数据封装过程 网络基础 1.什么是网络 网络是互联网的重要组成部分,它是一种连接世界各地计算机及其用户的全球性计算 ...

  9. Docker 网络基础原理

    网络基础 网络分层模型 公有IP和私有IP Public IP:互联网上的唯一标识,可以访问internet Private IP:不可在互联网上使用,仅供机构内部使用 A类10.0.0.0--10. ...

最新文章

  1. web前端培训:CSS中单行文本溢出显示省略号的方法
  2. 图像补运算:MatIterator_迭代器反色处理
  3. 2022年你应该知道的机器学习算法
  4. 解决docker镜像无法删除的问题
  5. (特征检测)检测角点opencv--python
  6. mysql 的驱动是多少_mysql驱动参数变化
  7. (组合数求模=乘法逆元+快速幂) Problem Makes Problem
  8. Android开发笔记(三十七)按钮类控件
  9. 解决webpack vue 项目打包生成的文件,资源文件均404问题
  10. 简易的文件上传 tp5
  11. FRR -- CLI简要分析
  12. 大学计算机ps教程 pdf,Photoshop中文教程.pdf
  13. Gitlab修改文件上传10M大小限制
  14. 送人玫瑰,手有余香----七夕情人节的电子玫瑰
  15. linux批量更新文件夹里,Linux下使用touch批量修改文件夹和文件的时间
  16. 服装办理erp体系的优点与选择
  17. springboot框架下的实时消息推送
  18. 2018年又传喜报!热烈祝贺王家林大师大数据经典著作《Spark SQL大数据实例开发教程》 畅销书籍 出版上市!
  19. 100例经典Python核心实战提升练习题汇总(三)
  20. 地震-电离层耦合机理

热门文章

  1. Python量化数据仓库搭建系列1:数据库安装与操作
  2. ARM开发现状、前景、ARM工作内容、入门方法
  3. oracle数据库没有shm,ORA-00845 ORACLE11G常见的shm问题
  4. VC封装USB接口的智能卡读写(应用层)
  5. twisted的一些代码
  6. [ESP][驱动]GT911 ESP系列驱动
  7. dhcp服务器怎么修改配置,dhcp服务器怎么配置
  8. 可视对讲系统服务器,数字楼宇可视对讲系统
  9. 转:德鲁克:你需要利用反面意见做决策
  10. 什么?360浏览器是最好用的?三步还你干净清爽无广告!