TCP连接的步骤

今天在教科书上看到一道题,有关于3次握手的,我不太明白,请教高手详细说明为什么选这个。
问题是:
下列哪一项正确的说明了建立TCP连接的步骤地顺序?
A SYN=0,SYN=0 ACK=1;SYN=0 ACK=1
B SYN=1,SYN=1 ACK=0;SYN=0 ACK=0
C SYN=1,SYN=1 ACK=1;SYN=0 ACK=1
D SYN=0,SYN=1 ACK=1;SYN=0 ACK=1
E SYN=1,SYN=1 ACK=0;SYN=1 ACK=1

教科书上的标准答案是C,我有点看的脑袋大了,谁能帮我解释这道题啊~跪求!!!
我还是不清楚为什么SYN从1变成0了。
能否具体说明。谢谢

syn是同步信号,ack是应答信号
第一步客户机向服务器发送一个TCP数据包,表示请求建立连接. 为此,客户端将数据包的SYN位设置为1。
第二步服务器收到了数据包,并从SYN位为1知道这是一个建立请求的连接.于是服务器也向客户端发送一个TCP数据包.因为是响应客户机的请求,于是服务器设置ACK为1。
第三步客户机收到了服务器的TCP,并从ACK为1知道是从服务器来的确认信息.于是客户机也向服务器发送确认信息.客户机设置ACK=1
最后一步服务器受到确认信息,也完成连接
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-08-21
TCP建立连接需要三次握手.SYN是发送标志位,ACK是确认标志位.
第一次握手:SYN=1,ACK=0
第二次握手:SYN=1,ACK=1
第三次握手:SYN=0,ACK=1
第2个回答  2020-09-11
在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状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:
未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的syn包(syn=j)开设一个条目,该条目表明服务器已收到syn包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于syn_recv状态,当服务器收到客户的确认包时,删除该条目,服务器进入established状态。
backlog参数:表示未连接队列的最大容纳数目。
syn-ack
重传次数
服务器发送完syn-ack包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。
半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到syn包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为timeout时间、syn_recv存活时间。
相似回答