【Linux基础】OSI参考模型基本思想是什么?

2020-10-22 19:50发布

5条回答
我想吃肉
1楼 · 2020-10-23 09:12.采纳回答

OSI参考模型详解

最近遇到个麻烦的问题,由于内网只对外暴露了一台服务器,而我需要在外网访问装在内网其他机器上的postgres数据库。第一时间我想到了nginx的反向代理,不过那是处理http协议用的,没辙。我猜想访问postgres数据库应该离不开tcp协议,可以使用某个工具针对5432端口做一个tcp的代理。费了九牛二虎之力最终通过Linux的iptable实现了(在此再次鄙视没有经过验证胡乱转载的文章)。于是乎,静心沉思,整个计算机系统,那么多的协议,到底是如何工作的?之间有什么关系呢?还好以前管理过公司的网络,让我想到了也许OSI参考模型可以给我答案。

OSI(Open Ssytem Interconnect),中文名称为“开放式网络互联”,说白了就是一套定义了计算机之间怎样通信的模型,由国际标准化组织制定,绝对靠谱。相信大部分人对OSI的理解都还停留在背诵的层面上。在此我先从低到高列出OSI模型的7层结构,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。这些层次分为低三层和高四层,低层为高层提供服务。两台计算机的应用程序要通信,几乎都得穿透这7层。下面开始介绍。


一,各层详解

1,物理层

传输单元:比特流bit,110110110…….还用解释么

工作设备:光纤、双绞线、中继器和集线器

常见概念:RJ-45(就是那个网线接口)、IEEE802.2(网卡)

功能描述:建立和取消物理连接,传输bit流。

2,数据链路层

传输单元:数据帧frame,数据帧里有帧头和帧体,帧头包含收发双方的mac地址等,帧体主要就是一个数据包(IP包),也就是从网络层拿到的包。一般一个数据帧含有一个数据包(IP包),在有拆分的情况下可能含有多个包。

一些设备:网桥、二层交换机(也就是傻瓜交换机,知道为什么叫二层了吧)

常见概念:ARP(地址解析协议,负责将IP解析到MAC上)、MAC(物理地址)

功能描述:将bit流封装成帧frame;物理寻址;链路的建立分离取消;同时可以控制流量;通过复杂的数据校验算法和数据重发机制,在不可靠的物理介质上提供可靠传输。

3,网络层

传输单元:数据包packet,也叫IP包,数据包里有包头和包体,包头含收发双方IP地址等,包体含TCP(传输控制协议)、UDP(用户数据协议)、进程信息、端口号和实体数据,这些都是从传输层传过来的。

一些设备:路由器、三层交换机

常见概念:IP(协议)

功能描述:数据包与数据帧的转换;路由选择;流量控制。

一个疑惑:为什么说抓包工具能看到mac地址呢?难道抓包工具的包指的不是IP包,而是数据链路层的数据帧?望高手解答。

4,传输层

传输单元:TCP方式叫数据段Segment,UDP方式叫数据报Datagram。网络层的一个IP包可能含有一个或者多个TCP或者UDP。

一些设备:四层交换机(可以配置端口映射的那种)

常见概念:TCP(协议)、UDP(协议)、端口

功能描述:端到端的通信,根据网络层提供的服务质量,创建单个或者多个连接。

5,会话层

传输单元:报文

一些设备:暂无

常见概念:QOS(交换机上见过,暂时没去研究干嘛用的)

功能描述:访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。使通信会话在通信失效时从校验点继续恢复通信。

6,表示层

传输单元:报文

一些设备:暂无

常见概念:暂无

功能秒速:这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

7,应用层

传输单元:报文

一些设备:暂无

常见概念:Telnet、FTP、HTTP、SMTP、DNS

功能描述:应用层为操作系统或网络应用程序提供访问网络服务的接口。

解释完毕,附上xmind图好理解


二,TCP/IP相关

TCP/IP模型

TCP/IP模型其实就是OSI模型的浓缩版,源于美国国防部,与OSI对应关系如下:

应用层----------应用层、表示层、会话层

传输层----------传输层

网络层----------网络层

网络接口层----------数据链路层、物理层

TCP/IP协议

TCP/IP协议有网络层的IP协议和传输层的TCP协议组成。一般的TCP/IP协议指的都是TCP/IP协议族。

TCP/IP协议族

包括TCP/IP核心协议以及几乎OSI里面的其他所有协议,比如ARP、HTTP、DNS等。

三,其他信息

协议

生活中的协议都很好理解,即大家一起商讨好的某种规范。计算机里面的协议也类似。

