网络基础-OSI七层模型
什么是OSI模型
OSI模型(或 Open Systems Interconnection Model开放系统互连模型)是网络中使用的绝对基础模型。这个关键模型提供了一个框架,规定所有联网设备将如何发送、接收和解释数据。
OSI 模型的主要优点之一是设备在与其他设备通信时可以在网络上具有不同的功能和设计。其他设备可以理解通过遵循 OSI 模型一致性的网络发送的数据。
OSI 模型由七层组成,如下图所示。每一层都有一组不同的职责,从第 7 层到第 1 层排列。
在数据经过的每一层,都会发生特定的过程,并将信息片段添加到这些数据中,这就是我们将在这个房间内即将进行的任务中讨论的内容。然而,现在,我们只需要了解这个过程称为封装以及 OSI 模型如下图所示:


7.应用层

OSI 模型的应用层是您最熟悉的层。这种熟悉是因为应用层是在其中制定协议和规则以确定用户应如何与发送或接收的数据进行交互的层。
电子邮件客户端、浏览器或文件服务器浏览软件(如 FileZilla)等日常应用程序提供友好的图形用户界面( GUI ) ,供用户与发送或接收的数据进行交互。其他协议包括DNS(域名系统),这是将网站地址转换为 IP 地址的方式。

6.表示层

OSI 模型的第 6 层是开始进行标准化的层。因为软件开发人员可以以不同的方式开发任何软件,例如电子邮件客户端,所以数据仍然需要以相同的方式处理——无论软件如何工作。
该层充当应用程序层(第 7 层)之间的数据转换器。接收计算机还将理解以一种格式发送到计算机的数据以另一种格式发送。例如,当您发送电子邮件时,其他用户可能有另一个电子邮件客户端给您,但是电子邮件的内容仍然需要显示相同。
数据加密(如访问安全站点时的 HTTPS)等安全功能发生在这一层。

5.会话层

一旦从表示层(第 6 层)正确转换或格式化数据,会话层(第 5 层)将开始创建与数据目的地的另一台计算机的连接。建立连接后,将创建一个会话。当此连接处于活动状态时,会话也是如此。
会话层(第 5 层)使两台计算机同步,以确保它们在发送和接收数据之前处于同一页面上。一旦这些检查到位,会话层将开始将发送的数据分成更小的数据块,并开始一次一个地发送这些数据块(数据包)。这种划分是有益的,因为如果连接丢失,则只有尚未发送的块需要再次发送——而不是整个数据(可以将其视为在视频游戏中加载保存文件)。
值得注意的是,会话是唯一的——这意味着数据不能在不同的会话中传输,但实际上,只能在每个会话中传输。

4.传输层

OSI 模型的第 4 层在通过网络传输数据方面起着至关重要的作用,可能有点难以掌握。在设备之间发送数据时,它遵循两种不同协议中的一种,这两种协议是根据几个因素决定的:
- TCP协议
- UDP协议
TCP
让我们从TCP开始。Transmission Control Protocol 传输控制协议( TCP )。该协议在设计时考虑了可靠性和保证。该协议在发送和接收数据所需的时间内保留两个设备之间的恒定连接。
不仅如此,TCP还在其设计中加入了错误检查。错误检查是 TCP 如何保证从会话层(第 5 层)中的小块发送的数据已被接收并以相同的顺序重新组合。
TCP优缺点:
| TCP优点 | TCP的缺点 |
|---|---|
| 保证数据的准确性 | 需要保证两个设备的可靠连接,如果没有收到一小块数据,则无法使用整个数据块 |
| 能够同步两个设备防止彼此被数据淹没 | 慢速连接可能会阻碍另一台设备,因为连接将一直保留在接受计算机上 |
| 为可靠性执行更多的过程 | TCP比UDP慢的多,使用此协议的设备必须完成更多的工作 |
TCP用于文件共享、互联网浏览或发送电子邮件等情况。这种用法是因为这些服务要求数据准确和完整(如果没有数据完整性,发送电子邮件就会更大可能出现邮件丢失的情况)。
在下图中,我们可以看到一张狗的图片是如何从“网络服务器”分解成小块数据(称为数据包)的,“计算机”在此处将狗的图片重新构造为正确的顺序.

