PCEVA,PC绝对领域,探寻真正的电脑知识
12
返回列表 发新帖
打印 上一主题 下一主题
开启左侧

对快速以太网CSMA/CD的一点不明之处与大家讨论

[复制链接]
21#
kulengpceva 发表于 2013-6-5 13:28 | 只看该作者
haierccc 发表于 2013-6-5 11:27
我们讨论的是第二层,那就看第二层吧,不看其它层面了。
我有本《快速以太网》的书,但不在手边,我回去 ...

你这个说法有问题。文件传输是几层的?你用几层的效果去考虑几层的问题。说了半天你都没去看看FIFO是什么嘛?真想研究交流是可以的,有主见也是应该的,但是不是油米不进,那就没啥好交流的了。
22#
haierccc  楼主| 发表于 2013-6-5 17:39 | 只看该作者
本帖最后由 haierccc 于 2013-6-5 17:43 编辑
kulengpceva 发表于 2013-6-5 13:28
你这个说法有问题。文件传输是几层的?你用几层的效果去考虑几层的问题。说了半天你都没去看看FIFO是什么 ...


文件传输是三层以上的,是应用层的,而我谈论的问题是第二层的。
我是从应用层上,发现了第二层的一个不明白的地方。这有什么可奇怪的。
因为高层应用依赖于底层协议,如果底层只允许2个实体通信,第三方插不进来的话,高层的网络应用也无法实现多任务,或者应用严重受限。
当然,实际情况是底层可以实现多个实体在同一条线路上的争用(以太网是竞争型的网络),但是其中的原理我一直不明,我就是在讨论这个问题的。
如果你知道,请说明。
23#
kulengpceva 发表于 2013-6-5 19:03 | 只看该作者
haierccc 发表于 2013-6-5 17:39
文件传输是三层以上的,是应用层的,而我谈论的问题是第二层的。
我是从应用层上,发现了第二层的一个不 ...

你应该系统的去考虑当一个文件变成比特流进行传输然后在逐步还原的一个过程。包括二层的冲突诊断方式用什么来做。你如果系统的去想,认真的去分析整个过程,然后计算每一帧的大小,结合线路速率,我想你不会有这么多问题存在了。你一开始举的例子的现象是跟二层无关的,你开始提到的疑惑操作系统已经帮你处理完毕了。
24#
haierccc  楼主| 发表于 2013-6-5 20:34 | 只看该作者
本帖最后由 haierccc 于 2013-6-5 21:10 编辑
kulengpceva 发表于 2013-6-5 19:03
你应该系统的去考虑当一个文件变成比特流进行传输然后在逐步还原的一个过程。包括二层的冲突诊断方式用什 ...


OSI模型的确是说,各层只考虑与对方同层通信,不考虑下层的细节。
不过,如果纵向看,肯定是下层托起上层,上层依靠下层的功能运作的。应用层依赖TCP层分包,TCP层依赖IP层分包,IP依赖MAC层成帧。
其实我一开始举得例子,不是想要问一个文件是如何经过若干层,最终传输到网络上的,从第七层到第一层的过程书上都写了。是在问快速以太网的CSMA/CD机制的冲突检测问题。
也就是第二层的问题。
25#
haierccc  楼主| 发表于 2013-6-5 20:44 | 只看该作者
本帖最后由 haierccc 于 2013-6-5 22:32 编辑
Kiddy 发表于 2013-6-4 23:32
即使是A与B的通信量大且连续,也并不是完全占有信道。广播域上所有的数据帧发送都要公平地“争用”信道, ...

我就是想要知道争用信道的细节。
终于在百度图片里找到了CSMA/CD的工作流程:

      上图可见,当有数据要发送的时候,网卡首先监听线路是否繁忙,如果不繁忙,就等待IFG(帧间隙)时间(1处),然后发送数据(2处)。
      关键就是3处,因为路由器在2处向B发送数据,而此时A与B的通信尚未结束,于是肯定会产生冲突(A与B的通信被打断),冲突三方会随机后退一小段时间,重新建立发言秩序,路由器就”有可能“获得发言权。如果第一次不能发言,重复若干次之后,路由器总能发言。
  不过在1和2之间,我看到另一种不同的说法(也是我从书上看到的版本):

  如果按照这个说法,要等待2倍的IFG时间才发送数据,但此时A与B的通信尚未结束,在结束之前是等不到这2倍的IFG时间的(2帧之间的间隔就是1个IFG),所以就会出现我说的那个问题:只能2台机器通信。
       这2个流程,到底哪个对呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
26#
kulengpceva 发表于 2013-6-5 23:55 | 只看该作者
本帖最后由 kulengpceva 于 2013-6-6 00:01 编辑
haierccc 发表于 2013-6-5 20:44
我就是想要知道争用信道的细节。
终于在百度图片里找到了CSMA/CD的工作流程:

咱们不妨这么考虑问题,一个局域网内的OA服务器,进行办公的时候,会有很多人对服务器进行访问,那么也就是不止A B 还有C D E等等等等,他们通过不同的双绞线或者光纤进行访问。在各个终端来看,各自的线路可能都是空闲的。他们最终的数据汇集到接驳着这台服务器的交换机。对于ABCE等来说,高层的应用协议会保障他们的通信持续和可靠性。但在二层的时候,依赖CSMA/CD来进行数据的传输,帧是一个很小的单位,帧间隙的大小也随着不同速度的网络在相应的缩短。是我们说起来的一个CSMA/CD工作是一个复杂的流程,但是实际上是一个极短的时间。我帮你找到了一个写的还是很清晰的文章,具体介绍冲突解决的这一个过程。实际上所有帧如果按照顺序排起来,每个帧都会去到不同的高层应用协议,并不连续。
具体的你看下面的网址。主要就是退避算法的问题,退避时间并不唯一,这就给出了一个很好的解决办法。这估计要感谢那些多年以来辛苦科研的数学家了。
http://bbs.chinaunix.net/thread-1171146-1-1.html

