网络2——数据链路层
来源:互联网 发布:阿国网络 编辑:程序博客网 时间:2024/06/10 10:58
1、使用点对点信道的数据链路层
数据链路层协议有许多种,但有三个基本问题是共同的。这三个问题是:封装成帧,透明传输,差错检测。下面分别讨论一下。
封装成帧:封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界。
透明传输:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
差错检测:循环冗余校验码(CRC) :数据链路层应用最普遍最有效的检错码
2、使用广播信道的数据链路层
局域网:
实现:
目的地址,源地址各占6个字节,类型占2个字节,标识上层是什么协议(方便把收到的mac帧的数据交给上层协议),然后是46-1500字节之间大小的数据(46是这么来的,以64为冲突窗口的大小可以知道,一个正常帧的大小应该大于等于64字节,然后64-6-6-2-4=46字节)。最后四个字节的fcs是叫 帧检验序列。
需要指出的是,以太网v2的mac帧格式中,其首部并没有一个帧长度(或数据长度)的字段。那么mac子层有怎样知道从接受到的以太网帧中取出多少字节的数据交付给上一层呢?这个46-1500之间的大小到底是多少呢?这点有曼彻斯特编码可以知道,发送码元的时候会有电平的跳变。发送完一个帧后,我们就不发送了,这样我们从结束位置往前数4个就能确定字段的结束位置了。
当需要发送的数据量小于46个字节时,mac子层会在数据字段的后面加入一个整数字节的填充字段,保证 以太网帧长度不小于64字节。但是又一个问题出现了,我们把接受到的信息剥去首部和尾部的信息后交个ip层,那么ip层怎么识别的填充字段呢?哈哈,原来,ip层首部有一个总长度字段,比如我们ip层的总长度字段值为42,那么mac子层把46字节的数据交个上层的时候,ip就知道了后4个字节时填充的字节,丢弃即可。
最前面的8个字节时用来同步时钟用的,不是很重要,了解即可。
交换机:
(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;不断学习的一个过程。
(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口; (3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上; (4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。 不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。原理
从二层交换机的工作原理可以推知以下三点:
(1) 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换机就可以实现线速交换; (2) 学习端口连接的机器的MAC地址,写入地址表,地址表的大小(一般两种表示方式:一为BUFFER RAM,一为MAC表项数值),地址表大小影响交换机的接入容量; (3) 还有一个就是二层交换机一般都含有专门用于处理数据包转发的ASIC (Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快。由于各个厂家采用ASIC不同,直接影响产品性能。 以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选型时注意比较广播风暴的原理:
- 网络2——数据链路层
- 计算机网络——数据链路层、网络层
- 数据包分析——数据链路层 和 网络层
- 网络 数据链路层
- 【网络】数据链路层
- 数据通信与网络六——数据链路层控制
- 网络解析3——数据链路层
- 计算机网络 —> 数据链路层
- 数据链路层—简介
- 【网络协议】数据链路层
- 《网络协议》数据链路层
- 【网络协议】数据链路层
- 网络编程--数据链路层
- 数据链路层—了解数据链路和帧
- (2)-数据链路层
- 2、数据链路层
- 数据链路层和网络层
- 学习数据链路层和网络层
- Tomcat5 内存配置
- 策略模式
- HTML之将焦点移动到某个元素上
- Mars老师的Android学习基本路线Linux、数据库、网络协议、服务器端开发知识基础知识
- 快乐无处不在
- 网络2——数据链路层
- 设计技巧:EMI辐射信号强度解析
- JMP - 跳转
- JMP - 跳转
- R.java不存在
- 如何高效利用GitHub
- Webkit之Frame, FrameView, WebHTMLView, 与 iFrame标签的关系分析
- 关于cat >file,cat <file <<EOF
- 【struts2】ActionContext与ServletActionContext