OSI七层模型——第2层数据链路层

news2024/7/4 4:52:16

目录

1 数据链路层的用途

1.1 数据链路层

1.2 IEEE 802LAN/MAN 数据链路子层

1.3 提供介质访问

1.4 数据链路层标准

2 拓扑

2.1 物理和逻辑拓扑

2.2 WAN 拓扑 

2.3 点对点 WAN 拓扑

2.4 LAN 拓扑

 2.5 半双工和全双工通信

2.6 访问控制方法

2.7 基于竞争的访问 - CSMA/CD

2.8 基于竞争的访问 – CSMA/CA

3 数据链路帧

3.1 帧

3.2 帧字段

3.3 第 2 层地址

3.4 LAN 和 WAN 上的帧


1 数据链路层的用途

1.1 数据链路层

OSI模型的数据链路层(第2层)为物理网络准备网络数据。数据链路层负责网络接口卡 (NIC) 到网络接口卡的通信。数据链路层执行以下操作:

  • 允许上层访问介质。上层协议完全不知道用于转发数据的介质类型。
  • 接受数据,通常是第 3 层数据包(即 IPv4 或 IPv6),并将它们封装到第 2 层帧中。
  • 控制数据在介质上的放置和接收方式,
  • 通过网络介质在终端之间交换帧。
  • 接收封装的数据,通常是第 3 层数据包,并将它们定向到适当的上层协议。
  • 执行错误检测并拒绝任何损坏的帧。

在计算机网络中,节点是可以沿通信路径接收、创建、存储或转发数据的设备。节点可以是笔记本电脑或移动电话等终端设备,也可以是中间设备如以太网交换机。

如果没有数据链路层,则网络层协议(如 IP)必须提供连接到传输路径中可能存在的各种类型介质所需的连接。此外,每当开发出一种新的网络技术或介质时,IP 必须做出相应调整。

该图显示了数据链路层如何将第2层以太网目的和源网卡信息添加到第3层数据包的示例。然后,它会将此信息转换为物理层(即第 1 层)支持的格式。

1.2 IEEE 802LAN/MAN 数据链路子层

IEEE 802 LAN/MAN 标准专用于以太网局域网、无线局域网 (WLAN)、无线个人区域网 (WPAN) 和其他类型的局域网和城域网。IEEE 802 LAN/MAN 数据链路层由以下两个子层组成:

  • 逻辑链路控制 (LLC)  - 这个 IEEE 802.2 子层在上层的网络软件与下层的设备硬件之间进行通信。它放入帧中的信息用于确定帧所使用的网络层协议。此信息允许多个第 3 层协议(如 IPv4 和 IPv6)使用相同的网络接口和介质。
  • 介质访问控制 (MAC) - 在硬件上实现这个子层(IEEE 802.3、802.11 或 802.15)。它负责数据封装和介质访问控制。它提供数据链路层寻址,并与各种物理层技术集成。

该图显示了数据链路层的两个子层(LLC 和 MAC)。

 

1.3 提供介质访问

在数据包从本地主机传送到远程主机的过程中,其遇到的各种网络环境可能具有不同的特性。例如,以太网 LAN 通常由许多争用网络介质访问的主机组成。MAC 子层解决了这个问题。对于串行链路,访问方法可能只包括两个设备之间的直接连接,通常是两个路由器。因此,它们不需要 IEEE 802 MAC 子层所使用的技术。

路由器接口将数据包封装到适当的帧中。使用合适的介质访问控制方法来访问每个链路。在任意指定的网络层数据包交换过程中,可能存在多次数据链路层和介质的转换。

在路径上的每一跳,路由器都执行以下第 2 层功能:

  1. 从介质接受帧
  2. 解封帧
  3. 将数据包重新封装到新帧中
  4. 从适合该物理网络网段的介质转发新帧

1.4 数据链路层标准

与 TCP/IP 的上层协议不同,数据链路层协议通常不是由征求意见 (RFC) 文档定义的。互联网工程任务组 (IETF) 虽然维护着 TCP/IP 协议簇上层的工作协议和服务,但它没有定义TCP/IP模型的网络接入层的功能和操作。

