最常使用的封装格式是RFC 894定义的格式。图2 - 1显示了两种不同形式的封装格式。图中每个方框下面的数字是它们的字节长度。

两种帧格式都采用48 bit(6字节)的目的地址和源地址( 8 0 2 . 3允许使用16 bit的地址,但一般是48 bit地址)。即硬件地址。

接下来的2个字节在两种帧格式中互不相同。在8 0 2标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码。以太网的类型字段定义了后续数据的类型。在8 0 2标准定义的帧格式中,类型字段则由后续的子网接入协议( Sub-network AccessP r o t o c o l,S N A P)的首部给出。幸运的是, 8 0 2定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。

在以太网帧格式中,类型字段之后就是数据;而在8 0 2帧格式中,跟随在后面的是3字节的802.2 LLC和5字节的802.2 SNAP。目的服务访问点( Destination Service Access Point,D S A P)和源服务访问点( Source Service Access Point, SSAP)的值都设为0 x a a。Ct r l字段的值设为3。随后的3个字节o rg code都置为0。再接下来的2个字节类型字段和以太网帧格式一样(其他类型字段值可以参见RFC
1340 [Reynolds and Postel 1992])。

C R C字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为F C S或帧检验序列)。

8 0 2 . 3标准定义的帧和以太网的帧都有最小长度要求。8 0 2 . 3规定数据部分必须至少为3 8字节,而对于以太网,则要求最少要有4 6字节。为了保证这一点,必须在不足的空间插入填充(p a d)字节。在开始观察线路上的分组时将遇到这种最小长度的情况。

SLIP:串行线路IP

下面的规则描述了S L I P协议定义的帧格式:

    1) IP数据报以一个称作E N D(0 x c 0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个E N D字符(如果有线路噪声,那么E N D字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个错误报文交给上层后,会发现其内容毫无意义而被丢弃)。

    2) 如果I P报文中某个字符为E N D,那么就要连续传输两个字节0 x d b和0 x d c来取代它。0 x d b这个特殊字符被称作S L I P的E S C字符,但是它的值与A S C I I码的E S C字符(0 x 1 b)不同。

    3) 如果I P报文中某个字符为S L I P的E S C字符,那么就要连续传输两个字节0 x d b和0 x d d来取代它。

图2 - 2中的例子就是含有一个E N D字符和一个E S C字符的I P报文。在这个例子中,在串行线路上传输的总字节数是原I P报文长度再加4个字节。

S L I P是一种简单的帧封装方法,还有一些值得一提的缺陷:

        1) 每一端必须知道对方的I P地址。没有办法把本端的I P地址通知给另一端。

        2) 数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于S L I P,那么它不能同时使用其他协议。

        3 ) S L I P没有在数据帧中加上检验和(类似于以太网中的C R C字段)。如果S L I P传输的报文被线路噪声影响而发生错误,只能通过上层协议来发现(另一种方法是,新型的调制解调器可以检测并纠正错误报文)。这样,上层协议提供某种形式的C R C就显得很重要。

既然承认这些性能上的缺陷,于是人们提出一个被称作C S L I P(即压缩S L I P)的新协议,它在RFC 1144[Jacobson 1990a]中被详细描述。C S L I P一般能把上面的4 0个字节压缩到3或5个字节。它能在C S L I P的每一端维持多达1 6个T C P连接,并且知道其中每个连接的首部中的某些字段一般不会发生变化。对于那些发生变化的字段,大多数只是一些小的数字和的改变。这些被压缩的首部大大地缩短了交互响应时间。

PPP:点对点协议

P P P,点对点协议修改了S L I P协议中的所有缺陷。P P P包括以下三个部分:

        1) 在串行链路上封装I P数据报的方法。P P P既支持数据为8位和无奇偶检验的异步模式(如大多数计算机上都普遍存在的串行接口),还支持面向比特的同步链接。

        2) 建立、配置及测试数据链路的链路控制协议( L C P:Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。

        3) 针对不同网络层协议的网络控制协议( N C P:Network Control Protocol)体系。当前R F C定义的网络层有I P、O S I网络层、D E C n e t以及A p p l e Ta l k。例如,IP NCP允许双方商定是否对报文首部进行压缩,类似于C S L I P(缩写词N C P也可用在T C P的前面)。

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

环回接口

大多数的产品都支持环回接口( Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通过T C P / I P进行通信。A类网络号1 2 7就是为环回接口预留的。根据惯例,大多数系统把I P地址1 2 7 . 0 . 0 . 1分配给这个接口,并命名为l o c a l h o s t。一个传给环回接口的I P数据报不能在任何网络上出现。

1) 传给环回地址(一般是1 2 7 . 0 . 0 . 1)的任何数据均作为I P输入。

        2) 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。

        3 ) 任何传给该主机I P地址的数据均送到环回接口。

最大传输单元MTU

