IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> TCP/IP协议家中的老二——数据链路层 -> 正文阅读

[系统运维]TCP/IP协议家中的老二——数据链路层

大家好,我是小杰。

在这个系列里,我们将详细学习计算机网络相关的知识。 这次要讲的是数据链路层

老规矩,先上这个系列的镇宝图——TCP/IP协议五层模型

在这里插入图片描述

为什么要有数据链路层

所谓存在即合理,经过了这么多年实践的考验,那这一层也定有它不可或缺的原因:

  1. 为IP模块发送和 接收IP数据报
  2. 为ARP模块发送ARP请求和接收ARP应答
  3. 为RARP发送RARP请求和接收RARP应答

ARP和RARP分别为地址解析协议和逆地址解析协议

什么是RFC

Request For Comments(RFC)是一系列以编号排定的文件,Internet的所有标准都是以请求评论文档(RFC)的形发布的,TCP/IP协议也不例外。

喏,就是下面这些,是一系列的文件。

在这里插入图片描述

为什么要提RFC协议

RFC要求每台接入Internet的主机

  1. 必须能发送和接收采用RFC 894(以太网)封装格式的分组
  2. 应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组
  3. 也许能够发送采用RFC 1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894分组。

以太网IP数据报的封装是在RFC 894中定义的,IEEE 802则是在RFC 1024中定义的。

可见以太网协议是局域网最常用的

两种封装格式

数据链路层主要有两种帧格式:以太网封装格式IEEE802封装格式

在这里插入图片描述

两种帧格式都采用6字节的目的地址和源地址(IEEE的802.3可采用两字节),最后都包含一个CRC循环冗余校验部分,用来检查错误。其他的区别就不细探讨了,主要研究以太网封装格式。

RFC 893中还描述了尾部封装的封装格式,不过目前已遭到反对,有兴趣的同学可以自行查阅和了解。

IP数据报封装协议

上节中间部分就是IP数据报,然而对IP数据报的封装也是有讲究的!

目前主要有两种 SLIP 和 PPP(点对点协议)

SLIP

在RFC 1055中定义了SLIP(Serial Line IP)

SLIP协议格式

  1. IP数据报以一个称作 END(0 x c0)的特殊字符结束。同时,为了防止数据报到来之前 的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个 END字符。
  2. 如果IP报文中某个字符为 END,那么就要连续传输两个字节 0xdb和0xdc来取代它。0xdb这个特殊字符被称作SLIP的ESC字符,但是它的值与ASCII码的ESC字符(0 x 1b)不同。
  3. 如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0xdb和0xdd来 取代它。

缺陷:

  1. 每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。
  2. 数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于 SLIP, 那么它不能同时使用其他协议。
  3. SLIP没有在数据帧中加上检验和(类似于以太网中的 CRC字段)。

CSLIP(压缩的SLIP)

之所以出现CSLIP的原因,就是因为SLIP大,所以需要优化,那么它大在什么地方呢。

我特意去RFC 1144(CSLIP的RFC定义文档)去查了一下,因为TCP/UDP协议很大,每次传输的时候将近一半的固定信息是不会变动的,每次就算用TCP协议传输1字节的数据都需要40字节的固定位信息的发送,因此这就是可以优化的地方。

CSLIP的做法是,接收端拷贝一份上次发送的固定字段,发送者每次只需要传递变动的位数就好了,这样通常可以把原来40字节压缩至3~5字节,可见效率真的很高!

PPP:点对点协议

设计目的主要是用来通过拨号专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

点对点协议是针对SLIP的缺陷进行修改的:

  1. 在串行链路上封装 IP数据报的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传送单元MTU的限制。
  2. 建立、配置及测试数据链路的链路控制协议( LCP:Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。
  3. 针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)体系。当前 RFC定义的网络层有I P、OSI网络层、DECnet以及AppleTalk。例如,IP NCP允许双方商定是 否对报文首部进行压缩,类似于 CSLIP(缩写词NCP也可用在TCP的前面)。

在这里插入图片描述

优点

  1. PPP支持在单根串行线路上运行多种协议, 不只是IP协议;
  2. 每一帧都有循环冗余检验;
  3. 通信双方可以进行 I P地址的动态协商(使用IP网络控制协议);
  4. 与CSLIP类似,对TCP和IP报文首部进行压缩;
  5. 链路控制协议可以 对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加 3个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。

随着产品越来越多,产家也开始逐渐支持PPP,因此最终PPP应该取代SLIP。

HDLC协议

高级数据链路控制(High-Level Data Link Control)简称HDLC,是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC协议扩展开发而成的。

在这里插入图片描述

PPP和HDLC协议对比

相同点

协议名全双工链路透明传输差错检测
PPP协议
HDLC协议

不同点

协议名面向方式协议字段有无序号和确认机制是否可靠
HDLC协议面向比特可靠
PPP协议面向字节不可靠

环回接口

大多数的产品都支持环回接口,以允许运行在同一台主机上的客户程序和服务器程序通过 TCP/IP进行通信。A类网络号127就是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为 localhost。一个传给环回接口的IP数据报不能在任何网络上出现

环回接口处理过程

可见127.0.0.1访问的IP数据包并不经过以太网卡

关键点

  1. 传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入。
  2. 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。
  3. 任何传给该主机IP地址的数据均送到环回接口。

最大传输单元MTU

以太网和802.3对数据帧的长度都有一个限制,其最大值分别是 1500和1492字节。链路层的这个特性称作MTU最大传输单元。不同类型的网络大多数都有一个上限。

如果IP层有一个数据报要传,而且数据的长度比链路层的 MTU还大,那么IP层 就需要进行分片,把数据报分成若干片,这样每一片都小于MTU。

小结

  1. 局域网主要是以太网协议,广域网主要是PPP协议
  2. 回环接口使得本地回环地址不必经过以太网卡,但是对其他上层协议透明
  3. 最大传输单元会导致IP数据报分片
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 23:07:00  更:2022-04-07 23:10:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:28:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码