如何熟悉TCP三次握手和四次挥手?

Linux基础

1 基础知识

1.1 基本概念

1.1.1 TCP握手

TCP客户端与服务端通过三次捂手建立TCP连接的过程称为TCP握手

1.1.2 TCP挥手

TCP已经建立连接的客户端和服务端通过四次挥手释放连接的过程称为TCP挥手

1.2 TCP通讯流程分析

1.2.1 TCP握手流程


如上图所示,
Step1, Client创建传输控制块(TCB)并发送SYN(synchronize)信号至Server端,Client从CLOSED状态进入SYN-SENT状态
Step2, Server被动创建TCB并倾听到SYN信号后答复ACK(acknowledge)+SYN信号至Client端,Server进入SYN-RECEIVED状态
Step3, Client收到SYN+ACK信号后答复ACK信号至Server端,Client进入ESTABLISHED,Server端收到后进入ESTABLISHED状态

1.2.2 TCP挥手流程


Step1, Client端收到应用(APP)的关闭讯号后主动发送FIN((finish)信号至Server端,Client从ESTABLISHED进入FIN-WAIT-1状态
Step2, Server收到FIN后答复ACK并通知应用关闭,Server从ESTABLISHED进入CLOSE-WAIT,Client收到ACK进入FIN-WAIT-2状态
Step3, Server等待应用完全关闭后答复FIN信号至Client端,Server进入LAST-ACK状态
Step4, Client等到FIN信号后答复ACK信号,Client进入TIME-WAIT状态超时后进入CLOSED,Server等到ACK后进入CLOSED状态

参阅文档
======================================
http://www.blogjava.net/landon/archive/2016/06/06/430806.html

https://www.cnblogs.com/hodge01/p/9378935.html

https://www.sciencedirect.com/topics/computer-science/three-way-handshake

没有评论

发表回复

Linux基础
Linux下的常用性能分析工具?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要整理常用的Linux分析工具,于是整理此文。 …

Linux基础
如何排查硬盘读写慢问题?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要排查硬盘慢引起的问题,于是整理此文。 2 最佳 …

Linux基础
如何tcpdump实时测量网络吞吐量?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要实时测量网络的吞吐量,于是整理此文。 2 最佳 …