王道计算机网络课代表 - 考研计算机 第五章 传输层 究极精华总结笔记

news/2024/5/8 7:28:14/文章来源:https://blog.csdn.net/qq_43468008/article/details/129269981

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 计算机网络 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!!
关于对 “传输层” 章节知识点总结的十分全面,涵括了《计算机网络》课程里的全部要点本人来来回回过了三遍视频),其中还陆陆续续补充了许多内容,所以读者可以相信本篇博客对于考研计算机网络 “传输层” 章节知识点的正确性与全面性;但如果还有自主命题的学校,还需额外读者自行再观看对应学校的自主命题材料

食用说明书:
第一遍学习王道课程时,我的笔记只有标题和截图,后来复习发现看只看图片,并不能很快的了解截图中要重点表达的知识点。
在第二遍复习中,我给每一张截图中 标记了重点,以及 每张图片上方总结了该图片 对应的知识点 以及自己的 思考
最后第三遍,查漏补缺。
所以 ,我把目录放在博客的前面,就是希望读者可以结合目录结构去更好的学习知识点,之后冲刺复习阶段脑海里可以浮现出该知识结构,做到对每一个知识点熟稔于心!
请读者放心!目录展示的知识点结构是十分合理的,可以放心使用该结构去记忆学习!
注意(⊙o⊙)!,每张图片上面的文字,都是该图对应的知识点总结,方便读者更快理解图片内容。


《计算机网络》第5章 传输层

【考纲内容】

(一) 传输层提供的服务

​ 网课耗时:0.5 h

  • 传输层的功能
  • 传输层寻址 与 端口
  • 无连接服务 和 面向连接服务

(二) UDP

​ 网课耗时:0.5 h

  • UDP数据报
  • UDP校验

(三) TCP

​ 网课耗时:1.5 h

  • TCP段
  • TCP连接管理
  • TCP可靠传输
  • TCP流量控制 与 拥塞控制

【复习提示】

​ 传输层是整个网络体系结构中的 关键层次

​ 要求掌握传输层在计算机网络中的地位、功能、工作方式及原理等,掌握UDP 及 TCP(如首部格式、可靠传输、流量控制、拥塞控制、连接管理等);

​ 其中,TCP 报文分析、流量控制与拥塞控制机制,出选择题、综合题的概率均较大,因此要将其工作原理透彻掌握,以便能在具体的题目中灵活运用;

5.1 传输层提供的服务

5.1.1 传输层的功能

​ 传输层的地位:为 应用层 提高通信服务,使用 网络层 的服务(面向通信的最高处,用户功能的最底层);

传输层的功能:

  • 传输层提供 进程和进程之间 的逻辑通信;
    • 逻辑通信 的意思是传输层之间的通信好像是 水平的 传输数据,但实际上传输层之间没有 直接的 物理连接;
  • 复用和分用
    • 复用:发送方 不同的应用进程 都可以使用 同一个传输层的协议 传输数据;
      • 网络层的复用 是指发送方不同协议的数据都可以封装成IP数据报发送出去;
      • 网络层的分用 是指接收方的网络层在剥夺首部后把数据交付给相应的协议;
    • 分用:接受方传输层在剥除报文的首部后,能够把数据分别交给对应目的进程;
  • 传输层对收到的报文(首部和数据部分)进行 差错检测 (网络层只对首部进行检查);
  • 传输层的 两种协议 (TCP 和 UDP) (网络层无法同时实现两种协议);

在这里插入图片描述

5.1.2 传输层的寻址与端口

端口的作用:

  • 对于应用层,让其应用进程能够通过端口把数据 向下交付 给传输层;
  • 对于传输层,让其将报文段的数据通过端口 向上交付 给应用层的对应进程;

两种端口:

  • 软件端口:应用层的各种协议进程于传输实体进行层间交互的一种地址;
  • 硬件端口:不同硬件设备进行交互的接口;

在这里插入图片描述

​ 网络层的 IP 分组中包含 IP地址,用来找到目的主机。传输层的 UDP/TCP,借助 端口号 进一步找到目的主机的进程;

IP地址 来区分主机,端口号 来区分进程。

