网络协议底层原理(五):数据链路层

一、什么是数据链路
    1. 什么是链路?链路就是从1个节点相邻节点的一段物理线路,无论是无线还是有线的,并且中间没有其他交换节点,如下图所示,下图中每个红框圈出来的,都是一段链路!
      image.png
  • 2.什么是数据链路?数据链路就是在一段链路上传递数据,我们知道传递数据需要事先约定好协议,所以链路上传输数据时,会有对应的通讯协议来控制数据的传输

    1. 不同类型的链路,所遵守的通讯协议是不一样的,如下图所示,计算机到路由器传输数据采用CSMA/CD协议,路由器到路由器传输数据采用PPP协议;(注意这里的协议说的是数据链路层用的协议!!!)
    • 广播信道(把消息广播出去的信息通道),就采用CSMA/CD协议, 例如同轴电缆和集线器组成的链路

    • 点对点信道(把消息单对单传输出去的信息通道),就采用PPP协议,例如两个路由器之间的链路

      不同链路传输数据,采用的协议不同

    1. 只是要数据链路层,无论传输数据时,采用什么协议,都会面临三个问题:封装成帧、透明传输、差错校验,只要解决了这三个问题,我们就能完整的把数据通过数据链路层传输出去,我们来看看前辈们是怎么解决这三个问题的
二、封装成帧
    1. 封装成帧指的是,如何把网络层传递过来的数据,封装成数据链路层传递的数据,数据链路层 数据的单位是: ,所以叫做封装成帧
    1. 前辈们是这么设计的,将网络层传过来的数据(也就是IP数据包),放在中间,两边加上帧开始符帧结束符,组成一帧,要注意的是,每个帧的数据部分都有一个最大传输单元(MTU),也就是上层传递过来的IP数据包,必须小于MTU才行,如下图所示
      image.png
    1. 每种数据链路层的协议都规定了最大传输单元MTU的大小,以太网(也就是CSMA/CD协议)规定的MTU是1500个字节
三、透明传输
    1. 我们传输数据时,要根据帧开始符号帧结束符判断出来哪块数据是一个完整的,如果帧的数据部分出现了帧开始符或者帧结束符怎么办呢,就无法划分出完整的了,针对这种情况,前辈们想出来了一个解决方案,让你不用关心数据是如何转化的,一个完整的帧经过数据链路传输以后,还可以得到完整的帧,我们把这个传输过程成为:透明传输
    1. 前辈们是如何设计透明传输的呢?其实很简单,如下图所示,SOH帧开始符EOT帧结束符,当中间的数据部分出现帧开始符SOH或者帧结束符EOT或者转义字符ESC时,就往这个字节后面插入一个转义字符ESC,判断帧是否结束时,就看下帧结束符前边有没有转义字符就可以了,没有就代表是真正的帧结束符;效果就是:从结点A发出去的帧是怎样的,经过链路传输以后,结点B收到的帧也是怎样的
      image.png
四、差错校验
    1. 差错校验是指:万一传输过程中出现了错误,怎么校验出来呢?例如收到信号干扰导致某个位错误了 ,怎么能知道错误呢?
  • 2.前辈们是这么设计的:在帧的尾部放上了一个字段,叫做FCS,这个字段的值是:通过帧的数据部分+数据链路层的首部组合起来计算出来的一个哈希值,传输过去以后,就再次计算一下FCS,与传递过来的FCS做比较,如果不一致,就认为传输出错了,网卡就会把这个帧扔掉

    image.png

五、以太网帧
    1. CSMA/CD协议,全称是Carrier Sense Multiple Access with Colision Detectio,翻译过来就是载波侦听多路访问/冲突检测,意思就是只要遵守这个协议,就具备载波侦听(监听这个线路有没有数据在传输)、冲突检测(收到的数据是冲突产生的回波,还是真实数据)的能力;(一般在集线器时代,用这个协议比较多;现在用的交换机已经具备了全双工通讯了,也就不需要这个协议了)
    1. 使用CSMA/CD协议的网络可以称为以太网(Ethernet),它传输的是以太网帧
    • 以太网帧的格式有:Ethernet V2标准、IEEE的802.3标准,不同标准的帧的格式不一样

    • 目前以太网使用最多的是:Ethernet V2标准

    1. 为了能检测正在发送的帧是否产生了冲突,以太网的帧至少要64字节
    1. 用交换机组件的网络,已经支持全双工通讯了,不再需要使用CSMA/CD协议了,但是它传输的帧依然是以太网帧,所以交换机组建的网络依然可以叫做以太网
六、以太网的Ethernet V2帧
    1. 以太网帧的Ethernet V2标准格式如下图所示,在数据链路层这一行,最左边是帧的首部,中间是帧的数据部分,最右边是帧的尾部
    • 帧的首部,没有帧开始符,只剩下目标Mac地址、源Mac地址、类型了,类型就是IPv4或者IPv6;

    • 帧的数据部分,是网络层传递过来的数据,如果不够64字节,会自动填充;

    • 帧的尾部,只剩下FCS这个哈希值了,用来进行差错校验的;

image.png
    1. Ethernet V2帧之所以没有帧开始符和帧结束符,是因为以太网采用了曼彻斯特编码,接受帧的过程只要发现信号没有跳变,就认为帧结束了,这是一种通信技术,不在咱们此次研究范围内,了解即可
    1. 以太网的一个标准的Ethernet V2帧就长下面这个样子,由:帧的首部 + 帧的数据部分 + 帧的尾部组成,长度范围是64~1518字节
      image.png
七、PPP帧

PPP帧长下面这个样子,因为是点对点信道,所以不需要源Mac地址和目标Mac地址了,但是多了帧开始符和帧结束符

image.png

八、总结
    1. 相邻物理线路之间传输数据就是数据链路,不同链路之间遵守的通讯协议不同,根据通讯协议,我们可以把常见的数据链路层的帧分为:以太网帧PPP帧,如下所示:
    • 计算机和路由器之间、交换机和路由器之间的数据传输,用的是以太网帧

    • 路由器和路由器之间的数据传输,用的是PPP帧

image.png
    1. 从网络层传递下来的IP数据包,从计算机0计算器1的过程中,会以的形式进行传输,帧的数据部分不会变,变得是帧的首部和帧的尾部,帧的首部和尾部会随着链路不同发生变化,例如:以太网帧就没有帧开始/结束符,PPP帧就没有源Mac地址和目标Mac地址!!!
    1. 以太网帧和PPP帧的区别在于:以太网帧有目标/源mac地址,没有帧开始和帧结束符;PPP帧没有mac地址,多了帧开始和结束符;为什么会有这种差别呢?
    • 以太网帧有目标/源mac地址,而PPP没有?- 是因为以太网帧的协议是广播协议,会给这个网段的所有的设备发送数据,所以要知道目标mac地址才好确认是发给谁;而PPP协议是点对点协议(Ponit to Point Protocol),用于两个路由器直接相连,不需要mac地址就可以传输过期;

    • 以太网没有帧开始结束符,而PPP有? - 是因为以太网使用的是曼特斯特编码,接受的时候发现有信号跳变,就认为帧结束了,所以没有帧开始结束符

    1. 网卡工作于数据链路层和物理层;交换器、集线器工作于物理层;路由器工作于网络层、数据链路层、物理层
    1. WireShark抓包工具,抓到的帧没有FCS,因为FCS会在网卡进行差错校验后扔掉
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容