登陆采用TCP协议和HTTP协议,你和好友之间发送消息,主要采用UDP协议,内网传文件采用了P2P技术。

QQ对于普通用户是采用UDP协议,对于会员用TCP协议

总来的说:

1.登陆过程,客户端client 采用TCP协议向服务器server发送信息,HTTP协议下载信息。登陆之后,会有一个TCP连接来保持在线状态。
2.和好友发消息,客户端client采用UDP协议,但是需要通过服务器转发。腾讯为了确保传输消息的可靠,采用上层协议来保证可靠传输。如果消息发送失败,客户端会提示消息发送失败,并可重新发送。

3.如果是在内网里面的两个客户端传文件,QQ采用的是P2P技术,不需要服务器中转。

首先,QQ并不是完全基于UDP实现。比如在使用QQ进行文件传输等活动的时候,就会使用TCP作为可靠传输的保证。
使用UDP进行交互通信的好处在于,延迟较短,对数据丢失的处理比较简单。同时,TCP是一个全双工协议,需要建立连接,所以网络开销也会相对大。如果使用QQ语音和QQ视频的话,UDP的优势就更为突出了,首先延迟较小。最重要的一点是不可靠传输,这意味着如果数据丢失的话,不会有重传。因为用户一般来说可以接受图像稍微模糊一点,声音稍微不清晰一点,但是如果在几秒钟以后再出现之前丢失的画面和声音,这恐怕是很难接受的。

TCP和UDP都是传输层协议,QQ的消息为应用层内容,需要通过传输协议封装传输。
TCP为可靠的面向连接协议,建立TCP连接需要两端三次握手协商(双方在线)。
UDP为不可靠的无连接协议,数据传输出去,无需连接两端,确认是否到达(对端可以不在线)。
QQ采用UDP协议提高了消息传输的效率,无需两端建立连接,即使对端不在线也能传输消息。

UDP协议是无连接方式的协议,它的效率高,速度快,占资源少,但是其传输机制为不可靠传送,

必须依靠辅助的算法来完成传输控制。QQ采用的通信协议以UDP为主,辅以TCP协议。由于QQ的服务器设计容量是海量级的应用,一台服务器要同时容纳十几万的并发连接,因此服务器端只有采用UDP协议与客户端进行通讯才能保证这种超大规模的服务。

QQ使用了什么通讯协议?为什么要这样做?为什么采用 UDP 协议,而不采用 TCP 协议实现?相关推荐

  1. tcp 协议中发送窗口的大小应该是_面试必备--TCP协议中的窗口机制滑动窗口详解...

    窗口机制分类 在TCP协议当中窗口机制分为两种: 1.固定的窗口大小 2.滑动窗口 固定窗口存在的问题 我们假设这个固定窗口的大小为1,也就是每次只能发送一个数据,只有接收方对这个数据进行了确认后才能 ...

  2. 分析QQ微信使用的是UDP还是TCP协议

    首先需要明白TCP UDP各自的概念以及区别 tcp: 传输控制协议,全拼:Transmission Control Protocol 它是一个面向连接,可靠的传输协议 udp: 用户数据报协议,全拼 ...

  3. QQ为何采用UDP协议?

    https://blog.csdn.net/liusandian/article/details/52238939 登陆采用TCP协议和HTTP协议, 你和好友之间发送消息,主要采用UDP协议, 内网 ...

  4. 网络编程懒人入门(三):快速理解TCP协议一篇就够

    1.前言 本系列文章的前两篇<网络编程懒人入门(一):快速理解网络通信协议(上篇)>.<网络编程懒人入门(二):快速理解网络通信协议(下篇)>快速介绍了网络基本通信协议及理论基 ...

  5. (转)理论经典:TCP协议的3次握手与4次挥手过程详解

    摘要: 本文将分别讲解经典的TCP协议建立连接(所谓的"3次握手")和断开连接(所谓的"4次挥手")的过程. 1.前言 尽管TCP和UDP都使用相同的网络层(I ...

  6. java基础篇18-网络编程的常识和基于TCP协议的编程模型

    1.网络编程的常识   目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺....   在吗?  1.1 七层网络模型   为了保证数据传递的可靠安全等等,ISO(国际标准委员会组 ...

  7. 使用TCP协议的NAT穿透技术 (转)

    其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之. 一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基 ...

  8. 【计算机网络】传输层 : 总结 ( TCP / UDP 协议 | 寻址与端口 | UDP 协议 | TCP 协议特点 | TCP 连接释放 | TCP 流量控制 | TCP 拥塞控制 ) ★★★

    文章目录 一.传输层 TCP / UDP 协议 ★ 二.寻址端口号 ★ 三.UDP 协议特点 四.UDP 协议首部格式 五.UDP 校验 六.TCP 协议 特点 ★ 七.TCP 报文段首部格式 八.T ...

  9. 【计算机网络】传输层 : TCP 协议 ( TCP 协议特点 | TCP 报文段首部格式 | TCP 报文段控制位 )

    文章目录 一.TCP 协议 特点 二.TCP 报文段首部格式 三.TCP 报文段首部 666 控制位 一.TCP 协议 特点 TCP 协议 特点 : ① 面向连接 : TCP 协议的连接是 " ...

最新文章

  1. 阿里云前端周刊 - 第 13 期
  2. adb shell input text 完美支持中文输入
  3. 《大道至简》第四章内容总结
  4. phpmyadmin 无法载入 mysql 扩展_phpMyAdmin“无法载入mysql扩展,请检查PHP配置”解决方法...
  5. 只需要30秒就可以做的30件事情:你会选择哪一件来改变世界?
  6. axure原型怎么让文字自动换行_理解「回车」和「换行」,纠正数据输入过程中的坏习惯...
  7. 转换成的jar文件接收后台的信息乱码cmd解决办法
  8. java 开源框架集
  9. java可以进行爬虫吗_java能写爬虫程序吗
  10. 充电速度公式_锂电充电时间计算公式
  11. matlab求fft频谱峰值程序,用FFT对信号作频谱分析Matlab程序
  12. 下方点击出项上方对应的插件_魔兽世界MiDKP3.0插件使用说明
  13. MTK平台TP驱动详解
  14. 解码上市银行手机APP排行 兴业获评分最高
  15. screenX、client X、pageX、offsetX、layerX
  16. 微信开发 缓存Storage
  17. 二级建造师继续教育留念
  18. 文档在线预览产品系列-解决方案篇
  19. python:实现连接mysql数据库(附完整源码)
  20. JBOSS EAP 6 系列七 JPA/hibernate

热门文章

  1. [codeigniter]CI中使用pChart绘制图表,已测通过
  2. Thinkphp中import的几个用法详细介绍
  3. 研究发现大部分企业没有在云端采用Office 365
  4. CentOS6.5下安装Apache2.4+PHP7
  5. BZOJ 3101: N皇后 构造
  6. CSS实现垂直居中的5种思路
  7. 心理成熟的十五条标准(转)
  8. ASP.NET2.0实现无刷新客户端回调
  9. PHP中常用的正则表达式函数
  10. CentOS 7最小化安装步骤