首页 > 试题广场 >

在TCPIP建立连接过程中,客户端或服务器的状态转移说法错

[单选题]
在TCP/IP建立连接过程中,客户端或服务器的状态转移说法错误的是()
  • 经历SYN_RECV状态
  • 经历SYN_SEND状态
  • 经历ESTABLISHED状态
  • 经历TIME_WAIT状态
元头像
这个博客TCP/UDP这块讲的不错,很实用,http://www.cnblogs.com/obama/p/3292335.html
发表于 2016-05-08 20:27:39 回复(3)
《传输层》
传输层的任务:实现网络中主机应用进程之间的的通信。应用进程用端口号来标识。端口也是运输层与应用层的服务接口。


运输层的协议:
(1)TCP。面向连接,提供可靠的传输服务。
(2)UDP。面向无连接,提供不可靠传输服务。


TCP:
(1)TCP的特点:每条TCP连接只能有两个端点,并且支持全双工通信,使用的可靠性技术是确认与超时重传以及流量控制。
(2)传输层使用TCP传输,那么传送的数据TCP报文段。
(3)TCP报文端格式:

其中,
1)序号:传送的数据流中每个字节都被编上一个序号。此序号字段的值指的就是本报文段所发送的数据的第一个字节的序号。
2)确认号:是期望收到对方的下一个报文段的数据的第一个字节的序号。
3)ACK:确认比特,当ACK=1时确认号字段才有效。
4)SYN:同步比特,当SYN=1时表示这是一个连接请求或连接接受报文段。
5)窗口:用来控制对方发送的数据量。
发送窗口:发送窗口的大小为没有收到确认信息的情况下允许发送的字节数目
接收窗口:接受端只接收序号落入接受窗口内的报文段。
(4)客户服务器方式:
TCP的连接和建立都是采用客户端服务器方式。主动发起连接建立的应用进程叫做客户端,被动等待连接建立应用进程叫做服务器
用三次握手建立TCP连接:
1)

客户端进入SYN_SEND状态,等待服务器确认
2)

服务器进入SYN_RECV状态
3)

客户端和服务器端均进入ESTABLISHED状态
(5)重传机制。
TCP每发送一个报文段,就对这个报文段设置一次计时器,只要计时器设置的重传时间到了但还没有收到确认就要重传这一段报文;或者如果发送方收到连续3条的同一个序列号的ack,那么就会启动快速重传机制而不需要等到超时便把这个ack对应的发送包重新发送一次;另外数据包出错了也会重传。
注意:重传时间间隔是动态变化的。如果太短可能导致大量不必要的重传,如果太长则会导致性能下降,所以重传时间间隔是通过往返时间RTT算出来的

《应用层》
HTTP协议:
(1)http协议中定义的基本方法:
http协议定义了与服务器交互的不同方法,其中基本的有四种;put(增)、delete(删)、post(改)、get(查)。
(2)http请求的格式:
在http请求中,首先是请求行,其次是请求头,然后是空一行,最后是请求的具体内容。
(3)get请求和post请求的异同:
相同点:
1)get和post请求都是客户端与服务器之间的交互。
不同点:
1)get是从服务器上获取数据;post是向服务器传送数据。
2)get请求通过URL直接请求数据,数据信息可以在URL中直接看到;post请求是放在请求头中的,相关信息用户无法直接看到。因此,get请求安全性比较低,post请求安全性比较高。
3)get请求有数据大小的限制,而post默认是没有大小限制的。
编辑于 2019-08-10 15:05:50 回复(0)
TCP/IP三次握手:
first,客户端向服务器端发送SYN包,客户端进入SYN_SEND状态,等待服务器确认;
second,服务器端收到SYN包,且确认,同时向客户端发送SYN+ACK包,服务器进入SYN_RECV状态;
third,客户端收到SYN+ACK包,向服务器发送ACK确认包,此时,客户端和服务器均进入ESTABLISHED状态;


半连接状态:服务器为每个客户端SYN包维护一个半连接队列,表明服务器已接到SYN包,并向客户端确认,服务器处于SYN_RECV状态,得到客户端确认后立即进入ESTABLISHED状态;
发表于 2017-08-23 09:08:00 回复(1)
发表于 2017-07-16 21:01:33 回复(1)
编辑于 2017-04-24 13:47:24 回复(0)
Tcp/Ip有3次握手:第一次握手:客户端向服务器端发送SYN包(syn=j),进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,确认SYN,此时syn=j+1,同时发送一个SYN包(syn=k)即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到SYN+ACK包,向服务器发送ACK确认包,此时客户端和服务器端均进入ESTABLISHED状态。
其中有一个半连接状态:服务器维护一个半连接队列,该队列卫每个客户端SYN包开设一个条目,标明服务器已经接到SYN包,并向客户端发出确认,这些条目表示的连接处于SYN_RECV状态,得到客户端的确认后进入ESTABLISHED状态。
发表于 2016-06-19 10:12:57 回复(2)
TIME_WAIT是断开连接时的状态
发表于 2016-05-06 17:09:29 回复(4)
CLOSED :没有活跃的连接或挂起
LISTEN :服务器等待入境呼叫
SYN_SENT:应用已经启动了打开一个连接
SYN_RCVD :到达一个连接请求;等待ACK
ESTABLISHED:正常的数据传送状态
FIN_WAIT1:应用没有数据要发了(一端发起FIN表示没有数据要发送时进入这个状态)
FIN_WAIT2:另一端同意释放连接
TIME_WAIT:等待所有数据包寿终正寝
CLOSEING:两端同时试图关闭连接
CLOSE_WAIT :另一端已经发起关闭连接
LAST_ACK:等待所有数据包寿终正寝
发表于 2016-08-23 22:24:48 回复(1)
Duang Duang~ 请看图,图里有所有的答案,大声告诉我选啥?


发表于 2018-07-01 10:59:20 回复(0)
TIME_WAIT是在四次挥手之后,客户端的状态,不是连接时的状态。
发表于 2018-04-14 22:08:21 回复(0)
time wait是断开连接时候的状态
发表于 2017-05-19 09:29:42 回复(0)
这里的SYN_RECV 和 书上的(计算机网络谢希仁版) SYN_RCVD 是一个意思吧(SYN RECEIVED)
发表于 2017-04-13 20:19:16 回复(0)
Tcp/Ip有3次握手:第一次握手:客户端向服务器端发送SYN包(syn=j),进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到 SYN包,确认SYN,此时syn=j+1,同时发送一个SYN包(syn=k)即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手: 客户端收到SYN+ACK包,向服务器发送ACK确认包,此时客户端和服务器端均进入ESTABLISHED状态。
其中有一个半连接状态:服务器维护一个半连接队列,该队列卫每个客户端SYN包开设一个条目,标明服务器已经接到SYN包,并向客户端发出确认,这些条目表示的连接处于SYN_RECV状态,得到客户端的确认后进入ESTABLISHED状态。
发表于 2017-04-12 08:59:09 回复(0)
http://blog.csdn.net/a987073381/article/details/52206215?locationNum=2
发表于 2017-03-15 16:11:33 回复(0)
“建立   连接的过程中没有TIME_WAIT这个状态!!!断开连接在客户端状态才会有。
发表于 2016-07-31 17:03:14 回复(0)
审题出错了
发表于 2016-06-01 17:24:34 回复(0)