NFS实例-软件无线电原理与应用第二版
29.6 NFS实例我们使用t c p d u m p来看一下在典型的文件操作中,客户调用了哪些N F S过程。当t c p d u m p检测到一个包含R P C调用(在图2 9 - 1中调用字段等于0)、目的端口是2 0 4 9的U D P数据报时,它把数据报按照一个N F S请求进行解码。类似地,如果一个U D P数据报是一个R P C应答(在图2 9 - 2中应答字段为1),源端口是2 0 4 9,t c p d u m p就把此数据报作为一个N F S应答来解码。 29.6.1简单的例子:读一个文件第一个例子是使用c a t ( 1 )命令将位于一个N F S服务器上的一个文件复制到终端上: sun % cat /nfs/bsdi/usr/rstevens/hello.c把文件复制到终端m a i n ( ) { p r i n t f ("hello, world ") ; }如同图2 9 - 6所示,主机s u n(N F S客户机)上的文件系统/nfs/bsdi/usr实际上是主机b s d i (N F S服务器)上的/usr文件系统。当c a t打开这个文件时, s u n上的内核检测到这一点,然后使用N F S去访问文件。图2 9 - 7显示了t c p d u m p的输出。当t c p d u m p解析一个N F S请求或应答报文时,它打印客户的X I D字段,而不是端口号。第1行和第2行中的X I D字段值是0 x 7 a a 6。客户内核中的打开函数一次处理文件名/nfs/bsdi/usr/rstevens/hello.c中的一个成员。当处理到/ n f s / b s d i / u s r时,它发现这是指向一个已安装的N F S文件系统的一个安装点。在第1行中,客户调用G E TAT T R过程取得客户已经安装的服务器目录的属性( / u s r)。这个R P C请求,除I P首部和U D P首部之外,包含1 0 4个字节的数据。第2行中的应答返回了一个O K值,除了I P首部和U D P首部之外,包含了9 6个字节的数据。在这个图中,我们可以看出最小的N F S报文包含大约1 0 0个字节的数据。 356使用TCP/IP详解,卷1:协议下载
用户评论