udp之nat穿透的困惑
nat穿透实现:
【A】
内网地址【内A】192.168.1.176:25789
通过stun服务器查询映射到的外网地址为
外网地址【外A】212.10.55.124:26559
UDPsocketA绑定到【内A】每30s发送心跳
TCPsocketA绑定到【内A】开始connect()
【B】
内网地址【内B】192.168.0.121:15946
通过stun服务器查询映射到的外网地址为
外网地址【外B】1.126.52.212:49497
UDPsocketB绑定到【内B】每30s发送心跳
TCPsocketB1在【内B】上监听, 当接受到远程连接时返回一个TCPsocketB2, 远程地址是212.10.55.124:2028.
疑问之一:TCPsocketB2和TCPsocketA能互相发送和接收数据, 但为什么接收到的端口是2028, 而不是26559呢?
而且, 双方断开几次以后, 使用原来的内网地址和外网映射地址后, 接收到的端口分别是2029, 2030, 2031, 不管怎样都不是26559.
疑问之二:A是用【内A】发送UDP心跳到【外B】的, B是用【内B】发送心跳到【外A】的, 这个洞应该在双方的路由器上开好了, 但是212.10.55.124:2028没有经过打洞过程, 是怎么连接到B的呢?
udp之nat穿透的困惑的更多相关文章
- NAT穿透解决方案介绍
最近公司要实现在各种网络环境下面的多屏互动(机顶盒.android phone.iphone及PC端)的需求:由于IP地址资源有限的原因,目前我们使用的各种终端设备都位于局域网后面也就是多台设备共享同 ...
- 使用TCP协议的NAT穿透技术
一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的).但是,众所周知的是,UDP是一个无连 ...
- 解决外网与内网或内网之间的通信,NAT穿透
在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行.问题就在于NAT.首先介绍下NAT. NAT的作用NAT(Network Address Translato ...
- NAT穿透进行P2P文件传输
实现一个简单的p2p文件传输,主要解决NAT穿透问题,使用tcp协议传输. NAT背景介绍 简介 NAT(Network Address Translation ,网络地址转换) 是一种广泛应用的解决 ...
- NAT穿透解决
1.各种网络环境下的P2P通信解决方法: (1)如果通信双方在同一个局域网内,这种情况下可以不借助任何外力直接通过内网地址通信即可: (2)如果通信双方都在有独立的公网地址,这种情况下当然可以不借 ...
- NAT穿透的详解及分析
一.什么是NAT?为什么要使用NAT?NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与内网通信时怎么将内网私有IP地址转换为可在网络中传播的合法IP地址.NAT的出现完美地解决了lP地 ...
- 使用TCP协议的NAT穿透技术(转)
其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之. 一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基 ...
- 网络协议之NAT穿透
NAT IPv4地址只有32位,最多只能提供大致42.9亿个唯一IP地址,当设备越来越多时,IP地址变得越来越稀缺,不能为每个设备都分配一个IP地址.于是,作为NAT规范就出现了.NAT(Networ ...
- NAT穿透的详细讲解及分析.RP
原创出处:https://bbs.pediy.com/thread-131961.htm 转载来源: https://blog.csdn.net/g_brightboy/article/details ...
随机推荐
- hibernate 映射<四>多对一双向映射
学生和班级的例子来说,多个学生可以对应一个班级. 1.站在学生角度来说,学生就是多端.那么我们可以通过多对一来维护2者的关系. 2.站在班级的角度来说,班级就是一端.那么我们可以通过一对多啦维护2者的 ...
- 什么时候使用NO_UNNEST
select * from test a where object_id in (select department_id from hr.dept_1 dept where department_i ...
- 【2013南京区域赛】部分题解 hdu4802—4812
上周末打了一场训练赛,题目是13年南京区域赛的 这场题目有好几个本来应该是我擅长的,但是可能是太久没做比赛了各种小错误代码写的也丑各种warusn trush搞得人很不爽 全场题之一的1002也没有想 ...
- 基准测试之netperf
使用 server端 [root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/netperf] #netserver -p 10001 Starti ...
- Python爬虫实战(一)
今天,学习了爬虫的基础知识,尝试着写了本人的第一个小爬虫——爬取糗百上的热门段子.一开始自己做的是爬取1-35页,每页20条段子的作者.点赞数和内容,代码很简陋,贴在下面: #!/usr/bin/en ...
- ios 数组倒序和数组转字符串
NSMutableArray *array = [NSMutableArray arrayWithObjects:",nil]; NSArray* reversedArray = [[arr ...
- Server Job: error: String or binary data would be truncated. The statement has been terminated.
"String or binary data would be truncated. The statement has been terminated" most probabl ...
- MySQL删除外键定义的方法
MySQL外键在定以后,如果我们不再需要这个外键,可以进行删除操作,下面就为您介绍MySQL删除外键定义的方法,供您参考. 不知道大家有没有发现,在定义外键的时候articles.member_id外 ...
- Win8.1OS64位oracle11安装配置及PL/SQL Developer怎样连接64位oracle
Oracle 为什么选择oracle 1.oracle可以在主流的平台上执行,而相对于sql server仅仅支持windows,而windows在wr手里攥着呢,所以你懂的.在安全性上来讲,非常多地 ...
- Verilog之i2c合约
说明:i2c乔布斯.有这么多的事情在网上参考. 时刻:2014年5一个月6周二星期 1.问题叙述性说明: 正如图.已知的时钟clk为100k,rst为复位信号.上升沿有效,基于Verilog HDL或 ...