UDP
现在让我们转到U ser D atagram P rotocol(或 简称U D P )。该协议远不如它的兄弟——TCP协议先进。它没有 TCP 提供的许多功能,例如错误检查和可靠性。事实上,任何通过 UDP 发送的数据都会被发送到计算机,无论它是否到达那里。两个设备之间没有同步或保证;只希望它的传输是好的,能够抵达目标主机,祈祷吧。
虽然这听起来很不利,但它确实有其优点,我们将在下表中列出:
| UDP的优点 | UDP的缺点 |
|---|---|
| UDP比TCP快的多 | UDP不关心是否收到数据 |
| UDP让应用层(用户软件)决定是否可以控制数据包的发送速度 | 从这个意义上说,它对软件开发人员来说是相当灵活的 |
| UDP不像 TCP 那样在设备上保留持续连接 | 这意味着不稳定的连接会给用户带来糟糕的体验 |
使用与之前相同的示例,我们现在可以看到“计算机”仅接收到数据包 #1 和 #3,这意味着图像丢失了一半(当然这只是一个例子,网络稳定不会出现)。

UDP在发送少量数据的情况下很有用。例如,用于发现设备的协议(ARP 和 DHCP)或视频流等更大的文件。

3.网络层

OSI模型的第三层(网络层)是数据路由和重组的神奇之处(从这些小块到大块)。首先,路由只是确定这些数据块应该发送的最佳路径。
虽然这一层的一些协议确切地确定了数据到达设备应该采用的“最佳”路径,但我们应该只知道它们存在于网络模块的这个阶段。简而言之,这些协议包括OSPF(O pen S hortest Path First )和RIP(R outing Information Protocol )。决定采用何种路线的因素由以下因素决定:
- 什么路径最短?即数据包需要经过的设备数量最少。
- 什么路径最靠谱?我以前在该路径上丢失过数据包吗?
- 哪条路径的物理连接速度更快?即是使用铜连接(较慢)还是光纤(相当快)的路径?
在这一层,一切都通过 IP 地址处理,例如 192.168.1.100。能够使用 IP 地址传送数据包的设备(例如路由器)被称为第 3 层设备,因为它们能够在 OSI 模型的第三层工作。


2.数据链路层

数据链路层侧重于传输的物理寻址,它从网络层接收数据包(数据包含有IP地址),使用IP地址广播得到接收端的物理MAC地址。每台启用网络的计算机内部都有一个Network Interface Card网络接口卡( NIC ),它带有一个唯一的MAC地址来识别它。
MAC地址由制造商设置并直接烧入卡中;它们无法更改——尽管它们可以被欺骗。当通过网络发送信息时,实际上是物理地址用于确定将信息发送到哪里。
此外,以适合传输的格式呈现数据也是数据链路层的工作。

1.物理层

这一层是最容易掌握的层之一。简而言之,这一层指的是网络中使用的硬件传输线,是您能找到的最低层。设备使用电信号在二进制编号系统(1 和 0)中相互传输数据。
例如,以太网电缆连接设备,如下图所示:


OSI七层闯关


