赞
踩
关于QQ使用的协议:
事实上,QQ使用的协议包含了 UDP、TCP、HTTP这三种。
为什么QQ以 UDP为主,以TCP 为辅?
用 UDP的原因:
当发生网络抖动,网络极差时,TCP和UDP各自特点?
当网络极差、TCP的优势反而会成为劣势——
因为网络抖动的原因,应用层心跳超时(一般不依靠keepalive)应用层主动断掉socket之后TCP需要三次握手,才能够重新建立连接,一旦出现频繁的小抖动,就会使得带宽利用率降低。而等待四次挥手的时间,也会占用服务器上宝贵的资源。
UDP的优势是带宽的利用——
使用UDP对抗网络抖动,就是在应用层比TCP更快的探测和重传,一旦超过一定时间没有收到回复,客户端可以马上选择重试或者换一个IP:PORT重试(加入你的服务像QQ一样有多个接入),在服务端可果断的断掉的socket。
使用UDP实现一个面向连接的协议,这个协议可以很好的适应当前的网络环境和本身的业务。但凡事都有成本,成本就是你的应用层协议本身需要去实现抵抗网络异常带来的问题。例如乱序、例如业务数据的分片和重组,例如网络状态探测。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。