怎么正确认识网络,如何正确认识和对待网络

首页 > 生活 > 作者:YD1662024-07-27 14:16:00

5. TCP连接的三次握手(重要)

TCP三次握手使用指令:

怎么正确认识网络,如何正确认识和对待网络(29)

面试常客:为什么需要三次握手?

建立连接(三次握手):

第一次:客户向服务器发送连接请求段,建立连接请求控制段(SYN=1),表示传输的报文段的第一个数据字节的序列号是x,此序列号代表整个报文段的序号(seq=x);客户端进入 SYN_SEND (同步发送状态);

第二次:服务器发回确认报文段,同意建立新连接的确认段(SYN=1),确认序号字段有效(ACK=1),服务器告诉客户端报文段序号是y(seq=y),表示服务器已经收到客户端序号为x的报文段,准备接受客户端序列号为x 1的报文段(ack_seq=x 1);服务器由LISTEN进入SYN_RCVD (同步收到状态);

第三次:客户对服务器的同一连接进行确认.确认序号字段有效(ACK=1),客户此次的报文段的序列号是x 1(seq=x 1),客户期望接受服务器序列号为y 1的报文段(ack_seq=y 1);当客户发送ack时,客户端进入ESTABLISHED 状态;当服务收到客户发送的ack后,也进入ESTABLISHED状态;第三次握手可携带数据。

怎么正确认识网络,如何正确认识和对待网络(30)

6. TCP连接的四次挥手(重要)

释放连接(四次挥手)

第一次:客户向服务器发送释放连接报文段,发送端数据发送完毕,请求释放连接(FIN=1),传输的第一个数据字节的序号是x(seq=x);客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态);

第二次:服务器向客户发送确认段,确认字号段有效(ACK=1),服务器传输的数据序号是y(seq=y),服务器期望接收客户数据序号为x 1(ack_seq=x 1);服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待);客户端收到ACK段后,由FIN_WAIT_1进入FIN_WAIT_2;

第三次:服务器向客户发送释放连接报文段,请求释放连接(FIN=1),确认字号段有效(ACK=1),表示服务器期望接收客户数据序号为x 1(ack_seq=x 1);表示自己传输的第一个字节序号是y 1(seq=y 1);服务器状态由CLOSE_WAIT 进入 LAST_ACK (最后确认状态);

第四次:客户向服务器发送确认段,确认字号段有效(ACK=1),表示客户传输的数据序号是x 1(seq=x 1),表示客户期望接收服务器数据序号为y 1 1(ack_seq=y 1 1);客户端状态由FIN_WAIT_2进入TIME_WAIT,等待2MSL时间,进入CLOSED状态;服务器在收到最后一次ACK后,由LAST_ACK进入CLOSED。

怎么正确认识网络,如何正确认识和对待网络(31)

怎么正确认识网络,如何正确认识和对待网络(32)

上一页45678下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.