3
对等网络如何工作?
据我了解,除非我们知道路由器采用的路由机制,否则无法将数据包从网络外部发送到局域网中的计算机。 假设我们有一个如下所示的设置: 计算机A,IP 192.168.1.2(默认网关192.168.1.1) 计算机B,IP 192.168.1.3(默认网关192.168.1.1) 路由器C,IP 192.168.1.1(外部IP 1.1.1.1) 路由器D(外部IP 2.2.2.2) 计算机A,计算机B和路由器C属于同一局域网。Router-D希望将数据发送到Computer-A,但如果不通过Router-C,它就无法发送数据。 现在,如果目标端口为1000,则Router-C会将数据包转发至计算机A,而如果目标端口为2000,则将转发数据包至计算机B。但是,可以肯定的是,唯一知道此路由机制的设备就是路由器C!甚至计算机A或计算机B都不会知道,对吗? 因此,如果RouterD通过端口1000向Router-C发送数据包,则可以将数据包发送给Computer-A,但是RouterD如何知道通过端口1000发送数据包,而不是说端口1001? 像Bittorrent这样的点对点程序如何解决此问题?我能想到的唯一解决方案是让Router-D通过所有端口将数据包发送到Router-C ,以便将其转发到Computer-A,但是还有更好的解决方案吗?