通信网络基础(下篇):TCP/IP网络参考模型与传输层协议深度解析

上篇我们聊了网络设备、类型与拓扑,本篇将深入网络的核心------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模型中最关键的一层,它提供了端到端 的通信能力。该层包含两个核心协议:TCPUDP,分别代表了两种不同的传输哲学。


四、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
  • 核心功能:根据物理端口选择数据链路层的封装方式
  • 常见标准
    • 以太网:802.3标准、Ethernet II
    • 光纤链路:PPP、HDLC、ATM

八、总结

TCP/IP模型是理解现代互联网的钥匙:

  1. 应用层直接面向用户,提供HTTP、Telnet、FTP等服务接口
  2. 传输层 是核心战场,TCP用可靠性换取信任,UDP用效率换取速度
  3. 网络层负责寻址和路由,让数据找到正确的目的地
  4. 数据链路层处理物理介质的封装,完成最终的数据帧传输

掌握TCP三次握手、四次挥手及滑动窗口机制,是网络工程师面试和排障的必备技能。理解TCP与UDP的适用场景,则能帮助我们在实际项目中做出正确的协议选型。


📚 推荐阅读

  • 《计算机网络:自顶向下方法》
  • Wireshark抓包实战:通过真实报文观察TCP三次握手全过程

本文基于通信网络基础资料整理,如有疑问欢迎留言交流。

相关推荐
IntMainJhy5 小时前
Flutter 三方库 ImageCropper 图片裁剪鸿蒙化适配与实战指南(正方形+自定义比例全覆盖)
flutter·华为·harmonyos
IntMainJhy5 小时前
Flutter for OpenHarmony 第三方库六大核心模块整合实战全解|从图片处理、消息通知到加密存储、设备推送 一站式鸿蒙适配开发总结
flutter·华为·harmonyos
UnicornDev5 小时前
【HarmonyOS 6】基于API23的底部悬浮导航
华为·harmonyos·arkts·鸿蒙·鸿蒙系统
音视频牛哥5 小时前
鸿蒙 NEXT 时代:如何构建工业级稳定和低延迟的同屏推流模块?
华为·harmonyos·大牛直播sdk·鸿蒙next 无纸化同屏·鸿蒙next同屏推流·鸿蒙rtmp同屏·鸿蒙无纸化会议同屏
IntMainJhy6 小时前
【fluttter for open harmony】Flutter 三方库适配实战:在 OpenHarmony 上实现图片压缩功能(附超详细踩坑记录)
flutter·华为·harmonyos
jiejiejiejie_6 小时前
Flutter for OpenHarmony 多语言国际化超简单实现指南
flutter·华为·harmonyos
2301_814809866 小时前
【HarmonyOS 6.0】ArkWeb 嵌套滚动快速调度策略:从机制到落地的全景解析
华为·harmonyos
南村群童欺我老无力.7 小时前
鸿蒙中AppStorage全局状态管理的生命周期问题
华为·harmonyos
音视频牛哥8 小时前
鸿蒙 NEXT 时代的“同屏推流”:从底层架构设计到工程落地全解析
华为·harmonyos·大牛直播sdk·鸿蒙next无纸化同屏·鸿蒙next屏幕采集推流·纯血鸿蒙无纸化会议·鸿蒙同屏rtmp推流