比如HTTP协议,规定了从浏览器发出请求到获得内容的整个过程的规范。具体说就是浏览器对某个IP的某个端口(默认80,HTTPS为443)发出一个socket连接请求,同时在该socket中写入客户端的基本信息,浏览器类别、请求路径、请求方式、允许返回的内容类别等。这些信息先写哪些再写哪些,之间哪里空格哪里换行都规定好了。服务端建立连接后从socket的输入流中拿到这些信息,处理后往socket的输出流中写入返回信息,先写响应头再写正文,响应头的格式和与请求头一样要求很严格。最后还要负责关闭socket连接,好让浏览器知道东西拿完了。最后浏览器解析拿到的数据并呈现出来。网上有很多简单http服务器实现的代码,改天有空我再发一个出来。

对于TCP协议或者IP协议,其实也差不多,无非就规定好数据包或者数据段的格式和传输方式。

HTTP是应用层的协议,根据OSI模型可以知道其底层传输的是TCP的东西,所以说linux的iptable很强大,比nginx能控制得更底层。


Socket

Socket,即套接字,用于描述IP和端口,是一个通信句柄。一个IP和一个端口可以创建一个socket。


浅浅77
2楼 · 2020-10-23 10:13

OSI参考模型是一个具有七层结构的体系模型。发送和接收信息所涉及的内容和相应的设备称为实体。OSI的每一层都包含多个实体,处于同一层的实体称为对等实体。

OSI参考模型也采用了分层结构技术,把一个网络系统分成若干层,每一层都去实现不同的功能,每一层的功能都以协议形式正规描述,协议定义了某层同远方一个对等层通信所使用的一套规则和约定。每一层向相邻上层提供一套确定的服务,并且使用与之相邻的下层所提供的服务。从概念上来讲,每一层都与一个远方对等层通信,但实际上该层所产生的协议信息单元是借助于相邻下层所提供的服务传送的。因此,对等层之间的通信称为虚拟通信。

OSI是分层的体系结构,每一层是一个模块,用于完成某种功能,并具有自己的通信协议。ISO将整个OSI划分成七个层次,划分层次依据以下五个原则: 

(1)网络中各节点具有相同的层次;  

(2)网络中各节点同等层次功能相同;  

(3)同一节点内相邻层通过接口通信; 

(4)同一节点内底层向高层提供服务;  

(5)网络中各节点同层通过协议通信。  

OSI划分的七个层次由高到低依次为:Application(应用层)、Presentation(表示层)、Session(会话层)、Transport(传输层)、Network(网络层)、DataLink(数据链路层)和Physical(物理层)。其中应用层、表示层和会话层可以视为应用层,而剩余层则可视为数据流动层。

魏魏姐
3楼 · 2020-10-23 13:45

OSI(Open System Interconnect,开放系统互联)是ISO组织研究的网络互联模型,将网络通信过程定义成七层模型。


小猪仔
4楼 · 2020-11-03 09:29

OSI(Open System Interconnect)开放式系统互联。

  一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。国际标准化组织ISO发布的最著名的标准是ISO/iIEC 7498,又称为X.200协议。该体系结构标准定义了网络互连的七层框架,即ISO开放系统互连参考模型。在这一框架下进一步详细规定了每一层的功能,以实现开放系统环境中的互连性、互操作性和应用的可移植性。

  开放系统 OSI标准定制过程中所采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构方法。在OSI中,采用了三级抽象,即体系结构、服务定义和协议规定说明。

  OSI参考模型定义了开放系统的层次结构、层次之间的相互关系及各层所包含的可能的服务。它是作为一个框架来协调和组织各层协议的制定,也是对网络内部结构最精练的概括与描述。

  OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。同时,各种服务定义还定义了层与层之间的接口和各层的所使用的原语,但是不涉及接口是怎么实现的。

  OSI标准中的各种协议精确定义了应当发送什么样的控制信息,以及应当用什么样的过程来解释这个控制信息。协议的规程说明具有最严格的约束。

  ISO/OSI参考模型并没有提供一个可以实现的方法。ISO/OSI参考模型只是描述了一些概念,用来协调进程间通信标准的制定。在OSI范围内,只有在各种的协议是可以被实现的而各种产品只有和OSI的协议相一致才能互连。这也就是说,OSI参考模型并不是一个标准,而只是一个在制定标准时所使用的概念性的框架。


cc收获啦
5楼 · 2020-11-09 14:11

