很多人讨论过,QQ传文件是用TCP的,而TCP又是不能穿透NAT的,那么为何现版本的QQ可以互相传送文件呢(两人位于NAT后)?

笑天居士 2005-03-02 10:12:21
很多人讨论过,QQ传文件是用TCP的,而TCP又是不能穿透NAT的,那么为何现版本的QQ可以互相传送文件呢(两人位于NAT后)?
...全文
827 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
BraveHeart2222 2005-03-31
  • 打赏
  • 举报
回复
ding
stevens2009 2005-03-30
  • 打赏
  • 举报
回复
m
chinaseen 2005-03-29
  • 打赏
  • 举报
回复
刚才又进行一次,在一个VLAN内两台电脑进行文件传输,发现用的是TCP直连,并非是UDP协议.我们初步推测这样做是为了稳定性考虑的,因为分组发生了丢失,则可以用TCP协议可以进行重传.有点类似FTP进行大量数据传送.如果用UDP进行传送,发生了数据报丢失,则会造成严重的不稳定性.
h0 2005-03-29
  • 打赏
  • 举报
回复
本人拙见:
1、不管是TCP还是UDP,他们都是属于传输层。
2、TCP是面向连接的可靠传输,而UDP则是非连接的不可靠传输。
3、传输层协议在我们日常编程的过程中一般与Socket对应,许多高级语
言在此基础上还做了进一步封装。
4、在TCP/UDP编程中,必须指明对方的IP和端口号。
5、QQ中既用了TCP,也用了UDP!在处理NAT时,对于每一个内部IP,在请求时,都在会QQ服务器
中留下一个有效的外部IP+Port!这个外部IP就是那个内网的服务器IP,而端口号则映射子网中
的某一台机器。QQ服务器就通过那个IP来找到双方所在的服务器,再通过端口号来定位相应子
网的计算机,从而实现双方通信的。
chinaseen 2005-03-29
  • 打赏
  • 举报
回复
我们今天用ethereal抓包工具对使用QQ的情况进行了监控.所处的网络是可与外网相连的校园局域网.如果是与属于局域网的QQ通信的话就不经过QQ服务器直接通信,否则就要经过QQ服务器转发数据.但发现QQ都涉及了TCP和UDP两种协议.
  • 打赏
  • 举报
回复
RUDP
qrlvls 2005-03-28
  • 打赏
  • 举报
回复
http://midcom-p2p.sourceforge.net/
qrlvls 2005-03-28
  • 打赏
  • 举报
回复
http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt
qrlvls 2005-03-28
  • 打赏
  • 举报
回复
其实使用RawSocket也是可以实现的,只是比UDP稍复杂一点而已
eradium 2005-03-28
  • 打赏
  • 举报
回复
使用udp传文件的时候,肯定是要在上层的应用层协议里面使用类似tcp的东西来保证数据的完整性的(可以直接使用tcp over udp,也可以用其他自定义的协议)。
qq传文件和视频都是tcp和udp都可以使用的。从qq的提示信息可以看到有tcp中转,udp中转,udp直连三种方式。tcp直连除非是能在nat上开固定的端口映射(或者使用uPnp之类的自动开指定的端口映射),否则靠双发同时发起连接是不可能的(这个概率可能比彗星撞地球的概率还少)。
Juchiyufei 2005-03-28
  • 打赏
  • 举报
回复
学习ing
starcbh 2005-03-07
  • 打赏
  • 举报
回复
tcp同步打开可以做,就是双方同时发出三方握手的seq----sqe-ack包……!!

其实和udp差不多
fuju 2005-03-07
  • 打赏
  • 举报
回复
楼上的是不是开发 qq 的啊~~~
学习ing....
Daydreamnet 2005-03-07
  • 打赏
  • 举报
回复
是tcp和udp同时使用的。当tcp可以连接时是用tcp,当位于不同的NAT后面时是通过应用层用udp仿照tcp的模式进行运作,所以相对速度会慢。当是会员时才会实现服务器中转(顺便利用这个来显示一下会员优势吧。)楼上说的tcp同步打开的方法成功率是很低的,虽然说是存在可能性。而在应用层实现udp的序列发送则是完全可能的,不过对网络协议的功力要求相当的深。
barice 2005-03-07
  • 打赏
  • 举报
回复
在应用层用UDP来模拟TCP ??
可以提供參考文件嗎?謝謝..
bys_home 2005-03-06
  • 打赏
  • 举报
回复
同意楼上的说法!
thanksu 2005-03-03
  • 打赏
  • 举报
回复
QQ传文件是UDP的
不知道穿透NAT是什么意思
——————————————————————
私网穿越
arrowcy 2005-03-03
  • 打赏
  • 举报
回复
如果双方都在NAT之后的话,要通过服务器中转的
bbcharm 2005-03-03
  • 打赏
  • 举报
回复
TCP 应该是转发的吧
zhengda1936 2005-03-03
  • 打赏
  • 举报
回复
在应用层用UDP来模拟TCP应该还是做得到的吧。
加载更多回复(6)

4,387

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