​ 将 IP地址 + 端口号就构成 ==套接字,==用来唯一地标识网络中的一台主机及其上的一个应用进程;

在这里插入图片描述

5.1.3 无连接服务和面向连接服务

在这里插入图片描述

5.2 UDP协议

5.2.1 UDP 数据报

在这里插入图片描述

UDP协议出错情况:

  • UDP数据报出错(首部 或 数据部分任何一个出错,直接丢弃);
  • UDP数据报找不到目的端口号(丢弃 + 打小报告 ICMP);

​ 由于 UDP 的功能较少,对应的首部字段也较短;

UDP = 首部字段 (8B) + 数据字段 (可以为0)

在这里插入图片描述


5.2.1 UDP 校验

伪首部 ,模仿IP数据报首部;

举例说明 UDP校验 过程

在这里插入图片描述

5.3 TCP协议 ⭐

5.3.1 TCP 协议的特点

在这里插入图片描述

​ 举例说明 无结构的字节流 的含义

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AQCmimYR-1677589193976)(《计算机网络》第5章 传输层.assets/image-20220902202120655.png)]


5.3.2 TCP 报文段

在这里插入图片描述

在这里插入图片描述

​ 下图中的 6个控制位,图中标红的为重点;

紧急位 URG 是针对发送方,让其优先发送;

推送位 PSH 是针对接收方,让其快点向上交付;

同步位 SYN 建立连接时发送的 请求/连接接收报文 中使用;

终止位 FIN 发送完毕,要求释放连接;

在这里插入图片描述

在这里插入图片描述


5.3.3 TCP 连接管理

​ TCP的连接传输 很像 打电话 的过程,可以细细体会;

​ 建立连接的 ==三次握手:==我要来了 - 你来吧 - 我来了

在这里插入图片描述

在这里插入图片描述

SYNseqACKack
ROUND 11x (随机)
ROUND 21y (随机)1x+1
ROUND 30x+11y+1

在这里插入图片描述

【课外小知识】

​ 黑客攻击问题 - SYN洪泛攻击

​ 黑客:我要来了

​ 服务器:好的,你来吧……

​ 服务器:好的,你来吧……

​ ……服务器死机

​ 解决办法:设置 SYN cookie,具体自信了解

在这里插入图片描述

TCP的连接释放 - 四次握手

​ 男:我要回去了;

​ 女:好的,你记得……;

​ 女:欧克,你走吧;

​ 男:好的;

在这里插入图片描述

​ 为什么要等待 2MSL 时间 ?

​ 答:若第四次握手发送的确认报文段没有传输到服务器B,B就会自动重发第三次握手的确认释放报文,来回占用2MSL;

在这里插入图片描述

FINseqACKack
ROUND 11u
ROUND 2v1u+1
ROUND 31w1u+1
ROUND 4u+11w+1

在这里插入图片描述


5.3.4 TCP 可靠传输

在这里插入图片描述

1.校验

​ 参考UDP小节内容;

2. 序号机制

​ 要传输的文件会被排序编号,一个字节占一个序号;

​ TCP在传输时以报文段为单位,报文段占几个字节不一;

在这里插入图片描述

3. 确认机制

​ TCP发送的报文段也许会丢失,所以发送方的TCP缓存还会留有已发送的报文段数据,直到收到接收方的确认报文段;

​ 接收方采用 累积确认/捎带确认 的方式发出确认信息;

​ 发送方收到确认信息,会将已经确认的报文段删除;

在这里插入图片描述

4. 重传机制

​ 确认机制 和 重传机制 是密切相关的,规定时间未确认 就需要 重传;

​ TCP采用 自适应算法 ,动态改变 重传时间RTTs;

在这里插入图片描述

冗余 ACK

​ 多次收到 同一个确认号 的报文段;

在这里插入图片描述


5.3.5 TCP 流量控制 ⭐

​ 在OSI参考模型中,数据链路层、网络层、传输层都具有流量控制功能,

  • 数据链路层是相邻结点之间的流量控制,
  • 网络层是整个网络中的流量控制,
  • 传输层是端到端的流量控制。

