P2P的 NAT穿越系统的功能设计
建立P2P的Session:
(1)客户端A最初不知道如何向客户端B发起连接,于是客户端A向集中服务器发送消息,请求集中服务器帮助建立与客户端B的UDP连接;
(2)(2)集中服务器将含有客户端B的外网和内网的地址二元组发给客户端A,同时,集中服务器将包含有客户端A的外网和内网的地址二元组信息的消息也发给客户端B。这样一来,客户端A与客户端B就都知道对方外网和内网的地址二元组信息了。
(3)当客户端A收到由集中服务器发来的包含客户端B的外网和内网的地址二元组信息后,客户端A开始向客户端B的地址二元组发送UDP数据包,并且客户端A会自动锁定第一个给出响应的客户端B的地址二元组。同理,当客户端B收到由集中服务器发来的客户端A的外网和内网地址二元组信息后,也会开始向客户端A的外网和内网的地址二元组发送UDP数据包,并且自动锁定第一个得到客户端A回应的地址二元组。由于客户端A与客户端B互相向对方发送UDP数据包的操作是异步的,所以客户端A和客户端B发送数据包的时间先后并没有时序要求。