相信你看完这个应该,应该疑惑都解开了。

感觉你开贴的时候例子不够贴切,导致大家交流中产生了一定的误解和偏差。这部分材料我以前也没有认真看过,趁着这个机会也丰富了一些知识,这就是交流的好处。这个有些深入了,如果想更快的学习网络,不建议做太深入的研究。这样理论知识可能很扎实,但是进展会比较慢。先具备让一个网络运行起来的能力,然后逐步细化深入,因为这里包含的基础知识太多太多。至于怎么选择,那就是LZ凭自己的喜好了。
27#
bobzhuyb 发表于 2013-6-6 03:04 | 只看该作者
kulengpceva 发表于 2013-6-5 23:55
咱们不妨这么考虑问题,一个局域网内的OA服务器,进行办公的时候,会有很多人对服务器进行访问,那么也就 ...

你回答的和他问的不是一个东西。他明白一旦A和B冲突会怎么样;但不明白当A一直在不停说话时,B如何插嘴从而产生冲突(因为按他的理解B一直监听到的都是信道忙,所以B就根本不会开口)
28#
bobzhuyb 发表于 2013-6-6 03:06 | 只看该作者
haierccc 发表于 2013-6-5 20:44
我就是想要知道争用信道的细节。
终于在百度图片里找到了CSMA/CD的工作流程:

这两个说法是一样的,监听到信道不忙以后等待一个IFG开始发。我不知道你如何读出要等两个IFG的意思的

29#
bobzhuyb 发表于 2013-6-6 04:09 | 只看该作者
haierccc 发表于 2013-6-5 20:44
我就是想要知道争用信道的细节。
终于在百度图片里找到了CSMA/CD的工作流程:

你仔细看看你找到的第二个说法中,两句话说的是两个主语。
第一句,当一个站点连续发送时(即你主楼例子中的A),那么连续两个数据帧间要间隔一个IFG
第二句,当一个站点在监听着一个正在忙的信道等待发送时(即你主楼中的B或者无线路由),当发现信道空闲时,要等待一个IFG

所以无论是哪方,都是等待1个IFG开始发。

扩展1:为什么在监听的站点也要等待一个IFG?因为如果不等的话,会导致后来者(B)一定能插队先来者(A),不公平。这里要注意DLL层的公平谈的是per packet的公平。per flow的公平是transport layer管的。

扩展2:QoS中就有一个利用调整IFG来调整优先级的方法,例如设定A的IFG比B的大,那么就能保证B总是能插队A,而A无法插队B
30#
haierccc  楼主| 发表于 2013-6-7 12:27 | 只看该作者
本帖最后由 haierccc 于 2013-6-7 12:29 编辑
bobzhuyb 发表于 2013-6-6 03:04
你回答的和他问的不是一个东西。他明白一旦A和B冲突会怎么样;但不明白当A一直在不停说话时,B如何插嘴从 ...

      你说的对,是这个意思。
      现在终于明白了。如果某台机器要发言,就随时发言,强行产生冲突以打断别人的链接,冲突各方随机回退,重新建立发言秩序。
      原来以为会陷入无限监听状态,其实不会的。
      在发言之前会监听2种状态:线路忙状态(当前正在帧内)和IFG状态,,帧结束以后,持续监听一个IFG,然后强行发言。
      这就是竞争型网络的特点:会产生冲突。同时依靠冲突重建发言秩序,给自己找到发言机会。
      不过每发一个帧,都要产生冲突,效率会下降。




31#
XXHJACK 发表于 2013-6-7 12:33 | 只看该作者
都说了你要看完才明白的。。。。。。。。。。。。
32#
bobzhuyb 发表于 2013-6-7 12:48 | 只看该作者
本帖最后由 bobzhuyb 于 2013-6-7 12:49 编辑
XXHJACK 发表于 2013-6-7 12:33
都说了你要看完才明白的。。。。。。。。。。。。

他这问题和你前面提的tcp毫无关系。。也不需要看完7层结构,看最低两层就够了,和网络层及以上毫无关系。。。为啥前面一堆人在说什么tcp,什么应用层性能啥的。。

很简单一道理,要是一个人问第N层是怎么做的,而回答是要用到N+1层及以上的东西,回答的那人肯定没入门。

33#
haierccc  楼主| 发表于 2013-6-7 14:57 | 只看该作者
本帖最后由 haierccc 于 2013-6-7 15:01 编辑
bobzhuyb 发表于 2013-6-7 12:48
他这问题和你前面提的tcp毫无关系。。也不需要看完7层结构,看最低两层就够了,和网络层及以上毫无关系。 ...


我就是在讨论第二层的。
34#
XXHJACK 发表于 2013-6-7 20:54 | 只看该作者
bobzhuyb 发表于 2013-6-7 12:48
他这问题和你前面提的tcp毫无关系。。也不需要看完7层结构,看最低两层就够了,和网络层及以上毫无关系。 ...

可能我没理解都lz到底想问的是什么吧!是电脑之间创建连接的问题还是底层帧发送的问题!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部