​ 流量控制:采用 滑动窗口 来控制 发送方 的传输速度;

​ 两个重要窗口:接收窗口rwnd拥塞窗口cwnd

​ 发送窗口 = Min {接收窗口 rwnd,拥塞窗口 cwnd};

在这里插入图片描述

举例说明 TCP 流量控制 过程

​ 发送窗口只有收到确认才能删除旧数据,添加新数据发送;

在这里插入图片描述


5.3.6 TCP 拥塞控制 ⭐

1. 拥塞控制的概念

​ 拥塞就是 马桶堵了 ,需求太多,资源不足;

在这里插入图片描述

2. 拥塞控制四种算法

在这里插入图片描述

慢开始 组合 拥塞避免

​ cwnd默认为1

在这里插入图片描述

快重传 组合 快恢复

在这里插入图片描述

5.4 常见问题和易混淆知识点

1. MSS设置得太大或太小会有什么影响 ?

​ 规定最大报文段MSS的大小并不是考虑到接收方的缓存可能放不下TCP报文段。

​ 实际上,MSS 与接收窗口没有关系。

​ TCP 的报文段的数据部分,至少要加上40B的首部(TCP首部至少20B和IP首部至少20B),才能组装成一个IP数据报。

​ 若选择较小的MSS值,网络的利用率就很低。

​ 设想在极端情况下,当TCP报文段中只含有1B的数据时,在P层传输的数据报的开销至少有40B。

​ 这样,网络的利用率就不会超过1/41。到了数据链路层还要加上一些开销,网络的利用率进一步降低。

​ 但反过来,若TCP报文段很长,那么在IP层传输时有可能要分解成多个短数据报片,在终端还要把收到的各数据报片装配成原来的TCP 报文段。传输有差错时,还要进行重传。这些都会使开销增大。

​ 因此,MSS应尽量大一些,只要在IP层传输时不要再分片就行。

​ 由于P数据报所经历的路径是动态变化的,在一条路径上确定的不需要分片的MSS,如果改走另一条路径,就可能需要进行分片。

​ 因此,最佳的MSS是很难确定的。

​ MSS 的默认值为536B,因此在因特网上的所有主机都能接收的报文段长度是 536+20(xTCP固定首部长度)= 556B。

2. 为何不采用“三次握手"释放连接,且发送最后一次握手报文后要务待2MSE的时间呢 ?

原因有两个:

​ 1)保证A发送的最后一个确认报文段能够到达B。

​ 如果A不等待2MSL,若A返回的最后确认报文段丢失,则B不能进入正常关闭状态,而A此时已经关闭,也不可能再重传。

​ 2)防止出现 “已失效的连接请求报文段”。

​ A在发送最后一个确认报文段后,再经过2MSL可保证本连接持续的时间内所产生的所有报文段从网络中消失。造成错误的情形与下文(疑难点6)不采用 “两次握手” 建立连接所述的情形相同。

​ 注意:服务器结束TCP连接的时间要比客户机早一些,因为客户机最后要等待2MSL后才可进入CLOSED状态。

3. 如何判定此确认报文段是对原来的报文段的确认,还是对重传的报文段的确认 ?

​ 由于对于一个重传报文的确认来说,很难分辨它是原报文的确认还是重传报文的确认,

​ 使用修正的Karn 算法作为规则:

​ 在计算平均往返时间RTT时,只要报文段重传了,就不采用其往返时间样本,且报文段每重传一次,就把 RTO增大一些。

4. TCP使用的是GBN 还是选择重传 ?

​ 这是一个有必要弄清的问题。

​ 前面讲过,TCP使用累积确认,这看起来像是GBN 的风格。

​ 但是,正确收到但失序的报文并不会丢弃,而是缓存起来,并且发送冗余 ACK指明期望收到的下一个报文段,这是TCP方式和GBN 的显著区别。

​ 例如,A发送了N个报文段,其中第 k(k < N)个报文段丢失,其余 N - 1 个报文段正确地按序到达接收方B。

​ 使用GBN时,A需要重传分组 k,及所有后继分组 k+1,k+2,…,N。

​ 相反,TCP却至多重传一个报文段,即报文段k。

