计算机网络协议
————————————————————————————————作者: ————————————————————————————————日期:
计算机网络协议教案
一、TCP/IP协议族的结构和协议
TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。其中比较重要的有SLIP协议、PP P协议、IP协议、ICMP协议、ARP协议、TCP协议、UDP 协议、FTP协议、DNS协议、SMTP协议等。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
(一)熟悉Internet地址结构
(二)了解Internet地址的概念
互联网上的每个接口必须有一个唯一的I n t e r n e t地址(也称作I P地址)。IP地址长32bit。
I n t er n e t地址并不采用平面形式的地址空间,如
1、2、3等。I P地址具有一定的结构,五类不同的互联网地址格式如图1 - 5所示。
这些32位的地址通常写成四个十进制的数,其中每个整数对应一个字节。这种表示方法称作“点分十进制表示法(Do tteddecimalnotation)”。例如,作者的系统就是一个B类地址,它表示为:1 40 .25 2 .13. 3 3。区分各类地址的最简单方法是看它的第一个十进制整数。图1-6列出了各类地址的起止范围,其中第一个十进制整数用加黑字体表示。
需要再次指出的是,多接口主机具有多个I P地址,其中每个接口都对应一个I P地址。
由于互联网上的每个接口必须有一个唯一的I P地址,因此必须要有一个管理机构为接入互
联网的网络分配I P地址。这个管理机构就是互联网络信息中心( Internet Network Information Centre),称作I nt e r NI C。Int er NI C只分配网络号。主机号的分配由系统管理员来负责。
有三类I P地址:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主
机)以及多播地址(目的端为同一组内的所有主机)。
二、熟悉Internet协议通信原理及报文格式
(一)控制报文协议
ICMP协议
引言
I C M P经常被认为是I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。
I C M P报文通常被IP层或更高层协议(T C P或U D P)使用。一些I CM P报文把差错报文返回给用户进程。I C MP报文是在IP数据报内部被传输的,如图6-1所示。
ICMP的正式规范参见RFC 792 [Posterl1 9 8 1 b ]。I C M P报文的格式如图6 - 2所示。
所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。下面我们将逐个介绍各种报文格式。
类型字段可以有 1 5个不同的值,以描述特定类型的I C M P报文。某些I C M P报文还使用代码字段的值来进一步描述不同的条件。
检验和字段覆盖整个I C M P报文。使用的算法与我们在3. 2节中介绍的IP首部检验和算法相同。I CM P的检验和是必需的。
ICMP报文的类型
各种类型的ICM P报文如图6 - 3所示,不同类型由报文中的类型字段和代码字段来共同决定。
图中的最后两列表明I C M P报文是一份查询报文还是一份差错报文。因为对I CMP差错报文有时需要作特殊处理,因此我们需要对它们进行区分。例如,在对I C M P差错报文进行响应时,永远不会生成另一份I C M P差错报文(如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去)。当发送一份I C M P差错报文时,报文始终包含IP的首部和产生I C M P差错报文的I P数据报的前8个字节。这样,接收I CM P差错报文的模块就会把它与某个特定的协议(根据IP数据报首部中的协议字段来判断)和用户进程(根据包含在I P数据报前8个字节中的TC P或U D P报文首部中的T C P或U DP端口号来判断)联系起来。下面各种情况都不会导致产生I C M P差错报文:
1)ICMP差错报文(但是,I C M P查询报文可能会产生
I C M P差错报文)。
2) 目的地址是广播地址(见图3 -9)或多播地址(D类地址,见图1- 5)的I P数据报。
3)作为链路层广播的数据报。
4) 不是I P分片的第一片(将在11. 5节介绍分片)。
5)源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。
这些规则是为了防止过去允许I CM P差错报文对广播分
组响应所带来的广播风暴。
ICMP地址掩码请求与应答
I C MP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码(3. 5节)。系统广播它的ICM P请求报文(这一过程与无盘系统在引导过程中用R A RP获取IP地址是类似的)。无盘系统获取子网掩码的另一个方法是B O O T P协议,我们将在第1 6章中介绍。I C M P地址掩码请求和应答报文的格式如图6 - 4所示。
ICMP报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。
这样,发送端就可以把应答与请求进行匹配。
我们可以写一个简单的程序(取名为i c m p a d d r m ask),它发送一份ICMP地址掩码请求报文,然后打印出所有的应答。由于一般是把请求报文发往广播地址,因此这里我们也这样做。
目的地址(1 4 0.2 5 2.1 3 .63)是子网1 40. 2 5 2. 1 3 . 3 2的广播地址(见图3-