关于在内网服务器的思考。
2015-07-08 12:48
183 查看
目标:做一个网页服务器。
花生壳内网版本:
注册一个帐号。
记住你的IP和客户端的端口。
你共享一个端口,则配置80:11125.
xiongyf--->你的IP。
服务器不会记录80:11125隐射。
发给你的客户端。
客户端再将11125解释为80。调用80端口。
假想前提:TCP通信。
缺点:所有数据通过花生壳服务器中转!
特点:服务器只要开一个监听端口为客户端服务。
对于DNS解析为你IP,是DNS服务器做的事情。
二级与名服务器解开你的IP后,还会返回给客户端吗?
应该不会,而是直接将数据重新封包,丢给服务器程序。IP+客户端口+数据(11125+数据)。
普通版:
注册一个花生壳。
给你一个帐户名。IP-》隅名。同时客户端会自动解你的IP。
说到底就是做了一个DNS服务器对射到你的IP。
对于端口。你可以将本地的服务端口绑定到公网端口。
NAT的时候,源IP会被修改,端口也会被改。就是做了个隐射。
外网访问的时候都是通过地址+端口---》与名+端口。
这个时候数据走的不是花生壳服务器通道。而是直接走自己的通道了(还是要和客户端打交道)
缺点:如果小区用的宽带,很可能不是公网IP。这个时候搭建服务器的话,地址绑定就成了问题。
除非每级都进行绑定。
可以改善:
让内网版本修正。
只做狱名解析。
对于数据的传输,还是点对点。
那如何知道自己的服务起80端口对应公网的端口呢?
显然如果接的不是一级公网,此法是不能实现的(除非你能对所有NAT的路由器控制绑定)。
那如何作呢?
如果我是花生壳的设计者。
我会将客户端用UDP实现。
这样我能实现点对点。花生壳将通信双方的IP:PORT告诉对方。双方后面就可以进行直接通信了。
当然都是要通过客户端来传送数据。但是是点对点了。后面的数据不是通过服务器中转。
总结:用UDP实现点对点。
用TCP则只能中转。
花生壳内网版本:
注册一个帐号。
记住你的IP和客户端的端口。
你共享一个端口,则配置80:11125.
xiongyf--->你的IP。
服务器不会记录80:11125隐射。
发给你的客户端。
客户端再将11125解释为80。调用80端口。
假想前提:TCP通信。
缺点:所有数据通过花生壳服务器中转!
特点:服务器只要开一个监听端口为客户端服务。
对于DNS解析为你IP,是DNS服务器做的事情。
二级与名服务器解开你的IP后,还会返回给客户端吗?
应该不会,而是直接将数据重新封包,丢给服务器程序。IP+客户端口+数据(11125+数据)。
普通版:
注册一个花生壳。
给你一个帐户名。IP-》隅名。同时客户端会自动解你的IP。
说到底就是做了一个DNS服务器对射到你的IP。
对于端口。你可以将本地的服务端口绑定到公网端口。
NAT的时候,源IP会被修改,端口也会被改。就是做了个隐射。
外网访问的时候都是通过地址+端口---》与名+端口。
这个时候数据走的不是花生壳服务器通道。而是直接走自己的通道了(还是要和客户端打交道)
缺点:如果小区用的宽带,很可能不是公网IP。这个时候搭建服务器的话,地址绑定就成了问题。
除非每级都进行绑定。
可以改善:
让内网版本修正。
只做狱名解析。
对于数据的传输,还是点对点。
那如何知道自己的服务起80端口对应公网的端口呢?
显然如果接的不是一级公网,此法是不能实现的(除非你能对所有NAT的路由器控制绑定)。
那如何作呢?
如果我是花生壳的设计者。
我会将客户端用UDP实现。
这样我能实现点对点。花生壳将通信双方的IP:PORT告诉对方。双方后面就可以进行直接通信了。
当然都是要通过客户端来传送数据。但是是点对点了。后面的数据不是通过服务器中转。
总结:用UDP实现点对点。
用TCP则只能中转。
相关文章推荐
- STM8S---TIM2产生PWM与TIM1定时器周期中断的时钟问题
- 取出动态Map中的key值放入List
- 使用PowerShell获取当前主机内存使用量和总量的方法
- CentOS最小化安装后AR8151网卡驱动未安装解决办法
- OSSIM下ISO 27001信息安全管理系统认证
- 浅析 Ant 脚本部署 RCP 项目
- Android 之一个简单计算器源代码
- A/B(扩展欧几里得算法)
- 优步uber司机怎么注册不了?注册优步司机问题要点
- 臣服不代表解放你的手
- 细说Angular ng-class
- 台大机器学习基石笔记(一)——机器学习可行性
- 花生壳宣布网站的网址直接绑定到详细的项目——jboss版本
- except as a control flow mechanism
- mysql中统计精度问题
- mysql概念解释
- bsh for android : 北京
- iOS 开发 admob 使用报错
- STL - deque(双端队列)
- STL - deque(双端队列)