上篇我们聊了网络设备、类型与拓扑,本篇将深入网络的核心——TCP/IP参考模型,重点拆解传输层TCP与UDP的工作机制,帮助读者理解数据如何在网络中可靠或高效地传输。
一、TCP/IP网络参考模型概述
TCP/IP模型是互联网事实上的标准架构,采用四层结构,相比OSI七层模型更加简洁实用。各层各司其职,共同完成端到端的数据通信。
二、应用层:用户与网络的接口
应用层直接为应用程序提供网络访问接口,用户通过这些端口访问各类网络服务。以下是三种最常见的应用层协议:
1. HTTP / HTTPS
- 功能:提供网页访问功能
- 区别:HTTPS在HTTP基础上增加了SSL/TLS加密,保障数据传输安全
- 端口:80(HTTP)、443(HTTPS)
2. Telnet
- 功能:提供远程登录功能,常用于网络设备的命令行管理
- 特点:明文传输,安全性较低,逐渐被SSH替代
- 端口:23
3. FTP / TFTP
- 功能:提供文件传输功能(如图片、文本等)
- 对比:
- FTP:功能完善,支持认证、目录操作,基于TCP
- TFTP:轻量级,无认证机制,基于UDP,常用于网络设备配置文件传输
三、传输层:可靠与效率的权衡
传输层是TCP/IP模型中最关键的一层,它提供了端到端的通信能力。该层包含两个核心协议:TCP和UDP,分别代表了两种不同的传输哲学。
四、TCP:面向连接的可靠传输
TCP(Transmission Control Protocol,传输控制协议)是面向连接的传输层协议,能够提供稳定、可靠的数据传输。TCP通过以下四大机制确保可靠性:
1. 三次握手(建立连接)
TCP在传输任何数据前,都必须通过三次握手建立会话。这个过程确保通信双方的发送和接收能力都正常。
- 第一次:客户端发送
SYN报文 - 第二次:服务端回复
SYN + ACK报文 - 第三次:客户端发送
ACK报文,连接建立
💡为什么是三次而不是两次?三次握手能够防止已失效的连接请求报文突然到达服务端造成错误,是同步序列号和确认双方收发能力的最小代价。
2. 确认与重传机制
- 接收方收到TCP数据包后,会采用
ack seq进行确认(通常为序列号+1的确认方式) - 如果发送方在规定时间内未收到确认(ACK),则会自动重传该数据包
- 该机制确保了数据在传输过程中不会丢失
3. 滑动窗口(流量控制)
- 滑动窗口机制用于动态控制TCP的传输速率
- 接收方通过窗口大小(Window Size)告知发送方当前可接收的数据量
- 发送方根据窗口大小调整发送速率,既能提升传输效率,又能减少不必要的重传
!
4. 四次挥手(释放连接)
TCP完成数据传输后,必须通过四次挥手释放会话,确保双方数据都已完整传输。
- 第一次:客户端发送
FIN报文,表示不再发送数据 - 第二次:服务端回复
ACK报文,确认收到断开请求 - 第三次:服务端发送
FIN报文,表示也不再发送数据 - 第四次:客户端回复
ACK报文,进入TIME_WAIT状态后关闭
TCP适用场景
TCP适合对可靠性要求高的业务,例如:
- FTP(文件传输协议):确保文件完整不损坏
- Telnet/SSH(远程登录):确保命令准确送达
- HTTPS(超文本传输安全协议):确保网页数据完整
五、UDP:高效的无连接传输
UDP(User Datagram Protocol,用户数据报协议)是面向无连接的传输层协议,提供高效传输,但不保证可靠性。
UDP的核心特点
- 无连接:发送数据前不需要建立连接,减少延迟
- 无确认机制:不保证数据一定到达,也不保证顺序
- 开销小:首部仅8字节,远小于TCP的20字节
- 高效:没有重传等待,传输效率高
UDP适用场景
UDP适合对可靠性要求较低,但对延迟要求较高的业务,例如:
- 语音通话(VoIP):偶尔丢包不影响整体通话质量,但延迟高会严重影响体验
- 视频直播/流媒体:允许少量丢帧,但要求实时性
- 在线游戏:需要低延迟传输位置、操作等数据
六、TCP vs UDP:全面对比
| 特性维度 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接(三次握手) | 无连接 |
| 可靠性 | ✅ 可靠传输,有确认和重传机制 | ❌ 不可靠,无确认机制 |
| 传输效率 | 相对较低(握手、确认、重传开销) | 高效(无额外控制机制) |
| 数据顺序 | 保证数据按序到达 | 不保证顺序 |
| 流量控制 | ✅ 滑动窗口机制 | ❌ 无 |
| 首部开销 | 20字节 | 8字节 |
| 典型应用 | HTTP/HTTPS、FTP、SSH、邮件 | 视频直播、VoIP、DNS、在线游戏 |
七、网络层与数据链路层简介
网络层(Network Layer)
- 核心功能:提供IP地址服务
- 主要职责:寻址转发、定位设备、路由选择
- 关键协议:IP、ICMP、ARP
数据链路层(Data Link Layer)
- 核心功能:根据物理端口选择数据链路层的封装方式
- 常见标准:
- 以太网:802.3标准、Ethernet II
- 光纤链路:PPP、HDLC、ATM
八、总结
TCP/IP模型是理解现代互联网的钥匙:
- 应用层直接面向用户,提供HTTP、Telnet、FTP等服务接口
- 传输层是核心战场,TCP用可靠性换取信任,UDP用效率换取速度
- 网络层负责寻址和路由,让数据找到正确的目的地
- 数据链路层处理物理介质的封装,完成最终的数据帧传输
掌握TCP三次握手、四次挥手及滑动窗口机制,是网络工程师面试和排障的必备技能。理解TCP与UDP的适用场景,则能帮助我们在实际项目中做出正确的协议选型。
📚推荐阅读:
- 《计算机网络:自顶向下方法》
- Wireshark抓包实战:通过真实报文观察TCP三次握手全过程
本文基于通信网络基础资料整理,如有疑问欢迎留言交流。