关于在内网服务器的思考。

目标:做一个网页服务器。

花生壳内网版本:

注册一个帐号。
记住你的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则只能中转。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值