下½½
第1章 概
1.1
引言
述
很多不同的厂家生产各种型号的计算机,它们运行完全不同的操½系统,½
T C P / I P协议
族允许它们互相进行通信。这一点很让人感到吃惊,因为它的½用已远远超出了起初的设想。
T C P / I P起源于 6 0年代末美½政府资助的一个分组交换½络研究项目,到 9 0年代已发展成为计
算机之间最常应用的组½½式。它是一个真正的开放系统,因为协议族的定义及其多种实现
可以不用花钱或花很少的钱就可以公开地得到。它成为被称½“全球互联½”或“因特½
(Internet)”的基础,该广域½( WAN)已包含超过100万台遍布世界各地的计算机。
本章主要对
T C P / I P协议族进行概述,其目的是为本书其½章节提供充分的背景知识。如
果读者要从历史的角度了解有关
TCP/IP的早期发展情况,请参考文献 [Lynch 1993]。
1.2
分层
½络协议通常分不同层次进行开发,每一层分别
负责不同的通信功½。一个协议族,比如
T C P / I P,是
一组不同层次上的多个协议的组合。
T C P / I P通常被认
为是一个四层协议系统,如图
1-1所示。
每一层负责不同的功½:
1)
链路层,
有时也称½数据链路层或½络接口层,
通常包括操½系统中的设备驱动程序和计算机
链路层
设备驱动程序及接口卡
应用层
运输层
½络层
Telnet、FTP和e-mail等
TCP和UDP
IP、ICMP和IGMP
图1-1
TCP/IP协议族的四个层次
中对应的½络接口卡。它们一起处理与电缆(或其他任½传输媒介)的物理接口细节。
2)
½络层,有时也称½互联½层,处理分组在½络中的活动,例如分组的选路。在
T C P / I P协议族中,½络层协议包括 I P协议(½际协议) C M P协议( I n t e r n e t互联½控
,I
制报文协议)
,以及I
GMP协议(Internet组管理协议)
。
3)
运输层主要为两台主机上的应用程序提供端到端的通信。在
T C P / I P协议族中,有两个
互不相同的传输协议:
TCP(传输控制协议)和 UDP(用户数据报协议)
。
TCP为两台主机提供高可靠性的数据通信。它所做的工½包括把应用程序交给它的数据分
成合适的小块交给下面的½络层,确认接收到的分组,设½发送最后确认分组的超时时钟
等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以½略所有这些细节。
而另一方面,
U D P则为应用层提供一种非常简单的服务。它只是把称½数据报的分组
从一台主机发送到另一台主机,½并不保证该数据报½到达另一端。任½必需的可靠
性必须由应用层来提供。
这两种运输层协议分别在不同的应用程序中有不同的用途,这一点将在后面看到。
4)
应用层负责处理特定的应用程序细节。几乎各种不同的
T C P / I P实现½会提供下面这些
通用的应用程序:
2
½用TCP/IP详解,卷1:协议
• Telnet
远程登½。
• FTP
文件传输协议。
• SMTP
简单邮件传送协议。
• SNMP
简单½络管理协议。
下½½
另外还有许多其他应用,在后面章节中将介绍其中的一部分。
假设在一个局域½(
L A N)如以太½中有两台主机,二者½运行 F T P协议,图 1 - 2列出了
该过程所涉及到的所有协议。
FTP
客户
FTP协议
FTP
服务器
用户进程
处理应用
程序细节
应用层
TCP协议
运输层
内核
处理通信细节
IP协议
½络层
链路层
以太½驱
动程序
以太½协议
以太½
以太½驱
动程序
图1-2 局域½上运行FTP的两台主机
这里,我们列举了一个
F T P客户程序和另一个 F T P服务器程序。大多数的½络应用程序½
被设计成客户—服务器模式。服务器为客户提供某种服务,在本例中就是访问服务器所在主
机上的文件。在远程登½应用程序
Telnet中,为客户提供的服务是登½到服务器主机上。
在同一层上,双方½有对应的一个或多个协议进行通信。例如,某个协议允许
T C P层进
行通信,而另一个协议则允许两个
IP层进行通信。
在图1
- 2的右边,我们注意到应用程序通常是一个用户进程,而下三层则一般在(操½系
统)内核中执行。½管这不是必需的,½通常½是这样处理的,例如
UNIX操½系统。
在图1
- 2中,顶层与下三层之间还有另一个关键的不同之处。应用层关心的是应用程序的
细节,而不是数据在½络中的传输活动。下三层对应用程序一无所知,½它们要处理所有的
通信细节。
在图1
- 2中列举了四种不同层次上的协议。 F T P是一种应用层协议, T C P是一种运输层协
议,I
P是一种½络层协议,而以太½协议则应用于链路层上。 T C P / I P协议族是一组不同的协
议组合在一起构成的协议族。½管通常称该协议族为
T C P / I P,½T C P和I P只是其中的两种协
议而已(该协议族的另一个名字是
Internet协议族(Internet Protocol Suite))
。
½络接口层和应用层的目的是很显然的
—
前者处理有关通信媒介的细节(以太½、令牌
环½等)
,而后者处理某个特定的用户应用程序(
F T P、Te l n e t等)
。½是,从表面上看,½络
层和运输层之间的区别不那么明显。为什么要把它们划分成两个不同的层次呢?为了理解这
一点,我们必须把视野从单个½络扩展到一组½络。
下½½
第1章 概
述½用
3
在8
0年代,½络不断增长的原因之一是大家½意识到只有一台孤立的计算机构成的“孤
岛”没有太大意义,于是就把这些孤立的系统组在一起½成½络。随着这样的发展,到了
9 0
年代,我们又逐渐认识到这种由单个½络构成的新的更大的“岛屿”同样没有太大的意义。
于是,人们又把多个½络连在一起½成一个½络的½络,或称½互连½
( i n t e r n e t )。一个互连
½就是一组通过相同协议族互连在一起的½络。
构造互连½最简单的方法是把两个或多个½络通过路由器进行连接。它是一种特殊的用
于½络互连的硬件盒。路由器的½处是为不同类型的物理½络提供连接:以太½、令牌环½、
点对点的链接和
FDDI(光纤分布式数据接口)等等。
这些盒子也称½I
P路由器(IP Router)
,½我们这里½用路由器
(Router)这个术语。
从历史上说,这些盒子称½½关(
g a t e w a y)
,在很多
T C P / I P文献中½½用这个术语。
现在½关这个术语只用来表示应用层½关:一个连接两种不同协议族的进程(例如,
TCP/IP和IBM的SNA)
,它为某个特定的应用程序服务(常常是电子邮件或文件传输)
。
图1
- 3是一个包含两个½络的互连½:一个以太½和一个令牌环½,通过一个路由器互相
连接。½管这里是两台主机通过路由器进行通信,实际上以太½中的任½主机½可以与令牌
环½中的任½主机进行通信。
在图
1 - 3中,我们可以划分出端系统( End system
)
(两边的两台主机)和中间系统
(Intermediate
system)
(中间的路由器)
。应用层和运输层½用端到端(
End-to-end)协议。在
图中,只有端系统需要这两层协议。½是,½络层提供的却是逐跳(
Ho p - b y - h o p)协议,两
个端系统和每个中间系统½要½用它。
FTP
客户
FTP协议
FTP
服务器
TCP协议
路由器
IP协议
IP协议
以太½驱
动程序
以太½协议
以太½驱
动程序
令牌环驱
动程序
令牌环协议
令牌环驱
动程序
以太½
令 牌 环
图1-3 通过路由器连接的两个½络
在T
C P / I P协议族中,½络层 I P提供的是一种不可靠的服务。也就是说,它只是½可½快
地把分组从源结点送到目的结点,½是并不提供任½可靠性保证。而另一方面,
T C P在不可
靠的I
P层上提供了一个可靠的运输层。为了提供这种可靠的服务, T C P采用了超时重传、发
送和接收端到端的确认分组等机制。由此可见,运输层和½络层分别负责不同的功½。
从定义上看,一个路由器具有两个或多个½络接口层(因为它连接了两个或多个½络)
。
4
½用TCP/IP详解,卷1:协议
下½½
任½具有多个接口的系统,英文½称½是多接口的
(multihomed)。一个主机也可以有多个接口,
½一般不称½路由器
,
除非它的功½只是单纯地把分组从一个接口传送到另一个接口。同样,
路由器并不一定指那种在互联½中用来½发分组的特殊硬件盒。大多数的
T C P / I P实现也允许
一个多接口主机来担½路由器的功½,½是主机为此必须进行特殊的配½。在这种情况下,
我们既可以称该系统为主机(½它运行某一应用程序时,如
F T P或Te l n e t)
,也可以称之为路
由器(½它把分组从一个½络½发到另一个½络时)
。在不同的场合下½用不同的术语。
互联½的目的之一是在应用程序中隐藏所有的物理细节。½然这一点在图
1 - 3由两个½络
组成的互联½中并不很明显,½是应用层不½关心(也不关心)一台主机是在以太½上,而
另一台主机是在令牌环½上,它们通过路由器进行互连。随着增加不同类型的物理½络,可
½会有
2 0个路由器,½应用层仍然是一样的。物理细节的隐藏½得互联½功½非常强大,也
非常有用。
连接½络的另一个途径是½用½桥。½桥是在链路层上对½络进行互连,而路由器则是
在½络层上对½络进行互连。½桥½得多个局域½(
L A N)组合在一起,这样对上层来说就
½像是一个局域½。
TCP /IP
倾向于½用路由器而不是½桥来连接½络,因此我们将着重介绍路由器。文献
[Perlman 1992]的第12章对路由器和½桥进行了比较。
1.3 TCP/IP的分层
在T
CP/IP协议族中,有很多种协议。图 1-4给出了本书将要讨论的其他协议。
用户
进程
用户
进程
用户
进程
用户
进程
应用层
运输层
½络层
硬件
接口
链路层
媒½
图1-4
TCP/IP协议族中不同层次的协议
下½½
第1章 概
述½用
5
TCP和UDP是两种最为著名的运输层协议,二者½½用 IP½为½络层协议。
½然T
C P½用不可靠的 I P服务,½它却提供一种可靠的运输层服务。本书第 1 7½2 2章将
详细讨论
T C P的内部操½细节。然后,我们将介绍一些 T C P的应用,如第 2 6章中的 Te l n e t和
Rlogin、第27章中的FTP以及第28章中的SMTP等。这些应用通常½是用户进程。
U D P为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息
单元(例如,发送方指定的一定字节数的信息)
。½是与
T C P不同的是, U D P是不可靠的,它
不½保证数据报½安全无误地到达最终目的。本书第
11章将讨论 U D P,然后在第 1 4章(D N S :
域名系统)
,第
1 5章( T F T P:简单文件传送协议)
,以及第
1 6章( BO OT P:引导程序协议)
介绍½用
U D P的应用程序。 S N M P也½用了 U D P协议,½是由于它还要处理许多其他的协议,
因此本书把它留到第
25章再进行讨论。
IP是½络层上的主要协议,同时被 TCP和UDP½用。TCP和UDP的每组数据½通过端系统
和每个中间路由器中的I
P层在互联½中进行传输。在图1-4中,我们给出了一个直接访问 IP的应
用程序。这是很少见的,½也是可½的(一些较老的选路协议就是以这种方式来实现的。½然
新的运输层协议也有可½½用这种方式)
。第3章主要讨论I
P协议,½是为了½内容更加有针对
性,一些细节将留在后面的章节中进行讨论。第
9章和第10章讨论IP如½进行选路。
ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。
第6章对I
CMP的有关细节进行讨论。½管ICMP主要被IP½用,½应用程序也有可½访问它。我
们将分析两个流行的诊断工具,P
ing和Traceroute(第7章和第8章)
,它们½½用了I
CMP。
IGMP是Internet组管理协议。它用来把一个 UDP数据报多播到多个主机。我们在第 12章中
描述广播(把一个
U D P数据报发送到某个指定½络上的所有主机)和多播的一般特性,然后
在第1
3章中对IGMP协议本身进行描述。
A R P(地址解析协议)和 R A R P(逆地址解析协议)是某些½络接口(如以太½和令牌环
½)½用的特殊协议,用来½换
I P层和½络接口层½用的地址。我们分别在第 4章和第 5章对
这两种协议进行分析和介绍。
1.4
互联½的地址
互联½上的每个接口必须有一个唯一的
I n t e r n e t地址(也称½ I P地址) P地址长 32 bit
。
。I
Internet地址并不采用平面½式的地址空间,如 1、2、3等。IP地址具有一定的结构,五类不同
的互联½地址格式如图
1-5所示。
7½
A类
½ 络 号
14½
B类
½ 络 号
21½
C类
½ 络 号
28½
D类
多 播 组 号
27½
E类
(留
待 后 用)
24½
主 机 号
16½
主 机 号
8½
主 机 号
图1-5 五类互联½地址
评论