OSI 网络七层模型
开放式系统互联模型(Open Systems Interconnection model,简称OSI model)是由国际标准化组织(International Organization for Standardization,简称ISO)完成和维护的。该模型共有七层,目的是提高不同通信系统之间的可操作性,使得其可以互相通信。图1展示了最开始的OSI模型的构成:
- 物理层(Physical Layer):负责设备和物理传输媒介(例如光纤,网线)之间原始数据(raw data)或者说是比特流(bit stream,单位:比特/bit)的传输和接收。将原始数据(1,0)通过数模转换成电流强弱传输到目的地再进行模数转换为1/0。
- 数据链路层(Data Link Layer):对直接相连的结点提供点对点数据传输(node-to-node data transfer)。这一层可以检测甚至更正在物理层中出现的错误。定义了不同的协议来建立和终止两台物理相连的设备之间的联系以及流量控制(flow control),例如PPP(Point-to-Point Protocol)。也可以理解为规定了0和1的分包形式,确定了网络数据包的形式。
- 网络层(Network Layer):在不同网络(Network)的结点之间传输包(packets)。每一个网络中有很多可以相互连接的结点,只要提供目标节点的地址(address:IPv4/IPv6)和要发送的信息给网络,它就能找到相应的接收结点。如果数据太大可以分割成小块再在目标结点集合。这一层相对应的物理设备有路由器。相对应的协议有IP,ICMP,ARP,RARP。
- 传输层(Transport Layer):为每个应用程序定义一个端口号以便提高数据传输的稳定性。如果发生错误,可以追踪并重新发送(re-transmit)。传输协议有五个等级: TP0-TP4,TP0表示没有错误矫正(error recovery),适用于无错连接(error-free connections);TP4和TCP相近,为不可靠的网络设计(Internet)。UDP vs TCP
- 会话层(Session Layer):控制(建立,管理以及终止)电脑间(本地和远端的应用之间)的对话/连接(dialogues/ connections)。
- 表示层(Presentation Layer):建立应用级别实体之间的通信环境(数据编码和转化),使得拥有不同语法和语义的应用之间能够通信和识别。ex: Linux app vs Windows app
- 应用层(Application Layer):和用户最近的一层,和软件应用沟通(application-specific),为其提供应用服务,包括文件传输,e-mail。 Ex: Telnet, DNS, SMTP, FTP(File Transfer Protocol), HTTP, NFS(Network File System), WWW browsers。
TCP/IP四层模型
基础介绍
- 网络接口层(Network Access Layer):地址解析协议(Address Resolution Protocol)确定网络数据包的格式: TCP/IP 数据结构和实际物理硬件的接口。
- 网络层(Internet Layer):确定计算机位置
- 传输层(Transport Layer):TCP-三次握手,四次挥手, UDP-不管
- 应用层(Application Layer):OSI 应用层&表示层,HTTP, FTP, POP, IMAP
UDP VS TCP
传输控制协议(Transmission Control Protocol,简称TCP): 流模式,长消息,面向连接,传输效率低,可靠性强(不会丢包,保证数据正确性),保证数据顺序。
用户数据报协议(User Datagram Protocol,简称UDP):数据报模式,短消息,大量client(网络负担重,响应速度要求高),可靠性低(可能丢包),不保证数据顺序。
参考文档:
深入浅出-网络七层模型&&网络数据包