TCP/IP协议
http://91mail.51.net提供,只供学习交流
要更多翻译文档请到http://91mail.51.net下载
第一部分
IP:网络协议
网络的目标就是提供一个缜密的通信系统。为达到这个目标,网络协议软件必须要隐藏一些网络本身的细节的东西,并且为大量的虚拟网络提供便利条件。虚拟网络的操作和其他的任何网络一样,允许计算机接受和发送信息包。虚拟网络和真实网络的主要区别是虚拟网络仅仅是设计者的抽象的想象,并且是完全由软件创建的。设计者可以自由的选择地址包格式,并且可以独立的传送一些硬件的技术上的细节。
地址是获取网络的关键部件,为了给出一个独立,统一的系统的外观,所有的主机必须用一个统一的地址配置。不幸的是,实际网络的地址是不够的,因为一个互连网可以包含多个网络技术且每项技术都定义了自己的网络格式。这样,被两项技术使用的地址可能是不兼容的,因为他们有不同的型号或格式。
为了保证所有的主机有统一的地址,协议软件定义了一个独立于实际位址的定址方案。 尽管英特网寻址方案是由软件建立的抽象概念,但是协定位址被用做虚拟网络的目的文件,类似于硬件作为实际网络的目的文件一样。为了在因特网上发送一个信息包, 寄件人将目的地的协议地址置在信息包并通过协议软件来传送。当通过因特网向目的计算机传送信息包时,这种软件就用到目的地的协议地址。
因为所隐藏的潜在的实际网络的细节, 所以统一的定址帮助产生了大量的, 缜密的网络。两个应用程序相互通讯而不知道对方的硬件地址。我所完成的这种想法,使一些用户惊奇的认识到协议地址是由软件提供的,并且不是计算机系统的一部分。有意思的是,我们将会了解到一些层次的软件协议也用协议地址。
在因特网上,为了提供统一的编址方式,协定软件定义一个分配每部主机一个独特的位址的抽象的定址方案。 用户, 应用程序,和高层的软件协议都用抽象的地址进行通讯。
在TCP\IP 协定堆栈中, 寻址由英特网协定指定.IP 标准指定每部主机被分配一个专门的32位的被称做主机的因特网协议地址, 通常被缩写为 IP 位址 , 或ID。送过英特网发送的每个信息包包含寄件人和那接受者的 32 个位的 IP 位址。 因此, 通过TCP\IP传送信息, 一个计算机必须知道信息所要发送到的远程计算机的 IP 位址。
因此,一个网络地址对一个主机来说,是一个32位的二进制数,是用来和主机通信的。
概念上来说,每个 32 个位元的 IP 位址被区分为二个部份: 前缀和后缀;两层结构的设计是为了使路由器生效。前缀表明了计算机所连接的实际网络,而后缀标明个人计算机在上面工作。也就是说, 每个实际的网络在英特网中被分配以一个独特的网络编号 .网络编号在连网的计算机中以地址的前缀表现出来。 此外,每一个给定的实际网络上的计算机被分配一个独特的位址后缀。虽然没有两个网络可以被分配相同的网络编号,而且没有一个网络上的两台计算机可以被分配相同的后缀,但是一个后缀数值可以不止用在一个网络上。 举例来说,如果一个英特网包含三个网络,他们可能被分配网络 号1,2, 3。连网的三台计算机可能被分配后缀为 1,3, 和 5,而依附网络 2 的三个计算机能被分配后缀为 1,2, 和 3 。IP地址的层次结构确保了两个重要性能:
(1)每个计算机被分配一个唯一的地址。
(2)虽然网络编号的分配一定全球性的协调,但是后缀没有全球的调和可以被地方性地分配。
所以第一个特性保证一个完整的地址包含前缀和后缀 , 以确保唯一性。 如果两个计算机被附上到不同的实际网络,他们的位址有不同的后缀。
一旦他们为 IP 位址选择大小而且决定把每个地址分为两部份,IP 的设计者必须决定每部分置多少位。 前缀需要充份的位数以便使因特网上的每个实际网络分配到唯一的网络号。后缀需要足够的位数使得连到网络上的每个计算机分配到唯一的后缀。 不可能有简单的选择,因为给一部分添加位数意味着从别处减少位数。 选择大的前缀适应了许多网络但是限制了每个网络的大小; 选择一个大的后缀意味每个实际的网络能包含许多计算机, 但是限制了网络的总数。
因为一个英特网能包括任意的网络技术,一个英特网可以从一些大的实际网络构造而成, 而另外的可能由许多小的网络组成。 更重要的是,一个单一英特网能包含大的和小网络。 结果,设计者选择折中的能适应大的和小网络的一个组合的方案。 方案把 IP 存储器空间分为五级, A , B , C , D,E,每级有不同大小的前缀和后缀。
因为A,B,和C 用做主机地址, 所以 把他们叫做主层。 D层被用做广播层, 允许对一组计算机传送信息。 为了要使用 IP 多广播,一组主机必须允许分享一个多点广播位址。一旦多点广播组被建立,任何被发送到多重广播地址的信息包的拷贝将会一组的形式发送到每个主机。
正如数字显示,主层用字节将一个地址划分为前缀和后缀。A层划分第一个和第二个字节。 B层划分第二个和第三个字节。而 C层划分第三个和第四个字节。总结一下,IP 将主机地址分为三个主要的层。 地址的每个层决定了网络前缀和主机后缀的界限。
TCP: 传输控制协议
程序设计者认识到可靠性是一个计算机系统的基础。 例如,一个程序设计者可能被要求建立一个应用程序,就是向打印机这样的 I/O设备发送数据的应用程序。 应用程序写数据给装置, 但是不 需要确认数据是否完整无缺的到达。 相反,应用程序仰赖在基本的计算机系统确保可靠的传递;系统保证那个数据将不会丢失,复制,或次序混乱。
当用因特网创建应用程序的时候,为了让程序员遵循传统的技术,因特网上的软件必须提供作为传统的计算机系统的相同的语意。也就是说,软件一定保证快速,可靠的通信。 数据一定在完全地相同的次序下被发送, 和一定不会有损失或副本。
可靠性是传输协定的职责;应用程序与一个传送服务交互用来发送和接受数据。 在传输控制协议/IP 程序组中,传输控制协定提供可靠的传输服务。TCP是很重要的 ,因为他能很好的解决难题,尽管其他协议已经创建,但是还没有发现其他的传输协议比他更好的。因此,大多数的英特网应用程序是基于TCP建立的。
因此,传输协定提供的可靠性 ,是其他应用程序的基础。 传输控制协定 (传输控制协议) 在传输控制协议组中是可靠的传输层。
从应用程序的观点来看,被传输控制协议提供的服务有七个主要的特征: (1)基于连接的服务。一个应用程序一定首先请求到目的地的一个连接然后用连接传送数据。 (2)点对点的通讯。 每个传输控制协议一定有两个点。 (3)完全可靠。 传输控制协议保证数据送过一个连接将会被完全地递送,没有数据丢失或混乱 。 (4)全双工通信。 一个传输控制协议连接允许数据双向传送, 而且允许任一应用程序随时发送数据。传输控制协议可以双向的缓冲送出和进入的数据,为一个应用程序能发送数据并且在数据传送的过程中继续计算。 (5)串接口。 我们说传输控制协议提供一个串接口,在其中一个应用程序可以传送记录, 而且不必 保证那个数据通过传送程序以相同的大小块被递送到接受应用程序。 (6)可靠的连接启动。传输控制协议要求当两个应用程序产生连接的时候,两者一定同意新的连接;在 以前连接中用到的信息包副本将不会产生正确的响应或与新的连接接触。 (7)优美的连接闭口。 一个应用程序能开启一个连接,送任意多的数据 , 然后请求关闭连接。 传输控制协议保证在关闭连接之前可靠地递送所有的数据。
因此,传输控制协议提供完全可靠的 ( 没有数据副本或损失) ,基于连接的 , 全双工水流传送服务,允许两个应用程序形成一个连接,双方向的传送数据, 然后终止连接。 每个传输控制协议连接被可靠地启动而且优美的结束,使所有的数据在终止发生前都被传输。
因为它提供一个直接从一台计算机的应用程序到远程计算机的应用程序的连接, 所以传输控制协议也被称为端到端的协议。应用程序能请求那种传输控制协议形式一个连接,接受和发送数据,而且关闭连接。
因为他们由软件实现 , 所以由传输控制协议提供的连接被称为虚拟的连接。 代言之,两个机子上的TCP软件模块之间交换信息来表达他们之间的连接。
传输控制协议使用 IP 携带信息。 每个传输控制协议信息在一个 IP 数据包中是被压缩的并通过英特网发送。 当数据包到达在目的地的主机上的时候, IP向传输控制协议传送内容。 注意虽然传输控制协议使用 IP 携带信息,但是 IP 不读或解释信息。 因此,传输控制协议视 IP 为一个在端对端连接中连接主机的信息包通信系统,而且 IP 视每个传输控制协议信息为被转移的数据。
B部分
有关TCP/IP 的一些注解
从实现的观点来看,被给予的巨大的复杂的模块和协定,它将不会惊奇的发现原始的实现方法是极大的,难处理的,缓慢的。尝试了他们的每个人都感到很焦急。 它不希望 将 "OST" 和 "POOR QUALITY"联系起来. 当产品在运行期间变得比较好的时候,设想遇到了困难。
相比较而言,TCP/ IP 的第一实施之一是 Berkeley UNIX 的一部份并且相当好。人们开始很快地使用它, 导致一个大的使用者社区, 导致进步, 导致一个甚至更大社区。 这里螺旋上升取代下降。
因为开始的实施,许多人们尤其在学术界中的人们把 TC/ IP 看作是 UNIX 的一部份,而且 UNIX 在 80 年代的学术界中不是和亲子关系 (然后不正确的被称为了母道) 和苹果馅饼不同的。
OSI ,另一方面,被想当欧洲的通讯部的创作物,欧洲共同体, 和以后的美国政府。 信念只有部分真实,但是一群政府官僚强迫低水平技术的想法,对于贫穷的研究人员和程序员在开发计算机发面没什么大的帮助。 一些人们在如同 IBM 在1960 年代内宣布 PL/I是未来的语言,Dodd 后来宣告更正这实际是Adam的。
尽管事实是 OSI 模型和协定是有一定的成功,仍然很少组织对它感兴趣,大多数欧洲PTTs在通讯上仍然存在垄断。 结果一个微弱的努力用来更新OSI, 1994 年出版了一个修订模型。关于什么被改变和什么应该被改变。
TCP/ IP 模型和协定也有他们的问题。
首先,模型不能清楚地区别服务,接口和协定的观念。好的软件工程练习要求在规格和实现上有区别,OSI 非常小心地做的一些事, TCP/IP却不是。 结果, TCP/ IP 模型不是许多的用新技术设计新网络的向导。
其次,TCP/ IP 模型一点也不全面并且很难适合于描述任何的除本身之外的协定松弛。例如,试者用TCP/IP来描述SNA 几乎是不可能的。
第三, 主机-到- 网络层不是一个真正的在正常的感觉中这个术语是被用在层协议中的。它是一个接口。 (在网络和数据链层之间) 一个接口和一个层之间的区别是致关重要的,一定不要马虎。
第四, TCP/ IP 模型不区别 那物理和数据链层。这些是完全地不同的。 物理层与铜线,光纤和无线电通信的传输特性有关, 数据链层的主要任务就是划定开始祯和结束祯的界限而且以他们所渴望的可信度从一边传到另一边。 一个适当的模型应该两者都包括。 TCP/ IP 模型没做到。
最后,虽然 IP 和传输控制协议协定被仔细的考虑到,并且很好的实现,许多其他的协定是特别。 协定实施然后被自由地分配, 造成他们的广泛地被使用,根深蒂固,这样很难再改变。 他们其中的一些现在是困难中的一个。 虚拟的终端协定 , 远端登录,举例来说,被设计来作一个每秒十个打印字数的机械电传终端打字机, 它与图形用户接口和鼠标毫无关系。 然而, 25 年之后,它仍然被广泛使用。
简而言之,尽管它存在问题,OSI 模型 已经被证实对讨论计算机网络特别有用的。相比而言, OSI 协定还没有很受欢迎。 相反适用於TCP/IP: 模型实际地不存在,但是协定却被广泛地使用。
C部分
自动柜员机网络上的 IP: 概观
它广泛地被认为非同步传输套式 (自动柜员机) 和已存在的协定层, 特别已存在的网络层协议,例如 IP 的协定 , IPX 等,将会在一个很长的周期内共存。该如何在一个单一网络里面实现网络层协议和ATM的共存,而且 ,被网络研究员,设计者和从业者广泛的学习的传下来的英特网工作自动柜员机网络。 然而,ATM和 IP 起源于区分技术上的通讯并且有他们的独特的应用程序。 IP 的目标要在没有任何预定状态下向目的地发送信息包。它是无连接的和没有服务保障 (服务品质) 保证。 相反,ATM的目标要提供完整的服务保证。它是连接定向的和基于快速的固定- 大小的单元转变。ATM和 IP 之间的区别对于有效的集成ATM和 IP充满了挑战。
有两种不同的支持ATM和 IP 网络的模型。 这两个模型认为ATM层和IP层之间的联系不同。 第一个是同侪模型, 本质上视ATM层为 IP 层的同侪。 这个模型建议在ATM网络内和基于IP的网络一样用相同的寻址方案。 因此ATM终点应该被 IP 位址识别,而且信号请求应该携带这样的位址。已存在的网络层工作路由协定也应该在ATM网络里面会被用以使ATM请求信号溃败。 通过使用已存在的路由协定,同侪模型可能排除开发一个新的ATM路由协议的需要。 然而,同侪模型,当单一化结束- 系统位址管理的时候,大幅地增加ATM转换的复杂度,因为ATM开关必须像多重协议路由器一样并且支持以存在的寻址方案和路由协议。 然而,目前的路由协定, 本来为目前的局域网和广泛的区域网络 (广域网)开发的, 不能很好的匹配ATM或运用ATM的特性。 在Cisco(公司) 系统公司表现出,都以同侪模型为基础。
一个交互的模型被称子网络或重叠模型,从任何以存在的协议中减少了ATM层,而且定义一完全地新的定址结构。 意味着,所有的已存在的协定必须基于ATM操作。重叠模型需要两者都有新的定址结构的定义 , 和一个相关联的路由协定。 所有的ATM系统会需要被分配一个ATM地址,除了他所支持的任何高层协议。ATM寻址空间从逻辑上与较高的层协定的定址空间脱节,典型地将不能忍受它们之间的任何关系。 因此,所有的在ATM子网上的协议操作都需要一些形式的ATM地址解决方案来高层地址与他们的相应的ATM地址相匹配。重叠模型 , 来自其他的比较高的协定层的ATM,允许每个被独立地发展。 这从一个实际的工程观点来看非常重要。在现存的解决方案中,LAN和基于ATM的多重协议和传统的基于IETF的IP都是基于重叠模型。