OSI的来源
OSI(Open System Interconnect),即开放式系统互联,一般称之为OSI参考模型,是ISO国际组织和国际电报电话咨询委员会(International Telegraph and Telephone Consultative Committee)在1985年联合定制研究的网络互连模型。先有模型,后有协议,先有标准(理论)后有的实践,它推动了网络应用的的普及和相关的规范。
OSI引入了服务、接口、协议、分层的概念,先看总结一张图。图片来自科来·网络通讯协议图,最新版的更详细了。
OSI七层模型的划分(从低向高):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。每一层都有各自的协议和功能实现,并且可以与相邻层的交互通信。各层提供的服务和解释如下:
OSI七层模型 | 各层提供的服务 | 主要功能 | 涉及协议 |
---|---|---|---|
应用层 | 为应用程序提供服务 | 运输访问、电邮等 | HTTP、FTP、SMTP等 |
表示层 | 数据格式转化、数据加密 | 同服务 | Telnet、Rlogin、SNMP、Gopher |
会话层 | 建立、管理和维护会话 | 同服务 | SSL、TLS、RPC |
传输层 | 建立、管理和维护端到端的连接 | 同服务 | TCP、UDP |
网络层 | IP选址及路由选择 | 寻址和路由选择 | IP、ICMP等 |
数据链路层 | 提供介质访问和链路管理 | 帧编码和误差纠正控制 | PPTP、ARP、RARP等 |
物理层 | 提供各种传输介质 | 提供传送数据通路和数据 | IEEE802.1A,IEEE802.2、Ethernet |
常用协议(服务)的默认端口号
- FTP: 21
- TELNET: 23
- SMTP: 25
- DNS: 53
- TFTP: 69
- HTTP: 80
各层详细功能
应用层
应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用,它定义的是应用进程(即主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。常用的应用层协议有:域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的 SMTP协议等等。应用层交互的数据单元称为报文,工作在应用层的协议,才有源端口与目的端口之分。
DNS域名系统
域名系统(Domain Name System缩写 DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。例如:一个公司的 Web 网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如上面提到的微软公司的域名,类似的还有:IBM 公司的域名是 www.ibm.com ,Oracle公司的域名是 www.oracle.com ,Cisco公司的域名是www.cisco.com 等。
HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法,它的特点是无连接(限制每次连接只处理一个请求)、媒体独立、无状态(对于事务处理没有记忆能力)。
超文本:用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
SMTP是一种提供可靠且有效的电子邮件传输的协议,属于TCP/IP协议族。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。
表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。它就如同应程序和网络之间的翻译官,主要解决用户信息的语法表示问题,数据的压缩、解压、加密、解密都在该层完成。加密分为链路加密和端到端的加密,对于表示层,参与的属于端到端的加密,指信息由发送端自动加密,并进入TCP/IP数据包封装,然后作为不可阅读和不可识别的数据进入互联网,最后到达目的地后再进行解密成为可读数据。
会话层
会话层就是负责建立、管理维护和终止表示层实体之间的通信会话,并对数据交换进行管理。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。会话层的协议主要有SSL安全协议及其继任者TLS、远程过程调用协议RPC。
SSL安全套接字层协议:
安全套接层 (SSL) 是一种协议,支持服务通过网络进行通信而不损害安全性。它在客户端和服务器之间创建一个安全连接。然后通过该连接安全地发送任意数据量。要使服务器和客户机使用 SSL 进行安全的通信,服务器必须有两样东西:密钥对(Key pair)和证书(Certificate) 。例如如今的大部分网站都支持HTTPS,就是使用了该协议,网站安装了证书后即可开启。
TLS传输层安全协议:
用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。TLS的最大优势就在于:TLS是独立于应用协议,相较于SSL更加安全。
传输层
传输层位于OSI参考模型正中间,具有承上启下的核心作用,它是OSI中最重要的,最关键的一层,是唯一负责总体的数据传输和数据控制的一层,它提供端到端的交换数据的机制,传输层对会话层和以上的高三层提供可靠的传输服务,对网络层提供可靠的目的地站点信息。在传输层上所传送的数据单位是报文段,其核心部分的协议就是TCP和UDP协议。
TCP传输控制协议:
TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一 个已收到消息的通知。这个消息叫做确认应答(ACK(Positive Acknowled-gement)意指已经接收。)TCP是全双工通信,优势是可靠性好,劣势是速度慢,占用系统资源高,易被攻击,不确保数据能按序到达。
重发的情况就两种:一种是数据收到了,应答没有收到,第二种是数据没有收到。
TCP三次握手,见TCP三次握手
应用 当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP3(收)、SMTP(发)等邮件传输的协议。常见使用TCP协议的应用:
- 浏览器:HTTP(S)
- FlashFXP:FTP
- Outlook(邮件系统):POP3(接收),SMTP(发送)
- QQ文件传输
UDP用户数据报协议:
UDP是一种简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,UDP数据报加上IP首部组装成一份待发送的IP数据报。它的主要作用:将网络数据压缩成数据包的形式,优势是:速度快,较安全,劣势是:可靠性差。因为UDP是面向报文的、无连接的、不保证可靠交付的、没有拥塞控制的协议。
UDP有两个字段:数据字段和首部字段。
首部字段只有8个字节,由四个字段组成,每个字段的长度都是两个字节。各字段意义如下:
(1)源端口:源端口号,在需要对方回信时选用,不需要时可用全0 (2)目的端口:目的端口号,这在终点交付报文时必须要用到 (3)长度: UDP用户数据报的长度,其最小值为8(此时仅有首部) (4)检验和:检测UDP用户数据报在传输中是否有错,有错就丢弃
应用
对当前网络通讯质量要求不高的时候,要求网络通讯速度尽量的快,这时就使用UDP用户数据报协议 日常生活中常见使用UDP协议: 1.QQ语音/视频 2.平台直播 3.视频播放
网络层
通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据报(该层数据单位),然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。主要协议有ICMP(Internet Control Message Protocol)网络控制报文协议。
ICMP协议
它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息,包括报告错误、交换受限控制和状态信息等。其目的就是让我们能够检测网路的连线状况,也能确保连线的准确性。
网络层解决的主要问题如下:
- 寻址
数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
- 交换
规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
- 路由算法
当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
- 连接服务
与数据链路层流量控制不同的是,前者控制的是网络相邻节点间(端到端)的流量,后者控制的是从源节点到目的节点(点到点)间的流量。其目的在于防止阻塞,并进行差错检测。
数据链路层
数据链路层负责建立和管理节点间的链路,通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
数据链路层的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
介质访问控制MAC
MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;
逻辑链路控制(LLC)
LLC主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。
ARQ协议
即自动重传请求(Automatic Repeat-reQuest),是OSI模型中数据链路层和传输层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。简单地说,就是发送方在发送完数据之后,没有收到确认帧,它通常会重发请求。
ARP和RARP协议
ARP:地址解析协议,将 IP 地址转换为物理地址;
RARP:逆地址解析协议,将物理地址转换为 IP 地址;
物理层
在物理层上所传送的数据单位是比特。 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。 使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。
物理层的接口的特性
- 机械特性:指明接口所用的接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
- 电气特性:指明在接口电缆的各条线上出现的电压的范围。
- 功能特性:指明某条线上出现的某一电平的电压表示何意。
- 规程特性:指明对于不同功能的各种可能事件的出现顺序。
参考来源
- OSI与TCP/IP各层的结构与功能都有哪些协议
- TCP UDP 的区别和具体应用场景 –CSDN·hhthwx
- OSI七层模型详解 –CSDN·小鹏_加油