:この記事では、「コンピュータネットワーク」自己学習コース、ビデオ・アドレスであるhttps://www.bilibili.com/video/av47486689。唯一の個人が使用することを学ぶん、侵害た場合、連絡先は削除してください
第3章:データリンク層
アウトライン
データリンク層の基本的な考え方:
データ伝送モデル
フローデータのレベルの観点から
チェックが自分にデータリンク層かどうか、およびそのポートが送信ネットワーク層を見てみることにしました場合にルータ。その後、再シール送信されたビットストリームへのデータリンク層。
この章では、データリンク層を見て
チャネルモデルのデータリンク層
リンク・データ・リンク
これは、物理リンクラインを指し、
NIC + =リンクデータリンク
フレーム
データリンク層は、フレーム伝送であります
伝送のための物理層へのデータリンク層に加えて、開始と終了、。他のノードへのデータリンク層は、次に起動し、削除終了します
データコンジットとしてデータリンク層
三つの基本的な問題を解決しようとします
フレーミングパッケージ
MTU:最大伝送単位、イーサネットで1500のバイトを超えません
受信端末は、文字の開始または終了文字フレームを受信しない場合、それは完全なフレームではないので、このフレームは破棄されます。
トランスペアレント伝送
組成物は、「印刷可能な文字」から(バイナリファイルを転送するときに頻繁に発生する)、問題がある場合にのみデータが送信されていない場合
ソリューション:エスケープ
最後に、データを処理し、その後、我々は削除する必要があります
エラー制御
エラー決意方法:
それは次のように計算されます。
nビットを加え0
(N + 1)ビットに加えて、乱数から選択されます
ダイ2つの部門ですか(これはバイナリ区分ではないことを、すべてのXOR演算、注意を!)
最後の配信がある:元のデータ+剰余
剰余が0である場合、受信後(N + 1)ビットの分割を行うためのレシピエントと、この数は、それがエラーデータを意味します。それが0でない場合は、伝送の過程でエラーがある、それは捨てられます。
そして、除数は彼自身の相談のうち、ネットワークカードのデータリンク層のビット数であります
ここでは、この方法のより詳細な説明は、次のとおりです。
出典:https://colobu.com/2014/10/22/CRC-introduction/
CRC为校验和的一种,是两个字节数据流采用二进制除法(没有借位和进位,使用异或来代替减法)相除所得到的余数。其中被除数是需要计算校验和的信息数据流的二进制表示;除数是一个长度为(n+1)的预定义二进制数,通常用多项式的系数来表示。在做除法之前,要在信息数据之后先加上n个0. 冗余码的位数是n位。
冗余码的计算方法是,先将信息码后面补0,补0的个数是生成多项式最高次幂;将补零之后的信息码用模二除法(非二进制除法)除以G(X)对应的2进制码,注意除法过程中所用的减法是模2减法,即没有借位的减法,也就是异或运算。当被除数逐位除完时,得到比除数少一位的余数。此余数即为冗余位,将其添加在信息位后便构成CRC码字。例如,假设信息码字为
11100011
,生成多项式G(X)=X^5+X^4+X+1,计算CRC码字。G(X) = X^5+X^4+X+1,也就是110011
,因为最高次是5,所以,在信息码字后补5个0,变为1110001100000。用1110001100000模二除法除以110011,余数为11010
,即为所求的冗余位。
因此发送出去的CRC码字为原始码字11100011末尾加上冗余位11010,即1110001111010
。接收端收到码字后,采用同样的方法验证,即将收到的码字用模二除法除以110011(是G(X)对应的二进制生成码),发现余数是0,则认为码字在传输过程中没有出错。尽管在错误检测中非常有用,CRC并不能可靠地校验数据完整性(即数据没有发生任何变化),这是因为CRC多项式是线性结构,可以非常容易地故意改变量据而维持CRC不变。
对于有错误的帧,直接丢掉:
CRC只是FCS的方法之一
接受终端会要求传输终端再重新传一遍数据包,也就是“重传”这一行为的请求是由上层的应用程序发起的
用余数判断是有概率失败的,因为比特正确不代表数据正确。但是信息码越长,判断错误的概率越小
PPP协议(点到点协议)
PPP协议有身份验证的功能,有账号密码,记账,家庭宽带一般就是这种
可以看到PPP协议满足了我们上面所说的三个基本问题
PPP协议可以承载多种应用层协议(TCP/IP等)
多种类型链路指的是无论是光纤、同轴电缆、双绞线等等都可以用
检测连接状态:可以汇报多种状态(常见的就是我们电脑拨号上网时如何有错,返回的状态码)
数据压缩协商:在传输之前就在数据链路层压缩数据
PPP协议的组成
PPP协议细分可以分为以下几部分:
链路控制协议负责身份验证
PPP协议的帧格式
7E开始,7E结束
FF:目标地址,但是在点对点传输中没什么用,所以就写死为FF了
C:C部分也写死为03了,也不起什么作用
FCS:帧检验序列,也包括在PPP协议传输的数据中了
协议部分:标识信息部分的类型是什么
特殊字符处理:
注意,根据第一条拆分产生的7D不需要再根据第二条再拆分了
但如果传输的是比特流而不是字节怎么办?
如果有连续五个1,就立即填入一个0,接受端接受后再将0删除,这样做是为了避免信息出现和表示开始和结束的7E
PPP不使用序号和确认机制:
PPP协议的工作状态
PPP封装的实际使用
家用宽带的带宽是通过时钟频率控制的,定义了时钟频率就定义了发信息的速度
路由器的口。最右面两个是以太网口,中间两个是广域网口,左面两个是光纤接口
下面是设计的网络:
将左一的路由器协议改成PPP,中间的路由器还是使用默认的协议HDLC,这时候两个路由器之间就ping不通了,因为协议不一样了。但是依然显示的是绿灯,因为绿灯只能表示物理层没问题,数据链路层是否正确不能表示。
IPCP和CDPCP都是OPEN的,体现了PPP协议可以支撑多个网络层协议
以太网(广播信道)
总线型的网两端有电阻,用来吸收信号,不能让信号再反射回来
现在的局域网基本上都是星型结构的
局域网
局域网覆盖范围和终端设备数量有限,但是带宽有保证。
广域网是花钱租用别人的线路和带宽,例如家庭宽带,公网ip都是动态的,是ISP从ip池找到的,断线重连Ip也会变,甚至这个ip还会和小区邻居共享
例如我们连接在同一个无线路由器下的设备就都是在一个局域网中了,可以使用内网ip相互通信
要为局域网中的设备划分信道(因为来去只有一路)
现在主要用动态媒体接入控制的随机接入,不用静态划分信道的方式了
认识以太网
传统的线性结构
优点:简单,不需要划分信道
缺点:同时只能有一个会话;安全性不好,容易被抓包
以太网(广播信道)的协议:CSMA/CD
碰撞是怎么发生的呢?
在A给B发送数据、但是还没有到的时候,B就给A发送数据了,这样就会造成冲突,会造成信号叠加。等到A和B收到信号时就能发现产生了冲突
载波监听和碰撞检测一起作用,用来减小冲突的影响
过了争用期,才能确定没有发生冲突,信息被完整地传递了
通常取51.2μs为争用期长度(因为网线的最大距离是有限的,所以可以估计)
所以在发送数据的时候,如果前64个字节没有冲突,那么后面就一定没有冲突了。
规定最短的有效帧长度为64字节,小于这个数字的都视为无效帧,因为小于这个长度就没办法检测冲突了。如果发送的数据量小于64字节,计算机会加0补上
二进制指数类型退避算法
这个算法是由CSMA/CD协议实现的,和用户没关系
它是用来设计发生冲突时推迟时间的
基本退避时间设为争用期,这是保证时间至少够一方传输完的
也就是说,重传次数越多,两台计算机选择的重传范围也就越大,碰撞的概率就越小
这里为什么这么纠结,就是因为冲突的两房没办法通信来协商如何传输、谁先谁后,只能使用这种随机的方法、希望可能相互避开
总结:
- 使用CSMA/CD协议的以太网不能全双工,只能半双工
- 冲突主要发生在每个站发送数据的一小段时间内
这种以太网的通信效率太低了
以太局域网
数据链路层的两个子层:
现在一般简化不谈LLC协议了
这也是刚才二进制指数类型退避算法谈到的
对丢失数据的校验是由两端的计算机的高层实现的,中间的设备不管,中间只管扔掉有问题的帧
星型拓扑
集线器现在已经很少见了
集线器
集线器的示意图:
一个设备发送数据,所有设备都能收到
注意,集线器是工作在物理层的!它其实就是网线的plus版,没有任何智能性的活动,就是对网线的简单模拟而已!
以太局域网的分类:
以太网的信道利用率
发送一帧的平均时间:
注意,不要忘了最后有τ时间用来恢复信道,T0+τ是开始发送+传输+接受完成的完整时间
为了最大化信道利用率,也就是最小化a:
理论信道利用率=发送时间/(发送时间+传输时间)
以太网MAC地址
每个网卡有全球唯一的MAC地址,计算机上有几个网卡就有几个MAC地址
网卡可以收到怎样的数据帧?
MAC地址冲突:一般是由于有人不使用网卡的MAC地址,而是修改了传输时候的MAC地址造成的,会造成网络问题、连不通
广播时候MAC地址是全1(用十六进制表示就是FFFFFFFFFFFF)的,所有设备收到这样的数据都接收处理
MAC帧格式
目标MAC地址和源MAC地址都占6个字节(注意上面那一行,其实就和我们上面说的PPP协议的帧格式很像,但是目标地址和原地址、FCS的长度不一样。下面再把PPP的帧格式拿出来对比下:)
PPP协议的帧格式
以太网要求数据帧最小为64字节,目标地址、原地址、类型和FCS就占了18个字节,所以信息部分最小是46字节,最大是1500字节
为什么MAC帧的信息部分最长1500字节?
来源:https://zhuanlan.zhihu.com/p/21318925
以太网帧:Ethernet Frame
标准的以太网帧,我们经常说的以太网帧长度是从图中 Destination MAC开始,FCS结束。网卡对网络层数据的操作是加以太网帧头、以太网帧尾FCS,很显然上层需要提供目的MAC地址,否则接口无从完成以太网帧的封装。这需要IP层需要事先完成和ARP的交互,解析出目的IP对应的目的MAC,这显然不能由网卡来完成。
网卡对物理层接收到的二进制流成帧处理,校验FCS,去掉以太网帧头,把载荷Payload 放在接收缓存,等待网络层取走。
标准的以太网帧最大可以发送长度1518字节,指的就是这个。去掉以太网头14个字节,再去掉尾部的校验和FCS 4个字节,留给上层协议也就是(1518-14-4)=1500个字节,这个就是MTU的由来。上层协议加黑的原因是要引起大家的注意,这个上层协议如果是IP,那么就是IP MTU,如果是MPLS,就是MPLS MTU,如果是IPv6,那就是IPv6 MTU。
MAC帧没有结束字符:以太网使用曼彻斯特编码,看的是数据变化而不是值,只需要头部即可,只要没有数据传输了就是结束了。:
曼彻斯特编码
抓包实验
用抓包工具可以排除网络故障,这里用的是Ethereal
案例分析1
这里的案例是局域网中一台电脑不断发广播包来询问其他设备的MAC地址,使得占满了局域网,最后发现是104设备有病毒,会不断发广播包,病毒占满设备内存的时候就重启,网络就通一会,不重启的时候网络就中断:
案例分析2
抓包工具将传输的数据(未加密)抓出来了
无效的MAC帧
帧间最小间隔
扩展以太网
在物理层考虑
扩展以太网的最大长度:
扩展设备数量:
将集线器连起来就可以跨局域网访问:
大的冲突域效率其实是降低的:用集线器连接的网络不宜超过30台机器,否则效率就太低了
在数据链路层考虑
集线器表现不佳,网桥出现了
当发现表上没有记录的未知设备时对所有端口发送广播,当发现在表上时,如果源地址和目标地址都在网桥的同一个端口上,那么数据包就不会发往其他端口;只有在不同的端口时才会往不同端口发数据包——网桥隔断冲突域
网桥只会从数据包的来源记录设备所在的端口,不会根据目标做记录
例如上图,B1左侧的端口对应A和B的MAC地址,而右侧对应的是C、D、E、F四台设备的MAC地址
拓展:广播风暴
来源:https://www.zhihu.com/question/51715471
>
>
>
透明网桥
透明网桥不影响计算机通信
透明网桥使用了生成树算法,以避免环的产生:
生成树上每一个节点都有一个优先级,默认优先级都一样
选择一个交换机做树根(一般是优先级数值小或者MAC地址小的),和树根相连的设备的、离更最近的端口叫根端口
再根据带宽选择指定端口(比较复杂),没选上的就是非指定端口,就不再使用了。这样就能去掉原有的环状结构。
在交换机开机时都要生成这样的树才能判断哪些端口是在使用中的
交换机
交换机其实就是高速的网桥。上面说的网桥一般是和集线器相连的,但如果用网桥直接和设备连接,其实就是交换机。交换机可以使得设备之间两两建立数据链路,将冲突域控制在了最小范围,也防止了被抓包(设备之间两两通信,其他设备不参与,得不到数据包)
交换机的端口有“排队”机制,如果一个端口正在发送数据,其他的数据包先排队等候
交换机说的带宽值得是单个端口的交换带宽,总的带宽是单个端口带宽*端口数(带宽独享),这样就大大提高了最大带宽
虚拟局域网
使用虚拟局域网(VLAN)的原因:
原本按物理位置划分网段,一个交换机对应一个网段,但是现在由于业务需要,要跨网段组建新的网段,所以就要用到虚拟局域网。
这种虽然不是课程的重点,但是其实是实际生产中用到的最多的情况。
从最简单的角度去理解:
直接通信にスイッチの複数の各々に対応する(互いに直接共有リソースを見ることができない)、コリジョンドメインは再び小さくなることはできません
これは、スイッチが機能を持っていることに注意してください、追加のハードウェア。
あなたが見ることができ、デフォルトでは、すべてのポートは、VLAN内部にあります
新しいポートを作成し、新しいVLANのVLANに配置されました:
その後、その後、VLANスイッチの間で形成するために一緒に置きます:
でも、スイッチ間のラインをアップすることができますが、実際には、ラインマーカーを行うことができ、パケットに追加し、複数のVLANに(トランクインターフェイス)データを実行することができる - これは、統計多重化ですラベルは、元のデータパケットに追加されたとき、フラグを送信先装置が除去されています。
ISLが使用されるCiscoの技術であり、
ファストイーサネット
100BASE-Tは、CDMA / CDプロトコルを使用していない:スイッチ内のライン上の競合があります。しかし、フレームフォーマットは同じです。**フレーム間の時間間隔10倍小さいです*
通信するための2つのデバイスの速度が同じでない場合、この時間は、ディスプレイが接続されているが、何の双方向通信は、存在しません。一般的に自動的に検出するように設定されています
「デスクトップへのギガビットバックボーンへの高速」
LANネットワークの構築3層モデル
コンバージェンス層のトラフィックは、建物を集約します
ケーススタディ
企業ネットワーク機器のアップグレードが、ギガビットの実際の使用は、メガバイトを切り替え、そして最終的に百ギガビットオートネゴシエーションをサポートしていない古い光ファイバを見つけました:彼は興味深いケースに語っています。解決策は再繊維布にあります。「もともと、プロジェクトデータリンク層、そして最終的に物理層をやる」 - 自分の知識を適用します。
スイッチ上のデータセキュリティ
私たちは、スイッチ上で達成することができます:
- のみ、特定のMACアドレスアクセスポートデバイス
- デバイスは、アクセスポートの一定数のみを許可します
これは、「データリンク層のセキュリティ」と呼ばれています