关闭

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

148人阅读 评论(0) 收藏 举报

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

花生壳内网版本:

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









0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33007次
    • 积分:953
    • 等级:
    • 排名:千里之外
    • 原创:62篇
    • 转载:17篇
    • 译文:0篇
    • 评论:3条
    最新评论