⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1180.txt

📁 283个中文RFC文档
💻 TXT
📖 第 1 页 / 共 4 页
字号:

   Alpha路由表中的路由器是delta与development网络连接的IP地址.

5.10  间接路由过程

   Alpha向epsilon发送一个IP包.这个IP包位于alpha的IP模块,其目的IP地址是epsilon的223.1.3.2.IP从这个IP地
   址中分离出网络地址部分(223.1.3),并从路由表的第一列中查询匹配项.查询结果发现第二条记录匹配.

   路由表这一项的内容表明位于223.1.3这个网络上的计算机可以通过IP路由器devnetrouter到达.于是alpha的IP
   模块对devnetrouter的IP地址进行ARP解析,然后直接把这个IP包通过alpha的一号接口发向devnetrouter.IP包仍
   然含有epsilon这个目的地址.

   IP包到达dlta的development网络接口,并被向上传至delta的IP模块.经过对目的IP地址的检查,发现目的地址不
   是delta自己的IP地址,于是delta决定转发这个包.

   Delta's IP module extracts the network portion of the destination IP
   address (223.1.3) and scans its route table for a matching network
   field.  Delta's route table looks like this:
   delta的IP模块分离出目的IP地址中的网络地址部分,然后在自己的路由表中查询.
   delta的路由表如下表所示:

 ----------------------------------------------------------------------
 |网络         直接/间接标记         路由器           接口号          |
 ----------------------------------------------------------------------
 |development  direct                <blank>          1               |
 |factory      direct                <blank>          3               |
 |accounting   direct                <blank>          2               |
 ----------------------------------------------------------------------
                     表 12.  Delta的路由表

   下面再次列出这个路由表,但没有把网络号转换成网络名字.

 ----------------------------------------------------------------------
 |网络         直接/间接标记         路由器           接口号          |
 ----------------------------------------------------------------------
 |223.1.2      direct                <blank>          1               |
 |223.1.3      direct                <blank>          3               |
 |223.1.4      direct                <blank>          2               |
 ----------------------------------------------------------------------
                     表 13.  用网络号表示的Delta的路由表

   第二项是匹配项.于是IP通过三号接口直接把这个IP包发向epsilon.这个IP包里的目的IP地址和目的以太地址都
   是epsilon的.

   这个IP包到达epsilon,并被传到上层的IP模块.检查目的IP地址之后发现与epsilon的IP地址相符合,于是这个IP
   包就被传给了更上层的协议.
   

5.11  路由概要

   当一个IP包在大的internet上传输的时候,在到达目的地之前,它可能会通过许多IP路由器.它所经过的路径不是
   由某项中心因素决定,而是对经过的每一台路由器进行查询得到的结果.每台计算机只决定这个包的下一跳,并且
   把它发送想下一个目的地.

5.12  路由管理

   维护一个巨大的internet上所有计算机的路由表是一个繁重的任务;网络管理员需要经常改变网络设置以适应各
   种变化的需要.路由表的设置错误会导致通信的阻塞,而且诊断这种阻塞也是非常乏味的事情.

   维持网络设置的简单有利于网络的可靠性.例如,给以太网分配IP网络时,最直接了当的做法就是给每个以太网一
   个IP网络号.

   我们也能从某种协议和网络应用程序那里得到帮助.ICMP(网间控制报文协议)就能报告某些路由问题.对于一个小
   型网络,每台机器的路由表是由网络管理员手动填写的.对于一个大型网络,管理员会借助路由协议在网间自动分
   配路由.

   如果一台计算机被移到另一个IP网络,它的IP地址必须改变.如果一台计算机从一个IP网络中离开,则它旧有的地
   址会变得不可用.这些变化需要频繁地更改"hosts"文件.这个简单的文件很难应付哪怕是中等规模的网络.域名
   系统的出现对这个问题的解决起到了帮助作用.
6.  用户数据报协议(UDP)
   UDP是位于IP上层的两个主要协议之一.它服务于用户的网络应用程序.诸如网络文件系统(NFS)和简单网络管理协
   议(SNMP)都是使用UDP的网络应用程序.这些服务只不过是与IP的一个接口.

   UDP是一种无连接的数据报传输服务,不保证传输的可靠性.UDP不与远端的UDP模块保持端对端的连接;它仅仅是把
   数据报发向网络,并从网络接收传来的数据报.

   数据报在传给IP之前被UDP加上了两个值.一个是基于端口的应用程序间的多路信息,另一个是校验和以保证数据
   的完整性.

6.1  端口

   一台计算机上的客户端是怎样到达另一台计算机上的服务端的?

   应用程序和UDP之间通过UDP端口实现通信.这些端口是从零开始的数字.一个提供服务的应用程序(服务端)在一个
   该服务专有的端口等待信息的传来.服务端耐心地等待任何客户端的服务请求.

   例如,SNMP服务,通常被称作SNMP代理,经常在161端口等待.每台计算机只可能有一个SNMP代理,因为每台计算机只
   有一个161UDP端口.这个端口号是众所周知的,它是一个固定的端口,是internet分配的端口号.如果一个SNMP客户
   端需要服务,它就像目的计算机的161UDP端口发送请求.

   当一个应用程序通过UDP向外发送数据,则数据是做为一个单独的单元到达远端主机的.例如,如果一个应用程序对
   UDP端口执行了5次写操作,那么远端的应用程序将从UDP端口执行5次读操作.同样,每次写操作和每次读操作的数据
   量是一样的.

   UDP保护由应用程序确定的消息包的大小.它从来不会把两个应用程序消息组合到一起,也不会把一个应用程序消
   息分割成几部分.

6.2  校验和

   如果一个接收到的IP包的IP头部类型区是"UDP",它会被IP传递到上层的UDP模块.当UDP模块收到从IP传上来的UDP
   数据报,它对UDP校验和进行检查.如果校验和为零,则说明发送者没有计算校验和,可以忽略掉.发送者计算机的UDP
   模块可以产生校验和,也可以不产生.如果以太网是这两个UDP模块之间唯一的网络通信介质,则可以不需要校验和.
   否则,我们建议你始终开启产生校验和的功能,因为将来路由表的变化可能会使发送的数据通过不可靠的网络介质.

   如果校验和正确(或者为零),接下来检查目的端口号,并且查看是否有应用程序已绑定在该端口.若是,则应用程序
   信息排入队列等待该应用程序读取.若不是,该数据报将被丢弃.如果数据报到来的速度快于应用程序读取的速度,
   而且队列已满,UDP也会丢弃这个数据报.UDP会继续丢弃收到的数据报,直至队列中有空间为止.

7.  传输控制协议(TCP)

   TCP提供的服务与UDP不同.TCP提供的是面向连接的数据流,而不是传输无连接的数据报.TCP能保证传输的可靠性,
   而UDP不能.

   对于那些需要保证传输的可靠性,并且不能被超时重传所打扰的网络应用程序来说,使用TCP是一个很好的选择.两
   个使用TCP的最普遍的网络应用程序是文件传输协议(FTP)和TELNET.其它流行的TCP网络应用程序包括:X-窗口系
   统,rcp(远程拷贝),以及r-系列命令.TCP更好的性能是以更多的消耗换来的,它需要更多的CPU资源和更多的网络
   带宽.TCP模块的内部也比UDP模块要复杂得多.
   
   与UDP相似,网络应用程序通过TCP端口连接.特定的应用程序有自己特定的端口.例如:TELNET服务使用端口23.
   TELNET客户端通过向特定计算机的TCP端口23进行连接,就能找到服务端.

   一旦应用程序开始使用TCP,客户机和服务器上的TCP模块就同时开始互相通信.这种端到端的TCP模块包含用来定
   义一个虚电路的状态信息.这个虚电路消耗的是两端共同的资源;这个虚电路是完全双向的;数据可以同时向两个
   方向传输.应用程序向TCP端口写数据,数据经过网络传输后,由另一端的应用程序读取.
   
   TCP根据需要确定数据包的大小;它不保持其原本的打包大小.例如,如果一个应用程序向TCP端口执行5次写操作,
   远端的应用程序有可能需要对TCP端口执行10次都操作才能把所有的数据都接收下来.或者也有可能通过一次读
   操作就得到了全部数据.两端之间数据包的大小和数目没有联系.

   TCP是一种具有超时重传的滑动窗口协议.发送的数据必须要得到远端TCP的确认.确认信息可以存在于发回的数据
   中.每个接收端都可以对远端进行流控制,以防止缓冲区的溢出.

   和其它的滑动窗口协议一样,TCP也有一个窗口值.窗口值决定了在需要确认之前可以传输的数据量.对TCP而言,这
   个数据量不是指TCP片段的数目,而是字节数.

8.  网络应用程序

   为什么TCP和UDP同时存在,而不是只有它们其中一个?

   因为它们提供的服务不同.大多数应用程序只使用其中一种.作为程序员,你应该选择最能满足你需要的协议.如果
   你需要可靠的数据流连接服务,TCP可能是最好的选择.如果你需要数据报服务,UDP可能是最好的选择.如果你需要
   实现远程的有效通信,TCP可能是最好的选择.如果你想实现近距离的高效通信,UDP可能是最好的选择.如果你的需
   求不是明确的属于上面的某一类别,那么就不太容易确定什么选择是"最好的".尽管如此,应用程序可以弥补某种
   选择的不足.例如,如果你选择了UDP,但你需要可靠性,那么应用程序必须提供对可靠性的保障.如果你选择TCP而且
   想提供一个面向记录的服务,那么必须由应用程序给数据流中插入标记来区分各个记录.
   
   什么样的网络应用程序是可用的?

   可用的网络应用程序数不胜数.而且它们的数目还在持续地增长中.某些应用程序自从internet技术出现的时候就
   已经存在了:TELNET和FTP.其它的一些相对较新:X-窗口和SNMP.下面内容是对本文提到过的几种网络应用程序的
   简单介绍.

8.1  TELNET

   TELNET是基于TCP,提供远程登陆能力的应用程序.它的操作和外观都非常像用键盘通过电话交换机拨号.在命令行
   状态下,用户输入"telnet delta",然后得到从"delta"这台计算机的登陆提示符.

   TELNET工作得很好:它是个古老的网络应用程序,并且有广泛的互用性.TELNET的实现经常在不同的操作系统之间
   工作.例如,一个TELNET客户端可能是VAX/VMS,但是服务器就可能是UNIX系统V.

8.2  FTP

   文件传输协议(FTP),和TELNET一样古老,同样使用TCP,有广泛的互用性.它的操作和外观很像你TELNET进入系统之
   后的情况.但是它的命令不像TELNET那么丰富,你只能用有限的几个命令来实现列出文件目录等类似操作.FTP命令
   允许你在计算机之间拷贝文件.

8.3  rsh

   远程shell(rsh或者remsh)是一系列UNIX风格远程命令中的一种.UNIX的复制命令,cp,变成rcp.UNIX的"谁登陆进
   来了"命令,who,变成rwho.这系列的命令被统称为"r"系列命令,或者叫"r*"(r星号)命令.

   r*命令主要工作于UNIX系统之间,是为互相之间有信任关系的主机设计的.在安全方面考虑的很少,但它们提供了
   一个方便的用户环境.

   为了在一台叫"delta"的远程计算机上执行"cc file.c"命令,可以输入"rsh delta cc file.c".为了把文件"file.c"
   拷贝到delta上面,可以输入"rcp file.c delta:".为了登陆进入delta,可以输入"rlogin delta".如果你以某种
   方式管理这台机器,你将不必输入密码.

8.4  NFS

   网络文件系统,最早由Sun Microsystems公司开发,使用UDP,用于在多台计算机上加载UNIX文件系统,非常优秀.一
   台没有磁盘的计算机可以访问服务器的硬盘,就像使用自己本地的硬盘一样.在alpha主机上的数据库可以为beta
   主机所用,如果数据库文件系统被加载到beta主机上的话.
   
   NFS会明显加重网络的负担,在低速连接的情况下,很难有什么用处,但它的优点也是显而易见的.NFS客户端在内核
   中进行实现,允许所有的应用程序和命令使用加载的NFS硬盘,就像使用本地硬盘一样.
   

8.5  SNMP

   简单网络管理协议(SNMP)使用UDP,被用于网络的中心管理机.众所周知,如果有足够的数据,网络管理员就能够检
   测和诊断网络的问题.中心管理机使用SNMP从网络上的计算机收集这样的数据.SNMP规定数据的格式;由中心管理
   机或者网络管理员来解释这些数据.

8.6  X-窗口

   X窗口系统使用基于TCP的X窗口协议,它用来在工作站的位图显示器上画出窗口.X窗口不仅仅是画窗口的工具;它
   是用户界面设计方面的一整套体系.

9.  其它

   有很多关于internet技术的信息本文没有提及.如果读者希望了解更多的知识,可以参考下面列出的项目:

     o 管理命令: arp, route, 和 netstat
     o ARP: 持久项,发布项,超时项,欺骗
     o IP路由表: 主机项,缺省路由,子网
     o IP: 生存时间,碎片,ICMP
     o RIP, 路由环
     o 域名系统

10.  参考数目

   [1] Comer, D., "Internetworking with TCP/IP Principles, Protocols,
       and Architecture", Prentice Hall, Englewood Cliffs, New Jersey,
       U.S.A., 1988.

   [2] Feinler, E., et al, DDN Protocol Handbook, Volume 2 and 3, DDN
       Network Information Center, SRI International, 333 Ravenswood
       Avenue, Room EJ291, Menlow Par
 RFC1180  A TCP/IP Tutorial                                RFC1180  TCP/IP指南

1


3
RFC文档中文翻译计划


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -