服务器如何识别路由器下的多台机器?

简单点说:

INTERNET通讯不但需要一个唯一的IP还需要一个端口,例如我们经常看到的 www.xxx.com:8080 这里冒号后面的就是端口,只有两个都齐全的时候才可以完成通讯.

你说的这种情况很常见比如网吧几乎都是,原理也很简单.

首先需要明白一个封包的概念.

Internet 上的数据其实都是封装成包的形式发送出去的,而这个包有一个头部,而且这个头部有固定长度,举个形象的例子,假设我们需要寄一个包裹出去,我们就需要用邮局的箱子把包裹装起来并在上面写明接收人等信息,这里的封包其实是一个道理,而所谓头部信息就是一些地址信息等内容.这样我们就好理解了.

首先假设我登陆QQ,这时QQ程序会用本地4000(默认)端口发送出请求,这时封好的包到里路由设备,路由器改写了这个包的源地址(这个是IP头部的一个信息,表示了发包人的地址)因为你创建这个包的时候地址是相对内网的,而路由则将其改为公网的地址,并且将端口也改了,而路由随机生成一个端口将改好的包发送出去,这样QQ服务器返回信息到路由的发送数据用的端口,而路由再将这个端口返回给内网内部,所以表面看似乎没有影响,

当多个用户时原理是一样的只是路由随机生成N个端口来通讯.

如果你用珊瑚虫的QQ就比较明显,你看对方IP会看到这种

218.XX.XX.XX:4000     这种4000端口或者 4001 (挂两个QQ就是 4001)

这种一般就是公网用户

而比如这种

218.XX.XX.XX:16484     这种端口很大的一般就是内网通过路由设备等上网的内网用户(比如网吧)

你可能感兴趣的:(服务器)