2.1 引言

链路层的三个目的

  • (1)为IP模块发送和接收IP数据报。
  • (2)为ARP模块发送ARP请求和接收ARP应答。地址解析协议:ARP。
  • (3)为RARP模块发送RARP请求和接收RARP应答。逆地址解析协议:RARP。
    本章介绍了以太网协议,SLIP协议,PPP协议(现在常用),以及loopback等协议。

2.2.1 以太网和IEEE802封装

以太网

以太网是指数字设备公司和英特尔公司和Xerox公司在1982年联合发布的一个标准。采用CSMA/CD的媒体接入方法。

IEEE(电子电气工程师协会)802标准集

  • (1)802.3:针对整个CSMA/CD网络。
  • (2)802.4:针对令牌总线网络。
  • (3)802.5:针对令牌环网络。
    上述三者的共同特性由802.2标准定义。那就是802网络共有的逻辑链路控制(LLC):logic link control
    但是802.2和802.3定义了一个与以太网不同的帧格式。

IP数据报的封装

在TCP/IP世界中,以太网IP数据报的封装是在RFC894定义的。
IEEE 802网络的IP数据报封装是在RFC1042中定义的。

主机需求RFC 要求每台Internet主机都与10Mb/s的以太网电缆相连接

  • (1)必须能发送和接收RFC894(以太网)封装格式的分组(Rocket)。
  • (2)应该能接收与RFC894混合的RFC1042(IEEE802)封装格式的分组。
  • (3)也许能够发送采用RFC1042格式封装的分组,如果主机能同时发送两种类型的分组数据,那么发送的分组必须是能够设置的,并且默认条件下必须是RFC894分组
    可见,RFC1042(IEEE802)处于一个配角的角色。

2.2.2 RFC894与RFC1042定义的两种帧格式

具体详见教材P16-17。
这里提交了CRC字段:CRC字段用于帧内后续字节差错的循环冗余校验(检验和)。

2.4 SLIP:串行线路上对IP数据报进行封装的简单形式

规则:

  • (1)IP数据报以一个称作END(0xc0)的特殊字符开始和结束。
  • (2)如果IP报文内有某个字符为END,那么就要连续传输两个字节0xdb(SLIP的ESC字符,但与ASCLL码的ESC字符不同(0x1b))和0xdc来取代它。
  • (3)如果IP报文内某个字符为ESC,那么就需要连续传输两个字节0xdb和0xdd来取代它。
    总之一句话,就是IP数据报的开头结尾均为END字符,IP报文内如果出现END或者ESC需要使用转义字符。

缺陷:

  • (1)每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。
  • (2)数据帧中没有类型字段,如果一条串行线路使用了SLIP协议,就没有办法同时使用其他协议。
  • (3)SLIP没有在数据帧中加上检验和。如果数据报文发生错误,则只能通过上层协议来发现(或者使用新型调制解调器,可以检测并纠正错误报文)。这样上层协议提供的CRC就非常重要了。

PPP协议使用了三个额外的字节(大部分情况下)解决了这些问题。

2.6 PPP点对点协议

PPP也类似SLIP处理IP数据报的方式,每一帧都以标志字符0x7e开始和结束。在数据报文内容中如果遇到了0x7e需要进行转义。
PPP增加了三个额外的字节,1个字节留给协议字段,另外两个字节留给了CRC字段使用。这三个字节解决了SLIP协议中的缺陷。

PPP协议的优点

  • (1)PPP支持在单根串行线路上运行多种协议,不只是IP协议。
  • (2)每一帧都有循环冗余校验。
  • (3)通信双方可以进行IP地址的动态协商。
  • (4)对TCP,IP报文首部进行压缩。
  • (5)Link Control Protocol 链路控制协议可以对多个数据链路选项进行设置。。
    关于第四点:减少每一帧的字节数可以降低应用程序的交互时延

2.7 环回接口 loopback

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

Linux Terminal

键入 ifconfig -a:


其中,eth0就是以太网接口,而lo则是loopback接口。这也说明这个主机在网络链路层上至少支持loopback协议和以太网协议。

可以用netstat来打印出MTU的结果,键入netstat -in


就可以观察到eth0的MTU是1500。而lo(环回接口)的MTU则是65536。

参考链接:TCP/IP详解学习笔记(2)-数据链路层

2016/7/20