正如在图2 - 1看到的那样,以太网和8 0 2 . 3对数据帧的长度都有一个限制,其最大值分别是1 5 0 0和1 4 9 2字节。链路层的这个特性称作M T U,最大传输单元。不同类型的网络大多数都有一个上限。

链路层 - SLIP,PPP,的更多相关文章

  1. tcp/ip详解 卷1 -- 链路层

    以太网 以太网指数字设备公司,英特尔公司,Xeror公司在 1982年联合公布的一个标准, 是当前 TCP/IP 采用的主要局域网技术. 以太网采用 CSMA/CD 的媒体接入方法, 即 带冲突检测的 ...

  2. 链路层的简介和MTU

    链路层杂谈(凭个人理解瞎说的,欢迎拍砖) 链路层,说白了就是把网络层的IP数据处理一下,加点东西,放到物理层上去.    加的东西:源.目的地址和CRC校验值,有的还有类型这个字段,用来区分协议.  ...

  3. 《TCP/IP详解卷1:协议》第2章 链路层-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  4. TCP/IP 协议:链路层概述

    我们以一个常见的查看IP指令为出发点(ifconfig -a):   1.链路层是什么 链路层是指硬件层协议.也即网络所使用的硬件,比如:以太网(后文主要讨论对象),令牌环网,FDDI已经RS-232 ...

  5. Android网络编程系列 一 TCP/IP协议族之链路层

    这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RA ...

  6. TCP/IP:链路层

    链路层主要目的: 1.        为IP模块发送和接收IP数据报. 2.        为ARP模块发送ARP请求和接收ARP应答. 3.        为RARP发送RARP请求和接收RARP应 ...

  7. tcp/ip 卷一 读书笔记(2)物理层和链路层网络

    物理层和链路层网络 术语 链路 是一对相邻结点间的物理线路,中间没有任何其他的交换结点. 数据链路 除了物理线路外,还必须有通信协议来控制这些数据的传输. 帧 数据链路层的协议数据单元(PDU) 串行 ...

  8. 【TCP/IP详解 卷一:协议】第二章:链路层

    2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应 ...

  9. TCP/IP——链路层简记

    在TCP/IP协议族中链路层的主要目的有三个: 1,为IP模块发送和接受IP数据报. 2,为ARP模块发送ARP请求和接受ARP应答. 3,为RARP模块发送RARP请求和接受RARP应答. 链路层包 ...

随机推荐

  1. activiti 动态配置 activiti 监听引擎启动和初始化(高级源码篇)

    1.1.1. 前言 用户故事:现在有这样一个需求,第一个需求:公司的开发环境,测试环境以及线上环境,我们使用的数据库是不一样的,我们必须能够任意的切换数据库进行测试和发布,对数据库连接字符串我们需要加 ...

  2. [Vim]vim使用笔记--分屏操作

    我们经常要打开多个文件,不同的窗口操作多个文件,分屏就很好用了. 1 命令模式下: :new,新建文件并分屏, 快捷键,Ctrl+W,然后马上按n键 :spilt 水平分屏,将当前屏分为两个,水平的. ...

  3. 自己写一个网页版的Markdown实时编辑器

    这几天忙着使用Python+Django+sqlite 搭建自己的博客系统,但是单纯的使用H5的TextArea,简直太挫了有木有.所以,就想模仿一下人家内嵌到网页上的Markdown编辑器,从而让自 ...

  4. 两种配置大数据环境的方法Ambari以及hadoop源代码安装的步骤

    1.Ambari安装 Ambari & HDP(Hortonworks Data Platform) ********************************************* ...

  5. Servlet处理流程分析-Servlet学习之旅(二)

    tomcat的处理处理客户端流程分析 tomcat即是servlet容器也具有web服务器的功能,即也具有html页面的功能. 1.首先客户端会将html请求发给tomcat内置的web服务器 2.w ...

  6. Android Studio科普篇——1.几个个性化设置

    本人未研读过android-studio使用文档,亦未去好好琢磨它的各种使用技巧等.以下内容均来自个人使用经验,如有讹误,还请指正. 1.主题. File->Settings, 搜索Theme, ...

  7. 如何在Cocos2D游戏中实现A*寻路算法(五)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  8. SpriteBuilder实现2D精灵光影明暗反射效果(一)

    其实不用3D建模,用2D的图像就可以模拟3D场景中光照反射的效果. 这里我们不得不提到一个normalMap(法线图)的概念,请各位童鞋自己度娘吧,简单来说它可以使得2D表面生成一定细节程度的光照方向 ...

  9. Web Service进阶(一)运行原理

    利用清明小假期,温习了一遍Web Service的相关内容,对其工作原理进行了简要总结.以供有需求的朋友和自己日后参考.文章若有不当之处,敬请朋友们提出宝贵建议,以求共勉. Web服务中,我们应该首先 ...

  10. 【一天一道LeetCode】#88. Merge Sorted Array

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...