网络基础-OSI七层模型的更多相关文章
- python网络编程-OSI七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- 网络 、osi 七层模型、tcp/ip 五层参考
网络 网络的本质就是通讯,比特传输 网络拓扑 物理布局pc -- 交换机 -- 路由器逻辑布局pc -- 路由器 交换机的产生 网络之初,是通过网线互相连通到各个主机,存在的问题就是2个pc都要与服务 ...
- 网络之OSI七层模型
1. 物理层:设备之间的比特流的传输,物理接口,电气特性等 2. 数据链路层:成帧,用MAC地址访问媒介,错误检测与修正 3. 网络层:提供逻辑地址(IP),选路 4. 传输层:可靠与不可靠的 ...
- 软件开发架构、网络基础知识、osi七层模型
一.软件开发的架构 涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访问就可以 ...
- Linux--网络基础(概念+协议的了解+OSI七层模型,TCP/IP五层协议,网络数据传输流程)
网络的发展 网络的发展有下面几个阶段: 独立模式:计算机最开始是以单机模式被广泛使用的.每一台计算机都是独立的,之间不能够进行数据共享与通信 网络互联: 计算机之间可以链接在一起,完成数据共享,计算机 ...
- 网络基础笔记——OSI七层模型
OSI七层模型 由于整个网络连接的过程相当复杂,包含硬件.软件数据封包与应用程序的互相链接等等.假设想要写一支将联网所有功能都串连在一块的程序.那么当某个小环节出现故障时,整仅仅程序都须要改写.所以我 ...
- 网络基础:OSI 七层模型、TCP/IP 四层模型
1.Internet历史 1. 1968年由美国ARPA机构提出"资源共享计算机网络”,让ARPA的计算机互联起来,叫做阿帕网;2. 1974年,第一个TCP协议详细说明发布了.3. 一个 ...
- 网络基础之 OSI七层模型
OSI七层模型模型图如下: 前三层(应用层,表示层,会话层)=>给用户提供服务. 后四层(传输层,网络层,数据链路层,物理层)=>数据传递提供服务. 其中 数据链路层中MAC地址负责局域网 ...
- 网络--OSI七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- Java网络编程:OSI七层模型和TCP/IP模型介绍
OSI(Open System Interconnection),开放式系统互联参考模型 .是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了7层.每一层都有相关.相对应的物理设备,比如常规的路 ...
随机推荐
- Spring core rce 0day(CVE-2022-22965)视频教程附工具
Spring 远程代码执行漏洞,先上图,视频晚点上传
- 网络编程之 requests 模块
1. get 请求 1 import requests 2 url = 'http://api.xxxx.cn/api/user/stu_info?stu_name=xiaohei' 3 data = ...
- Ajax 后台传值接收方法
$.ajax({ method: 'post', //数据类型 url: 'service.ashx?method=PostFile', //传输页面和页面方法 dataType: "jso ...
- 用python遍历一个图片文件夹,并输出所有路径到一个 txt 文件
1 #coding:utf8 2 import os 3 import sys 4 def listfiles(rootDir, txtfile, label=0): 5 ftxtfile = ope ...
- jmeter 压测的执行步骤步骤
一.设置测试参数 如图 Number of Threads:总共起多少个线程. Ramp-UP Period(in seconds):多少秒启动完所有线程. loop Count:循环次数 Sched ...
- sqlsever中使用的 select top n在mysql 语句中如何更改
string sqlSelect = "select top(3) ROW_NUMBER() over(order by UserTime) as Num,* from " + & ...
- 修改mysql root密码,在workbench中导入.sql文件
修改mysql root密码: 1.如果没有配置环境变量,在 \Program Files\MySQL\MySQL Server 8.0\bin 文件下 Shit+右键打开 Powershell 窗口 ...
- 前端上传获取excel文件后,如何读取excel文件的内容
1.安装xlsx npm install xlsx --save-dev 2.引入xlsx并封装读取excel方法 import * as XLSX from "xlsx"; /* ...
- 项目:表格打印(字符图网格进阶、rjust、列表中最长的字符串长度)
项目要求:编写一个名为 printTable()的函数,它接受字符串的列表的列表,将它显示在组织良好的表格中,每列右对齐. tableData = [['apples', 'oranges', 'ch ...
- idea :不支持发行版本11问题
1.因为我是导入的其他人的项目来进行修改的,所以遇到了这个问题 2. 3. 4.