简述Enthernet和Token-ring这两种局域网工作原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述Enthernet和Token-ring这两种局域网工作原理相关的知识,希望对你有一定的参考价值。

一、Enthernet是基于总线型的广播式网络,在已有的局域网标准中,它是最成功、应用最广的一种局域网技术。它采用的是争用型的CSMA/CD(Carrier Sense Multiple Access/CollisionDetect)具有冲突检测功能的载波监听多路访问介质访问控制方法。其工作原理如下:
(1)准备发送站监听信道;
(2)信道忙,则继续监听信道,一直等到信道空闲再发送数据;
(3)信道空闲,则开始发送数据;
(4)在发送数据时,边发送边检测冲突信号,如果没有冲突信号则完成发送数据,如果检测到冲突信号则发送阻塞信号,然后按Backoff策略计算等待时间,在等待一个时隙后,再重新监听信道的忙闲和检测冲突信号,一直到无冲突信号,完成数据的发送。

二、Token-ring最初是在1969年由IBM公司提出的,1985年IEEE802委员会一IBM令牌环王为模板制定了IEEE802.5环形局域网标准。目前,令牌环技术一成为流行的环访问技术。这种介质访问控制方法的基础是令牌(Token),只有持有令牌的站点才能发送数据。工作原理如下:
(1)环网是许多环接口通过点到点线路链接起来的,每个环接口有两种操作模式,监听和发送;
(2)欲发送数据帧的站点,在接收令牌后,首先在发送数据帧之前把令牌标志位从“0”置为“1”,将令牌转换为帧的其实序列,令牌转换为正常数据帧。
(3)环网上的其他站点在环上监听,当数据帧绕环通过每一个站点时,每个站点都接收该帧,然后检查识别帧中的目的MAC地址,看是否指向本站。如果不是就直接转发到下一站,并在重发帧时对帧进行错误校验。如果是指向本站,帧被复制到该站的缓冲区中,并将接收的数据帧连同接收状态、地址识别指示位和帧复制指示位等一并重发到环上,再换回给源站。
(4)被接收的数据帧及其相关的状态信息继续绕环传递,当它返回发送站点时,源站将它们从环中移去或缓存起来,并与发送前的数据进行比较以检查数据帧传输的真确性。当发送站发送完最后一帧的最后一位时便重新产生令牌,将令牌的标志位从“1”置为“0”,然后再将令牌重新发送到环上。此时该站点要切换到侦听操作模式。
参考技术A 不懂~完全不知道是什么东东!!!哈哈……

这两种类型的闭包有啥区别?

【中文标题】这两种类型的闭包有啥区别?【英文标题】:What is a difference between these two type of closures?这两种类型的闭包有什么区别? 【发布时间】:2018-07-12 14:30:23 【问题描述】:

通过此链接Difference between closure and Computed property,我知道计算属性和闭包之间的区别。

我们可以用两种方式编写闭包,看一个例子,

var computedProperty:String
    return "computedProperty"


var clouserFirst =  (name: String) -> String in
    return "Hello \(name)"


var clouserSecond:String = 
    return "Hello clouserSecond"
()

如果我在课堂上写两个闭包,那么,

第一次调用第二个闭包,这在上面的链接中进行了解释,之后只返回那些值。 但是当我们调用这个闭包时,第一种类型的闭包是调用,而闭包是一个引用类型。见closure in apple document。

我知道计算属性的工作方式与函数一样,因为它不在内存中存储任何值。

所以,我的问题是内存分配如何以两种关闭方式发生。谁能帮我理解这个功能以及这两个闭包之间的区别?

【问题讨论】:

【参考方案1】:

在第一个闭包中,参数作为参数传递,您的 var 是 (String) -> String 类型,而在第二个闭包中,您使用闭包初始化 String var

主要区别在于两个变量的类型一个是String类型,另一个是(String) -> String闭包类型,换句话说,在第一种情况下,您声明String并在第二种情况下赋值您正在将闭包声明为 var 并分配一个值

【讨论】:

@Reninier Melian 当类内存分配时,分配的 clouser 内存和大小? 我知道,当类分配时,所有属性内存都被分配但不在函数中,因为函数是唯一的用户属性和返回值。与计算属性相同,不分配任何内存,只分配计算和返回值。那么在哪个 clouser 中处理,哪个 clouser 存储值?我想你明白我的意思了。 @vikasprajapati 检查这个答案也许可以帮助你***.com/questions/39149006/…【参考方案2】:

您在此处定义了两个存储属性。

    第一个是闭包类型,它接受一个字符串参数并返回一个字符串 第二个是 String 类型(不是闭包),它从闭包中获取值(您在初始化时本身已调用它)

这两个属性会在它们所在的对象初始化时分配内存。

让我们尝试调试一下,看看我们是否正确。

在上面的屏幕截图中,我在创建 Test 对象后停止了调试指针。您可以在调试控制台中看到已初始化存储的属性及其各自的类型。 在第二个屏幕截图中,我打印了这些属性/变量的内存地址,以确认它们确实是在初始化时创建的。甚至不需要调用closureFirst 来获取内存分配,并且创建stringFromClosure 的闭包在返回由stringFromClosure 持有的字符串后已被销毁。

【讨论】:

你能找到他们两个clouser分配的大小吗?

以上是关于简述Enthernet和Token-ring这两种局域网工作原理的主要内容,如果未能解决你的问题,请参考以下文章

Android中实现APP文本内容的分享发送与接收方法简述

TCP/IP概念简述

评价生成式模型的指标之Geometry Score

评价生成式模型的指标之Geometry Score

ServletContext对象

Java中Runnable和Thread的区别