​ 另外,TCP中提供一个SACK(Selective ACK)选项,即选择确认选项。

​ 使用选择确认选项时,TCP看起来就和SR非常相似。因此,TCP 的差错恢复机制可视为 GBN 和 SR 协议的混合体。

5. 为什么超时时间发生时cwnd被置为1,而收到3个冗余ACK时cwnd减半 ?

​ 大家可以从如下角度考虑:

​ 超时事件发生和收到3个冗余ACK,哪个意味着网络拥塞程度更严重 ?

​ 通过分析不难发现,在收到3个冗余ACK 的情况下,网络虽然拥塞,但至少还有ACK报文段能被正确交付。

​ 而当超时发生时,说明网络可能已经拥塞得连ACK报文段都传输不了,发送方只能等待超时后重传数据。

​ 因此,超时事件发生时,网络拥塞更严重,那么发送方就应该最大限度地抑制数据发送量,所以cwnd置为1;

​ 收到3个冗余ACK时,网络拥塞不是很严重,发送方稍微抑制一下发送的数据量即可,所以 cwnd减半。

6. 为什么不采用“两次握手”建立连接呢 ?

​ 这主要是为了防止两次握手情况下已失效的连接请求报文段突然又传送到服务器而产生错误。

​ 考虑下面这种情况:

​ 客户A向服务器B发出TCP 连接请求,第一个连接请求报文在网络的某个结点长时间滞留,A超时后认为报文丢失,于是再重传一次连接请求,B收到后建立连接。

​ 数据传输完毕后双方断开连接。

​ 而此时,前一个滞留在网络中的连接请求到达服务器B,而B认为A又发来连接请求,此时若使用 “三次握手”,则B向A返回确认报文段,由于是一个失效的请求,因此A不予理睬,建立连接失败。

​ 若采用的是 “两次握手”,则这种情况下B认为传输连接已经建立,并一直等待A传输数据,而A此时并无连接请求,因此不予理睬,这样就造成了B的资源白白浪费。

7. 是否 TCP和UDP都需要计算往返时间RTT ?

​ 往返时间RTT仅对传输层TCP协议才很重要,因为TCP·要根据RTT的值来设置超时计时器的超时时间。

​ UDP没有确认和重传机制,因此RTT对UDP没有什么意义。

​ 因此,不能笼统地说 “往返时间RTT对传输层来说很重要”,因为只有TCP才需要计算RTT,而UDP不需要计算RTT。

8. 为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号 ?

​ 1)假定主机A和B频繁地建立连接,传送一些TCP报文段后,再释放连接,然后又不断地建立新的连接、传送报文段和释放连接。

​ 2)假定每次建立连接时,主机A都选择相同的、固定的初始序号,如选择1。

​ 3)假定主机A发出的某些TCP报文段在网络中会滞留较长时间,以致主机A超时重传这些TCP报文段。

​ 4)假定有一些在网络中滞留时间较长的TCP报文段最后终于到达主机B,但这时传送该报文段的那个连接早已释放,而在到达主机B时的TCP连接是一条新的TCP连接。

​ 这样,工作在新的TCP连接的主机B就有可能会接收在旧的连接传送的、已无意义的、过时的TCP报文段(因为这个TCP报文段的序号有可能正好处在当前新连接所用的序号范围之中),结果产生错误。

​ 因此,必须使得迟到的TCP报文段的序号不处在新连接所用的序号范围之中。

​ 这样,TCP在建立新的连接时所选择的初始序号一定要和前面的一些连接所用过的序号不同。

​ 因此,不同的TCP连接不能使用相同的初始序号。

9. 假定在一个互联网中,所有链路的传输都不出现差错,所有结点也都不会发生故障。
试问在这种情况下,TCP的“可靠交付”的功能是否就是多余的 ?

答:不是多余的。TCP的 “可靠交付” 功能在互联网中起着至关重要的作用。

​ 至少在以下的情况下,TCP的 “可靠交付” 功能是必不可少的。

​ 1)每个IP数据报独立地选择路由,因此在到达目的主机时有可能出现失序。

​ 2)由于路由选择的计算出现错误,导致IP数据报在互联网中转圈。

