TCP三次握手各种异常

 

和TCP三次握手有关的面试题

分类: 网络   673人阅读  评论(0)  收藏  举报

在面试的过程中,TCP三次握手是一个出现频率比较多的话题。三次过程如下图所示:

           Client                             Server

              |------------SYN1----------->|

              |                                       |

              |<------SYN2+ACK1---------|

              |                                       |

              |--------- ACK2------------->|

 

下面列一些常见的几个问题。

1. Q:向一个不存在但合法的公网IP任意端口发送SYN包会出现什么情况?

    A:返回ICMP主机不可达。

 

2. Q:向一个存在的IP但未绑定的端口发送SYN包会出现什么情况?

    A:返回TCP RST segment。

 

3. Q: 第一个SYN包丢失了,客户主机(主动连接方)会采取什么动作?

    A:重传,重试几次后(一般是3次)失败后,连接失败。

 

4. Q: 为什么连接建立的过程作3次TCP segment交互,而不是4次?

    A:Server端的SYN&ACK在一个TCP segment传给了Client。

 

5. Q:什么情况下将会出现4次TCP segment交互?

    A: 连接的两端同时打开。

 

6. Q: 第二个SYN2(就是图示中的SYN2+ACK1)丢失了,将出现什么情况?

    A: Client收不到SYN2而不发送ACK2,Server端将超时重发。

 

7. Q: ACK2丢失了将会怎样?

    A: Server端认为Client没收到SYN2+ACK1,重发SYN2+ACK1;另外连接处于未完成的状态,如果出现大量的ACK2丢失,未完成的连接队列会出现“满”的状态,从而不能再接收SYN1。这就是DOS。

 

还有一些和Socket APIs结合起来的问题,比如connect内部做了什么?accept做了什么?accept执行速度慢了将会出现什么现象?等等。这个问题可以参考上一篇文章:

      http://blog.csdn.net/herm_lib/archive/2010/11/14/6008281.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值