`

TCP协议三次握手过程分析

 
阅读更多
http://www.cnblogs.com/rootq/articles/1377355.html
TCP(Transmission Control Protocol) 传输控制协议
写的很不错,一定要了解呦。(请求---应答---再次确认)

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完成三次握手,主机A与主机B开始传送数据。


在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.
实例:

IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836
IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116发送位码syn=1,随机产生seq number=3626544836的数据包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立联机;

第二次握手:192.168.1.123收到请求后要确认联机信息,向192.168.1.116发送ack number=3626544837,syn=1,ack=1,随机产生seq=1739326486的包;

第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,192.168.1.116会再发送ack number=1739326487,ack=1,192.168.1.123收到后确认seq=seq+1,ack=1则连接建立成功。



图解:
一个三次握手的过程(图1,图2)


(图1)

(图2)


第一次握手的标志位(图3)
我们可以看到标志位里面只有个同步位,也就是在做请求(SYN)

(图3)

第二次握手的标志位(图4)
我们可以看到标志位里面有个确认位和同步位,也就是在做应答(SYN + ACK)

(图4)

第三次握手的标志位(图5)
我们可以看到标志位里面只有个确认位,也就是再做再次确认(ACK)


(图5)

一个完整的三次握手也就是 请求---应答---再次确认
分享到:
评论

相关推荐

    tcp协议三次握手过程

    TCP 协议三次握手过程详解 TCP(Transmission Control Protocol)传输控制协议是指建立一个可靠的连接服务,采用三次握手确认建立一个连接。三次握手过程是 TCP 协议的核心部分,保证了数据传输的可靠性和正确性。 ...

    TCP协议三次握手示意图

    在提供的文件中,`TCP协议三次握手示意图.gif`和`TCP协议三次握手.vsd`应该是展示这个过程的图形化表示。`.gif`文件可能是一个动态图像,直观地展示了三次握手的过程,而`.vsd`文件则可能是Visio绘制的详细流程图,...

    Wireshark入门 tcp三次握手

    - **设置过滤器**:为了专注于TCP三次握手的过程,可以在Wireshark的捕获过滤器中设置`tcp`或`tcp[13] & 2`,这样可以只捕获TCP协议的数据包。 ##### 4.2 观察TCP三次握手 - **第一次握手**:客户端向服务器发送一...

    TCP三次握手PPT课件.ppt

    标题中的“TCP三次握手PPT”指的是TCP协议在建立连接时执行的三次握手过程,这一过程是TCP可靠传输的基础。TCP是一种面向连接的传输层协议,确保数据在传输前双方已建立可靠的通信链路。 描述中提到的“TCP三次握手...

    TCP/IP协议三次握手

    三次握手,TCP/IP协议三次握手,TCP/IP协议三次握手

    wireshark抓包分析tcp三次握手四次挥手

    在TCP/IP通信中,TCP连接的建立和关闭过程分别称为三次握手和四次挥手,这两个过程对于理解TCP连接的工作原理至关重要。 首先,我们来详细讲解TCP的三次握手过程: 1. **第一次握手**:客户端(Client)发送一个...

    TCP协议书籍(三次握手原理)

    **三次握手** 是TCP连接建立过程中不可或缺的步骤,它确保了两个主机之间可以正确建立连接。具体过程如下: 1. **SYN(同步序列编号)**:客户端首先发送一个带有SYN标志的数据段,其中包含一个随机生成的序列号A。...

    TCP协议三次握手.doc

    在TCP/IP通信中,为了确保两个通信端点能够建立一个可靠的连接,TCP协议采用了“三次握手”机制。 第一次握手:当客户端想要与服务器建立连接时,它会生成一个随机的序列号(syn=j),封装在一个SYN(Synchronize ...

    TCP三次握手.docx

    TCP 三次握手机制是指在 TCP 连接建立过程中,客户端和服务器之间进行三次握手机制的过程。这三个阶段分别是:第一次握手、第二次握手和第三次握手。在这三个阶段中,客户端和服务器之间会进行数据交换,确保连接的...

    TCP协议三次握手详细流程

    TCP协议三次握手详细流程,以及TCP 数据段报头中六个包含控制信息的标志位的介绍

    tcp3次握手实验报告

    捕获TCP连接的过程的数据包。 2)分析三次握手建立TCP连接的过程,描述数据包序列图。(包括 SYN标志和SEQ值) 1)检查FTP交互数据报文中用户名和密码是否用明文传送

    tcp三次握手协议

    TCP的三次握手是建立可靠连接的重要过程,它确保了两个通信端点都能正确理解对方的意图,避免了数据丢失或重复发送的问题。 首次握手:在TCP连接建立之初,客户端会发送一个带有SYN(同步序列编号)标志的数据包给...

    TCP三次握手与四次挥手.pdf

    为了实现可靠的连接,TCP采用了三次握手(建立连接)和四次挥手(断开连接)的过程。这两个过程是确保数据传输前建立连接与传输后释放连接的关键机制。 首先,来详细介绍TCP三次握手的过程: 1. 第一次握手:...

    案例测试TCP的三次握手和四次挥手过程

    如本案例所示,可以通过编写C语言的服务器端程序和C#的客户端程序来模拟TCP的连接和断开过程,同时使用Wireshark这样的网络抓包工具,可以直观地观察到三次握手和四次挥手的网络交互细节,这对于理解TCP协议的工作...

    模拟TCP三次握手

    通过以上分析可以看出,这段代码尝试模拟TCP三次握手过程中的数据包构建与发送,但由于代码存在一些错误和缺失部分,实际运行时可能会遇到问题。理解TCP三次握手的过程对于深入学习网络编程和协议设计具有重要意义。

    TCP报文分析--三次握手 四次挥手

    在这个过程中,三次握手和四次挥手是 TCP 报文分析的核心内容。 面向连接和无连接 在讨论 TCP 报文分析之前,我们需要了解什么是面向连接和无连接。面向连接是指在数据传输之前,通信双方需要建立连接,例如打电话...

    验证tcp的三次握手

    在 TCP 连接建立和释放过程中,需要经过三次握手和四次握手来确保连接的可靠性和完整性。 一、TCP 三次握手过程 TCP 三次握手过程是指在客户端和服务器之间建立连接时,需要经过三次交互来确认连接的建立。这个...

Global site tag (gtag.js) - Google Analytics