面试 Tcp的三次握手和四次挥手

2020-01-05  本文已影响0人  许许如生hi

一、TCP的三次握手及相关问题


1. TCP报文段首部格式


TCP报文段首部格式

2. tcp三次握手详解


三次握手

2.1 第一次握手


客户端给服务端发送请求报文段


2.2 第二次握手


服务端同意建立连接


2.3 第三次握手


客户端再次向服务端给出确认


3. 为什么要三次握手,三次握手功能

三次握手功能生动解释

4. 半连接队列和全连接队列


[图片上传失败...(image-e1545c-1578234377605)]


5. 三次握手中可以携带数据吗


第一次和第二次握手不可以携带信息,第三次可以携带信息,前两个阶段不可以携带信息。因为第三次握手的时候客户端才是ESTABLISHED状态,就上面那个生动的图来讲,只有第三次握手你确定了互相喜欢才可以携带一些信息(比如一起看电影、约会)

6. SYN 和 SYN 攻击


SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,常用假冒的IP或IP号段发来海量的请求连接的第一个握手包(SYN包),被攻击服务器回应第二个握手包(SYN+ACK包),因为对方是假冒IP,对方永远收不到包且不会回应第三个握手包。导致被攻击服务器保持大量SYN_RECV状态的“半连接”,并且会重试默认5次回应第二个握手包,塞满TCP等待连接队列,资源耗尽(CPU满负荷或内存不足),让正常的业务请求连接不进来。


TCP的四次挥手及相关问题


1. 四次挥手详解


四次挥手

1.1 第一次挥手


client发出连接释放报文段


1.2 第二次挥手


server接收到释放报文段后发出确认 (这时候 client ---> server方向连接断了)


1.3 第三次挥手


这时候server发出连接释放报文段(想让 server--->client方向连接断掉)


1.4 第四次挥手


client同意与server断开连接

1.5 通俗解释一下


四次挥手

2. 为什发送端需要等待 2MSL后关闭


MSL:(Maximum segment lifetime)最长报文寿命
为什么要等待两个msl?


3. 为什么第二次挥手和第三次挥手不能合并


细心的同学发现,所谓四次挥手中的第二次和第三次就是把握手中的第二次拆来了。为什么不能合并?


引用博客


上一篇 下一篇

猜你喜欢

热点阅读