网络分层
对网络进行分层,便于研究计算机网络技术。业界标准的计算机网络分层设计包含以下三种。当我们讨论网络协议的时候,参考的是四层模型。
OSI七层模型 | TCP/IP五层模型 | TCP/IP四层模型 |
应用层 | 应用层 | 应用层 |
表示层 | ||
会话层 | ||
传输层 | 传输层 | 传输层 |
网络层 | 网络层 | 网络层 |
数据链路层 | 数据链路层 | 网络接口层 |
物理层 | 物理层 |
链路层、数据链路层和网络接口层是一个概念。
链路层
链路层包括设备驱动和网络接口卡,他们共同处理物理接口的硬件细节。
设备驱动是软件,属于操作系统的一部分。
网络接口卡是硬件,又称网卡、网络适配器,与网络传输介质( 双绞线 、同轴电缆、光纤等)相连。
链路层 = 网卡 + 网卡驱动
链路层协议有:ARP、RARP、以太网协议
网络层
网络层处理不同主机在网络中路由和转发报文。
网络层协议有:IP、ICMP、IGMP
传输层
传输层为不同主机的应用程序提供数据流的交互。
传输层协议有:TCP、UDP
应用层
应用层处理特定应用程序的细节。
应用层协议有:Telnet、FTP、SMTP、SNMP
当进程通过网络通信时,应用层协议处理应用程序的细节,运行在操作系统的用户空间;传输层、网络层和数据链路层协议处理通信的细节,运行在操作系统的内核空间。
报文封装
当一个应用程序要通过TCP/IP协议栈发送数据的时候,数据会从上往下进行一层层的封装。每一层都会添加该层的相关信息到发送数据的头部或尾部。
接收方会逐层剥离每层的信息,直到在应用层获取对端实际发送的数据。