很牛,值得反复拜读:TCP / IP 五层模型详解
为什么存在分层设计?
简单化。当一个系统足够复杂时,通过分为不同层次或不同模块, 每层或模块都是内聚的,对外屏蔽复杂性。
● 可以降低层与层之间的依赖
● 利于各层逻辑的复用
● 开发人员可以聚焦某一层
● 可以很容易的用新的实现来替换原有层次的实现
OSI七层模型 | TCP/IP五层模型 |
---|---|
应用层(Application Layer) | 应用层(Application Layer) |
表示层(Presentation Layer) | |
会话层(Session Layer) | |
传输层(Transport Layer) | 传输层(Transport Layer) |
网络层(Network Layer) | 网络层(Internet Layer) |
数据链路层(Data Link Layer) | 数据链路层(Link Layer) |
物理层(Physical Layer) | 物理层(Physical Layer) |
网络通信功能划分为七个层次:OSI七层模型
应用层(Application Layer)
提供应用程序接口,处理特定的应用程序细节,如HTTP、FTP、SMTP等协议。
表示层(Presentation Layer)
数据格式转换、加密解密等,确保应用层数据在不同系统间的通用性。
会话层(Session Layer)
建立、管理和终止不同主机间应用程序的通信会话。
传输层(Transport Layer)
负责端到端的数据传输,确保数据正确到达,如TCP、UDP协议。
网络层(Network Layer)
负责数据包从源到目的地的路径选择,如IP协议。
数据链路层(Data Link Layer)
提供相邻节点间的可靠数据传输,错误检测与修正,帧同步,如Ethernet、PPP协议。
物理层(Physical Layer)
规定了电气特性、机械特性和功能特性,负责比特流的传输,包括电缆规格、信号频率等。
TCP/IP协议族通常被描述为四层或五层模型:TCP/IP五层模型
应用层(Application Layer)
同OSI模型应用层,包含多种应用协议。
具体地指定了多种协议,如HTTP、FTP、DNS、SMTP等
传输层(Transport Layer)
负责提供可靠或不可靠的数据传输服务,如TCP、UDP。
TCP的“三次握手”建立连接,通过“四次挥手”关闭连接在这一层。
网络接收到数据时,能够根据不同的端口号将数据正确地交付给相应的应用进程也在这一层。
网络层(Internet Layer)
负责数据包路由和转发,IP协议位于此层。
数据链路层(Link Layer)
结合了OSI模型的数据链路层和物理层,实现点对点的通信,如Ethernet、Wi-Fi等协议栈的这一部分。
物理层(Physical Layer)
直接与硬件交互,规定了网络设备如何发送和接收数据比特流。
常见Q&A
数据在软件层之间传输的过程
-
数据生成与封装(软件层,应用层/传输层)
应用层:应用程序生成原始数据(如 HTTP 请求、文件传输等)。
传输层:添加源端口号和目标端口号(如 TCP 或 UDP)。
网络层:添加源 IP 地址和目标 IP 地址(如 IPv4 或 IPv6)。
数据链路层:封装为以太网帧,附加源 MAC 地址和目标 MAC 地址(通常是默认网关的 MAC 地址)。这意味着数据会先发送到默认网关(通常是路由器)。
结果:数据被封装为以太网帧,准备发送到本地网络。 -
数据帧发送到本地网络(网卡,数据链路层)
2.1. 网卡(LAN)接收来自软件层的以太网帧。
2.2. 检查目标 MAC 地址:
如果目标设备在同一子网内,直接发送到目标设备。
如果目标设备不在同一子网内,将数据帧发送到默认网关(通常是路由器)。
结果:数据帧通过物理介质(如网线或无线信号)发送到局域网中的下一跳设备。 -
数据帧转发到下一跳设备(交换机,数据链路层)
3.1. 交换机(LAN)数据帧,并检查目标 MAC 地址。
3.2. 根据 MAC 地址表决定转发路径:
如果目标设备在局域网内,直接转发到目标设备。
如果目标设备是默认网关,转发数据帧到默认网关所在的端口。
结果:数据帧被转发到正确的设备或下一跳设备(默认网关)。 -
数据包跨网络转发(默认网关/路由器,网络层)
4.1. 默认网关(路由器)接收到以太网帧后,剥离帧头,提取 IP 数据包。
4.2. 检查目标 IP 地址:
如果目标 IP 属于局域网内的设备,直接转发到目标设备。
如果目标 IP 属于外部网络(如互联网),根据路由表决定下一跳设备(通常是猫或 ISP 的设备)。
重新封装为新的以太网帧,目标 MAC 地址设置为下一跳设备的 MAC 地址。
结果:数据包从局域网(LAN)转发到广域网(WAN)。 -
数据信号转换(猫,物理层)
猫(调制解调器,WAN)接收到以太网帧后,将数字信号转换为适合广域网传输的模拟信号(如 DSL、光纤或电缆信号)。
将信号发送到 ISP 的接入点。
结果:数据信号进入广域网(WAN),开始在互联网中传输。 -
数据通过互联网传输(公网 IP,网络层)
组件:公网 IP(WAN)
过程:
数据包通过互联网传输,目标 IP 地址用于路由选择。
数据可能经过多个中间路由器,直到到达目标网络的入口点(目标网络的猫或路由器)。
结果:数据包到达目标网络的边界设备(如猫或路由器)。 -
数据信号还原(目标网络的猫,物理层)
目标网络的猫(WAN)接收到模拟信号后,将其转换回数字信号。
数字信号被重新封装为以太网帧。
结果:数据帧进入目标网络的局域网(LAN)。 -
数据帧转发到目标设备(路由器/交换机/网卡,网络层/数据链路层)
组件:目标网络的路由器、交换机、网卡(LAN)
过程:
路由器将数据包转发到正确子网。
交换机将数据帧转发到目标设备。
网卡接收数据帧并传递给目标设备的操作系统。
结果:数据帧到达目标设备。 -
数据解封装与交付(软件层,传输层/应用层)
组件:目标设备的软件层
过程:
目标设备的网卡将数据帧解封装,提取 IP 数据包。
IP 数据包进一步解封装,提取传输层数据(如 TCP 或 UDP 数据段)。
数据段最终交付给目标应用程序。
结果:数据成功交付给目标应用程序。