orm@doc-tcpip.org

Erstellt: November 1999 - Letzte Modifikation: August 2003

[ Main | Local ]


Schreiben in ein per NFS zugängliches File


In diesem Trace hat der NFS-Client cristina ein Verzeichnis vom NFS-Server nimmaster gemountet. Der User root wird jetzt in diesem Verzeichnis ein File ein.file anlegen und editieren. Er führt also etwas wie vi ein.file aus.

Packet Number 3
TOK: ====( 190 bytes transmitted on interface tr0 )==== 17:17:34.592049654
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=168, ip_id=57446, ip_off=0
IP:  	ip_ttl=60, ip_sum=883f, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f5793, th_ack=3ae54219
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=bc2d, th_urp=0
RPC: Record Marker: Size = 124, Last Fragment     (0x8000007c)
RPC: **CALL**	XID=28458008
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=1 (NFSPROC3_GETATTR)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac3520e (Thu Mar 29 17:17:34 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 00023665
NFS:           563b0000 000a0000 00023665 563b0000

Der Client nimmt den vorhanden Filehandle und fragt erst einmal nach den Attributen des Filesystems.

Die Nutzlast des TCP/IP Paketes ist dabei der RPC (Remote Procedure Call), der wiederum eine NFS Anfrage beinhaltet. Die einzelnen Teile sind:

Packet Number 4
TOK: ====( 178 bytes received on interface tr0 )==== 17:17:34.594492542
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=156, ip_id=31852, ip_off=0
IP:  	ip_ttl=60, ip_sum=ec45, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae54219, th_ack=901f5813
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=6653, th_urp=0
RPC: Record Marker: Size = 112, Last Fragment     (0x80000070)
RPC: **REPLY**	XID=28458008
RPC: 100003(NFS_PROGRAM) 1(NFSPROC3_GETATTR)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (0) NFS3_OK
NFS: File Attributes:
NFS: 	Type=2(NFDIR) Mode=241777 Nlink=22 Uid=2 Gid=2 Rdev=(0,9)
NFS: 	Size=6656 Used=8192
NFS: 	Fsid=655367 Fileid=2
NFS: 	Access Time: Sec=985879005 Nsec=846541052
NFS: 	Modify Time: Sec=985860006 Nsec=557580952
NFS: 	Create Time: Sec=985860006 Nsec=557580952

Der Server antwortet mit den Attributen.

Die ersten Felder des RPC-Teils sind wie gehabt, der Typ des Paketes ist jetzt natürlich REPLY. Danach kommt ein Status, der sich nur auf die RPC-Funktion bezieht, also nichts über den gewünschten Erfolg aussagt. Das RPC Paket ist akzeptiert, RPC konnte den Status der Datei erfolgreich ermitteln (der Status SUCCESS würde aber auch dann gesetzt, wenn eine Error-Meldung kommt, weil das File nicht existiert). Danach folgt der Status der eigentlichen NFS Funktion. Diese wurde auch erfolgreich ausgeführt; deshalb folgen die Attribute der Datei.

Dabei ist:

Packet Number 5
TOK: ====( 62 bytes transmitted on interface tr0 )==== 17:17:34.606352712
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=40, ip_id=57447, ip_off=0
IP:  	ip_ttl=60, ip_sum=88be, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f5813, th_ack=3ae5428d
TCP: 	th_off=5, flags< ACK >
TCP: 	th_win=60000, th_sum=5f7c, th_urp=0

Ein ACK auf die Antwort des Servers.

Packet Number 6
TOK: ====( 202 bytes transmitted on interface tr0 )==== 17:17:46.849302433
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=180, ip_id=57463, ip_off=0
IP:  	ip_ttl=60, ip_sum=8822, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f5813, th_ack=3ae5428d
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=14a4, th_urp=0
RPC: Record Marker: Size = 136, Last Fragment     (0x80000088)
RPC: **CALL**	XID=28458009
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=3 (NFSPROC3_LOOKUP)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac3521a (Thu Mar 29 17:17:46 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 00023665
NFS:           563b0000 000a0000 00023665 563b0000
NFS: File Name: ein.file

Der Client schaut jetzt im Verzeichnis nach, ob es dieses File schon gibt. Dazu dient die LOOKUP Prozedur. Der Filehandle ist der des Verzeichnises.

Packet Number 7
TOK: ====( 182 bytes received on interface tr0 )==== 17:17:46.852042964
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=160, ip_id=31855, ip_off=0
IP:  	ip_ttl=60, ip_sum=ec3e, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae5428d, th_ack=901f589f
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=6547, th_urp=0
RPC: Record Marker: Size = 116, Last Fragment     (0x80000074)
RPC: **REPLY**	XID=28458009
RPC: 100003(NFS_PROGRAM) 3(NFSPROC3_LOOKUP)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (2) Error- No such file or directory
NFS: Directory attributes:
NFS: 	Type=2(NFDIR) Mode=241777 Nlink=22 Uid=2 Gid=2 Rdev=(0,9)
NFS: 	Size=6656 Used=8192
NFS: 	Fsid=655367 Fileid=2
NFS: 	Access Time: Sec=985879005 Nsec=846541052
NFS: 	Modify Time: Sec=985860006 Nsec=557580952
NFS: 	Create Time: Sec=985860006 Nsec=557580952

Der Server teilt den Status des RPC mit. Der Call hat funktioniert, die eigentliche Antwort kommt vom NFS; das hat festgestellt, daß es das File nicht gibt. Zusätzlich gibt es noch die Attribute des Verzeichnis mit aus.

Packet Number 8
TOK: ====( 62 bytes transmitted on interface tr0 )==== 17:17:46.909900008
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=40, ip_id=57464, ip_off=0
IP:  	ip_ttl=60, ip_sum=88ad, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f589f, th_ack=3ae54305
TCP: 	th_off=5, flags< ACK >
TCP: 	th_win=60000, th_sum=5e78, th_urp=0

Diese Nachricht muß der Client erst einmal verdauen, deshalb ein einzelner ACK.

Packet Number 9
TOK: ====( 202 bytes transmitted on interface tr0 )==== 17:18:27.903846649
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=180, ip_id=57469, ip_off=0
IP:  	ip_ttl=60, ip_sum=881c, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f589f, th_ack=3ae54305
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=1376, th_urp=0
RPC: Record Marker: Size = 136, Last Fragment     (0x80000088)
RPC: **CALL**	XID=28458010
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=3 (NFSPROC3_LOOKUP)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac35243 (Thu Mar 29 17:18:27 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 00023665
NFS:           563b0000 000a0000 00023665 563b0000
NFS: File Name: ein.file

Der Client kann es nicht fassen und fragt nocheinmal.

Packet Number 10
TOK: ====( 182 bytes received on interface tr0 )==== 17:18:27.906391780
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=160, ip_id=31884, ip_off=0
IP:  	ip_ttl=60, ip_sum=ec21, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae54305, th_ack=901f592b
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=6442, th_urp=0
RPC: Record Marker: Size = 116, Last Fragment     (0x80000074)
RPC: **REPLY**	XID=28458010
RPC: 100003(NFS_PROGRAM) 3(NFSPROC3_LOOKUP)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (2) Error- No such file or directory
NFS: Directory attributes:
NFS: 	Type=2(NFDIR) Mode=241777 Nlink=22 Uid=2 Gid=2 Rdev=(0,9)
NFS: 	Size=6656 Used=8192
NFS: 	Fsid=655367 Fileid=2
NFS: 	Access Time: Sec=985879005 Nsec=846541052
NFS: 	Modify Time: Sec=985860006 Nsec=557580952
NFS: 	Create Time: Sec=985860006 Nsec=557580952

Der Server antwortet wie erwartet.

Packet Number 11
TOK: ====( 202 bytes transmitted on interface tr0 )==== 17:18:27.907326895
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=180, ip_id=57470, ip_off=0
IP:  	ip_ttl=60, ip_sum=881b, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f592b, th_ack=3ae5437d
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=1271, th_urp=0
RPC: Record Marker: Size = 136, Last Fragment     (0x80000088)
RPC: **CALL**	XID=28458011
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=3 (NFSPROC3_LOOKUP)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac35243 (Thu Mar 29 17:18:27 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 00023665
NFS:           563b0000 000a0000 00023665 563b0000
NFS: File Name: ein.file

Der Client kann es immer noch nicht fassen und fragt nocheinmal.

Packet Number 12
TOK: ====( 182 bytes received on interface tr0 )==== 17:18:27.909951041
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=160, ip_id=31885, ip_off=0
IP:  	ip_ttl=60, ip_sum=ec20, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae5437d, th_ack=901f59b7
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=633d, th_urp=0
RPC: Record Marker: Size = 116, Last Fragment     (0x80000074)
RPC: **REPLY**	XID=28458011
RPC: 100003(NFS_PROGRAM) 3(NFSPROC3_LOOKUP)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (2) Error- No such file or directory
NFS: Directory attributes:
NFS: 	Type=2(NFDIR) Mode=241777 Nlink=22 Uid=2 Gid=2 Rdev=(0,9)
NFS: 	Size=6656 Used=8192
NFS: 	Fsid=655367 Fileid=2
NFS: 	Access Time: Sec=985879005 Nsec=846541052
NFS: 	Modify Time: Sec=985860006 Nsec=557580952
NFS: 	Create Time: Sec=985860006 Nsec=557580952

Der Server antwortet wie erwartet.

Packet Number 13
TOK: ====( 202 bytes transmitted on interface tr0 )==== 17:18:27.910330888
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=180, ip_id=57471, ip_off=0
IP:  	ip_ttl=60, ip_sum=881a, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f59b7, th_ack=3ae543f5
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=116c, th_urp=0
RPC: Record Marker: Size = 136, Last Fragment     (0x80000088)
RPC: **CALL**	XID=28458012
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=3 (NFSPROC3_LOOKUP)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac35243 (Thu Mar 29 17:18:27 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 00023665
NFS:           563b0000 000a0000 00023665 563b0000
NFS: File Name: ein.file

Der Client kann es auch dieses Mal nicht fassen und fragt nocheinmal.

Packet Number 14
TOK: ====( 182 bytes received on interface tr0 )==== 17:18:27.912931564
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=160, ip_id=31886, ip_off=0
IP:  	ip_ttl=60, ip_sum=ec1f, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae543f5, th_ack=901f5a43
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=6238, th_urp=0
RPC: Record Marker: Size = 116, Last Fragment     (0x80000074)
RPC: **REPLY**	XID=28458012
RPC: 100003(NFS_PROGRAM) 3(NFSPROC3_LOOKUP)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (2) Error- No such file or directory
NFS: Directory attributes:
NFS: 	Type=2(NFDIR) Mode=241777 Nlink=22 Uid=2 Gid=2 Rdev=(0,9)
NFS: 	Size=6656 Used=8192
NFS: 	Fsid=655367 Fileid=2
NFS: 	Access Time: Sec=985879005 Nsec=846541052
NFS: 	Modify Time: Sec=985860006 Nsec=557580952
NFS: 	Create Time: Sec=985860006 Nsec=557580952

Der Server antwortet wie erwartet.

Packet Number 15
TOK: ====( 246 bytes transmitted on interface tr0 )==== 17:18:27.913353355
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=224, ip_id=57472, ip_off=0
IP:  	ip_ttl=60, ip_sum=87ed, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f5a43, th_ack=3ae5446d
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=8e61, th_urp=0
RPC: Record Marker: Size = 180, Last Fragment     (0x800000b4)
RPC: **CALL**	XID=28458013
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=8 (NFSPROC3_CREATE)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac35243 (Thu Mar 29 17:18:27 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 00023665
NFS:           563b0000 000a0000 00023665 563b0000
NFS: File Name: ein.file
NFS: Mode: 1 (GUARDED)
NFS: Set Attr Args:
NFS: 	Mode: 	(1) SET	new_value:  0x81a4
NFS: 	Uid: 	(0) DONT_SET
NFS: 	Gid: 	(1) SET	new_value:  0x0000
NFS: 	Access Time: 	DONT_CHANGE	(0)
NFS: 	Modify Time: 	DONT_CHANGE	(0)

Der Client ist jetzt sicher, daß der Server dieses File wirklich nicht kennt. Deshalb nutzt der Client jetzt die NFS Prozedur NFSPROC3_CREATE um die Datei anzulegen. Der Mode GUARDED weist den Server an, vor dem erzeugen der Datei erneut zu prüfen, ob es diese schon gibt. Dann wird der Mode des Files gesetzt.

Packet Number 16
TOK: ====( 62 bytes received on interface tr0 )==== 17:18:27.921343743
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=40, ip_id=31887, ip_off=0
IP:  	ip_ttl=60, ip_sum=ec96, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae5446d, th_ack=901f5afb
TCP: 	th_off=5, flags< ACK >
TCP: 	th_win=60032, th_sum=5a94, th_urp=0

Für diesen Schritt braucht der Server ein wenig länger. Daher kommt direkt ein ACK.

Packet Number 17
TOK: ====( 338 bytes received on interface tr0 )==== 17:18:27.943578936
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=316, ip_id=31888, ip_off=0
IP:  	ip_ttl=60, ip_sum=eb81, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae5446d, th_ack=901f5afb
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=d8e5, th_urp=0
RPC: Record Marker: Size = 272, Last Fragment     (0x80000110)
RPC: **REPLY**	XID=28458013
RPC: 100003(NFS_PROGRAM) 8(NFSPROC3_CREATE)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (0) NFS3_OK
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 009d3815
NFS:           b6830000 000a0000 00023665 563b0000
NFS: File Attributes:
NFS: 	Type=1(NFREG) Mode=100644 Nlink=1 Uid=4294967294 Gid=0 Rdev=(0,0)
NFS: 	Size=0 Used=0
NFS: 	Fsid=655367 Fileid=157
NFS: 	Access Time: Sec=985879107 Nsec=916325713
NFS: 	Modify Time: Sec=985879107 Nsec=916325713
NFS: 	Create Time: Sec=985879107 Nsec=916325713
NFS: Weak Cache Consistency Data (before):
NFS: 	Size: 0
NFS: 	Modify Time:	Sec=985860006 Nsec=557580952
NFS: 	Create Time:	Sec=985860006 Nsec=557580952
NFS: Weak Cache Consistency Data (after):
NFS: 	Type=2(NFDIR) Mode=241777 Nlink=22 Uid=2 Gid=2 Rdev=(0,9)
NFS: 	Size=6656 Used=8192
NFS: 	Fsid=655367 Fileid=2
NFS: 	Access Time: Sec=985879005 Nsec=846541052
NFS: 	Modify Time: Sec=985879107 Nsec=908510876
NFS: 	Create Time: Sec=985879107 Nsec=908510876

Der NFS-Server hat das File angelegt und übermittelt dem Client den Filehandle des neu angelegten Files, seine Attribute und das Ergebnis der Checks des Filesystemes.

Packet Number 18
TOK: ====( 294 bytes transmitted on interface tr0 )==== 17:18:27.946200253
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=272, ip_id=57473, ip_off=0
IP:  	ip_ttl=60, ip_sum=87bc, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f5afb, th_ack=3ae54581
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=9c17, th_urp=0
RPC: Record Marker: Size = 228, Last Fragment     (0x800000e4)
RPC: **CALL**	XID=28458014
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=7 (NFSPROC3_WRITE)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac35243 (Thu Mar 29 17:18:27 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 009d3815
NFS:           b6830000 000a0000 00023665 563b0000
NFS: Write Args: Offset=0 Count=84 Stable=0 (UNSTABLE)
NFS: 00000000     44617320 69737420 65696e20 54657374     |Das ist ein Test|
NFS: 00000010     66696c65 2c206461 73206963 68200a76     |file, das ich .v|
NFS: 00000020     6f6e2043 72697374 696e6120 61757320     |on Cristina aus |
NFS: 00000030     61756620 4e696d6d 61737465 72200a61     |auf Nimmaster .a|
NFS: 00000040     6e67656c 65677420 68616265 2e0a0a3b     |ngelegt habe...;|
NFS: 00000050     2d290a0a                                |-)..            |

Jetzt will der Client auch direkt in das File schreiben. Dazu dient der RPC NFSPROC3_WRITE. Zum geschriebenen Text liefert der Client den Offset, also wo im File hingeschrieben werden soll und wieviel geschrieben werden soll. In diesem Fall fangen wir bei 0 Byte, also am Anfang des Files, an und schreiben 84 Byte. Dieser Zugriff ist als UNSTABLE qualifiziert, weil die Daten erst einmal in den Cache geschrieben werden.

Packet Number 19
TOK: ====( 226 bytes received on interface tr0 )==== 17:18:27.969634323
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=204, ip_id=31889, ip_off=0
IP:  	ip_ttl=60, ip_sum=ebf0, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae54581, th_ack=901f5be3
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=abe2, th_urp=0
RPC: Record Marker: Size = 160, Last Fragment     (0x800000a0)
RPC: **REPLY**	XID=28458014
RPC: 100003(NFS_PROGRAM) 7(NFSPROC3_WRITE)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (0) NFS3_OK
NFS: Weak Cache Consistency Data (before):
NFS: 	Size: 0
NFS: 	Modify Time:	Sec=985879107 Nsec=916325713
NFS: 	Create Time:	Sec=985879107 Nsec=916325713
NFS: Weak Cache Consistency Data (after):
NFS: 	Type=1(NFREG) Mode=100644 Nlink=1 Uid=4294967294 Gid=0 Rdev=(32768,9231)
NFS: 	Size=84 Used=4096
NFS: 	Fsid=655367 Fileid=157
NFS: 	Access Time: Sec=985879107 Nsec=916325713
NFS: 	Modify Time: Sec=985879107 Nsec=968547468
NFS: 	Create Time: Sec=985879107 Nsec=968547468
NFS: Count=84 Stable=0 (UNSTABLE)

Der Server bestätigt den WRITE Request und sendet den Zustand des Cache vor und nach dem Schreibzugriff. Mein Text ist jetzt im Cache des Servers gespeichert; bezogen sind diese 84 Byte auf mein File, das durch seine Inode referenziert wird. Auch die Zeitstempel sind entsprechend angepasst.

Packet Number 20
TOK: ====( 202 bytes transmitted on interface tr0 )==== 17:18:27.970651461
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=180, ip_id=57474, ip_off=0
IP:  	ip_ttl=60, ip_sum=8817, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f5be3, th_ack=3ae54625
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60000, th_sum=40d6, th_urp=0
RPC: Record Marker: Size = 136, Last Fragment     (0x80000088)
RPC: **CALL**	XID=28458015
RPC: Program=100003 (NFS_PROGRAM) Version=3 Procedure=21 (NFSPROC3_COMMIT)
RPC: AUTH_UNIX
RPC: Cred:
RPC: 	Time=0x3ac35243 (Thu Mar 29 17:18:27 2001)
RPC: 	Machine=cristina Uid=0 Gid=0 Group List Length=5
RPC: 	Groups= ( 0 4 7 1100 1061 )
NFS: Fhandle:
NFS:           000a0007 00000003 000a0000 009d3815
NFS:           b6830000 000a0000 00023665 563b0000
NFS: Commit Args: Offset=0 Count=4096

Der User hat jetzt im vi den Text offensichtlich gespeichert, was das Client-NFS veranlasst, die Prozedur NFSPROC3_COMMIT aufzurufen. Der Filehandle wird übermittelt, mit der Aufforderung, den entsprechenden Block effektiv auf die Platte zu schreiben (auch wenn das File nur 84 Byte groß ist, wird ein Block geschrieben - daher der Offset 0 und ein Count von 4096 Byte, also ein Block).

Packet Number 21
TOK: ====( 218 bytes received on interface tr0 )==== 17:18:28.010281445
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 10, frame control field = 40
TOK: [ src = 08:00:5a:0d:64:1d, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.2 >  (nimmaster)
IP:  	< DST =       172.16.1.3 >  (cristina)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=196, ip_id=31890, ip_off=0
IP:  	ip_ttl=60, ip_sum=ebf7, ip_p = 6 (TCP)
TCP: 	< source port=2049(nfs), destination port=58022 >
TCP: 	th_seq=3ae54625, th_ack=901f5c6f
TCP: 	th_off=5, flags< PUSH | ACK >
TCP: 	th_win=60032, th_sum=7612, th_urp=0
RPC: Record Marker: Size = 152, Last Fragment     (0x80000098)
RPC: **REPLY**	XID=28458015
RPC: 100003(NFS_PROGRAM) 21(NFSPROC3_COMMIT)
RPC: Reply Stat: MSG_ACCEPTED
RPC: Accepted Reply Stat:  SUCCESS
NFS: Stat: (0) NFS3_OK
NFS: Weak Cache Consistency Data (before):
NFS: 	Size: 0
NFS: 	Modify Time:	Sec=985879107 Nsec=968547468
NFS: 	Create Time:	Sec=985879107 Nsec=968547468
NFS: Weak Cache Consistency Data (after):
NFS: 	Type=1(NFREG) Mode=100644 Nlink=1 Uid=4294967294 Gid=0 Rdev=(0,9231)
NFS: 	Size=84 Used=4096
NFS: 	Fsid=655367 Fileid=157
NFS: 	Access Time: Sec=985879107 Nsec=916325713
NFS: 	Modify Time: Sec=985879107 Nsec=968547468
NFS: 	Create Time: Sec=985879107 Nsec=968547468
NFS: Verifier:
NFS: 00000000     20272291 3a9f97b6                       | '".:...        |

Der Server antwortet durch eine Wiederholung des Cache-Checks. Nach dem Schreiben der Daten ist der Cache stabil. Der Server sendet einen speziellen Cookie, hier Verifier genannt. Das ist eine Prüfsumme, anhand derer der Client merkt, falls der Server gebootet hat - dann wäre der Cookie ein anderer und der Client müßte zur Sicherheit das ganze File nochmal schreiben - zumindest bis zu der Stelle, wo der letzte sichere Commit bestätigt wurde.

Packet Number 22
TOK: ====( 62 bytes transmitted on interface tr0 )==== 17:18:28.068954270
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 00:06:29:b9:50:3f, dst = 08:00:5a:0d:64:1d]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 800 (IP)
IP:  	< SRC =       172.16.1.3 >  (cristina)
IP:  	< DST =       172.16.1.2 >  (nimmaster)
IP:  	ip_v=4, ip_hl=20, ip_tos=0, ip_len=40, ip_id=57475, ip_off=0
IP:  	ip_ttl=60, ip_sum=88a2, ip_p = 6 (TCP)
TCP: 	< source port=58022, destination port=2049(nfs) >
TCP: 	th_seq=901f5c6f, th_ack=3ae546c1
TCP: 	th_off=5, flags< ACK >
TCP: 	th_win=60000, th_sum=56ec, th_urp=0

Ein letztes ACK des Client.

++++++ END OF REPORT ++++++

processed 22 packets
Summary of RPC CALL packets
reqid=28458015 prog=100003 vers=3 proc=21 caller=172.16.1.3
reqid=28458014 prog=100003 vers=3 proc=7 caller=172.16.1.3
reqid=28458013 prog=100003 vers=3 proc=8 caller=172.16.1.3
reqid=28458012 prog=100003 vers=3 proc=3 caller=172.16.1.3
reqid=28458011 prog=100003 vers=3 proc=3 caller=172.16.1.3
reqid=28458010 prog=100003 vers=3 proc=3 caller=172.16.1.3
reqid=28458009 prog=100003 vers=3 proc=3 caller=172.16.1.3
reqid=28458008 prog=100003 vers=3 proc=1 caller=172.16.1.3
reqid=28458007 prog=100003 vers=3 proc=1 caller=172.16.1.3

Der Vollständigkeit wegen die Liste der RPCs.


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | SMTP | Tracing | GPS ]

Copyright 2001-2014 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )