UDP打洞原理总结
来源:互联网 发布:乐福数据 编辑:程序博客网 时间:2024/06/05 02:07
一:UDP打洞的用途
当你编写的程序,需要两个局域网能够进行通信的时候,UDP打洞不失为一种好方法。简而言之,UDP打洞是为了实现两个局域网进行直接通信。 两个局域网为什么不能通信呢?(这里所说的是两个不同的局域网),主要原因就是局域网中的ip不能被互联网认识,与外网交互必须通过NAT服务。 那什么是NAT服务呢?NAT服务一般继承在路由器,防火墙,或者单独的NAT设备中,英文全称为Network Address Translation.顾名思义,NAT服务的作用就是网络地址转换。 简而言之,由于中国区域分配的ip太少,我们只有利用NAT服务来实现很多电脑使用一个ip的效果,许多共用一个上网ip的电脑组成了一个局域网,例如家里的路由器可以提供家里的手机,电脑,等一起上网。 NAT服务的原理:当一台局域网的主机想连接互联网的时候,这台主机向往常一样,把自己的消息封装好,然后填上要发送的ip地址,然后发给局域网里的交换机,交换机收到消息后对ip地址进行判断,发现ip地址不在本局域网,交换机就会把消息发送给网关,(网关相当于自己局域网通向internet的大门,这个时候nat服务发生作用,)把这台主机的内网ip和端口号封装成可以在外网使用的ip和端口号,并记录下来,这个主机就对应这个ip和端口号,然后把消息发送出去,外边的主机发送消息给这台主机的时候,他们发送过来的消息的ip必须是刚才封装好的ip和端口号,然后网关接收到之后进行查询,就知道对应的是本局域网的那一台主机了,然后把消息发给它。从而实现局域网主机上网的功能。
二:UDP打洞的原理
在上面的解释中我们已经知道NAT的用途和原理,那要怎样实现两个局域网之间的通信呢?需要借助一个中间服务器, 第一:两台局域网主机分别先和服务器连接,服务器获得两边的经过NAT转换的ip和端口号。 第二:其中一台局域网主机,向服务器发送消息,告诉服务器他要和另一台局域网进行打洞,服务器接收到消息会把主动要求连接的一方的ip和端口号发给被动的一方。 第三:被动的一方收到之后先给这个ip和端口发送一个消息,但是主动的一方不会收到消息,消息会被NAT丢弃,因为主动的一方不曾给被动的一方发送过消息,NAT没有注册这条通道,所以不认识被动主机的ip。然后被动的主机再给服务器发送个消息,让服务器告诉主动的主机这边已经注册好了NAT可以进行通信。 第四:主动的主机这时候拿到了服务器发给它的被动的主机的ip和端口号,然后发送消息,被动的主机就可以进行接收了。两边就建立了一个类似洞口一样的东西,这就是UDP打洞。
由于本人才疏学浅,表达能力有所欠缺,有疑问直接留言吧,希望能够帮到你。
阅读全文
1 0
- UDP打洞原理总结
- 网上大多数原理总结,UDP打洞原理.
- 网上大多数原理总结,UDP打洞原理
- UDP"打洞"原理
- UDP"打洞"原理
- UDP"打洞"原理
- UDP打洞原理
- UDP打洞原理
- UDP打洞原理
- UDP"打洞"原理
- UDP 打洞原理
- UDP打洞原理
- UDP打洞原理
- UDP打洞原理
- udp打洞原理
- UDP打洞原理
- UDP打洞原理
- UDP打洞原理
- 好用的下载器,不止有迅雷哟~
- k-近邻(KNN)算法
- 网易2018校招内推题目记录
- 树-堆结构练习——合并果子之哈夫曼树
- HDU 1030 Delta-wave(找规律)
- UDP打洞原理总结
- hdu 6045 Is Derek lying?
- 算法学习之旅,初级篇(27)-–逆转一个链表
- iOS原生二维码扫码实现(含蒙版和扫码动画)
- [HDU](2188)选拔志愿者 ---巴什博弈(博弈)
- Oracle笔记3
- SQL获取数据库名,表名,列名,说明等信息
- 分页(Pagination)
- meta标签的方法