定义适用于网络接入层(即,OSI的物理和数据链路层)的开放标准和协议的工程组织包括:

  • 电气电子工程师协会 (IEEE)
  • 国际电信联盟 (ITU)
  • 国际标准化组织 (ISO)
  • 美国国家标准学会 (ANSI)

2 拓扑

2.1 物理和逻辑拓扑

如您在上一个主题了解到的,数据链路层为物理网络准备网络数据。它必须知道网络的逻辑拓扑,以便能够确定从一个设备向另一个设备传输帧需要什么。本主题介绍了数据链路层与不同逻辑网络拓扑一起工作的方式。

网络拓扑是指网络设备及它们之间的互连布局或关系。

描述 LAN 和 WAN 网络时使用两种类型的拓扑:

  • 物理拓扑  - 标识物理连接,以及终端设备和中间设备(即,路由器、交换机和无线接入点)如何互连。这个拓扑还可能包括特定的设备位置,如房间号和设备机架上的位置。物理拓扑通常是点对点拓扑或星型拓扑。
  • 逻辑拓扑  - 是指网络将帧从一个节点传输到另一节点的方法。此拓扑使用设备接口和第 3 层 IP 寻址方案识别虚拟连接。

在控制对介质的数据访问时,数据链路层“看见”的是网络的逻辑拓扑。正是逻辑拓扑在影响网络成帧和介质访问控制的类型。

该图显示了一个小型示例网络的示例物理( 物理层 )拓扑。

下图显示了同一网络的示例逻辑( 逻辑 )拓扑。 

2.2 WAN 拓扑 

下面图说明了如何使用三种常见的物理WAN拓扑来互连WAN。

点对点

中心辐射型

 

网状

 

混合拓扑是任何拓扑的变体或组合。例如,部分网状就是一种混合拓扑,因为其中一些而并非所有的终端设备都是互连的。

2.3 点对点 WAN 拓扑

如图所示,物理点对点拓扑直接连接两个节点。在这种布局中,两个节点无需与其他主机共享介质。此外,当使用串行通信协议,如点对点协议(PPP)时,节点无需判定收到的帧是指向它还是指向另一节点。因此,逻辑数据链路协议将非常简单,因为介质中的所有帧都只去往或来自这两个节点。节点将帧放置到一端的介质上,然后点对点线路另一端的节点从介质取走帧。

该图显示了一个点对点网络示例,它由标记为Node 1和Node 2的两个路由器组成,每个路由器都通过WAN链路连接到一个网络云。

 

注意: 通过以太网进行的点对点连接需要设备确定传入帧是否发往此节点。

使用多个中间设备,距离较远的源节点和目的节点彼此可以间接相连。但是,在网络中使用物理设备并不会影响逻辑拓扑,如图所示。在图中,添加中间物理连接不会改变逻辑拓扑。逻辑点对点连接相同。

2.4 LAN 拓扑

在多路访问局域网中,终端设备(即节点)使用星型或扩展星型拓扑相互连接,如图所示。在这种类型的拓扑中,终端设备连接到一个中央中间设备,在本例中是一个以太网交换机。扩展星型(扩展星型)通过连接多个以太网交换机来扩展此拓扑。星型和扩展星型拓扑安装简单、扩展性好(易于添加和删除终端设备),而且故障排除容易。早期的星型拓扑使用以太网集线器互连终端设备。

有时可能只有两个设备连接在以太网局域网上。两个相互连接的路由器就是一个例子。这是在点对点拓扑上使用以太网的一个示例。

传统LAN拓扑

早期的以太网和传统令牌环局域网技术包括另外两种拓扑结构:

  • 总线 - 所有终端系统都相互连接,并在两端以某种形式端接。终端设备互连时不需要基础设施设备(例如交换机)。传统的以太网络中会使用采用同轴电缆的总线拓扑,因为它价格低廉而且安装简易。
  •  - 终端系统与其各自的邻居相连,形成一个环状。与总线拓扑不同,环拓扑不需要端接。传统的光纤分布式数据接口 (FDDI) 和令牌环网络使用环拓扑。

下图说明终端设备如何在局域网中互连。网络图形中经常用直线来代表包含一个简单星型和一个扩展星型的以太网 LAN。

 2.5 半双工和全双工通信

理解双工通信在讨论局域网拓扑时非常重要,因为它指的是两个设备之间的数据传输方向。有两种常见的双工模式。

