【问题标题】:What will happen if I send a SYN packet to the server when there has already been a TCP connection established?如果我在已经建立 TCP 连接的情况下向服务器发送 SYN 数据包会发生什么?
【发布时间】:2011-07-26 14:46:43
【问题描述】:

SYN数据包与已建立的连接具有相同的源目的IP地址和端口,那么这种情况会发生什么?

【问题讨论】:

    标签: tcp


    【解决方案1】:

    服务器将静默丢弃数据包,因为它已经有一个处于 ESTABLISHED 状态的连接,来自 (client-ip, src-port, server-ip, dest-port) 的四个值之一必须与新的不同SYN 被接受。

    【讨论】:

      【解决方案2】:

      服务器将尝试新的连接。 在技​​术方面,它将发送一个 syn,ack 数据包并等待客户端完成 tcp 握手 并打开连接。 http://en.wikipedia.org/wiki/Transmission_Control_Protocol 会比我更好地解释这个过程。

      服务器将在其 syn,ack 数据包中发送一些信息来识别连接。 并且该信息用于将该连接与其他连接分开。

      大多数时候,端口不会相同 但是当它是,它可能会导致低等级的 nat 路由器出现问题, 他们试图重写那些使用的端口,并且可能会混淆连接。

      【讨论】:

      • -1 服务器不会在任何数据包中“发送一些信息”来识别连接。对于同一个客户端,源端口必须不同才能建立新连接。识别 TCP 连接的唯一方法是通过唯一的 4 元组(client-ip、src-port、server-ip、dest-port)。
      • 我重新阅读了 wiki 页面并得到纠正,Jaidev 是正确的
      猜你喜欢
      • 2010-10-07
      • 2018-06-22
      • 2011-12-20
      • 2016-08-20
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多