火星科技网您的位置:首页 >综合百科 >

TCP IP 的详细内容 协议体系精讲

导读 TCP IP 是一套互联网核心协议簇,不是单独某一个协议,全称传输控制协议网际协议,整套协议按照分层思想设计,实现不同计算机跨网络通信

TCP IP 是一套互联网核心协议簇,不是单独某一个协议,全称传输控制协议网际协议,整套协议按照分层思想设计,实现不同计算机跨网络通信,核心依靠 IP 负责寻址和数据包转发,TCP 负责可靠传输,把大数据拆分成数据包,完成确认重传流量控制拥塞控制,现在我们上网浏览网页视频通话,底层全部运行这套协议体系,很多网络卡顿丢包连接失败,本质都是 TCP IP 协议在握手重传拥塞控制环节出现异常,理解分层结构各层协议作用,数据包封装过程,三次握手四次挥手,就能看懂网络通信完整逻辑,也方便后续排查网络故障。

一、TCP IP 四层模型结构

层级名称核心功能代表协议
应用层面向用户业务,处理应用数据HTTP HTTPS FTP DNS SMTP
传输层端到端通信,可靠或者不可靠传输TCP UDP
网际层IP 寻址路由选择,数据包转发IP ICMP ARP
网络接口层物理链路传输,帧封装以太网 PPP

各层详细说明

1 应用层,直接和应用程序交互,用户看到的网页文件传输域名解析都在这一层,应用产生原始数据,交给下一层处理

2 传输层,区分是 TCP 还是 UDP,TCP 面向连接可靠传输,UDP 无连接速度快不保证可靠,同时使用端口号区分同一台主机上不同应用程序

3 网际层,也就是 IP 层,核心是 IP 地址,负责给数据包添加 IP 头部,根据路由表选择转发路径,跨网络把数据包送到目标主机,ICMP 用来 ping 测试网络连通,ARP 用来把 IP 地址转换成 MAC 物理地址

4 网络接口层,负责把数据包变成电信号光信号在网线光纤传输,识别 MAC 地址,处理帧的差错检测

二、核心协议详解

IP 协议

IP 协议工作在网际层,核心特点是无连接不可靠,它只负责尽力投递数据包,不保证数据包一定到达,不保证顺序,丢包之后不会主动重传,可靠性交给上层 TCP 来实现,IP 头部里面包含源 IP 地址目标 IP 地址 TTL 生存时间,TTL 每经过一个路由器就减一,减到零数据包就丢弃,防止数据包在网络无限循环。IP 分为 IPv4 和 IPv6,IPv4 是 32 位地址,地址数量有限,IPv6 是 128 位,解决地址枯竭问题。

TCP 协议

TCP 是面向连接可靠传输协议,工作在传输层,在传输数据之前必须建立连接,数据传输完成之后释放连接,核心机制包含序号确认应答重传机制流量控制拥塞控制。

序号用来标记每一个字节数据,接收方可以根据序号确认收到的数据,发现丢包之后发送方自动重传。

流量控制使用滑动窗口,接收方告诉发送方自己还能接收多少数据,防止发送太快把接收方缓冲区塞满。

拥塞控制是根据整个网络拥堵情况动态调整发送速率,避免网络过载,包含慢启动拥塞避免快重传快恢复四种算法。

UDP 协议

UDP 属于传输层无连接协议,不需要提前建立连接,没有确认重传机制,头部开销很小,传输延迟低,适合直播语音游戏这类对实时性要求高,可以容忍少量丢包的业务。

配套辅助协议

ARP 协议,根据已知 IP 查询对应网卡 MAC 地址,局域网通信必须使用

ICMP 协议,ping 命令就是 ICMP 报文,用来测试连通性,返回超时不可达等错误信息

DHCP 协议,自动给电脑手机分配 IP 地址网关 DNS,不用手动设置网络参数

三、TCP 连接建立与断开

三次握手建立连接