半双工通信

两台设备都可以通过该介质发送和接收,但无法同时执行这两个操作。WLAN和带有以太网集线器的传统总线拓扑使用半双工模式。半双工每次只允许一台设备通过共享介质发送或接收

 

全双工通信

两台设备都可以在共享介质上同时发送和接收。数据链路层假定介质随时可供两个节点实现传输。默认情况下,以太网交换机在全双工模式下运行,但是如果与以太网集线器等设备连接,它们则可以在半双工模式下运行。

总之,半双工通信限制为每次在一个方向进行数据交换。全双工允许同时发送和接收数据。

两个互连设备,比如一个主机网卡和以太网交换机上的一个接口,必须采用同一双工模式运行。否则,将会出现双工不匹配,导致链路效率低下和延时。

2.6 访问控制方法

以太网 LAN 和 WLAN 都是多路访问网络的示例。多路访问网络是指可能有两个或多个终端设备同时试图访问网络的网络。

某些多路访问网络需要使用规则来管理设备共享物理介质的方式。对于共享介质,有两种基本的访问控制方法:

  • 基于竞争的访问
  • 受控访问

基于竞争的访问

在基于竞争的多路访问网络中,所有节点都工作在半双工方式,争夺介质的使用。然而,一次只有一台设备能够发送。因此,当多台设备同时传输时,会使用一个处理过程。基于竞争的访问方法示例如下:

  • 在传统总线拓扑以太网局域网上使用载波侦听多路访问/冲突检测(CSMA/CD)
  • 在无线局域网上使用载波侦听多路访问/冲突避免(CSMA/CA)

 

受控访问

在基于控制的多路访问网络中,每个节点都有自己的时间来使用介质。这种确定性的传统网络类型效率很低,因为设备必须等到轮到自己才能访问介质。使用受控访问的多路访问网络的示例包括:

  • 传统令牌环
  • 传统ARCNET

注意: 如今,以太网网络以全双工方式运行,不需要访问方法。

2.7 基于竞争的访问 - CSMA/CD

基于竞争的访问网络示例如下:

  • 无线局域网(使用 CSMA/CA)
  • 传统总线拓扑以太网局域网(使用 CSMA/CD)
  • 使用集线器的传统以太网局域网(使用 CSMA/CD)

这些网络在半双工模式下运行,意味着一台设备一次只能发送或接收。这需要有一个进程来管理设备何时可以发送以及当多台设备同时发送时会发生什么情况。

如果两台设备同时传输,则会发生冲突。对于传统以太网局域网,两台设备将会检测到网络上的冲突。这就是 CSMA/CD 的冲突检测 (CD) 部分。网卡通过比较传输的数据与接收的数据,或通过识别介质中的信号振幅是否高于正常状况来实现。两台设备发送的数据会损坏且需重新发送。

PC1 发送一个帧

集线器接收帧

集线器发送帧

 

2.8 基于竞争的访问 – CSMA/CA

IEEE 802.11 WLAN 所使用的另一种 CSMA 形式为载波侦听多路访问/冲突避免 (CSMA/CA)。

CMSA/CA 采用一种与 CSMA/CD 类似的方法来检测介质是否空闲。CMSA/CA 采用其他技术。在无线环境中,设备可能无法检测到冲突。CMSA/CA 不会检测冲突,但会通过在传输之前等待来尝试避免冲突。每台设备发送时都会包含传输所需的持续时间。所有其他无线设备都会收到此信息,知道介质将有多长时间不可用。

在图中,如果主机 A 从接入点接收到一个无线帧,那么主机 B 和 C 也会看到该帧以及介质有多久不可用。

当无线设备发送 802.11 帧后,接收方会返回确认,以使发送方知道帧已到达。

不管是使用集线器的以太网 LAN,还是 WLAN,基于竞争的系统在介质使用率高的情况下都无法很好地扩展。

注意: 使用交换机的以太网 LAN 不使用基于竞争的系统,因为交换机和主机网卡在全双工模式下运行。

3 数据链路帧

3.1 帧

本主题详细讨论数据链路帧在网络中移动时发生的情况。附加到帧的信息由正在使用的协议决定。

数据链路层通过使用帧头和帧尾将其封装以创建帧,从而准备封装后的数据(通常是IPv4或IPv6数据包),以便在本地介质上进行传输。

