一篇理解TCP协议

一、TCP协议概念。

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输层协议。它主要用于在计算机网络中,通过建立可靠的通信连接来进行数据传输。

TCP协议的特点如下:

  • 可靠性:TCP使用确认、重传和超时等机制,确保数据可靠地传输到目标主机,并且按照正确的顺序组装。
  • 面向连接:数据传输之前需要在发送端和接收端建立连接,传输完成后再释放连接。
  • 全双工通信:TCP允许同时进行双向的数据传输,即发送方和接收方可以同时发送和接收数据。
  • 流量控制:TCP通过滑动窗口机制进行流量控制,控制发送速率,以适应接收方的处理能力。
  • 拥塞控制:TCP通过拥塞窗口机制和慢启动算法来进行拥塞控制,防止网络拥塞。
  • 高效性:TCP使用各种优化算法,如快速重传、快速恢复等,提高数据传输的效率。
  • 适用性广泛:TCP被广泛应用于互联网和局域网等各种计算机网络中,支持各种应用程序的可靠数据传输。

二、TCP工作流程。

通过NDS获取IP地址之后,就会把HTTP的传输工作交给TCP协议完成。

三、TCP报文格式。

四、三次握手和四次挥手。



  • 为什么需要四次挥手?
    把ACK和FIN分开发送的原因是因为当主动方在数据传送结束后发出连接释放的通知,由于被动方可能还有必要的数据要处理,所以会先返回 ACK 确认收到报文。当被动方也没有数据再发送的时候,则发出FIN通知,对方确认后才完全关闭TCP连接。
  • 为什么TIME_WAIT等待时间是2MSL?
    MSL是报文的最大生存时间,超过这个时间,报文就将丢弃。
    确保对方能够收到最后一个ack报文,如果服务端没有收到最后的ACK报文,就会触发超时重传FIN报文,从客户端发送ACK报文到接到到服务端重传的FIN报文,一去一来,最多就需要2MSL。
相关推荐
物联网软硬件开发-轨物科技7 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
Escalating_xu7 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
是真的小外套9 小时前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
小天源11 小时前
让访问数据可解释:IP 地球大屏、地区库更新与运行维护设计
网络·网络协议·tcp/ip
老李IT笔记11 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
小此方12 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络
万年咸鱼12 小时前
WebSocket、Socket 与 HTTP 的区别详解
websocket·网络协议·http
万年咸鱼12 小时前
HTTPS 是如何保证传输安全的?
网络协议·安全·https
万联WANFLOW12 小时前
拆解 Meta Prometheus 网络:20,736 张 GPU 如何互联?4 个设计取舍值得关注
tcp/ip·meta·gpu
隐擎fox13 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip