tcpip详解(编辑修改稿)内容摘要:

它与主机需求 RFC类似,但是只单独描述了路由器的需求。 标准的简单服务 有一些标准的简单服务几乎每种实现都要提供。 在本书中我们将使用其中的一些服务程序,而客户程序通常选择 Tel。 图。 从该图我们可以看出,当使用 TCP和 UDP 提供相同的服务时,一般选择相同的端口号 . (下面是原书 ①的译文) 如果仔细检查这些标准的简单服务以及其他标准的 TCP/IP服务(如 Tel, FTP, SMTP等)的端口号时,我们发现它们都是奇数。 这是有历史原因的,因为这些端口号都是从 NCP端口号派生出来的。 ( NCP,即网络控制协议,是 ARPANET 的运输层协议,是 TCP的前身。 NCP 是单工的,不是全双工的,因此每个应用程序需要两个连接,需预留一对奇数和偶数端口号。 当 TCP 和 UDP 成为标准的运输层协议时,每个应用程序只需要一个端口号,因此就使用了 NCP 中的奇数。 (以下是原书 ) 名字 TCP 端口号 UDP 端口号 RFC 描述 echo 7 7 862 服务器返回客户发送的所有内容。 discard 9 9 863 服务器丢弃客户发送的所有内容。 daytime 13 13 867 服务器以可读形式返回时间和日期。 chargen 19 19 864 当客户发送一个数据报时, TCP服务器发送一串连续的字符流,直到客户中断连接。 UDP服务器发送一个随机长度的数 据报。 time 37 37 868 服务器返回一个二进制形式的 32 bit数,表示从 UTC时间 1900年 1月 1日午夜至今的秒数。 图 大多数实现都提供的标准的简单服务 互连网 在图 ,我们列举了一个由两个网络组成的互连网-一个以太网和一个令牌环网。 在 ,我们讨论了世界范围内的互连网- Inter,以及集中分配 IP 地址的需要( InterNIC),还讨论了著名的端口号( IANA)。 inter这个词第一个字母是否大写决定了它具有不同的含义。 inter意思是用一个共同的协议族把多个网络连接在一起。 而 Inter指的是世界范围内通过 TCP/IP互相通信的所有主机集合(超过 100万台)。 Inter是一个 inter(互连网),但 inter不等于 Inter。 实现 既成事实标准的 TCP/IP软件实现来自于位于伯克利的加利福尼亚大学的计算机系统研究小组。 从历史上看,软件是随同 BSD系统( Berkeley Software Distribution)的网络版一起发布的。 它的源代码是许多其他实现的 基础。 图 BSD版本发布的时间,并标注了重要的 TCP/IP特性。 列在左边的BSD网络版,其所有的网络源代码可以公开得到:包括协议本身以及许多应用程序和工具(如 Tel和 FTP)。 在本书中,我们将使用“伯克利派生系统”来指 SunOS , SVR4, 以及 AIX 些基于伯克利源代码开发的系统。 这些系统有很多共同之处,经常包含相同的错误。 (以下是原书 ) (1983) 第一个广泛可用的 TCP/IP 发布 (1986) TCP 性能得到改善 Tahoe (1988) 启动慢,拥塞避免措施 BSD网络软件 (1989): Net/1 Reno(1990) TCP 首部预测, SLIP 首部压缩 路由表修改 BSD网络软件 (1991): Net/2 (1993) 多播,长胖管道修改 (1994) 又称为 Net/3 图 不同的 BSD版及其重要的 TCP/IP 特性 起初关于 Inter的很多研究现在仍然在伯克利系统中应用-新的拥塞控制算法( 节),多目传送( ),“又长又胖的管道”修改( ),以及其他类似的研究。 应用编程接口 使用 TCP/IP协议的应用程序通常采用两种应用编程接口( API): socket和 TLI(运输层接口: Transport Layer Interface)。 前者有 时称作“ Berkeley socket”,表明它是从伯克利版发展而来的。 后者起初是由 ATamp。 T 开发的,有时称作 XTI( X/Open传输接口),以承认 X/Open这个自己定义标准的国际计算机生产产商所做的工作。 XTI实际上是 TLI的一个超集。 本书不是一本编程方面的书,但是偶尔会引用一些内容来说明 TCP/IP 的特性,不管大多数的 API( socket)是否提供它们。 所有关于 socket和 TLI的编程细节请参阅文献 [Stevens 1990]。 测试网络 图 网络。 为阅读时参考方便,该图还复制在本书的封面内侧。 图 本书例子运行的测试网络,所有的 IP 地址均从。 在这个图中(作者的子网),大多数的例子都运行在下面四个系统中。 图中所有的 IP 地址属于 B类地址,网络号为。 所有的主机名属于 .。 ( noao代表National Optical Astronomy Observatories, tuc代表 Tucson)。 例如,右下方的系统有一个完整的名字 : , 其 IP 地址是:。 每个方框上方的名称是该主机运行的操作系统。 这一组系统和网络上的主机及路由器运行于不同的 TCP/IP 实现。 需要指出的是,。 这里列出来的只是本书中将要用到的系统。 在 ,我们将描述这个网络所用到的子网形式,在 sun与 b之间的拔号 SLIP 的有关细节。 SLIP。 小结 本章快速地浏览了 TCP/IP协议族,介绍了我们在后面的 章节中将要详细讨论的许多术语和协议。 TCP/IP协议族分为四层:链路层,网络层,运输层和应用层,每一层各有不同的责任。 在 TCP/IP中,网络层和运输层之间的区别是最为关键的:网络层( IP)提供点到点的服务,而运输层( TCP 和 UDP)提供端到端的服务。 一个互连网是网络的网络。 构造互连网的共同基石是路由器,它们在 IP层把网络连在一起。 第一个字母大写的 Inter是指分布在世界各地的大型互连网,其中包括 1万多个网络和超过 100万台主机。 在一个互连网上,每个接口都用 IP 地址来标识, 尽管用户习惯使用主机名而不是 IP 地址。 域名系统为主机名和 IP地址之间提供动态的映射。 端口号用来标识互相通信的应用程序。 服务器使用众所周知的端口号,而客户使用临时设定的端口号。 习题 请计算最多有多少个 A类、 B类和 C类网络号。 用匿名 FTP(见 )从主机 上获取文件 nsf/statistics/。 该文件包含在 NSFNET网络上登记的国内和国外的网络数。 画一坐标系,横坐标代表年,纵坐标代表网络总数的对数值。 纵坐标的最大值 是习题。 如果数据显示一个明显的趋势,请估计按照当前的编址体制推算,何时会用完所有的网络地址。 ( 该难题的建议。 ) 获取一份主机需求 RFC拷贝 [Braden 1989a],阅读有关应用于 TCP/IP协议族每一层的稳健性原则。 这个原则的参考对象是什么。 获取一份最新的赋值 RFC拷贝。 “ quote of the day协议的有名端口号是什么。 哪个 RFC对该协议进行了定义。 如果你有一个接入 TCP/IP互连网的主机帐号,它的主 IP 地址是多少。 这台主机是否接入了 Inter。 它是多接口主机吗。 获取一份 RFC 1000的拷贝,了解 RFC这个术语从何而来。 与 Inter协会联系, +1 703 648 9888,了解有关加入的情况。 用匿名 FTP从主机 aboutinternic/informationabouttheinternic。 1- 1 2 链路层 引言 从图 ,在 TCP/IP 协议族中,链路层主要有三个目的:( 1)为 IP 模块发送和接收 IP 数据报;( 2)为 ARP模块发送 ARP 请求和接收 ARP 应答;( 3)为 RARP 发送 RARP 请求和接收 RARP 应答。 TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网,令牌环网, FDDI(光纤分布式数据接口), RS- 232串行线路等。 在本章中,我们将详细讨论以太网链路层协议,两个串行接口链路层协议( SLIP和 PPP),以及大多数实现都包含的环回( loopback)驱动程序。 以太网和 SLIP是本书中大多数例子使用的链路层。 我们对 MTU(最大传输单元)进行了介绍,这个 概念在本书的后面章节中将多次遇到。 我们还讨论了如何为串行线路选择 MTU。 以太网和 IEEE 802封装 以太网这个术语一般是指数字设备公司( Digital Equipment Corp.)、 英特尔公司( Intel Corp.)、和 Xerox公司联合在 1982年公布的一个标准。 它是当今 TCP/IP采用的主要的局域网技术。 它采用一种称作 CSMA/CD的媒体接入方法,其意思是载波侦听多路接入 /冲突检测( Carrier Sense, Multiple Access with Collision Detection)。 它的速率为 10 Mb/s,地址为 48 bit。 几年后, IEEE(电子电气工程师协会) 802委员会公布了一个稍有不同的标准集,其中 CSMA/CD网络, ,。 这三者的共同特性由 ,那就是 802网络共有的逻辑链路控制( LLC)。 不幸的是,。 文献 [Stallings 1987]对所有的 IEEE 802标准进行了详细的介绍。 在 TCP/IP世界中,以太网 IP 数据报的封装是在 RFC 894[Hornig 1984]中定义的, IEEE 802网络的 IP 数据报封装是在 RFC 1042[Postel and Reynolds 1988]中定义的。 主机需求 RFC要求每台 Inter主机都与一个 10Mbit/s的以太网电缆相连接: 1. 必须能发送和接收采用 RFC 894(以太网)封装格式的分组。 2. 应该能接收与 RFC 894混合的 RFC 1042( IEEE 802)封装格式的分组。 3. 也许能够发送采用 RFC 1042格式封装的分组。 如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894分组。 最常使用的封装格式是 RFC 894定义的格式。 图。 图中每个方框下面的数字是它们的字节长度。 两种帧格式都采用 48 bit( 6字节)的目标地址和源地址。 ( 16 bit的地址,但一般是 48 bit地址。 )这就是我们在本书中所称的硬件地址。 ARP 和 RARP 协议(第4章和第 5章)对 32 bit的 IP 地址和 48 bit的硬件 地址进行映射。 接下来的 2个字节在两种帧格式中互不相同。 在 802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括 CRC检验码。 以太网的类型字段定义了后续数据的类型。 在 802标准定义的帧格式中,类型字段则由后续的子网接入协议( Subwork Access Protocol, SNAP)的首部给出。 幸运的是, 802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。 在以太网帧格式中,类型字段之后就是数据,而在 802帧格式中,跟随在后面的是 3字节的 LLC和 5字节的 SNAP。 目的服务访问点( Destination Service Access Point, DSAP)和源服务访问点( Source Service Access Point, SSAP)的值都设为 0xaa。 ctrl字段的值设为 3。 随后的 3个字节 code都置为 0。 再接下来的 2个字节类型字段和以太网帧格式一样。 (其他类型字段值可以参见 RFC 1340 [Reynolds and Postel 1992])。 CRC字段用于帧内后续字节差错的循环冗余码检验 (检验和)。 (它也被称为 FCS或帧检验序列)。 38字节,而对于以太网,则要求最少要有 46字节。 为了保证这一点,必须在不足的空间插入填充( pad)字节。 我们在开始观察线路上的分组时将遇到这种最小长度的情况。 在本书中,我们在需要的时候将给出以太网的封装格式,因为这是最为常见的封装格式。 图 IEEE ( RFC 1042)和以太网的封装格式( RFC 894) 尾部封装 RFC 893[Leffler and Karels 1984]描述了另一种用于以太网的封装格式,称作尾部封装( trailer encapsulation)。 这是一个早期 BSD系统在 DEC VAX机上运行时的试验格式,它通过调整 IP 数据报中字段的次序来提高性能。 在以太网数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。