『TCP/IP详解——卷一:协议』读书笔记——04
2013-08-18 16:31:17
- 第2章 链路层
- 2.1 引言
链路层主要有三个目的:
| 为IP模块发送和接受IP数据报 |
| 为ARP模块发送ARP请求和接受ARP应答 |
| 为RARP发送RARP请求和接受RARP应答 |
TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光线分布式数据接口)及RS-232串行线路等。
- 2.2 以太网和IEEE 802封装

| 以太网 | IEEE 802 | |||||||||||
| 简介 | 这个术语一般是指数字设备公司、英特尔和Xerox公司在1982年联合公布的一个标准。是当今TCP/IP采用的主要的局域网技术 | 几年后,IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集。 | ||||||||||
| 采用CSMA/CD的媒体接入方式,意思是:带冲突检测的载波监听多路接入。 | 802.3针对整个CSMA/CD网络;802.4针对令牌总线网络;802.5针对令牌环网络 | |||||||||||
| 以上三者的共同特性由802.2标准来定义——802网络共有的逻辑链路控制(LLC) | ||||||||||||
| 不幸的是:802.2和802.3定义了一个与以太网不同的帧格式(即上图&下文将要讲的) | ||||||||||||
| 地址 | 看上图:两种帧格式都采用48bit(6字节)的目的地址和源地址,这是书上说的硬件地址(802.3允许使用16bit的地址,但一般是48bit的地址) | |||||||||||
| 长度 | 指后续数据的字节长度但不包含CRC校验码 | |||||||||||
| 类型 | 在地址字段后16位,定义后续数据的类型 | 由后续的子网接入协议(Sub-network Access Protocol, SNAP)的首部给出 | ||||||||||
| 幸运的是:802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分 | ||||||||||||
| 类型之后就是数据 | 跟随在长度之后的是3字节的802.2 LLC
5字节的802.2 SNAP
|
|||||||||||
| 最小长度要求 | 46字节 | 38字节(802.3规定) | ||||||||||
| 为了保证最小字节,必须在不足的空间插入填充(pad)字节 | ||||||||||||
- 2.3 尾部封装
这是一种过时的技术,它通过调整IP数据报中字段的次序来提高读取的速率。详情请谷歌。
- 2.4 SLIP:串行线路IP

