版权声明:本文为博主原创文章,转载请标注转载链接,谢谢。

 

目录(?)[+]

 

引言

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

TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件。(以太网、令牌环网、FDDI、RS-232串行线路)。本章将详细讨论以太网链路层协议、两个串行接口链路层协议(SLIP和PPP),以及大多数实现都包含的环回(loopback)驱动程序。

 

以太网封装和IEEE 802封装

        以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10Mb/S的速率运行在多种类型的电缆上。
        IEEE(电子电气工程师协会)802委员会公布了一个标准集。其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。这三者的共同特性由802.2标准来定义,即802网络共用的逻辑链路控制(LLC)。然而,802.2和802.3定义了一个与以太网不同的帧格式。(注意将以太网帧与802帧区分开来)
        在TCP/IP世界中,以太网IP数据报的封装在RFC 894中定义。IEEE 802网络的IP数据报封装在RFC 1042中定义。在主机需求RFC中要求每一台Internet主机都与一个10Mb/s的以太电缆连接:
  • 必须能发送和接收采用RFC 894(以太网)封装格式的分组。
  • 应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组。
  • 也许能够发送采用RFC 1042格式封装的分组。如果主机能同时发送这两种类型的分组数据,那么发送的分组必须是可以设置的,同时默认情况下必须是RFC 894分组。
        其中最常用的封装格式是RFC 894(以太网封装)定义的格式。
        两种帧格式都采用48bit(6字节)的目的地址和源地址。这就是在本书中称为的硬件地址。ARP和RARP协议对32bit的IP地址和48bit的硬件地址进行映射(后续介绍)。接下来的2个字节在两种帧格式中互不相同。在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包含CRC检验码。以太网的类型字段定义了后续数据的类型。幸运的是,802定义的有效长度值与以太网的有效类型值无一相同。这样,就可以对两种帧格式进行区分。同时,802标准定义的帧定义中,类型字段由后续的子网接入协议(SNAP, Sub-network Access Protocol)给出。
        从上图可知,无论是以太网封装格式,还是IEEE 802 封装格式,在数据链路层中传递的数据类型主要有三种:IP数据报、ARP请求/应答、RARP请求/应答。
        在以太网帧格式中,类型字段之后即为数据。而在802帧格式中,跟随在其后的为3字节的802.2LLC和5个字节的SNAP。其中目的服务访问点( Destination Service Access Point)和源服务访问点(Source Service Access Point)即后面控制字段、orgcode的值都为固定值(如图所示)。CRC字段用于帧内后续字节差错的循环冗余检验(也被称为FCS)(后续介绍)。
        802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分长度至少为38字节,而对于以太网帧,则最少要求46字节长度的数据部分。为了保证这一点,可能需要在必要时插入填充字节。(后续介绍)
        

尾部封装

        描述了另一种用于以太网的封装格式,称为尾部封装。它通过调整IP数据报中字段的次序来提高性能。将(IP首部和TCP首部)它们移到尾部(在CRC之前),这样当把数据复制到内核时,就可以把数据帧中的数据部分映射到一个硬件页面,节约内存到内存的复制过程(因为TCP数据报的长度为512字节的整数倍,正好可以用内核中的页表来处理)。但现在尾部封装已经遭到反对。这里仅仅介绍尾部封装而不讨论它。

《TCP/IP详解卷一:协议》数据链路层(一)的更多相关文章

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

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

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

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

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

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

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

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

  5. 【TCP/IP详解 卷一:协议】第十一章 UDP 用户数据报协议

    11.1 引言 UDP 是一个简单的 面向数据报 的运输层协议:进程的每个 输出操作 都正好产生一个 UDP数据报,并且组装成一份待发送的IP数据报. 这与 TCP 不一样,它是 面向流字符 的协议, ...

  6. 【TCP/IP详解 卷一:协议】TCP的小结

    前言:TCP学习的综述 在学习TCP/IP协议的大头:TCP协议 的过程中,遇到了很多机制和知识点,详解中更是用了足足8章的内容介绍它. TCP协议作为 应用层 和 网络层 中间的 传输层协议,既要为 ...

  7. 【TCP/IP详解 卷一:协议】第六章:DHCP 和自动配置

    简介 为了使用 TCP/IP 协议族,每台主机or路由器都需要一定的配置信息: IP地址 子网掩码 广播地址 路由或转发表 DNS 协议配置方法: 手动 通过使用网络服务来获得 使用一些算法来自动确定 ...

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

    2013-08-23 20:00:18 第4章 ARP:地址解析协议 4.1 引言 ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议. ...

  9. 【TCP/IP详解 卷一:协议】第四章 ARP:地址解析协议 以及其他部分的一些知识

    4.1 引言 数据链路 如以太网(Ethernet) 或者 令牌环网 都有自己的寻址机制(一般为 48 bit 的地址). 一个网络(数据链路层) 可以同时被多个不同的网络使用.比如,一组使用TCP/ ...

随机推荐

  1. warning: mysql-community-libs-5.7.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5

    1.错误描写叙述 [root@ mysql]# rpm -ivh mysql-community-libs-5.7.11-1.el7.x86_64.rpm warning: mysql-communi ...

  2. 重新编译Nginx指导手册【修复静态编译Openssl的Nginx漏洞 】(转)

    1. 概述    当前爆出了Openssl漏洞,会泄露隐私信息,涉及的机器较多,环境迥异,导致修复方案都有所不同.不少服务器使用的Nginx,是静态编译opensssl,直接将openssl编译到ng ...

  3. Python学习总结之二 -- 数据类型

    带你走进数据类型 一:整数.浮点数 Python中整数和浮点数的定义以及运算和C++都是一样的,我在这里就不需多说了,我就说明一点:Python相对于C/C++而言,定义整数没有int 和 long ...

  4. 1 zabbix3.2.4 安装

    一. 搭建zabbix服务 Zabbix 3.0对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7.如下是 ...

  5. 4276: [ONTAK2015]Bajtman i Okrągły Robin

    4276: [ONTAK2015]Bajtman i Okrągły Robin Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 345  Solved ...

  6. 【BZOJ4240】有趣的家庭菜园 树状数组+贪心

    [BZOJ4240]有趣的家庭菜园 Description 对家庭菜园有兴趣的JOI君每年在自家的田地中种植一种叫做IOI草的植物.JOI君的田地沿东西方向被划分为N个区域,由西到东标号为1~N.IO ...

  7. 九度OJ 1008:最短路径问题 (最短路)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8064 解决:2685 题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费 ...

  8. AWS:3. S3

    主要内容 1.S3入门 2.S3安全性 对象 权限 访问策略 3.S3实战--BAAS 应用与定价 S3入门 S3概念 S3是simple storge server简单存储服务 相当于网盘,例如百度 ...

  9. LeetCode:子集 II【90】

    LeetCode:子集 II[90] 题目描述 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: [1,2,2] 输出: ...

  10. java: new Date().getTime() 与 System.currentTimeMillis() 与 System.nanoTime()

    java使用new Date()和System.currentTimeMillis()获取当前时间戳   在开发过程中,通常很多人都习惯使用new Date()来获取当前时间,使用起来也比较方便,同时 ...