【TCP/IP详解 卷一:协议】第二章:链路层的更多相关文章

  1. TCP/IP详解 卷一(第二章 链路层)

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

  2. TCP/IP详解 卷一(第一章 概述)

    很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议族允许它们相互进行通信. 1.分层 TCP/IP不是一个协议,而是一个协议族,通常它被认为是一个四层的协议系统,下面展 ...

  3. TCP/IP详解阅读记录----第二章 数据链路层

    1.以太网     以太网是当今TCP/IP采用的主要的局域网技术.它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入.它的速率为10Mb/s,地址为48bit. 2.I ...

  4. TCP/IP详解 卷一(第二十章 TCP的成块数据流)

    本章将介绍TCP所使用的被称为滑动窗口协议的一种流量控制方法. 该协议允许发送方在停止并等待确认前可以连续发送多个分组,这样就可以加速数据的传输. 滑动窗口 下图用可视化的方法显示了滑动窗口协议 我们 ...

  5. 『TCP/IP详解——卷一:协议』读书笔记——10

    2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...

  6. 『TCP/IP详解——卷一:协议』读书笔记——01

    从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...

  7. 【TCP/IP详解 卷一:协议】第9章 IP选路

    推荐链接:网络地址与主机地址 9.1 引言 路由选择程序(daemon),通常这是一个用户进程.在大多数的Unix系统中,大多数的路由选择程序都是路由程序和网关程序. 路由表经常被IP访问,但是它被路 ...

  8. 『TCP/IP详解——卷一:协议』读书笔记——04

    2013-08-18 16:31:17 第2章 链路层 2.1 引言 链路层主要有三个目的: 为IP模块发送和接受IP数据报 为ARP模块发送ARP请求和接受ARP应答 为RARP发送RARP请求和接 ...

  9. 《TCP/IP详解卷一:协议》 概述

    分层           TCP/IP协议族是一组不同层次上的多个协议的组合.TCP/IP通常被认为是一个四层次协议系统.   链路层(数据链路层或网络接口层):通常包括操作系统中的设备驱动程序和计算 ...

随机推荐

  1. 远程开关机神器Wake On LAN,免费有中文版

    https://wol.aquilatech.com/ Wake On Lan 又名 aquilaWOL,这是一款免费且开源的图形界面 WOL 软件,有繁体中文界面,可以管理多台电脑和网络设备,支持批 ...

  2. 使用Navicat导入excel表

    1:首先创建Navicat与数据库的连接 2:,从数据库中选择要导入的表 3:导入向导,选择要导入的数据类型 4:创创建excel表:一般第一行需要与表的属性相对应,这样就不需要手动设置对应栏位 不一 ...

  3. PAT 1072 Gas Station[图论][难]

    1072 Gas Station (30)(30 分) A gas station has to be built at such a location that the minimum distan ...

  4. Java序列化总结

    什么是序列化? 序列化是将对象的状态信息转化为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后可以通过存储区中读取或反序列化对象的状态重新创建对象. 为什么要序 ...

  5. opencv之颜色过滤只留下图片中的红色区域

    如图,这次需要在图片中找到卷尺的红色刻度,所以需要对图像做过滤,只留下红色部分. 一开始的想法是分别找到RGB值,然后找到红色区域的部分保留就可以了,不过好像很难确定红色区域的RGB取值范围,所以要把 ...

  6. CentOS6.5安装HBase集群及多HMaster配置

    1.配置SSH免登录 请参考:http://www.cnblogs.com/hunttown/p/5470357.html 服务器配置: Hadoop-NN-01 主Hadoop-NN-02 备Had ...

  7. 批量导入数据到mssql数据库的

    概述 批量导入数据到数据库中,我们有好几种方式. 从一个数据表里生成数据脚本,到另一个数据库里执行脚本 从EXCEL里导入数据 上面两种方式,导入的数据都会生成大量的日志.如果批量导入5W条数据到数据 ...

  8. myeclipse连接sql server2008 r2数据库

    我用的myeclipse自带的jdk1.6连接的,所以选用sqljdbc4.jar的jar包,我是win7电脑 之前也看到一些用户留的微软官方连接,但是官方那边已经取消下载了,所以我重新去找了下 链接 ...

  9. Mysql的group by语句

    如上图查询结果,因为group by后面的字段是的分组的依据字段,所以select子句中只有是group by后面的字段,或者是聚集函数才有意义.然而mysql居然可以在select子句中出现不在gr ...

  10. vs2013中将原来在iis express中的网站转到iis中时,报“无法在web服务器上调试”的解决方法

    之前在网上也搜索过,但没有一个是正确的,后来在微软网站上发现问题的解决方法: 在web.config中,打开调试就可以了,具体方法为: 在web.config中 在以下配置节中加入以下代码 <c ...