​ 最后数据报首部中的生存时间(TTL)的数值下降到零。这个数据报在中途就被丢失。

​ 3)某个路由器突然出现很大的通信量,以致路由器来不及处理到达的数据报。因此有的数据报被丢弃。

​ 以上列举的问题表明:必须依靠TCP的 “可靠交付” 功能才能保证在目的主机的目的进程中接收到正确的报文。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBF2W8mq-1677589193988)(《计算机网络》第5章 传输层.assets/《计算机网络》第5章 传输层.png)]

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 学习笔记(借鉴黑马程序员MySQL)

MySQL视频课链接 MySQL概述 数据库相关概念 数据库是存储数据的仓库&#xff0c;数据是有组织的进行存储&#xff08;DataBase&#xff09; 数据库管理系统是操纵和管理数据库的大型软件&#xff08;DataBase Management System&#xff09; SQL是操作关系型数据库的编程语…

_Linux (HTTP协议)

文章目录1. 认识URL2. urlencode和urldecode3. HTTP协议格式3-1. HTTP请求3-1. HTTP响应4. HTTP的方法5. HTTP的状态码6. TTP常见Header7. 最简单的HTTP服务器虽然我们说, 应用层协议是我们程序猿自己定的但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我…

Android问题笔记 - 打开Android Studio先弹出项目选择框

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断…

【JavaWeb】Servlet基础

文章目录1.Tomcat服务器安装注意事项2.编写WebApp3.BS系统角色和协议4.模拟Servlet4.1模拟sun公司4.2模拟Tomcat服务器4.3模拟WebApp开发者5.开发一个带有Servlet的WebApp5.1创建一个名为crm的项目5.2 在项目中创建一个名为WEB-INF的文件&#xff08;必须&#xff09;5.3在WEB-…

MATLAB常用函数-gcf / gca / gco

MATLAB R2019a gcf: 返回当前图像对象的句柄值 语法&#xff1a; h gcf % 返回当前图像的句柄&#xff0c;如果没有图像&#xff0c;则会自动创建一个&#xff0c;然后返回其句柄 gca: 返回当前坐标轴对象的句柄值 语法&#xff1a; h gca % 返回当前图像中的当前坐标…

21_FreeRTOS内存管理

目录 FreeRTOS内存管理 FreeRTOS内存管理算法 内存管理相关API函数介绍 实验源码 FreeRTOS内存管理 在使用FreeRTOS创建任务、队列、信号量等对象的时,一般都提供了两种方法: 动态方法创建 自动地从 FreeRTOS 管理的内存堆中申请创建对象所需的内存&#xff0c;并且在对…

Git学习(1)pro git阅读

目录 目录&#xff1a; 1. 起步 2. Git 基础 3. Git 分支 4. 服务器上的 Git 5. 分布式 Git 第一章 1.3 Git是什么 1.6运行git前的配置 该开源图书网站 Git - Book (git-scm.com) 目录&#xff1a; 1. 起步 1.1 关于版本控制1.2 Git 简史1.3 Git 是什么&#xff1f;1…

卡方检验

一、卡方检验假设检验的一种&#xff0c;以实际观测值与期望值之间的偏离程度&#xff0c;解决是服从某个构成比率和是否具有相关性的问题。其偏离程度决定卡方值的大小&#xff0c;卡方值越小&#xff0c;偏差越小&#xff0c;实际值越趋于符合期望值。二、步骤在显著性为α0.…

Malware Dev 01 - 免杀之 PPID Spoofing 原理解析

写在最前 如果你是信息安全爱好者&#xff0c;如果你想考一些证书来提升自己的能力&#xff0c;那么欢迎大家来我的 Discord 频道 Northern Bay。邀请链接在这里&#xff1a; https://discord.gg/9XvvuFq9Wb我会提供备考过程中尽可能多的帮助&#xff0c;并分享学习和实践过程…

Active Directory管理帮助台

随着组织规模扩大&#xff0c;需要大幅增加Active Directory帮助台指派。随着组织开始在新地点开设办事处&#xff0c;管理员管理所有地点的用户变得极为繁琐。在这样的情况下&#xff0c;帮助台指派需要横跨不同的域以方便多域管理。尝试使用本机AD工具或PowerShell执行帮助台…

