一:TCP三次握手的流程:
SYN:synchronous 同步 | ACK:acknowledgement 确认应答 | Seq:Sequence 序列(随机生成)
SYN == 1:表示建立TCP连接; ACK标志表示验证字段; Seq序列码随机生成,用于校验属于同一个连接请求
第一次握手:客户端向服务端发起连接请求,首先客户端随机生成一个起始序列号Seq,那客户端向服务端发送的报文段包含SYN=1 && seq=100;
第二次握手:服务端收到客户端发的请求报文,通过教研SYN==1,一个连接请求,于是将客户端的起始序列号100存起来,并且随机生成一个服务端的起始Seq序列号(比如是300)。然后给客户端回复报文:SYN=1 && ACK=101(客户端发过来的seq+1) && Seq=300
第三次握手:客户端收到服务端的回复,发现ACK=1 && ack=101,得出server成功收到了Seq==100的报文;且SYN==1,代表server同意了这次连接,于是就将服务端的序列号300给存下来。然后客户端再回复一段报文给服务端:Seq=101 && ACK=301;
二:TCP为什么需要三次握手:
1:握手的目的是什么:
目的1:Client确认:收消息 && 发消息 正常;
目的2:Server确认:收消息 && 发消息 正常;
第一次握手:server收到Client的请求,代表server收消息正常
第二次握手:client收到sever的ACK回执,代表client发消息正常(代表第一次握手server收到了),且client收消息正常
第三次握手:server收到Client的ACK,代表server发消息正常;
三:TCP和UDP比较:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
四:TCP保证可靠性的策略:
TCP特点:无差错、不丢失、不重复、并且按序到达
1、序列号和确认应答信号
2、超时重发控制
3、连接管理
4、滑动窗口控制
5、流量控制
6、拥塞控制
TCP协议可靠性是如何保证之滑动窗口,超时重发,序列号确认应答信号
三:TCP和UDP比较:
四:TCP可靠性表现在什么方面:
五:HTTPS加密流程:
六:DNS解析和DNS劫持:
三:TCP和UDP比较:
网友评论