QQ通信原理及QQ是怎么穿透内网进行通信的

      最后更新:2022-03-09 02:03:16 手机定位技术交流文章

      使用TCP/UDP协议的通信软件。


      电文通过UDP传送并通过HTTP登陆,因为着陆服务器是HTTP服务器,这是不寻常的。 服务器完全是自己创建的!



      一、登录

      客户端在局域网中, 当打开 登录到 服务器时, 您的客户端通过外联网与 服务器建立了很长的连接。 您可以使用 netstat- bn 检查连接状态 。


      此时此刻,您在 + 服务器上看到的 IP 地址是您局域网(局域网) 的 IP 地址 。
      服务器 IP: 80 Service port
      您的电脑连接到局域网 IP :
      你们的局域网因特网IP地址是:
      您的客户端请求将会通过外联网发送, 如果您的客户端能够正确登录, 如果防火墙不阻止访问互联网的80个端口服务。 您所看到的连接是( netstat- bn) 。
      10.19.9.89:55579           124.115.11.81:80    establish

      这是伪造的,通过服务器看到的联系是:
      124.115.11.81:80      61.183.172.149:31234    establish

      结果,防火墙上的31,234等于你系统中的55,579。但是,由于你是发起人,这个数字会改变。(周期性地)
      当您能够访问信息时, % 服务器只需要传输5579份防火墙副本。 这里就是防火墙翻译的地方 。

      然而,民进联和民进联不如民进联和民进联。最终登陆成功之后,将使用TCP连接,TCP连接的边远港口一般为80个。当民进党到来的时候,端口是8000。因此,如果您的网络支持 80 个端口( 最常见的端口数量 ) 。这是进入网络港口的标准方法。禁掉它的话,你的网络对你不再有用了然而,没有服务器IP地址限制系绳。恭喜你,你可以降落皇后区

      二、聊天消息通信
      采用UDP协议,通过服务器传输大家都知道,联合民主党的协议不可信。它只管发送,我不在乎他们是否抓住它。但它的传输很高效。但是,作为聊天软件,如何以如此不可信的方式发送信息?于是,利用顶级协议确保可靠的传输:如果客户使用UDP协议发送信息,使用UDP协议是可行的。服务器收到该包,使用 UDP 协议, 必须发回回复包 。这保证了电文的传递没有遗漏。这是因为客户看到“没有传递信息”,而另一方收到这一信息。是因为客户的信息服务器 被正确接收和传输了然而,由于网络问题,客户没有从服务器收到回复包。


      由于用户往往在局域网上,拥有私人拥有的IP地址,系绳服务器如何向用户传递信息?

      首先,我们将探讨一些基本概念:
      NAT(Network AddressTranslators),网络地址转换:互联网地址转换是在知识产权地址越来越少的情况下发生的。其主要功能是允许重新使用地址。NAT分为两大类,NAPT(网络地址/港口笔译员)和基本NAT
      第一种NAT是运行在路由器上的功能模块。

      第一个项目是基本NAT。其依据的概念是,私营网络中只有少量节点需要与外部网络连接(huh.)这是1990年代中期首次出现这种情况。因此,这一子网中只有几个节点需要世界上唯一的IP地址。分配给其他节点的 IP 地址应可重复使用 。
      因此,NAT的基本功能是直截了当的。这是首次在子网上使用IP部分,并且使用一个保留IP-net部分。这些IP地址对世界其他地方来说是看不见的子网中仅有几个IP地址可以与唯一真实的全球IP地址匹配。如果这些节点需要连接到互联网,他们将能够这样做。因此,基本的NAT负责将这个节点中的IP地址转换成世界上唯一的IP地址,并发送出去。(基本的NAT修改 IP 软件包的 IP 原始 IP 地址 。 )然而,它对IP袋中的港口没有影响。
      RFC 1631说明基本NAT。

      NACT是另一类NAT。我们也可以在名义上看到这一点。NACT将不仅修改通过该NAT设备流动的IP数据报告的IP IP 地址,而且修改IP 地址。IP数据报告TCP/UDP网页也将修改。我们观察到的基本NAT设备可能不多。我没有见到过),我们实际讨论的主要议题是 " NAPT " 。看下图:
      Server S1
      18.181.0.31:1235
      |
      ^  Session 1 (A-S1)  ^      |
      |  18.181.0.31:1235  |      |
      v 155.99.25.11:62000 v      |
      |
      NAT
      155.99.25.11
      |
      ^  Session 1 (A-S1)  ^      |
      |  18.181.0.31:1235  |      |
      v   10.0.0.1:1234    v      |
      |
      Client A
      10.0.0.1:1234
      有一个私人网络10.*,其中一台计算机是ClieentA。网络网关(NAT设备)是互联网IP地址。什麽意思?如果客户端A(产生了一个将1234个港口捆绑在一起的UDPSocket)的一个流程希望进入外部网络主机的1235个港口,那么,当包件穿越NAT时会怎么样呢?
      最初,NAT将修改包件的原IP地址。将措辞改为:此后,NAT将为这份来文安排一个会议。如果是TCP,也许塞松是从一个SYN包开始的干掉一个FIN的袋子而UDP呢,从此 IP 发送到此端口的第一个 UDP 开始,结束呢,呵呵,也许是几分钟,也许是几小时,它根据实际工作为本届会议分配了一个港口。比如62000,然后,该软件包的源端端口被修改为62,00。所以本来是(10.0.0.1:1234->18.181.0.31:1235)的数据包到了互联网上变为了(155.99.25.11:62000->18.181.0.31:1235)。
      一旦国家税务局设立了一届会议,6200港口与1234港口相对应,NAT将记住。NAT将自动将数据传送到6200港。(请注意,传送到6200港的数据将重新定向。 )发送到此端口的其他 IP 数据会被 NAT 忽略), 因此 Clit A 与 Server S1 有连接 。

      基本知识可能为许多人所熟知,因此以下是重要部分。
      看看下面的情况:
      Server S1                                     Server S2
      18.181.0.31:1235                              138.76.29.7:1235
      |                                             |
      |                                             |
      +----------------------+----------------------+
      |
      ^  Session 1 (A-S1)  ^      |      ^  Session 2 (A-S2)  ^
      |  18.181.0.31:1235  |      |      |  138.76.29.7:1235  |
      v 155.99.25.11:62000 v      |      v 155.99.25.11:62000 v
      |
      Cone NAT
      155.99.25.11
      |
      ^  Session 1 (A-S1)  ^      |      ^  Session 2 (A-S2)  ^
      |  18.181.0.31:1235  |      |      |  138.76.29.7:1235  |
      v   10.0.0.1:1234    v      |      v   10.0.0.1:1234    v
      |
      Client A
      10.0.0.1:1234
      如果Clit A的首个Socket(与1234港连接的UDP Socket)将另一个UDP袋交给另一个服务器S2,
      有两种可能的结果。第一,NAT产生了一个新的会议。此外,还有一个港口号(例如,本次会话被指定为编号(2001年6月)。另外第一,NAT产生了一个新的会议。然而,不会给出新的港口号。它仍在使用旧港口号6200。对称NAT是给上一个 NAT 命名的名称 。ConeNAT是后者的名称。预计Nat将是第二个。呵呵,如果这是你的第一个NAT结果,很多P2P软件很有可能被破损。(可以庆幸的是,目前,绝大多数的NAT都属于这一类。(Cane NET)

      正如我们可以看到的那样,NAT使得将一个子网中的计算机与外部世界连接起来变得简单(NAT相当于透明、联网和离线机器不需要知道NAT)。
      另一方面,外部计算机在其次级网络(P2P所需要的)上进入计算机比较困难。
      那么,如果我们想从外部将数据电文传送到内联网计算机,我们又能做些什么呢?首先,我们必须在网里挖个洞此洞无法从外部访问 。只有内联网主机才能访问。在这个坑里有一条路。例如,一个 UDP 软件包是从一个内部主机(例如:)发送到外部IP地址(例如:)。因此,在这个内部网上 NAT 装置上有一个“洞”的方向。通过这个洞,UDP HolePunch技术 将能够连接到内部网络。但是,其他IP无法利用这一缺陷。

      呵呵,现在是我们集中精力处理P2P的时候了。有了上面的理论,提供两个内联网主机的最后阶段是,任何一方都不得自行提出连接请求。我不知道互联网的地址是谁, 但我不知道它是谁。那么,我们怎样才能摆脱这种困境呢?我们需要第三方的协助才能与这两个情报机构联系。
      现在让我们审查一个P2P方案的程序,例如:

      Server S (219.237.60.1)
      |
      |
      +-----------------------+----------------------+
      |                                             |
      NAT A (外联网 IP:) NAT B (外联网 IP:) NAT C (外联网 IP:) NAT D (外联网 IP:) NAT E (外联网) NAT E (外联网)
      (内联网IP:) (内联网IP:) (内联网IP:) (内联网IP:) (内联网IP:)
      |                                             |
      Client A  (192.168.0.20:60000)             Client B (192.168.0.10:40000)

      首先,客户登录服务器,目前,NATA为会议拨出了60 00个港口。因此,ServerS从客户服务局获得的地址是:60 00。这是Clit A的街道地址同样,ClieentB 连接到服务器S 。非关税壁垒目前为会议港口分配了40,00个港口。因此,ServerS收到了地址B:40 00。
      此时,服务器可通过Cliet A和Cliet B与服务器进行联系。A类人目前无法直接向B类人直接发送信息。因此,他可以从服务器获得B的地址:40,00。客户 A 是否向这个地址发送信息,客户 B 接收到哪个地址?答案是不行,如果这是唯一能把消息传出去的方法NATB将放弃这一信息,因为它是不必要的。为了安全,大多数国家税务局从事处置作业。那该怎么办呢?首先,我们认为S服务器的价值如下:7,00。当客户端 A( : 600) 将数据包传输到 S服务器 S( : 700) 时 。S服务器是典型的数据接收器。因为它是一个外国类型的开放服务器端口。在服务器S收到数据包后,它将能够从ClineA(600)到外部通信(一个临时港口)获得临时电文。六万块就完了具体时间不同,一般而言,每30S次传送一个保持每视距的连接,以保证港口目前保持一个不间断的通信连接(Server S)。而同时,Cliet B (400) 也正在展开。
      S服务器传输心跳包。S服务器S(400)通知Cliet B(400)他无法这样做。如果您想要Cliant B (: 400) 向您提供检测包( 这个数据包更适合少数人使用),收到警报后,Cliet B (400) 向S服务器发送反馈包。上面写着从我这里向Cliant A(600)发送了一个侦测包。Server S在得到反馈后,将其转至Cliet A(600),然后退还给他。收到包件后,Cliet A (6,00) 将包件传送给想要的 Cliet B (4,00) 。此时连接已经打通,实现穿透。数据包将转发给Cliet B (400).
      因此,Cliet A (600) 进入内联网IP地址:

      正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式正式互联网上的一些人声称能够识别港口。不过成功率并不高,我提议在服务器上做另外,最好检查在发运之前是否进行了同样的NAT。也就是内网发内网,如果是,直接发送即可,它不必再通过网。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/19762.html

          热门文章

          文章分类