TCP建立与关闭连接操作流程(三次握手四次挥手)

    科技2025-11-10  9

    UDP(不保证安全,性能较好)

    特性: 1.无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接 2.不可靠:没有确认应答机制,没有超时重传机制,没有连接管理机制;如果因为网络故障该段无法发送到对方,UDP协议层不会给应用层返回任何错误信息 3.面向数据报:最大不可超过64k.不能够灵活的控制读写数据的次数和数量 4.有接收缓冲区,没有发送缓冲区

    TCP(安全 + 性能)

    1. 特性:

    1.有连接 2.可靠的 3.面向字节流 4.有接受和发送缓冲区

    源/目的端口号:表示数据是从哪个进程来,到哪个进程去:32位序列号/32位确认号:4位TCP报头长度:表示该TCP头部有多少个32位bit(多少位4字节);所以TCP头部最大长度15 * 4 = 606位标志位: 1.URG:紧急指针是否有效 2.ACK:确认号是否有效 3.PSH:提示接收端应用程序立刻从TCP缓冲区将数据读走 4.RST:对方要求重新建立连接,将携带的RST标识称为复位报文段 5 SYN:请求建立连接;将携带的SYN标识称为同步报文段 6 FIN:通知对方,本端关闭,称携带FIN标识为结束报文段16位窗口大小:16位检验和:发送端填充,CRC校验,接收端校验不通过,就认为数据有问题,此处校验和不光包含TCP首部,也包括TCP数据部分16位紧急指针:标识哪部分数据是紧急数据

    2. 原理:

    安全

    1.确认应答机制: 序号 + 确认序号 2.超时重传机制: 系统基于TCP协议实现,动态计算报文的最大生存时间(MSL),超时时间设置为2MSL 作用:超过超时时间,表示丢包(发送数据报,接受确认数据报),需要重新发送数据报(系统中发送缓冲区保存有效数据可以重发) 3.连接管理机制: 正常情况下,TCP经过三次握手建立连接,四次挥手断开连接 建立连接流程: 1.建立连接都是单方向的 表达TCP三次握手流程/过程: 首先客户端发送SYN请求到服务端,服务端接收到以后返回一个对这条SYN建立连接请求的ACK响应,并且发送一个服务端到客户端建立连接的SYN请求合并发送回客户端,客户端接收到以后,此时客户端到服务器端连接建立成功,但此时还没有建立服务端到客户端的连接,因此客户端还需要回复一个ACK响应,在服务端接收到响应之后,此时服务端到客户端的连接就建立成功.

    能否四次握手(超出三次):出现该种情况,可能是因为丢包导致.只要两端建立连接就可以完成. 能否2次握手(小于三次):不能,由于建立连接都是单方向的,因此该种情况,不能建立双向连接 TCP关闭连接的过程/流程(四次挥手): 客户端发送FIN关闭请求,服务端接收到请求后返回ACK响应,此时服务端状态为CLOSE_WAIT;然后重新发送FIN数据包到客户端,此时客户端状态为TIME_WAIT,客户端再次发送ACK响应到服务端,此时关闭连接操作成功两端状态为CLOSED

    能否三次挥手:不能,第二次ACK是系统内核实现的ACK响应,而FIN是用户程序手动关闭.目的是让用户程序在关闭连接前处理需要的任务(如释放资源) 是否能五次挥手:能

    注意

    CLOSE_WAIT:服务端程序没有调用close方法,导致出现大量的连接处于CLOSE_WAIT状态,代表半关闭 ,是一种bug在第三次数据传输,服务端发送FIN请求到客户端,客户端处于TIME_WAIT状态,不设置为CLOSE是因为第四次ACK响应报文可能丢包,导致服务端无法关闭连接,需要服务端重新发送FIN请求,所以客户端必须等待最大超时时间(2MSL)TIME_WAIT为2MSL,是因为返回的ACK传输时间 + 服务端重新发送FIN的传输时间发送端\接收端:单次数据发送时,存在发送端发送数据到接收端,在多次数据发送时,双方可以是发送端,也可以是接收端.
    Processed: 0.010, SQL: 8