网络编程知识预备(2) —— 三次握手与四次挥手、半连接状态、2MSL

本文详细介绍了TCP协议的三次握手和四次挥手过程,包括每次握手和挥手的具体步骤,以及2MSL的作用。同时,探讨了为何建立连接需要三次握手,而关闭则需要四次挥手,并讨论了在连接过程中客户端突然故障的处理机制,如保活计时器、探测报文段和心跳包的应用。
摘要由CSDN通过智能技术生成

参考:网络编程知识预备(2) ——三次握手与四次挥手、流量控制(滑动窗口)、拥塞控制、半连接状态、2MSL_行稳方能走远的博客-CSDN博客

目录

一、三次握手

什么是三次握手?

三次握手图解

三次握手过程解析

(1)第一次握手

(2)第二次握手

(3)第三次握手

二、四次挥手

什么是四次挥手?

四次挥手图解

四次挥手过程解析

(1)第一次挥手

(2)第二次挥手(半连接)

(3)第三次挥手

(4)第四次挥手

三、2MSL作用

四、 常见问题

1、为什么连接是三次握手,关闭却要四次挥手(半连接)?

2、连接中途客户端突然故障怎么办(保活计时器、探测报文段、心跳包)?


一、三次握手

什么是三次握手?

        手机能够使用联网功能是因为手机底层实现了 TCP / IP 协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

TCP共有6个标志位,常见的:

标志位 含义
SYN(synchronous) 建立连接
ACK(acknowledgement) 响应确认
FIN(finish) 结束
RST(reset) 重置

建立起一个TCP连接需要经过“三次握手”

三次握手图解

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三次握手过程解析:

(1)第一次握手

客户端发送 SYN 包( syn = j )到服务器,并进入 SYN_SEND 状态,等待服务器确认。

j 是一个随机数,通过看服务器返回的 j + 1 是否正确,判断第一次握手服务器是否正确响应。

(2)第二次握手

服务器确认客户的 SYN 包,同时发送 ACK 包( ack = j + 1 )作为回应;

自己也发送一个 SYN 包( syn = k ),共两个包,此时服务器进入 SYN_RECV 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值