[原理]TCP/IP协议栈完全入门:从0到1理解网络通信

阿里云推广

一、为什么网络需要分层

网络通信是一个复杂的系统工程。分层架构的核心思想是关注点分离,每一层只负责特定功能,层与层之间通过定义良好的接口交互。

分层架构类比理解

网络分层 快递类比 核心功能
应用层 快递单内容 HTTP请求报文,定义数据格式
传输层 快递分拣中心 TCP确保可靠送达,UDP快速传输
网络层 物流路线规划 IP路由选择,跨网络寻址
数据链路层 货车运输 以太网帧传输,局域网通信
物理层 公路和轨道 光纤、电缆,比特流传输

二、TCP三次握手详解

TCP是面向连接的协议,通信前必须建立连接。三次握手的设计目的是防止历史重复连接初始化,同时同步双方的初始序列号。

握手流程

步骤 发送方 接收方 报文内容 状态变化
1 客户端 服务端 SYN seq=x 客户端进入SYN_SENT
2 服务端 客户端 SYN-ACK seq=y ack=x+1 服务端进入SYN_RCVD
3 客户端 服务端 ACK ack=y+1 双方进入ESTABLISHED

为什么是三次?

  • 两次不够:服务端无法确认客户端是否收到自己的SYN
  • 四次多余:合并ACK和SYN更高效,减少网络往返

三、TCP vs UDP 对比

特性 TCP UDP
连接方式 面向连接 无连接
可靠性 可靠传输,保证到达 尽力而为,可能丢包
顺序性 保证数据顺序 不保证顺序
传输效率 较低(有握手、确认) 较高(无额外开销)
适用场景 网页、文件传输、邮件 视频直播、DNS、游戏

四、学习建议

  • 使用Wireshark抓包分析真实网络流量,比看书更直观
  • 理解TCP状态机(TIME_WAIT、CLOSE_WAIT等)对排查连接问题至关重要
  • 从实际网络问题入手,结合工具逐步深入

发表评论