数据链路协议负责同一网络中的网卡间通信。虽然有许多描述数据链路层帧的不同数据链路层协议,但每种帧均有三个基本组成部分:

  • 帧头
  • 数据
  • 帧尾

与其他封装协议不同,数据链路层以帧尾的形式在帧的末尾附加信息

所有数据链路层协议均将数据封装于帧的数据字段内。但是,由于协议的不同,帧结构以及帧头和帧尾中包含的字段会存在差异。

没有一种帧结构能满足通过所有类型介质的全部数据传输需求。根据环境的不同,帧中所需的控制信息量也相应变化,以匹配介质和逻辑拓扑的访问控制需求。例如,WLAN帧必须包含避免冲突的过程,因此与以太网帧相比需要额外的控制信息。

如图所示,在脆弱的环境下,需要更多控制才能确保送达。由于所需控制信息较多,因此帧头和帧尾字段都较大。

3.2 帧字段

成帧技术将位流拆分成可破解的多个分组,且将控制信息作为不同字段值插入帧头和帧尾中。此格式使物理信号具备能被节点识别且可在目的地解码成数据包的一种结构。

图中显示了通用帧字段。并非所有协议均包含全部此类字段。特定数据链路协议的标准定义了实际帧格式。

数据链路层协议将帧尾添加到各帧结尾处。在一个叫做错误检测的过程中,帧尾会判断帧是否到达时没有错误。它将组成帧的各个位的逻辑或数学摘要放入帧尾中。要将错误检测添加到数据链路层,因为介质中的信号可能遭受干扰、失真或丢失,从而大幅更改这些信号所代表的位值。

发送节点会创建帧内容的逻辑摘要,称为循环冗余校验 (CRC) 值。此值将放入帧校验序列 (FCS) 字段中以代表帧内容。在以太网尾部,FCS 为接收节点提供一种方法,用于确定帧是否出现传输错误。

3.3 第 2 层地址

数据链路层提供了通过共享本地介质传输帧时要用到的编址。此层中的设备地址称为物理地址。数据链路层地址包含在帧头中,它指定了帧在本地网络中的目的节点。它通常位于帧的开头,因此网卡可以在接受帧的其余部分之前快速确定它是否匹配自己的第 2 层地址。帧头还可能包含帧的源地址。

与分层式第 3 层逻辑地址不同,物理地址不会表示设备位于哪个网络。相反,物理地址对于特定设备是唯一的。即使设备移至另一网络或子网,它将仍使用相同的第 2 层物理地址。因此,第2层地址仅用于在相同的共享介质中,在相同的IP网络上连接设备。

该图阐述了第 2 层和第 3 层地址的功能。当 IP 数据包从主机到路由器、从路由器到路由器和最终从路由器到主机传输时,沿途中的每个点上都会将 IP 数据包封装到新的数据链路帧中。每个数据链路帧包含发送帧的网卡的源数据链路地址和接收帧的网卡的目的数据链路地址。

主机到路由器

源主机将第 3 层IP数据包封装成第 2 层帧。在帧头中,主机将其第 2 层地址添加为源地址,R1 的第 2 层地址添加为目的地址。

路由器到路由器

R1将第 3 层IP数据包封装成新的第 2 层帧。在帧头中,R1将其第 2 层地址添加为源地址,R2 的第 2 层地址添加为目的地址。

路由器到主机

R2将第 3 层IP数据包封装成新的第 2 层帧。在帧头中,R2将其第 2 层地址添加为源地址,服务器的第 2 层地址添加为目的地址。

数据链路层地址仅用于本地传送。该层地址在本地网络之外无任何意义。将它与第 3 层进行比较,我们发现在第 3 层中,无论途中有多少个网络跳点,数据包报头中的址址都会从源主机传送到目的主机。

如果数据必须传递到另一网段上,则需要使用中间设备,比如路由器。路由器必须根据物理地址接受帧并解封帧,以便检查分层地址,即 IP 地址。路由器使用 IP 地址可以确定目的设备的网络地址以及到达该地址的最佳路径。当知道要将数据包转发到何处时,路由器会为数据包创建一个新帧,并将新帧发送到通往最终目的地的下一网段。

3.4 LAN 和 WAN 上的帧

