首先需要明白TCP UDP各自的概念以及区别

  1. tcp: 传输控制协议,全拼:Transmission Control Protocol 它是一个面向连接,可靠的传输协议
  2. udp: 用户数据报协议,全拼:User Datagram Protocol 它不是面向连接,不是可靠的传输协议, udp协议传输速度快
  3. tcp和udp都是传输层的两个传输协议
  4. tcp的特点:
    4.1 面向连接,间接验证对方ip的有效性
    4.2 可靠的传输
    4.2.1 应答机制:发送数据包完成以后,对方收到数据底层会回复
    4.2.2 超时重传:发送数据以后对方没有进行回复,会隔一段时间再次给对方发送数据,如果对方一直没有回复,那么会认为对方已经掉线了
    4.2.3 错误校验:如果收到的数据和之前发送数据包的序号不一致,会自动根据需要进行排序,如果收到重复的数据包,会把重复的数据包删除
    4.2.4 流量控制:使用tcp能保证接收数据的时候电脑不会卡死
    5. tcp和udp的不同点对比
    5.1 tcp 面向连接, udp不面向连接
    5.2 tcp 能保证数据有效和有序的传输,udp保证不了
    5.3 tcp 有超时重传,udp没有
    5.4 tcp 有错误校验,如果出现数据包顺序不一致会自动排序,还有如果收到数据包重复会自动删除重复的数据包,udp没有
    5.5 tcp 有流量控制 udp没有
    5.6 tcp 需要建立连接然后需要资源开销要大, udp不需要建立连接资源开销小
    — 扩展
    5.7 tcp 适合发送大量的数据,tcp每次发送的数据包理论上没有上限控制,udp每次发送的数据包不能超过64k
    5.8 tcp 应用场景: 文件上传和下载、浏览器上网,绝大多数应用程序都是用tcp协议,udp应用场景: 发送广播消息(飞秋上线),音视频传输(qq和微信),包括共屏软件
    5.9 tcp 发送数据的时候需要建立连接,udp不需要建立连接,udp发送速度比tcp发送速度要快

对于 QQ微信发送消息过程中既有TCP参与还有UDP 同时出现P2P

不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式登陆的时候,端口是8000。

UDP协议是无连接方式的协议,它的效率高,速度快,占资源少,但是其传输机制为不可靠传送,必须依靠辅助的算法来完成传输控制。QQ采用的通信协议以UDP为主,辅以TCP协议。由于QQ的服务器设计容量是海量级的应用,一台服务器要同时容纳十几万的并发连接,因此服务器端只有采用UDP协议与客户端进行通讯才能保证这种超大规模的服务。

QQ客户端之间的消息传送也采用了UDP模式,因为国内的网络环境非常复杂,而且很多用户采用的方式是通过代理服务器共享一条线路上网的方式,在这些复杂的情况下,客户端之间能彼此建立起来TCP连接的概率较小,严重影响传送信息的效率。而UDP包能够穿透大部分的代理服务器,因此QQ选择了UDP作为客户之间的主要通信协议。

采用UDP协议,通过服务器中转方式。因此,现在的IP侦探在你仅仅跟对方发送聊天消息的时候是无法获取到IP的。大家都知道,UDP 协议是不可靠协议,它只管发送,不管对方是否收到的,但它的传输很高效。但是,作为聊天软件,怎么可以采用这样的不可靠方式来传输消息呢?于是,腾讯采用了上层协议来保证可靠传输:如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。如此来保证消息可以无遗漏传输。之所以会发生在客户端明明看到“消息发送失败”但对方又收到了这个消息的情况,就是因为客户端发出的消息服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。

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

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

同时你可以自己验证

首先通过任务管理器找到QQ的进程号,然后在命令提示符中输入:netstat -ano 就可以显示所有进程所使用的端口号。

