TCP
1、概述
1.1 TCP(Transmission Control Protocol 传输控制协议)简介:
a,面向连接、可靠的、基于字节流的 传输层 通信协议;
b,数据传输时,应用层向TCP发送数据流,然后TCP将数据流分割成相应长度的报文段,TCP将结果包传输给IP层,由IP层通过网络将结果传输给目标的TCP层;
c,TCP为了保证不丢失包,给每个包一个序号(sequence number),同时序号也保证了数据的按序处理,接收端对已收到的包做出相应处理(ACK确认),如果在合理的时间段内未确认,对应的数据包被认为已丢失,发送端会进行重新传送;
d,TCP使用一个 校验和函数 来检验数据在传输过程中是否有误;
1.2 TCP flags:
URG:紧急指针标志 ACK:确认序号标志 PSH:push标志
RST:重置连接标志 SYN:同步序号,用于建立连接过程 FIN:finish标志,用于释放连接
1.3 TCP的三次握手:
TCP的三次握手是为了建立连接
第一次发送: 服务器处于Listen状态--->客户端发送SYN信号(建立连接)给服务器--->此时客户端处于SYN-SEND状态
第二次发送:服务器收到后回复SYN信号+ACK信号(确认)--->此时服务器处于SYN-RCVD状态
第三次发送:客户端收到信号后,发送ACK信号给服务器--->此时客户端、服务器端均处于ESTABLISHED状态,
双方进入全双工状态(通信双方可同时发送数据:计算机A可以给计算机B发送信息,发送的同时,计算机B也可以给计算机A发送信息);
容易出现的问题:
aa,
bb,建立连接后,客户端出现故障:
TCP提供 保活机制 ,在一段时间(保活时间)内,由配置好的发送端发送 保活探测报文,如果未收到则继续发送;
如果尝试次数达到约定的 次数,则视为 中断连接;
1.4 TCP的四次挥手:
TCP的四次挥手是为了关闭连接
第一次发送:服务器、客户端均处于ESTABLISH状态,客户端发送FIN信号给服务器,客户端状态变为FIN-WAIT-1
第二次发送:服务器接收到FIN信号后,发送ACK信号给客户端,服务器状态变为CLOSE-WAIT--->客户端收到服务的ACK信号后,状态变为FIN-WAIT-2
第三次发送:服务器再发送FIN+ACK信号给客户端,服务器端状态变为LAST-ACK
第四次发送:客户端收到服务器FIN+ACK信号后,发送ACK信号给服务器,状态变为TIME-WAIT,服务器收到客户端ACK信号后,状态变为CLOSED
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)