简述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这两种局域网工作原理的主要内容,如果未能解决你的问题,请参考以下文章