SLIP:全称Serial Line IP。它是一种在串行线路上对IP数据进行封装的形式。使用于RS-232串行端口和高速调制解调器(几乎每台家庭计算机都有)。
上图为SLIP协议定义的帧格式:
| 特点 | 1. IP数据报以称作END(0xc0)的特殊字符开头和结尾。这是为了防止有线路噪声干扰正常数据的情况出现。SLIP解析数据报的时候会把一个END之后和一个END之前的数据读进来,如果是噪声数据,会把它交给上层,然后上层很惊奇的发现这段报文毫无意义,然后就会被抛弃,继续读下去。 |
| 2. 如果IP报文中的某个字符是END,则在前边加一个ESC字符(0xdb)。注:这个ESC与ASCII码的ESC(0x1b)是不同的哦~这样做有点像C语言中printf语句用“\\”来告诉编译器要输出一个‘\’。 | |
| 3. 如果IP报文中的某个字符是SLIP的ESC,那么就要连续两个字节0xdb和0xdd来取代它。 | |
| 缺陷 | 1. 每一端必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。 |
| 2. 数据帧中没有类型字段(类似与以太网中的类型字段),如果一条串行线路使用SLIP协议,那么它不能同时使用其他协议。 | |
| 3. SLIP没有在数据帧中加上检验和(类似于以太网中的CRC字段),如果SLIP传输中的报文被线路噪声印象并发生错误,只能通过上层协议来发现(另一种方法是,调制解调器可以检测并纠正报文)。 |
尽管存在缺陷,但仍然使用广泛。
- 2.5 压缩的SLIP
性能缺陷:由于串行线路速率低,且采用TCP的交互式通讯,因此在SLIP线路上有许多小的TCP分组进行交换。为了传递1个字节的数据却需要20字节的IP首部和20字节的TCP首部,这样就非常浪费空间和时间,降低网络的使用率。
解决:于是CSLIP(压缩SLIP)协议出现了!CSLIP一般能把上面的40字节压缩到3或5个字节。它能在CSLIP的每一端主机维持多达16个TCP连接,并且知道其中每个连接的首部中的某些字段一般不会发生变化。对于那些发生变化的字段,大多数只是一些小的数字和的变化。大多数SLIP产品都支持CSLIP。
『TCP/IP详解——卷一:协议』读书笔记——04的更多相关文章
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- 『TCP/IP详解——卷一:协议』读书笔记——18
2013-08-27 15:44:52 第7章 Ping程序 7.1 引言 “ping”这个名字来源于声纳定为操作.Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达.该程序发送 ...
- 『TCP/IP详解——卷一:协议』读书笔记——14
2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...
- 『TCP/IP详解——卷一:协议』读书笔记——13
2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...
- 『TCP/IP详解——卷一:协议』读书笔记——11
2013-08-23 20:00:18 第4章 ARP:地址解析协议 4.1 引言 ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议. ...
- 『TCP/IP详解——卷一:协议』读书笔记——07
2013-08-20 17:51:49 第三章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP和IGMP数据都以IP数据报格式传输.再来看一下图 ...
- 『TCP/IP详解——卷一:协议』读书笔记——06
2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限 ...
- 『TCP/IP详解——卷一:协议』读书笔记——05
2013-08-19 22:35:57 2.6 PPP:点对点协议 PPP点对点协议修改了SLIP协议中的所有缺陷: 1. 在串联链路上封装IP数据报的方法.PPP即支持数据为8位&无奇偶检验 ...
随机推荐
- 洛谷P3383 【模板】线性筛素数
P3383 [模板]线性筛素数 256通过 579提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 Too many or Too few lines 样例解释有问题 ...
- 纸上谈兵:栈(stack)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 栈(stack)是简单的数据结构,但在计算机中使用广泛.它是有序的元素集合.栈最显 ...
- tomcat + apache +jkmod 配置php,jsp共存
httpd.conf ##############################################################################配置phpLoadMo ...
- 学习java第8天
今天主要是学习了多态,多态指同一个对象在不同时刻体现出来的不同状态.多态的前提:有继承或者实现关系.有方法重写.有父类或者父接口引用指向子类对象. class Fu {} class Zi ext ...
- 44. 普通对象建一个用户方法,提交时报:失败:建立业务逻辑对象失败:业务逻辑定义更新到数据库失败:ORA-00904: "DEFVERSION": 标识符无效
LBBIZPROCESSDEFSLBHISTORYBIZPROCESSDEFSLBHISTORYMULTIWFDEFSDESIGNLBHISTORYWORKFLOWDEFSDESIGNLBMULTIW ...
- TListView的一些操作
1,让滚动条滚动的API SetScrollPos int SetScrollPos( _In_ HWND hWnd, _In_ int nBar, _In_ int n ...
- 理解docker容器和镜像(layer,ufs)和docker命令解释
博客好文1:http://blog.csdn.net/x931100537/article/details/49633107(理解docker容器和镜像,理解简单,从原理入手,什么是layer,什么是 ...
- win 7 IIS 配置
http://jingyan.baidu.com/article/219f4bf723bcb2de442d38ed.html win7旗舰版系统 点击开始→控制面板,然后再点击程序,勿点击卸载程序,否 ...
- SQL:将字符串以特定字符分割并返回Table
split 语法 ALTER FUNCTION [dbo].[F_SPLIT] ( @str VARCHAR(MAX) , ) ) /********************************* ...
- window删除文件时提示: 源文件名长度大于系统支持的长度
有时候删除windows中的目录的时候,会出现"源文件名长度大于系统支持的长度", 而导致不能删除, 作为一个程序猿, 怎么可以被这个折服呢, 原理: 利用 Java 递归删除文 ...