博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机网络——数据链路层
阅读量:2429 次
发布时间:2019-05-10

本文共 1103 字,大约阅读时间需要 3 分钟。

基本概念

链路和数据链路

链路是一条点到点的物理线段,中间没有任何其他的交换节点,一条链路只是一条通路的一个组成部分

数据链路:因为当需要在一条线路上传递数据时,除了必须使用一切物理设备时,还需要一些必要的通信协议(如PPP协议)来控制数据的传输,若把实现这些协议的硬件和软件加到链路上,就称做数据链路,最常用的是网络适配器

通俗理解,数据链路层包括:链路+实现某些协议的硬件和软件

数据链路层通信时的主要步骤:

  1. 节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部组成帧
  2. 节点A把封装好的帧发送给节点B的数据链路层
  3. 若节点B的数据链路层收到的帧无差错,则从收到的帧中提取IP数据报上交给网络层,否则丢弃这个帧
    在这里插入图片描述

数据链路层解决的三个基本问题

封装成帧

首先介绍帧的相关定义:帧是点对点信道数据链路层的协议数据单元,在数据链路层,把网络层的信息加上帧头,帧尾,物理层地址,校验值,首部和尾部的一个重要作用就是进行帧定界

透明传输

由于帧的界限是固定的界符,所以在传输的数据部分不允许任何88bit组合与界定符(SOH,EOT)的ASCII一样,否则就会出现定界错误

发送端的数据链路层在数据中出现控制字符“SOH”(代表帧的开始)或“EOT"(代表帧的结束)的前面插入一个转义字符”ESC"(其十六进制编码是1B)

如果转义字符也出现在数据中,那么应在转义字符前插入一个转义字符,当接受端收到连续的两个转义字符时,就删除其中前面的一个,如下图:

在这里插入图片描述

差错控制

传输过程中可能会产生比特差错:1可能会变成0,而0也可能会变成1,为了保证数据传输的可靠性,在计算机网络传输时,必须采用各种差错检测措施,通常采用CRC(循环冗余检测),产生的冗余码称为帧检验序列FCS,FCS添加在数据后面

点对点协议PPP

数据链路层使用的信道主要有两种类型:

  1. 点到点信道:这种信道使用一对一的点对点通信方式
  2. 广播信道:这种信道使用一堆多的广播形式

对与点对点的链路,目前使用最广泛的是PPP协议

PPP协议的组成部分
  1. 将IP数据报封装到串行链路的方法
  2. 用来建立,配置和测试链路连接的链路控制协议LCP
  3. 网络控制协议NCP,其中每一个协议支持不同的网络层协议
PPP协议的帧格式

在这里插入图片描述

  • 标志字段F:规定为0x7E,表示一个帧的开始和结束,就是帧的定界符
  • 地址字段A:规定为0xFF
  • 控制字段C:规定为0x03
  • 协议字段:
    • 当协议字段为0x0021时,PPP帧的信息字段就是IP数据报
    • 当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据
    • 当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据

转载地址:http://yljmb.baihongyu.com/

你可能感兴趣的文章
你的红包狂欢夜,互联网巨头们的流量争夺战
查看>>
春晚过去 4 天了,你卸载百度 APP 了吗?
查看>>
中国移动互联网十年
查看>>
面试官问:请拿出一段体现你水平的代码,我该如何回答?
查看>>
@程序员,沟通这项核心技能你掌握了多少?
查看>>
2019,九问联想贺志强
查看>>
你可以忍受大城市 365 天的孤独,却不能忍受小城市 7 天的热闹
查看>>
35 岁程序员,年后第一天被辞退
查看>>
情人节她说:是的,嫁人当嫁程序员
查看>>
骚操作!代码写情诗 | 程序员有话说
查看>>
小程序卡卡卡?用这个方法后,渲染速度提升三倍!
查看>>
二线城市容不下程序员
查看>>
不要成为自己讨厌的那种程序员 | 程序员有话说
查看>>
为什么程序员下班后只关显示器从不关电脑?
查看>>
滴滴裁员 2000 人,具体补偿方案已出
查看>>
余生,做个不焦虑的程序员!
查看>>
世界排名第 3 的滴滴裁员,开春求职必知的独角兽排行榜
查看>>
Spring Boot 中的响应式编程和 WebFlux 入门
查看>>
阿里终结裁员危机!坚决不拿 10 万阿里人祭天!
查看>>
如何从零开始两天撸一个微信小程序?!(内含源码)
查看>>