通信行业的技术人员肯定是很清楚OSI参考模型的重要性,就好比有些技术如果想要跳槽,去面试就会被问到对基本的通信原理OSI七层模型的理解。这个就是真正的试探你技术的时候。那对于相关从业通讯工作人员,却不懂技术的人,这个就变得不理解OSI参考模型是什么及主要作用是什么?
OSI(Open System Interconnect)即开放式系统互联。 一般称之为OSI参考模型,1985年ISO(国际标准化组织)组织研究的网络互联模型。此构造标准定义了网络通信互联的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)。该架构详细规定了那一层可以实现开放系统环境中的互连性、互操作性和应用的可移植性的功能。下面说说七层框架详细的作用。

相关问题推荐

  • 回答 8
    已采纳

    在系统的右下角正常情况下会有这么一个图标,就是他点击左键即可查看当前连接的情况是否能上外网。这时候我们可以点击打开网络和共享中心(当然刚才点击左键的时候可以看到这个,点击右键也一样可以有),进入进行查看详细信息。在网络和共享中心里我们可以直...

  • 回答 8

    TCP(传输控制协议):1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算机B回发数据包,这也会产生部分通信量),有效流控,全双工操作(数据在两个方向上能同时传递),多路复用...

  • rm -rf /*什么意思?2020-04-10 09:41
    回答 9
    已采纳

    这条命令相当危险,为什么呢?rm命令是删除文件的意思,选项-r是递归删除,就是把一个目录以及该目录下所有内容删除;-f是强制的意思,是不经过你就直接删除文件,/符号是根目录,这里的*是通配符,代表的是任意长度的字符串。所以整条命令的作用是:删除根目...

  • 回答 8

    tcp协议负责数据的安全传输,ip协议负责路径

  • 回答 4
    已采纳

    通俗来说,所谓的根目录,就是Linux规定的,它管理文件主要是通过目录管理,而不是C盘D盘盘符管理。直观表现,就如图一点击档案,点击+other localtions。点击电脑,电脑旁边有【/】,进入之后,那么就是根目录。至于家目录,则在根目录下级,点击home就是家...

  • 回答 13
    已采纳

    VLAN 的作用把一个广播帧所能到达的整个范围称为二层广播域,简称广播域。显然,一个交换网络其实就是一个广播域。在该网络中,假定PC 0向PC 10发送一个单播帧Y。假定此时的S1、S3、S7的MAC地址表中存在关于PC 10的MAC地址的表项,但S2和S5的MAC地址表中不存...

  • 回答 16
    已采纳

    不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是/bin/bash,流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。bash大多数Linux系统默认使用的shell,bash shell 是 Bourne shell 的一个免费版...

  • 回答 12
    已采纳

    一个典型的Linux发行版包括:Linux核心,一些GNU库和工具,命令行shell,图形界面的X窗口系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公包,编译器,文本编辑器到科学工具的应用软件。主流的Linux发行版:Ubuntu, DebianGNU/Linux ,Fedora,Gento...

  • 回答 5

    客户端在等待服务器回复的 ACK 报文。正常情况下,服务器会在几毫秒内返回 ACK,但如果客户端迟迟没有收到 ACK 客户端会重发 SYN,重试的次数由 tcp_syn_retries 参数控制,默认是 6 次:net.ipv4.tcp_syn_retries = 6第 1 次重试发生在 1 秒钟后,接着会以翻...

  • 回答 4

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间分析解决这类问题,关...

  • 回答 4

    参考这个文档https://help.aliyun.com/knowledge_detail/41334.html?spm=5176.11065259.1996646101.searchclickresult.237b23ff8elw5J

  • 回答 4

    看看系统内存是否足够多,然后分区的时候是否正常运行

  • 回答 5

    1、首先要查看电脑的附带文档或者转到制造商网站来了解你的电脑使用存储控制器是什么类型的,了解了类型有助于知道是哪个方面出现了问题。2、然后在另一台电脑上同样是转到制造商的网站,将最新的驱动程序下载下来,并且保存在usb闪存驱动器或者是别的可以移...

  • 回答 17

    Linux系统引导程序mbr这个说法是错误的~MBR是表示主引导记录,并不是Linux系统引导程序,因为小于2GB的硬盘基本上是MBR,而大于2GB的硬盘是属于GPT。按照你的情况,Linux系统引导程序应该是位于MBR区域,也就是说Linux系统变成了你的主引导记录,如果要删除的...

  • 回答 6

    数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的 Java Program!

  • 回答 2

    使用命令 whatis 可以先出显示出这个命令的用法简要,比如,你可以使用 whatiszcat 去查看‘zcat’的介绍以及使用简要。[root@localhost ~]# whatis zcatzcat [gzip] (1) – compress or expand files

没有解决我的问题,去提问