OSI model是Open System Interconnection reference model的缩写/简称,
是由国际标准化组织ISO提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。
OSI model将计算机网络体系结构划分为七层,分别是Application Layer, Presentation Layer, Session Layer, Transport Layer, Network Layer, Data link Layer 和 Physical Layer。
这个页面主要简单介绍一下各个层次的功能。
1. 层次划分
下表来自wikipedia,但经过了一定的缩减。
layer | function | examples |
---|---|---|
Application | High-level APIs, including resource sharing, remote file access, derectory services and virtual terminals | HTTP, FTP, SMTP |
Presentation | Translation of data between a networking service and an application, including character encoding and data compression | ASCII, JPEG |
Session | Managing communication sessions | RPC |
Transport | Reliable transmission of data segments between hosts | TCP, UDP |
Network | Structing and managing a multi-node network, including addressing and routing | IPv4, IPv6 |
Data link | reliable transmission of data frames between two nodes connected by a physical layer | PPP, IEEE 802.2 |
Physical | Transmission and reception of raw bit streams over a physical medium | DSL |
Physical layer负责解决如何使用物理信号(如电信号,光信号)表达数字信号的问题,工作在这一层的设备主要有集线器;
Data link layer则通过使用CRC等技术将物理层提供的可能出错的信息进行校验检错和封装。MAC地址是这一层最具代表性的标志,交换机是这层的代表性网络设备;
Network layer的作用主要是决定如何将发送发的数据传到接收方,IP和routing是这一层最核心的技术,路由器则是最典型的三层设备;
Transport layer是两台计算机经过网络进行数据通信时,具有端到端connection概念的层次。有诸如TCP的可靠的端到端协议和UDP这中不可靠的端到端协议。一般在这一层还会做一些流量控制,拥塞控制和差错检验的工作;
Session layer的session一词就直接道出了这层的功能:会话。这层需要负责建立,管理和关闭所有涉及到的connections。
Presentation layer负责定义数据的呈现方式以及解析方式,如果把session layer比作一次中美双边会谈,那么那些个翻译官就好比是工作在presentation layer;
Application layer直接与User打交道的一层,它的任务也就是提供一些API,应用层序只需要使用这些API接口与负责网络通信的部分进行交互。
当然,由于OSI是一个比较抽象的框架,所以现实世界中还会存在一些cross-layer的东西存在,一个最简单地例子就是ARP/RARP。同时目前应用最广的TCP/IP stack也不是完全符合OSI模型的。