计算机网络基础知识(五)——什么是TCPUDP协议?图文并茂的方式对两大传输层协议进行从头到尾的讲解

news2024/12/23 19:33:18

TCP和UDP协议是TCP/IP协议的核心。 TCP 传输协议:TCP 协议是一TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用
—— 摘自《百度百科》

本文一共 6498 字,建议先点赞收藏进收藏夹里吃灰( b u s h i ),以便复习观看 \color{pink}{本文一共6498字,建议先点赞收藏进收藏夹里吃灰(bushi),以便复习观看} 本文一共6498字,建议先点赞收藏进收藏夹里吃灰(bushi),以便复习观看

01 | 📕 什么是 T C P ? \color{red}{什么是TCP?} 什么是TCP📕

在这里插入图片描述

TCP,全称为传输控制协议(Transmission Control Protocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。它用于在网络中的通信应用程序之间创建可靠的、端到端的数据传输连接。

特点

TCP协议的主要特点包括:

  1. 面向连接:在使用TCP进行通信前,需要先建立连接,客户端和服务器之间交换控制信息以确保两者都准备好了再发送数据。通过三次握手(SYN、SYN-ACK、ACK)来实现建立连接的过程。在通信完成后,还需要通过四次挥手(FIN、ACK-FIN、ACK、ACK-FIN)关闭连接。

  2. 可靠性:TCP在数据传输过程中能够保证数据的可靠性,它通过序列号、确认应答、重传机制等手段来避免数据传输中的错误和丢失,确保接收方收到的数据与发送方发送的数据一致。

  3. 基于字节流:TCP面向的是一系列的字节流而不是固定大小的数据块,因此它可以自动将应用程序传输的高层数据分割成大小合适的报文段,同时也可以对接收方接收到的报文段进行组装。

  4. 支持多路复用:通过端口号来标识进程或应用程序,TCP支持多路复用来实现在一个物理链路上同时传输多个应用程序的数据。

总之,TCP协议是一种可靠的传输层协议,适用于对数据传输可靠性要求较高的场景(如文件传输、电子邮件传输等)。

三次握手 && 四次挥手

利用TCP在源主机和目的主机之间建立和关闭连接操作时,均需要通过三次握手来确认建立和关闭是否成功。三次握手方式如图所示,它通过“序号/确认号”使得系统正常工作,从而使它们的序号达成同步。TCP建立连接的三次握手过程如下。

  • 三次握手

在这里插入图片描述

  • 第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。

  • 第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。

  • 第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

  • 四次挥手
    在这里插入图片描述

中断连接端可以是客户端,也可以是服务器端

  • 第一次次挥手:客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着关闭连接,可以继续发送数据。

  • 第二次挥手:服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。

  • 第三次挥手:当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。

  • 第四次挥手:客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手

超时重传

在这里插入图片描述

TCP的超时重传机制是指在传输数据过程中,如果发送方没有收到对端的确认消息,就会触发一个超时计时器。当这个计时器超过设定的时间阈值时,发送方就会重新发送之前未被确认的数据。以下是详细的步骤:

  1. 发送方将数据分成一个个的报文段,并发送给接收方。

  2. 接收方收到报文段后,会向发送方发送一个确认消息(ACK),表示已经成功接收到了该报文段。

  3. 如果发送方在一定时间内没有收到接收方的确认消息,就会触发一个计时器,等待一段时间(即超时时间)。

  4. 如果在超时时间内发送方收到了接收方的确认消息,则表明数据已经成功发送,发送方会关闭计时器并等待下一个数据包的发送。

  5. 如果超时计时器到期但是发送方还没有收到确认消息,则发送方会将未确认的数据再次发送给接收方。

  6. 如果发送方连续多次都没有收到确认消息,则会认为连接已经失效,并关闭连接。

需要注意的是,TCP的超时重传机制会增加网络延迟和带宽利用率。因此,TCP使用了一些优化策略,比如快速重传和拥塞控制,以减少重传的次数和减小网络拥塞的影响。

滑动窗口

在这里插入图片描述

TCP滑动窗口机制是一种流量控制机制,用于在数据传输期间动态调整发送方和接收方之间的数据流量。具体来说,它允许发送方在接收到确认确认(ACK)之前连续发送多个数据包,并根据接收方反馈的窗口大小信息调整其发送速率。

滑动窗口的大小由接收方设置,它指定了可以接受的未确认字节数的最大值。当发送方发送一个数据包时,它会将该数据包的序列号添加到滑动窗口中,并等待接收方发送确认消息。如果接收方成功接收到数据包并确认,发送方会将滑动窗口往前移动,允许发送更多数据包。如果发送方没有收到确认消息,它将重传该数据包,并等待一段时间再次发送。

滑动窗口机制还可以通过使用选择确认(selective acknowledgements)来进一步优化性能。选择确认允许接收方标记已成功接收的特定数据包,而不是只确认已接收所有数据包的最高序列号。这样,发送方可以避免重传所有数据包,从而节省网络带宽和延迟。

02 | 📙 什么是 U D P ? \color{orange}{什么是UDP?} 什么是UDP📙

在这里插入图片描述

UDP,全称为用户数据报协议(User Datagram Protocol),是一种无连接的、不可靠的、基于数据报的传输层通信协议。它与TCP一样也是用于在网络中的通信应用程序之间进行数据传输的通信协议。

UDP协议的主要特点包括:

  1. 无连接:与TCP不同,UDP不需要像TCP那样建立和维护连接,发送端直接向目标地址发送数据报,而不管目的地是否准备好接收数据或者是否存在连通性问题。

  2. 不可靠:UDP并不强制要求数据传输的可靠性,因此会存在数据传输过程中的错误和丢失,接收方也无法确认是否成功接收到了数据。如果需要保证数据传输的可靠性,需要自行实现重传机制和数据校验等功能。

  3. 基于数据报:UDP使用数据报的形式进行通信,每个数据报都有自己的独立头部信息,包含源端口、目标端口等信息,这些信息被用于识别数据报彼此间的关系。由于不像TCP需要建立和维护连接,UDP的数据报可以随时被发送并独立到达目标地址,不受先后顺序和分组大小限制。

  4. 小巧、高效:UDP的头部开销较小,在数据传输效率方面表现优异,因此非常适合实时性要求高、数据量少、网络质量较差的场景,例如音频、视频等流媒体应用。

可以这样说,TCP有助于提供可靠性;而 UDP有助于提高传输的高速率性。例如,必须支持交互式会话的应用程序(如FTP等)往往使用TCP;而自己进行错误检测或不需要错误检测的应用程序(如 DNS、SNMP等)往往使用UDP。

UDP协议软件的主要作用是将UDP消息展示给应用层,它并不负责重新发送丢失的或出错的数据消息,不对接收到的无IP数据报重新排序,不消除重复的IP数据报,不对已收到的数据报进行确认,也不负责建立或终止连接。这些问题是由使用UDP进行通信的应用程序负责处理的。

TC虽然提供了一个可靠的数据传输服务,但它是以牺牲通信量来实现的。也就是说,为了完成同样一个任务,TCP需要更多的时间和通信量。这在网络不可靠的时候通过牺牲一些时间换来达到网络的可靠性是可行的,但在网络十分可靠的情况下,则可以采用UDP,通信量的浪费就会很小。

总之,UDP协议是一种简单、高效、灵活的传输层通信协议,适用于那些对数据传输可靠性要求不高但需要快速传输数据的场景下。

03 | 📗 T C P 和 U D P 的区别 \color{green}{TCP 和 UDP 的区别} TCPUDP的区别📗

TCP和UDP是两种不同的传输层协议,它们在很多方面都有明显的差异:

  1. 连接方式:TCP是面向连接的,数据传输前需要先建立连接,而UDP则是无连接的,发送者直接将数据报发送到目标地址。

  2. 可靠性:TCP是一种可靠的传输协议,它通过序列号、确认应答、重传机制等方式来确保数据的可靠传输,而UDP是不可靠的传输协议,不能保证数据的完整性和可靠性。

  3. 数据包大小:TCP没有固定的数据包大小限制,可以根据实际网络情况调整,而UDP每个数据包大小通常受限于底层网络的MTU(最大传输单元)大小。

  4. 数据流方式:TCP以字节流方式进行通信,而UDP以报文流进行通信;

  5. 传输速度:TCP传输速度慢,UDP传输速度快;

  6. 头部开销:TCP头部有更多的字段来维护传输控制信息,因此头部开销相对较大;UDP头部则比TCP简洁,只需包含源端口、目标端口、长度和校验和这几个基本信息。

  7. 适用场景:由于TCP可靠性较高,适用于文件传输、电子邮件、Web浏览器页面传输等对数据传输可靠性要求较高的场景;而UDP则适用于实时性要求较高的场景,如语音视频流媒体等,因为它不需要进行连接状态维护和应用数据确认处理,能够更快速地传输数据。

用表格总结如下

TCPUDP
连接方式面向连接无连接
可靠性可靠不可靠
数据包无固定大小限制受限于MTU大小
数据流方式字节流报文流
传输速度
头部开销
适用场景文件传输、电子邮件等语音视频流媒体等

总之,TCP和UDP各有优劣,并且适合不同的应用场景。在实际的网络应用中,根据需求和应用场景的具体情况来选择使用哪种协议才能达到最佳的效果。

04 | 📘 问题总结 \color{blue}{问题总结} 问题总结📘

  1. 为什么 T C P 要进行握手? \color{red}{为什么TCP要进行握手?} 为什么TCP要进行握手?

    TCP进行握手的主要目的是确保通信双方都已准备好开始数据传输,并建立一个可靠的连接。在握手过程中,发送方和接收方会交换一些特定的信息以确认彼此的身份和通信参数,并协商如何实现数据传输和错误处理。通过这种方式,TCP握手可以避免数据包的丢失、重复、乱序等问题,从而提高通信的可靠性和稳定性。

  2. 为什么是三次握手而不是两次? \color{orange}{为什么是三次握手而不是两次?} 为什么是三次握手而不是两次?

    TCP使用三次握手的原因是确保双方都已准备好通信并建立一个可靠的连接。在两次握手中,客户端可以向服务器发送请求,但无法确认服务器是否已准备好接受请求。如果服务器没有准备好接受请求,它可能会忽略该请求并不进行任何响应。这种情况下,连接并未建立,但客户端认为连接已建立,从而可能导致数据传输错误和不必要的网络负载。

    通过三次握手,客户端和服务器都可以确认彼此的身份和通信参数,并且就连接建立达成共识。第一次握手由客户端发送 SYN 包到服务器,第二次握手由服务器发送 SYN-ACK 包到客户端,第三次握手由客户端发送 ACK 包到服务器,双方都确认了对方的接受能力,从而确保了连接的可靠性和稳定性。

  3. 为什么 T C P 第二次握手的 S Y N 和 A C K 要合并成一次? \color{yellow}{为什么 TCP 第二次握手的 SYN 和 ACK 要合并成一次?} 为什么TCP第二次握手的SYNACK要合并成一次?

    TCP 第二次握手中的 SYN 和 ACK 被合并成一条消息是因为这两个标志位都需要在该消息中传递。将它们组合成一个单独的消息可以减少网络流量和延迟,并提高连接建立的速度。此外,将它们合并还有助于防止某些攻击,例如 SYN 攻击,因为攻击者无法发送只包含 SYN 的消息来耗尽服务器资源。

  4. TCP三次握手过程,有什么状态,状态机如何变化?

    TCP 三次握手是建立 TCP 连接的过程,其状态和状态机变化如下:

    1. 初始状态:客户端和服务器都处于 CLOSED 状态。

    2. 第一次握手(SYN_SENT):客户端向服务器发送 SYN 包,进入 SYN_SENT 状态。

    3. 第二次握手(SYN_RECEIVED):服务器收到 SYN 包后,向客户端发送 SYN-ACK 包确认,并进入 SYN_RECEIVED 状态。

    4. 第三次握手(ESTABLISHED):客户端收到服务器的 SYN-ACK 包后,向服务器发送 ACK 包确认,进入 ESTABLISHED 状态。服务器在收到 ACK 包后也进入 ESTABLISHED 状态。

    5. 连接关闭:连接关闭时,任何一方可以发起关闭连接的请求,发送 FIN 包,等待对方响应后进入 CLOSE_WAIT 状态。当另一方也发送了 FIN 包并得到确认后,进入 TIME_WAIT 状态,等待 2 倍的最长报文段寿命(MSL)后彻底关闭连接。

    6. 最终状态:完成连接关闭后,客户端和服务器都回到 CLOSED 状态。

    注意:如果发生超时或者异常情况,连接可能会进入一些特殊状态,例如 SYN_SENT 超时后转移到 CLOSED 状态,或者 TIME_WAIT 超时后直接进入 CLOSED 状态。

  5. S Y N F l o o d 的原理?有哪些防范的方法? \color{green}{SYN Flood 的原理?有哪些防范的方法?} SYNFlood的原理?有哪些防范的方法?

    SYN Flood 是指攻击者向目标主机发送大量的 TCP SYN 报文,使其在三次握手的过程中占用大量资源,从而导致服务不可用。攻击者通常使用伪造的源 IP 地址,使得目标主机无法回复对应的 ACK 报文。

    防范 SYN Flood 攻击的常用方法包括:

    1. 过滤掉源IP地址是非法或不存在的数据包。

    2. 增加系统的最大连接数,减少单一连接的占用资源,以及限制每个IP地址的连接数。

    3. 启用SYN cookie技术,让服务器记录下第一个SYN包的初始序列号(ISN),并将该 ISN 和其他标识信息进行哈希运算后生成一个cookie值返回给请求方,请求方必须在后续的ACK报文中携带该cookie才能建立连接。

    4. 使用专业的入侵检测和防御设备,如IPS/IDS等,对网络流量进行分析和筛选,及时发现和阻断异常流量。

    5. 对操作系统、网络设备和应用程序进行定期更新和升级,以修复已知漏洞和缺陷。

  6. 三次握手可以携带数据吗? \color{cyan}{三次握手可以携带数据吗?} 三次握手可以携带数据吗?

    在TCP的三次握手中,SYN和ACK标志位用于建立连接。因此,在三次握手期间不会携带数据。一旦连接建立成功,发送方才可以开始传输数据

  7. 为什么是四次挥手而不是三次挥手? \color{purple}{为什么是四次挥手而不是三次挥手?} 为什么是四次挥手而不是三次挥手?

    在TCP中,需要四次挥手才能完全关闭连接。这是因为TCP是面向连接的协议,保证数据传输的可靠性和顺序性。在关闭连接之前,接收方需要确认它已经接收到了发送方所有的数据,并且发送方也需要确认接收方已经成功关闭了连接。因此,在关闭连接时需要进行四次挥手。

    具体来说,四次挥手的过程如下:

    1. 发送方发送一个FIN报文给接收方,请求关闭连接。

    2. 接收方收到FIN报文后,发送一个ACK报文确认接收到了FIN报文。

    3. 接收方发送一个FIN报文给发送方,请求关闭连接。

    4. 发送方收到FIN报文后,发送一个ACK报文给接收方,确认接收到了FIN报文。此时连接完全关闭。

    通过四次挥手,可以确保所有的数据都被正确地传输,并且双方都知道连接已经关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1. 链表

b站懒猫数据结构课程笔记:https://www.bilibili.com/read/cv8013121?spm_id_from333.999.0.0 一、链表的概念 单链表:线性表的链接存储结构 单链表存储特点: 逻辑次序和物理次序不一定相同 元素之间的逻辑关系用指针表示 举例&#xff1a…

PASCAL VOC数据集

一、前言 之前寒假好像就学了,但是没有记笔记,现在看来还是得记笔记,都忘得差不多了啊。 二、数据集的介绍 2.1数据集背景 分类类别 2.2数据集文件结构: 2.3文件夹 2.3.1Annotations文件夹 对于标注文件Annotations:里…

基于SpringBoot框架的程序开发步骤

SpringBoot简介 1. 入门案例问题导入1.1 入门案例开发步骤1.2 基于SpringBoot官网创建项目1.3 SpringBoot项目快速启动 2. SpringBoot概述问题导入2.1 起步依赖2.2 辅助功能 1. 入门案例 问题导入 SpringMVC的HelloWord程序怎么写? SpringBoot是由Pivotal团队提供…

死锁、生产者和消费者问题

目录 生产者和消费者问题 死锁的概念 内存的基础知识 内存管理的概念 覆盖与交换 介绍一下PCB 连续分配管理方式​编辑 生产者和消费者问题 死锁的概念 什么是死锁 进程死锁、饥饿、死循环的区别 死锁产生的必要条件 什么时候会发生死锁 死锁的处理策略 内存的基础知识 内存…

微三云润秋带你解析商城分销系统

管理大师德鲁克曾说过:当今企业间的竞争,不是产品之间的竞争,而是商业模式之间的竞争。创业不只是项目选择重要,好的商业模式同样重要,如果没有好的商业模式,企业将会被淘汰。 今天我们要聊的这个商城就有点…

怎样设置CRM目标?有什么作用?

实施CRM系统可以帮助企业提高客户保留率,增加收入,并推动业绩增长。然而,在实施CRM系统之前,必须设定明确的目标,与企业的整体战略保持一致。在这篇文章中,我们来讨论实施CRM目标是什么,如何设定…

基于AD9172/AD9176的4 通道12.6GSPS 采样率16 位DA 播放FMC JESD204B 接口子卡模块

板卡概述 FMC_XM131 是一款4 通道12.6GSPS 采样率16 位DA 播放FMC子卡模块,该板卡为FMC标准,符合VITA57.4 规范,可以作为一个理想的IO 模块耦合至FPGA 前端,16 通道的JESD204B 接口通过FMC连接器连接至FPGA 的高速串行端…

【Python TurboGears】零基础也能轻松掌握的学习路线与参考资料

Python TurboGears是一款开源的web框架,它篮了多种Python库和工具,可以更容易地开发和维护web应用程序。TurboGears具有优秀的文档和活跃的社区支持,是学习web开发的理想选择之一。以下是Python TurboGears学习路线,参考资料和优秀…

一句话简短解析 jsjiami.v6

jsjiami.v6 是一种广泛使用的 JavaScript 代码混淆工具,它提供了多种代码混淆技术,包括变量名重命名、函数名重构、字符串替换、代码结构混淆等,可以将代码转换为难以理解和阅读的形式。在本文中,我们将对 jsjiami.v6 进行分析&am…

【FMC137】基于 VITA57.4 标准的4 路2GSPS/2.6GSPS/3GSPS 14 位AD 采集子卡模块--AD9208得多通道中文资料

板卡概述 FMC137 是一款基于VITA57.4 标准规范的JESD204B 接口FMC 子卡模块, 该模块可以实现4 路14-bit 、2GSPS/2.6GSPS/3GSPSADC 采集功能。该板卡ADC 器件采用ADI公司的AD9208 芯片,,与ADI 公司的AD9689 可以实现PIN 脚兼容。该ADC 与FPGA…

Agisoft Metashape 基于影像的外部点云着色

Agisoft Metashape 基于影像的外部点云着色 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Agisoft Metashape 基于影像的外…

JavaScript全解析——this指向

本系列内容为JS全解析,为千锋教育资深前端老师独家创作 致力于为大家讲解清晰JavaScript相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【点个关注】持续追更~ this指向(掌握) this 是一个关…

Python系列之判断和循环

感谢点赞和关注 ,每天进步一点点!加油! 目录 一、判断语句 1.1 Shell里的判断语句格式 1.2 Python里的判断语句格式 二、循环语句 2.1 Python while循环 2.1.1 while 循环的基本格式 2.1.2 while 循环使用else语句 2.2 Python for 循…

每日学术速递5.16

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Locally Attentional SDF Diffusion for Controllable 3D Shape Generation 标题:用于可控 3D 形状生成的局部注意 SDF 扩散 作者:Xin-Yang Zheng, Hao Pa…

全能视频转换:Tipard Video Converter Ultimate Mac

Tipard Video Converter Ultimate 是一款 Mac 平台上的视频转换工具,它可以帮助用户将各种视频文件转换为不同的格式,以适应不同的设备和播放器。使用 Tipard Video Converter Ultimate,用户可以轻松地将视频转换为 MP4、AVI、WMV、FLV、MKV、…

美股股指期货在哪看?如何选择美股股指期货平台?

美股股指期货的交易方式与股票交易的方式类似。投资者可以通过经纪人或美股股指期货平台进行交易,也可以到股票交易所进行交易。需要注意的是,并非所有的美股股指期货平台都值得信赖。投资者在交易前需要筛选出靠谱的美股股指期货平台。 美股股指期货平台…

12金币问题的解决

title: 12金币 date: 2023-05-16 11:42:26 tags: 数据结构与算法 git地址:https://github.com/944613709/HIT-Data-Structures-and-Algorithms 12金币 **问题:**给出12个硬币,其中一个是假硬币,用一个天平来确定三种重量的假币&a…

AVUE样式、刷新、字典等操作

1、操作栏、表格样式的控制 2、下拉框字典的设置 3、日期格式的设置 const dateFormat function(row, value) { if (!value) return ; let format YYYY-mm-dd; let date new Date(value); const dataItem { Y: date.getFullYear().toString(), m: (date.ge…

Pycharm找不到python版本怎么办?解决方法:ModuleNotFoundError: No module named ‘torch‘

目录 1、conda我的使用版本是2023,04最新的 2、如果使用conda自定义的python的版本的话,那么着实有问题 我发现了我不管使用什么办法,切换到conda里面安装的虚拟机吧,就是找不到! 如果直接吧conda作为加载器搞进去呢&#xff0c…

【ChatGPT】ChatGPT国内镜像网站整理

目录 一、什么是ChatGPT镜像?1、二狗问答(AI对话)2、AiDuTu3、WOChat4、ChatGPT(个人感觉最好用) 二、我们可以利用ChatGPT干什么?1、自动化制作PPT2、打造智能问答助手3、提高个人对话的效率4、开发智能客服机器人 一、什么是ChatGPT镜像? …