OSI模型


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模型的。

参考资料


OSI model