守护进程与TCP通讯

目录 一.守护进程 1.1进程组与会画 1.2守护进程 二.创建守护进程 setsid函数&#xff1a; 三. TCP通讯流程 3.1三次握手&#xff1a; 3.2 数据传输的过程 3.3四次挥手 一.守护进程 1.1进程组与会画 进程组&#xff1a;进程组由一个进程或者多个进程组成&#xff0c;每…

springcloud3 Nacos中namespace和group,dataId的联系

一 Namespance和group和dataId的联系 1.1 3者之间的联系 话不多说&#xff0c;上答案&#xff0c;如下图&#xff1a; namespance用于区分部署环境&#xff0c;group和dataId用于逻辑上区分两个目标对象。 二 案例&#xff1a;实现读取注册中心的不同环境下的配置文件 …

如何顺利渡过三月“大考”?ScanV为您献上“通关秘籍”

随着网络安全形势日益复杂、严峻&#xff0c;在重大安全保障事件期间&#xff0c;重要业务系统&#xff0c;尤其是党政机关、国企央企、能源、金融等重要的关基单位更应重视网站及业务系统安全。 临近三月重保季&#xff0c;知道创宇推出“御黑行动-典型案例篇”&#xff0c;以…

王道计算机网络课代表 - 考研计算机 第一章 计算机网络体系结构 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记&#xff0c;以及一整年里对 计算机网络 知识点的理解的总结。希望对新一届的计算机考研人提供帮助&#xff01;&#xff01;&#xff01; 关于对 “计算机网络体系结构” 章节知识点总结的十分全面&#xff0c;涵括了《计算机网络…

【大话面试】- Redis 篇-第一篇

【大话面试】- Redis 篇-第一篇 认识 NoSQL SQL VS NoSQL 1️⃣ 结构化&#xff08;Structured&#xff09; SQL 的存储格式 NoSQL 从其存储的结构上来看&#xff0c;对于 SQL 数据库而言&#xff0c;我们可以给每一个表的属性添加不同的约束&#xff08;主键唯一&#xff…

分布式任务处理

分布式任务处理 1. 什么是分布式任务调度 视频上传成功需要对视频的格式进行处理&#xff0c;如何用Java程序对视频进行处理呢&#xff1f;这里有一个关键的需求就是当视频比较多的时候我们如何可以高效处理。 如何去高效处理一批任务呢&#xff1f; 1、多线程 多线程是充…

java易错题锦集系列五

接口中不能有构造方法&#xff0c;抽象类中可以有。抽象类中构造方法作用&#xff1a;初始化抽象类的成员&#xff1b;为继承它的子类使用 定义在同一个包&#xff08;package&#xff09;内的类是可以不经过import而直接相互使用 final修饰的方法可以被重载 但不能被重写 从…

线性插值基本原理推导

线性插值基本原理1. 为什么使用线性插值&#xff1f;2. 单线性插值2.1 单线性插值推导3.多线性插值3.1 多线性插值推导注意事项3.2 多线性插值推导3.3 插入坐标越远权重越大1. 为什么使用线性插值&#xff1f; 在深度学习对图片进行上采样和下采样的时候会应用到线性插值 对图…

TypeScript 使用 ES6 解构骚操作

TypeScript 使用 ES6 解构骚操作 文章目录TypeScript 使用 ES6 解构骚操作一、TypeScript 对象解构二、TypeScript 函数参数解构四、参考资料&#x1f498;五、推荐博文&#x1f357;一、TypeScript 对象解构 我们都知道 ES6 的数据解构功能很强大&#xff0c;一行命令就能够声…

TypeScript 常用知识

「 推荐一个学习 ts 基础的专栏&#xff0c;满满的干货&#xff1a;typeScript 」 1、为什么推荐使用 TypeScript 【】ts 是 js 的超集&#xff0c;包含 js 的所有元素 【】ts 通过对代码进行类型检查&#xff0c;可以帮助我们避免在编写 js 时经常遇到令人痛苦的错误 【】强…