分析QQ微信使用的是UDP还是TCP协议相关推荐

  1. Python教程之udp和tcp协议介绍

    UDP介绍 UDP - 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地.由于UDP在传输数据 ...

  2. UDP与TCP协议详解

    目录 前言 再谈端口号 端口号划分规范 常见的知名端口号 UDP协议 UDP协议段格式 UDP协议的特点 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 TCP协议 TCP协议段格式 TC ...

  3. UDP和TCP协议包大小的计算-转

    UDP和TCP协议包大小的计算 UDP一次发送数据包的大小,TCP一次发送数据包的大小. MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+S ...

  4. UDP协议转换TCP协议

    UDP协议转换TCP协议 项目背景:项目类似中间件 作用是数据搬运 ,可以搬运文件 ,视频,音频 .从互联网把数据搬运到内网中.有的时候拉取视频流数据的时候 使用UDP拉取会存在丢包的情况 通过TCP ...

  5. 计算机网络【UDP与TCP协议(三次握手、四次挥手)】

    计算机网络[UDP与TCP协议(三次握手.四次挥手)]

  6. 计算机网络之UDP与TCP协议(三次握手, 四次挥手)

    ⭐️前面的话⭐️ 本文介绍计算机网络中有关传输层协议的知识--UDP与TCP协议,在TCP协议中,为了保证数据的可靠传输,引入了十大保证可靠性的机制,即确认应答,超时重传,连接管理(三次握手,四次挥手 ...

  7. 网络协议分析 | 传输层 :史上最全UDP、TCP协议详解,一篇通~

    文章目录 UDP 概念 格式 UDP如何实现可靠传输 基于UDP的应用层知名协议 TCP 概念 格式 保证TCP可靠性的八种机制 确认应答.延时应答与捎带应答 超时重传 滑动窗口 滑动窗口协议 后退n ...

  8. 计算机网络基本概念<三>UDP和TCP协议详解

    目录 谈谈传输层: UDP协议 首部说明 回显服务器代码案例 echoServer TCP协议 TCP和UDP区别 UDP和TCP都是传输层的重要协议,也是学习网络的必备内容了,接下来这篇我们就详细分 ...

  9. 网络编程、UDP、TCP协议

    文章目录 网络编程 网络编程概述[理解] 计算机网络 网络编程 网络编程三要素[理解] IP地址 端口 协议 IP地址[理解] IP地址:是网络中设备的唯一标识 InetAddress[应用] 相关方 ...

最新文章

  1. FPGA的设计艺术(12)使用parameter构建可重用的逻辑设计
  2. linux sysctl重启服务,Linux /etc/sysctl.conf重启没有生效
  3. python flask(1)
  4. 自带数据线的迷你数显充电宝,好用到哭
  5. 用c语言程序编写一份试卷,C语言程序设计试题
  6. 集成Silverlight 2的AJAX框架 Visual WebGui
  7. Codeforces 837D 动态规划
  8. python小代码_python小代码之阶乘求和
  9. Windows应用替代方案接龙
  10. jQuery获取表单数据
  11. jxls遍历list时使用模板的批注语法
  12. 符号_特殊符号大全狐狸符号加字和复制
  13. display 属性
  14. 数据库三范式简单理解
  15. L1-034. 点赞 团体程序设计天梯赛GPLT
  16. 典型相关分析如何分析两组变量的关系
  17. 连接Mysql时,出现Establishing SSL connection without server's identity verification is not .......警告
  18. 微信小程序云开发新手教程——关于多人云开发和git版本管理
  19. 知识点 - 分拆数/整数拆分
  20. centos7自动获取ip命令_突然断网?专业分析宽带拨号和自动获取ip哪个好?

热门文章

  1. HDU 5963 朋友(找规律)
  2. 【算法leetcode每日一练】剑指 Offer II 080. 含有 k 个元素的组合 | 77. 组合
  3. 爬十格阶梯每次一步或两步_爬上信息阶梯
  4. 人生如梦,岁月无情。蓦然回首,才发现人活着是一种心情
  5. 通达OA 尝试一下进行通达OA的培训
  6. Proteus VSM Studio汇编 + 8位数码管时钟按键可调
  7. 【Windows脚本】打印机脚本1-添加打印机(无需物理打印机)
  8. 教你快速入门Excel-宏与VBA(下)
  9. iOS13升级后的第一感觉:旧版iPhone重生,并向您提供了20个隐藏功能!
  10. windows删除文件失败、文件访问被拒绝,需要system的权限