第一次握手,客户端发送 SYN 报文,告诉服务器想要建立连接,客户端进入 SYN SENT 状态

第二次握手,服务器收到 SYN,回复 SYN 加 ACK 报文,服务器进入 SYN RCVD 状态

第三次握手,客户端收到服务器回复,发送 ACK 确认报文,双方进入 ESTABLISHED 连接成功状态

三次握手目的是确认双方发送接收能力都正常,防止已经失效的旧连接请求突然到达服务器,造成资源浪费

四次挥手断开连接

第一次挥手,主动方发送 FIN 报文,请求断开数据发送

第二次挥手,被动方回复 ACK 确认,此时被动方还可以继续发送剩余数据,连接处于半关闭状态

第三次挥手,被动方数据全部发送完毕,发送 FIN 报文,请求关闭连接

第四次挥手,主动方回复 ACK 确认,之后主动方等待 TIME WAIT 状态,等待 2MSL 时间,确认所有报文全部消失,最后连接彻底关闭

四次挥手原因是 TCP 全双工通信,两个方向的数据通道需要单独关闭,所以不能像握手一样合并成三次

四、数据包封装与解封装过程

应用层产生原始数据,向下传到传输层,添加 TCP 或者 UDP 头部,形成段

继续向下传到网际层,添加 IP 头部,形成 IP 数据包

再传到网络接口层,添加 MAC 帧头部尾部校验,形成帧,通过物理介质发送出去

目标主机收到之后反向解封装,一层一层剥掉头部,最后把原始数据交给应用程序,这个完整过程就是 TCP IP 通信核心流程

五、常见故障相关原理

连接超时,一般是路由不可达,防火墙拦截,目标主机没有响应,TCP SYN 报文无法到达服务器

重传频繁,代表链路丢包严重,TCP 不断重传数据,表现网页打开很慢

TIME WAIT 堆积,短时间大量频繁建立断开 TCP 连接,会占用大量端口,新连接无法建立

端口被占用,同一个端口不能同时被两个程序监听,TCP IP 通过端口识别应用,端口冲突会导致程序启动失败

六、总结

TCP IP 是分层协议簇,四层模型各司其职,IP 负责跨网络寻址转发,TCP 负责可靠传输,UDP 负责高速无连接传输,配合 ARP ICMP DHCP 等辅助协议完成互联网通信,三次握手四次挥手是 TCP 连接核心机制,数据包封装解封装是数据流转基础,掌握 TCP IP 详细内容之后,能够理解网络通信底层逻辑,处理大部分网络连通性卡顿连接异常问题。

【常见问题】

问题 1 TCP IP 的详细内容里面为什么 TCP 需要三次握手

回答 1 TCP IP 的详细内容中,三次握手是 TCP 建立连接必须流程,主要确认客户端和服务器收发能力都正常,避免历史残留 SYN 请求造成服务器错误建立连接,是 TCP IP 协议保证连接可靠的关键设计。

问题 2 TCP IP 的详细内容里 TCP 和 UDP 最大区别是什么

回答 1 TCP IP 的详细内容里,TCP 是面向连接可靠传输,有重传流量控制拥塞控制,UDP 是无连接不可靠传输,延迟更低,TCP 适合文件传输网页,UDP 适合直播实时游戏,二者都属于 TCP IP 传输层协议。

问题 3 TCP IP 的详细内容中 IP 协议为什么是不可靠的

回答 1 TCP IP 的详细内容明确 IP 协议只负责尽力转发数据包,不做确认重传,丢包乱序都不处理,可靠性交给上层 TCP 实现,这样设计可以降低网际层开销,提升路由转发效率,是 TCP IP 体系分层解耦的设计思路。

【免责申明】

本文 TCP IP 的详细内容相关知识仅供学习参考,协议标准以官方 RFC 文档为准,网络配置操作请结合实际网络环境,因错误理解协议原理造成网络故障,本内容不承担相关责任。