zoukankan      html  css  js  c++  java
  • 服务器如何识别路由器下的多台机器?

    简单点说:
    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     这种端口很大的一般就是内网通过路由设备等上网的内网用户(比如网吧)
  • 相关阅读:
    IDEA效率快捷键
    常用文件/文件夹操作
    git log状态下退出方法
    ImageList 构造函数
    ImageList 控件
    【转】图像分割代码合集
    【转】图像分割论文及代码资源汇总
    SLIC 算法
    c/c++内存分配详解
    c++内存分配
  • 原文地址:https://www.cnblogs.com/osroot/p/1536509.html
Copyright © 2011-2022 走看看