以太网协议由有线局域网使用。无线通信属于无线局域网(IEEE 802.11)协议范围。这些协议都是为多路访问网络而设计的。

WAN 传统上在各种类型的点对点、中心辐射和全网状拓扑中使用其他类型的协议。多年来,一些常见的广域网协议包括:

  • 点对点协议 (PPP)
  • 高级数据链路控制 (HDLC)
  • 帧中继
  • 异步传输模式 (ATM)
  • X.25

这些第2层协议现在正在被以太网在广域网中取代。

在 TCP/IP 网络中,所有 OSI 第 2 层协议都与 OSI 第 3 层的 IP 一起使用。但是,所用的第 2 层协议取决于逻辑拓扑和物理介质。

每个协议执行指定第 2 层逻辑拓扑的介质访问控制。这意味着在执行这些协议时,有很多种不同的网络设备都可以充当运行在数据链路层上的节点。这些设备包括计算机上的网卡以及路由器和第 2 层交换机上的接口。

用于特定网络拓扑的第 2 层协议取决于实施该拓扑的技术。所使用的技术取决于网络规模(根据主机数量和地理范围判断)以及通过网络提供的服务。

LAN 通常使用能支持大量主机的高带宽技术。由于 LAN 的地理范围相对较小(单个建筑物或多个建筑物的园区),用户的密集度高,因此这种技术比较节约成本。

但是,对于服务范围较广(例如一个城市或多个城市)的 WAN,使用高带宽技术通常不够经济。长距离物理链路的成本以及长距离传送信号的技术一般都会使带宽容量降低。

带宽差异常会导致 LAN 和 WAN 使用不同的协议。

数据链路层协议包括:

  • 以太网
  • 802.11 无线
  • 点对点协议 (PPP)
  • 高级数据链路控制 (HDLC)
  • 帧中继

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

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

相关文章

Excel录制宏批处理:避免重复工作,轻松提升效率

在处理大量数据时,我们常常需要进行一些重复且繁琐的操作,这不仅费时费力,还容易出错。而Excel的录制宏批处理功能可以帮助我们避免这些重复的工作,提高工作效率。本文将为您介绍如何使用Excel的录制宏批处理功能,让您…

【CesiumJS材质】(1)圆扩散

