在计算机网络领域,网络模型通常指的是 OSI(Open Systems Interconnection)参考模型或 TCP/IP(Transmission Control Protocol/Internet Protocol)模型。这些模型描述了网络中数据传输的层次结构,便于理解和设计网络系统。
1.OSI七层网络模型
OSI(Open Systems Interconnection)七层网络模型是国际标准化组织(ISO)制定的一种抽象框架,用于描述计算机网络中数据传输和通信的层次化结构。该模型将网络通信分解为七个层次,每个层次负责不同的功能,从物理传输到应用服务的完整处理过程。
OSI七层模型的各层及其职责:
-
物理层(Physical Layer):
- 职责:负责传输比特流(bitstream)通过物理介质(如电缆、光纤)进行通信。它定义了连接设备的机械、电气、功能和过程特性。
- 例子:Ethernet、WiFi、光纤等。
-
数据链路层(Data Link Layer):
- 职责:确保在物理链路上传输的数据的可靠性和完整性。它负责将原始比特流转换为有意义的帧(Frame),并处理数据帧的错误检测和纠正。
- 例子:以太网(Ethernet)、MAC(Media Access Control)地址等。
-
网络层(Network Layer):
- 职责:处理网络间的数据传输路径选择和数据包转发。它负责将数据从源主机传输到目标主机,包括寻址、路由和流量控制。
- 例子:IP(Internet Protocol)、IPv4、IPv6、路由器等。
-
传输层(Transport Layer):
- 职责:提供端到端的数据传输服务,确保数据的可靠性、完整性和顺序性。它负责将数据分段并在通信的端点重新组装。
- 例子:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。
-
会话层(Session Layer):
- 职责:管理和维护通信会话,包括建立、管理和终止会话连接。它提供了在数据交换中设置、管理和终止会话的方法。
- 例子:RPC(Remote Procedure Call)、NetBIOS、Sockets等。
-
表示层(Presentation Layer):
- 职责:处理数据的格式化、编码和加密,以确保应用层能够解释接收到的数据。它负责数据的语法和语义转换。
- 例子:JPEG、ASCII、加密解密等。
-
应用层(Application Layer):
- 职责:为用户提供网络服务,实现特定的应用功能和协议。它是用户能够直接使用的网络服务接口。
- 例子:HTTP、FTP、SMTP、DNS等。
2.TCP/IP四层网络模型
由于 OSI 模型实在太复杂,提出的也只是概念理论上的分层,并没有提供具体的实现方案。事实上,我们比较常见,也比较实用的是四层模型,即 TCP/IP 网络模型,Linux 系统正是按照这套网络模型来实现网络协议栈的。
TCP/IP四层模型的各层及其职责:
-
网络接口层(Network Interface Layer):
- 职责:负责将数据包从物理介质发送到网络上的其他设备,处理物理地址(MAC地址)和数据帧的格式。
- 例子:以太网、WiFi、PPP(Point-to-Point Protocol)等。
-
网络层(Internet Layer):
- 职责:负责在网络中寻址、路由和转发数据包,确保数据包从源主机传输到目标主机。
- 例子:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)等。
-
传输层(Transport Layer):
- 职责:提供端到端的数据传输服务,确保数据的可靠性、顺序性和流量控制。
- 例子:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。
-
应用层(Application Layer):
- 职责:提供网络服务给最终用户,支持各种应用程序,如电子邮件、网页浏览、文件传输等。
- 例子:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)等。
OSI七层模型与TCP/IP四层模型的对应关系:
- 应用层(OSI模型第7层) 对应 应用层(TCP/IP模型第4层):提供用户接口,支持特定应用程序的协议和数据格式。
- 表示层(OSI模型第6层) 和 会话层(OSI模型第5层) 在TCP/IP模型中并没有明确的对应层次,这些功能通常由应用层协议自行处理。
- 传输层(OSI模型第4层) 对应 传输层(TCP/IP模型第3层):提供端到端的数据传输服务,确保数据的可靠性和流量控制。
- 网络层(OSI模型第3层) 对应 网络层(TCP/IP模型第2层):负责数据包的路由和转发,确保数据从源主机传输到目标主机。
- 数据链路层(OSI模型第2层) 和 物理层(OSI模型第1层) 在TCP/IP模型中合并为 网络接口层(TCP/IP模型第1层):处理物理介质和数据帧的传输。
3.数据通信过程
当数据从发送方传输到接收方时,会经历多个层次的封装和解封装过程。
数据封装过程(发送方)
-
应用层
- 应用层生成应用数据,如HTTP请求或电子邮件。
- 数据形态:应用数据(Application Data)
-
传输层
- 传输层将应用数据封装在TCP或UDP报文段(Segment)中,增加传输层首部(如TCP首部,包含端口号、序列号等)。
- 数据形态:TCP报文段(TCP Segment)或UDP数据报(UDP Datagram)
-
网络层
- 网络层将传输层报文段封装在IP数据包(Packet)中,增加网络层首部(如IP首部,包含源IP地址、目标IP地址等)。
- 数据形态:IP数据包(IP Packet)
-
网络接口层
- 网络接口层将IP数据包封装在帧(Frame)中,增加数据链路层首部和尾部(如以太网首部和尾部,包含源MAC地址、目标MAC地址等)。
- 数据形态:帧(Frame)
封装完成后,数据通过物理介质(如电缆、无线电波等)传输到网络。
数据解封装过程(接收方)
-
网络接口层
- 接收方的网络接口层接收帧并解封装,移除数据链路层的首部和尾部,提取出IP数据包。
- 数据形态:IP数据包(IP Packet)
-
网络层
- 网络层解封装IP数据包,移除网络层首部,提取出传输层报文段。
- 数据形态:TCP报文段(TCP Segment)或UDP数据报(UDP Datagram)
-
传输层
- 传输层解封装传输层报文段,移除传输层首部,提取出应用数据。
- 数据形态:应用数据(Application Data)
-
应用层
- 应用层处理并使用解封装后的数据,如显示网页内容或存储电子邮件。