效果示例 最佳实践: 其他效果: 要素说明: 代码 /** Date: 2023-07-21 15:15:32* LastEditors: ReBeX 420659880qq.com* LastEditTime: 2023-07-27 11:13:17* FilePath: \cesium-tyro-blog\src\utils\Material\EllipsoidFadeMaterialP…

在CSDN学Golang云原生(Kubernetes声明式资源管理Kustomize)

一,生成资源 在 Kubernetes 中,我们可以通过 YAML 或 JSON 文件来定义和创建各种资源对象,例如 Pod、Service、Deployment 等。下面是一个简单的 YAML 文件示例,用于创建一个 Nginx Pod: apiVersion: v1 kind: Pod m…

基于Velocity开发代码生成器

一、引言 在项目开发中,我们有碰到大量的简单、重复的增删改查需求,通过阅读若依框架https://github.com/yangzongzhuan/RuoYi 的代码生成器实现,结合我项目所用的技术栈,开发出本项目的代码生成器。 二、Velocity 简单介绍 1、…

【C++入门】浅谈类、对象和 this 指针

文章目录 一、前言二、类1. 基本概念2. 类的封装3. 使用习惯成员函数定义习惯成员变量命名习惯 三、对象1. 基本概念2. 类对象的存储规则 四、this 指针1. 基本概念2. 注意事项3. 经典习题4. 常见面试题 一、前言 在 C 语言中,我们用结构体来描述一个事物的多种属性…

Markdown常用标签及其用途-有示例

Markdown常用标签及其用途 Markdown是一种轻量级标记语言,具有简洁易读的特点。下面是一些常用的Markdown标签以及它们的用途,并附带一些示例: 标题 用于创建不同级别的标题,可通过添加一到六个#符号来表示不同级别的标题。 #…

yolov5的后处理解析

由于最近实习项目使用到了yolov5, 发现对yolov5的后处理部分不太熟悉,为防止忘记,这里简单做个记录。 在yolov5里,利用FPN特征金字塔,可以得到三个加强特征层,每一个特征层上每一个特征点存在3个先验框&am…

自动化测试到底用Python还是Java?因为这个我和同事闹翻了

现在的软件测试工程师,必备的技能之一就是需要掌握自动化。对于那些不会自动化的测试工程师来说,被淘汰的概率会越来越大。因此大家通过各种途径开始学习自动化。但是刚开始都会面临一个棘手的问题:应该学习哪种编程语言进行自动化测试呢&…

Echarts 显示双Y轴

option 对象 option {yAxis: [{ name: 重量(kg), position: left, type: value },{ name: 金额(元), position: right, type: value }],xAxis: { type: category },legend: {},series: [{name: 剩余量,label: { normal: { show…

2023年全国程序员薪酬排行天梯榜

文章目录 ⭐️ 2023年全国程序员薪酬排行天梯榜 在过去很长的一段时间内,网上总有一个声音:“大厂裁员”、“程序员内卷严重”、“程序员人员过盛”、“35岁中年危机”、“码农吃的青春饭”、“互联网寒冬” 等等等等。 讲道理,我对这种人为的…

ViT-vision transformer

ViT-vision transformer 介绍 Transformer最早是在NLP领域提出的,受此启发,Google将其用于图像,并对分类流程作尽量少的修改。 起源:从机器翻译的角度来看,一个句子想要翻译好,必须考虑上下文的信息&…

Redisson源码分析(1)源码下载及本地调试

目录 前言 源码下载 其他准备 前言 新开个坑,关于Redisson源码分析的,感觉不记一下,看完以后,过段时间又忘了... 源码下载 Redisson:https://github.com/redisson/redisson 本次源码我这下载的是3.17.7版本 3.…

Java期末复习基础题编程题

文章目录 基础题记录实践题记录&&与C比较题目1:题目2:题目3: 基础题记录 编译型语言: 定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时&…

【图像分类】CNN+Transformer结合系列.2

介绍几篇利用CNNTransformer实现图像分类的论文:CMT(CVPR2022),MaxViT(ECCV2022),MaxViT(ECCV2022),MPViT(CVPR2022)。主要是说明Transformer的局限性&#x…

【DFS】CF598D

Problem - D - Codeforces 题意: 思路: 直接搜索即可,对于每个连通块都去染色,对于每一个色块都维护这个色块的墙壁数 或者麻烦点用并查集维护也行 Code: int n, m, k; bool st[N][N]; char g[N][N]; int ans[N *…

C#时间轴曲线图形编辑器开发2-核心功能实现

目录 三、关键帧编辑 1、新建Winform工程 (1)界面布局 (2)全局变量 2、关键帧添加和删除 (1)鼠标在曲线上识别 (2)键盘按键按下捕捉 (3)关键帧添加、删…

脉冲信号测试应如何选择示波器带宽?

示波器模拟带宽的定义大家都比较熟悉,是针对于正弦波信号定义的。从频域上看,正弦波信号的频谱就是单根谱线,只要示波器的带宽不小于信号的频率,那么就可以有效观测到波形。若要追求更高的幅度测试精度,则可以按照5倍法…

全球视频编码领域顶级大赛放榜,网易云信首次参赛即斩获H.265赛道多项指标第一

近日,2022 MSU 世界视频编码器大赛正式放榜,网易云信首次参赛就获得骄人成绩,自研的结合智码超清技术的 NE265E 编码器以公开身份参赛,在 H.265 赛道下获得多项指标第一名。 首次参赛,斩获 3 项指标第一 MSU Video Co…

【JVM】详细解析java创建对象的具体流程

目录 一、java创建对象的几种方式 1.1、使用new关键字 1.2、反射创建对象 1.2.1、Class.newInstance创建对象 1.2.2、调用构造器再去创建对象Constructor.newInstance 1.3、clone实现 1.4、反序列化 二、创建对象的过程 2.1、分配空间的方式 1、指针碰撞 2、空闲列表 …

Mac代码编辑器sublime text 4中文注册版下载

Sublime Text 4 for Mac简单实用功能强大,是程序员敲代码必备的代码编辑器,sublime text 4中文注册版支持多种编程语言,包括C、Java、Python、Ruby等,可以帮助程序员快速编写代码。Sublime Text的界面简洁、美观,支持多…