tcp/ip 네트워크

32
1 성성성 성성성 SungKyunKwan Univ. 정정정정정정정 TCP/IP TCP/IP 성성성성 성성성성 정 29 정 Network File System

Upload: guang

Post on 06-Jan-2016

64 views

Category:

Documents


5 download

DESCRIPTION

TCP/IP 네트워크. 제 29 장 Network File System. 목 차. 1. 개요 2. Sun 원격 프로시저 호출 3. XDR: 외부 데이터 표현 4. 포트 맵퍼 5. NFS 프로토콜 6. NFS 예 7. NFS 버전 3 8. 요약. 1. 개 요. NFS 의 구성요소: Sun RPC NFS 를 사용하는 클라이언트 프로그램 특별한 것 사용 불필요 커널은 RPC 호출 생성 액세스 되고 있는 파일이 NFS 서버에 있는 것을 자동적으로 파일 액세스 목적 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TCP/IP  네트워크

1성균관 대학교

SungKyunKwan Univ.

정보통신연구실

TCP/IP TCP/IP 네트워크네트워크

제 29 장 Network File System

Page 2: TCP/IP  네트워크

2성균관 대학교

SungKyunKwan Univ.

정보통신연구실

목 차목 차

1. 개요2. Sun 원격 프로시저 호출3. XDR: 외부 데이터 표현4. 포트 맵퍼5. NFS 프로토콜6. NFS 예7. NFS 버전 3

8. 요약

Page 3: TCP/IP  네트워크

3성균관 대학교

SungKyunKwan Univ.

정보통신연구실

1. 1. 개 요개 요

NFS 의 구성요소 : Sun RPC NFS 를 사용하는 클라이언트 프로그램

특별한 것 사용 불필요 커널은 RPC 호출 생성

액세스 되고 있는 파일이 NFS 서버에 있는 것을 자동적으로 파일 액세스 목적

NFS 관심사 : 인터넷 프로토콜 사용

Page 4: TCP/IP  네트워크

4성균관 대학교

SungKyunKwan Univ.

정보통신연구실

2. 2. Sun Sun 원격 프로시저 호출원격 프로시저 호출

네트워크 프로그램의 특징 특정한 네트워크 동작을 실행하기 위해 시스템에 의해

제공되는 각종 함수를 호출하는 응용프로그램을 기술하여 수행 .

네트워크 프로그램을 위한 대표적 함수 : 소켓과 TLI

클라이언트에서 사용되는 API 와 서버에 의해 사용되는 API 는

다를 수 있음 .

클라이언트와 서버가 서로 통신을 할 수 있는 지를 결정하는

것은 통신프로토콜과 응용 프로토콜임 .

대부분 각종 응용 프로그램들은 명령과 응답으로 만들어짐 .

Page 5: TCP/IP  네트워크

5성균관 대학교

SungKyunKwan Univ.

정보통신연구실

2. 2. Sun Sun 원격 프로시저 호출원격 프로시저 호출 (( 계계속속 ..)..)

RPC(Remote Procedure Call) 네트워크 프로그램을 위한 다른 방법 클라이언트에서 함수를 호출하도록 기술 호출 절차

• 클라이언트는 로컬 호스트에 함수 (client stub) 를 호출• Client stub: 프로시저 arguments 를 네트워크 메시지로

패키지화하고 서버에 메시지 송신• 서버 호스트의 Server stub 는 네트워크 메시지 수신• 네트워크 메시지로부터 argument 추출• 서버 프로시저 호출• server stub 은 반환 값을 네트워크 메시지로 패키지화• client stub 에 송신 , 네트워크 메시지로부터 반환 값 획득• 응용 프로그램에 반환

Page 6: TCP/IP  네트워크

6성균관 대학교

SungKyunKwan Univ.

정보통신연구실

2. 2. Sun Sun 원격 프로시저 호출원격 프로시저 호출 (( 계계속속 ..)..)

네트워크 프로그램은 stub 에 의해 수행 RPC library routines 은 소켓 또는 TLI 와 같은 API 사용 사용자 응용 프로그램은 API 를 다루지 않음 . 모든 네트워크 프로그래밍 상세는 RPC 패킷 , 클라이언트

stub 과 서버 stub 에 의해 숨겨짐 . RPC 패킷의 장점

• 프로그램이 쉬움• 사용자 응용 프로그램을 단순화• 다른 환경에서 동작하는 클라이언트와 서버의 코딩을 단순화

RPC 패킷 : Sun RPC 와 OSF(Open Software Foundation) 의 DCE(Distributed Computing Environment) RPC 패킷

Page 7: TCP/IP  네트워크

7성균관 대학교

SungKyunKwan Univ.

정보통신연구실

2. 2. Sun Sun 원격 프로시저 호출원격 프로시저 호출 (( 계계속속 ..)..)

Sun RPC 2 개의 버전

• 소켓 API 를 사용 , TCP 와 UDP 로 작동• TI(Transport Independent)-RPC 로 칭하는 TLI API 사용

– 커널에 의해 제공되고 있는 트랜스포트 층에서 작동

Page 8: TCP/IP  네트워크

8성균관 대학교

SungKyunKwan Univ.

정보통신연구실

2. 2. Sun Sun 원격 프로시저 호출원격 프로시저 호출 (( 계계속속 ..)..)

RPC 프로시저 호출 메시지 (UDP 데이터그램 ) 의 형식

IP 헤더

transaction ID (XID)

UDP 헤더

Call (0)

procedure number

Program number

version number

RPC version (2)

credentials

verifier

Procedureparameters

...

20 바이트

8

4

4

4

4

4

4

408 바이트까지

408 바이트까지

N

모든 Sun RPC 프로시저

호출에 대해 공통

호출되는 프로시저에 따라 다름

IP 헤더

transaction ID (XID)

UDP 헤더

reply (1)

Accept status(0=success)

status(0=accepted)

verifier

Procedureparameters

...

20 바이트

8

4

4

4

4

400 바이트까지

N

RPC 프로시저 응답 메시지 (UDP 데이터그램 ) 의 형식

Page 9: TCP/IP  네트워크

9성균관 대학교

SungKyunKwan Univ.

정보통신연구실

2. 2. Sun Sun 원격 프로시저 호출원격 프로시저 호출 (( 계계속속 ..)..)

• Transaction ID(XID):

– 클라이언트에서 의해 설정– 서버에 의해 반환

• Call 변수 : 호출 =0, 응답 =1

• program number, version number, procedure number:

– 서버에 의해 호출되는 하나의 프로시저를 지정• Credential: 클라이언트 확인 • Verifier: secure RPC 로 사용 . DES 암호화 기법 사용• Accept status:

– 0= 성공 , 기타 숫자 = 버전 숫자 다르거나 무효인 프로시저 번호 표시

Page 10: TCP/IP  네트워크

10성균관 대학교

SungKyunKwan Univ.

정보통신연구실

3. 3. XDR: XDR: 외부 데이터 표현외부 데이터 표현

XDR(External Data Representation) 은 RPC 호출과 응답 메시지에서 값을 코드화 하기 위해 사용된 표준

RFC 1014 에 정의 여러 가지 데이터 타입 정의 , RPC 메시지에 전송되는 방법

정의 송신자 : XDR 형식에 RPC 메시지를 설립 수신기 : 원래 표현으로 XDR 형식 변환 XDR 에 정의된 다른 데이터 유형

부호 없는 정수 , 부울 값 , 부동 소수점 , 고정길이 배열 , 가변길이 배열과 구조형 포함

Page 11: TCP/IP  네트워크

11성균관 대학교

SungKyunKwan Univ.

정보통신연구실

4. 4. 포트 맵퍼포트 맵퍼

RPC 서버 프로그램은 순간적인 포트 사용 , 잘 알려진 포트 사용하지 않음 .

Register: 순간적인 포트의 사용 추적을 유지하는 형식 Sun RPC 는 이 레지스터를 포트 맵퍼 (port mapper) 라 부름 .

포트 맵퍼는 잘 알려진 포트를 가져야 함 UDP 111, TCP 111

포트 맵퍼는 RPC 서버 프로그램 프로그램 번호 (100000), 버전 번호 (2), 111 의 TCP 포트 , 11

1 의 UDP 포트를 갖음

Page 12: TCP/IP  네트워크

12성균관 대학교

SungKyunKwan Univ.

정보통신연구실

4. 4. 포트 맵퍼 포트 맵퍼 (( 계속계속 ...)...)

포트 맵퍼는 4 개의 서버 프로시저 제공 PMAPPROC_SET

• 프로그램 번호 , 버전 번호 , 포트 번호를 가진 프로토콜 저장 시작할 때 RPC 서버에 의해 호출

PMAPPROC_UNSET• 저장된 맵핑을 제거하기 위해 서버에 의해 호출

PMAPPROC_GETPORT• 프로그램 번호 , 버전 번호 , 프로토콜에 대해 포트

번호를 획득 시작 시 RPC 클라이언트에 의해 호출 PMAPPROC_DUMP

• 모든 요소들을 되돌림

Page 13: TCP/IP  네트워크

13성균관 대학교

SungKyunKwan Univ.

정보통신연구실

4. 4. 포트 맵퍼포트 맵퍼 (( 계속계속 ...)...)

RPC 서버 프로그램 시작 , 후에 RPC 클라이언트 프로그램에 의해 호출 시 다음 과정 확립

시스템 초기 가동 시 포트 맵퍼는 처음 시작• TCP 종단 생성 , TCP 포트 111 에 대해 수동적 개방 수행• UDP 종단 생성 , UDP 포트 111 에 대해 UDP 데이터그램 도착대기

서버는 각 프로그램 , 버전 , 프로토콜 , 포트 맵퍼 번호를 PMAPPROC_SET 프로시저에 RPC 에 의해 등록

RPC 클라이언트 프로그램이 시작할 때 PMAPPROC_GETPORT 프로시저 호출

• 포트 맵퍼의 주어진 프로그램 , 버전 , 프로토콜에 대한 순간적인 포트 번호를 획득

클라이언트는 단계 3 에서 되돌려진 포트 번호에 RPC 호출 메시지 송신

Page 14: TCP/IP  네트워크

14성균관 대학교

SungKyunKwan Univ.

정보통신연구실

4. 4. 포트 맵퍼포트 맵퍼 (( 계속계속 ..)..)

프로그램 rpcinfo(8) 에 의한 포트 맵퍼의 현 맵퍼 출력

Sun % /usr/etc/rpcinfo -p

program vers proto port

100005 1 tcp 702 mountd mount daemon for NFS

100005 1 udp 699 mountd

100005 2 tcp 702 mountd

100005 2 udp 699 mountd

100003 2 tcp 2049 nfs NFS itself

100021 1 tcp 709 nlockmgr NFS lock manager

100021 1 udp 1036 nlockmgr

100021 2 tcp 721 nlockmgr

100021 2 udp 1039 nlockmgr

100021 3 tcp 713 nlockmgr

100021 3 udp 1037 nlockmgr

Page 15: TCP/IP  네트워크

15성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. NFS 5. NFS 프로토콜프로토콜

NFS 는 클라이언트가 서버에 파일과 파일 시스템에 투명한 방식의 파일 접근을 제공

NFS 는 프로세스 기준의 파일 부분을 접속하고 , 접근하는 데 투명성 제공

NFS 는 Sun RPC 를 사용 클라이언트 - 서버 응용 프로그램 설정

NFS 클라이언트는 송신 RPC 가 서버에 요구함으로써 NFS 서버에 파일을 접속

Page 16: TCP/IP  네트워크

16성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. 5. NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

user process

local file access

NFSclient

TCP/UDPIP

client kernel

NFSserver

localfile access

UDP port2049

TCP/UDPIP

server kernel

localdisk

localdisk

NFS 클라이언트와 NFS 서버의 전형적인 배열

kernel

Page 17: TCP/IP  네트워크

17성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. 5. NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

많은 subtle point 존재 로컬 파일 또는 NFS 파일 접속 여부에 상관없이

클라이언트에 투명 NFS 클라이언트는 TCP/IP 모듈을 통해 NFS 서버에 RPC

요구 송신 NFS 서버는 포트 2049 에 대해 UDP 데이터그램으로써

클라이언트 요구를 수신 NFS 서버가 클라이언트 요구를 수신할 때 요구들은 서버에

있는 로컬 디스크를 접근하는 로컬 파일 접근 루틴에 보내짐 NFS 서버는 클라이언트의 요구를 처리하는 동안 수행 NFS 클라이언트는 클라이언트 호스트에 대해 사용자

프로세스로부터 요구를 처리하는 동안 수행

Page 18: TCP/IP  네트워크

18성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. 5. NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

NFS 와 함께 사용된 다양한 RPC 프로그램

Lock 관리자와 상태 모니터는 NFS 서버에 존재하는 파일의 lock 부분에 클라이언트를 허용

두 프로그램들은 NFS 프로토콜에 독립 , NFS 는 서버에 statelessness

응 용프로그램

번호버전번호

프로시저의수

Port mapperNFSMountLock managerStatus monitor

100000100003100005100021100024

221

1, 2, 31

415

519

6

응 용프로그램

번호버전번호

프로시저의수

Port mapperNFSMountLock managerStatus monitor

100000100003100005100021100024

221

1, 2, 31

415

519

6

Page 19: TCP/IP  네트워크

19성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. 5. NFS NFS 프로토콜 프로토콜 (( 계속계속 ..)..)

파일 처리 (File Handles)

NFS 의 기본 개념 서버에 파일 또는 디렉토리를 기준으로 사용하는 opaque 객체

• opaque: 서버가 파일 처리를 만들고 클라이언트에 그것을 돌려주고 클라이언트가 파일을 접속할 때 파일 처리를 사용한다는 의미

클라이언트는 파일 처리의 내용을 보지 못함 보통 사용자 프로세스는 파일 처리를 다루지 않음

• 앞뒤로 전달하는 NFS 클라이언트 코드와 NFS 서버 코드

• NFS 버전 2: 파일 처리는 32 byte 차지

• NFS 버전 3: 파일 처리는 64 byte 로 증가

Page 20: TCP/IP  네트워크

20성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5.5.NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

Mount 프로토콜 클라이언트가 파일 시스템에 접속할 수 있기 전에 클라이언트는

서버의 파일 시스템 유지를 위해 NFS mount 프로토콜 사용 UNIX mount 명령에 사용되는 Mount 프로토콜

user processuser process

mount command

(6)mount system

call

NFS

client kernel server kernel

(2) get port# RPC request

(3) RPC reply w/port#

(4) mount RPC request

(5) RPC request w/file handle

(1) register

at start

portmapper

mountddaemon

user process

Page 21: TCP/IP  네트워크

21성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5.5.NFS Protocol(Mount NFS Protocol(Mount Protocol)Protocol)

단계적 흐름• 서버가 초기 가동할 때 포트 맵퍼가 서버에서 시작• Mount 데몬 (mountd) 는 포트 맵퍼 후에 서버에서 시작• mount 명령은 클라이언트에서 실행 . 서버 mount 데몬의

포트 번호 획득을 위해 서버에 있는 포트 맵퍼에 RPC 호출 발행

• 포트 맵퍼는 포트번호에 응답• mount 명령은 서버에 파일 시스템을 유지하기 위해 mount

데몬에 RPC 호출을 발생• mount 데몬은 주어진 파일 시스템에 대해 파일 처리에 응답• mount 명령은 클라이언트에 있는 로컬 mount 지점을

가지고 단계 5 에서 되돌아온 파일 처리에 관련된 클라이언트 위의 mount 시스템을 발행

Page 22: TCP/IP  네트워크

22성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5.5.NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

Sun # mount -t nfs bsdi:/usr /nfs/bsdi/usrsun 클라이언트

nfs

bsdi

usr

/

bsdi 서버

rstevens

usr

/

hello.c

NFS mount

호스트 sun/nfs/bsdi/usr 디렉토리에서 bsdi:/usr/ 디렉토리 마운팅

Page 23: TCP/IP  네트워크

23성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. 5. NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

NFS 프로시저 NFS 서버가 제공하는 15 프로시저 프로시저명은 실제로 NFSPROC_ 으로 시작

1. GETATTR 9. RENAME

2. SETATTR 10. LINK

3. STATFS 11. SYMLINK

4. LOOKUP 12. READLINK

5. READ 13. MKDIR

6. WRITE 14. RMDIR

7. CREATE 15. READDIR

8. REMOVE

Page 24: TCP/IP  네트워크

24성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. 5. NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

UDP 또는 TCP? NFS 는 원래 모든 판매자가 제공하는 UDP 를

사용하여 쓰여진 것임 . 새로운 구현들은 TCP 를 제공

• TCP 는 WAN 에서 사용되도록 지원 NFS 는 더 이상 지역적인 사용에 제한을 두지 않음 망의 유동성은 LAN 에서 WAN 으로 변화 왕복 시간은 넓게 변하고 빈번한 혼잡 발생 WAN 의 특성은 TCP 와 같은 알고리즘 사용성 증대 UDP 는 TCP 와 같은 특징을 제공하지 못함 .

Page 25: TCP/IP  네트워크

25성균관 대학교

SungKyunKwan Univ.

정보통신연구실

5. 5. NFS NFS 프로토콜프로토콜 (( 계속계속 ..)..)

TCP 상의 NFS NFS 의 버클리 Net/2 구현은 UDP 또는 TCP 지원 TCP 사용의 차이점

• 서버가 bootstraps 할 때 , TCP port 2049 에 대해 수동적 개방을 시작 . 클라이언트 연결 요구를 대기

• 클라이언트가 TCP 를 사용 파일 시스템을 마운트할 때 , 서버에 있는 TCP port 2049 에 능동적 개방을 수행 : 클라이언트와 서버사이의 TCP 연결

• 클라이언트와 서버 모두 그들의 연결 끝에 대해 TCP 의 keepalive 옵션을 설정

• 서버 파일 시스템을 사용하는 클라이언트 위의 모든 응용은 이 파일 시스템에 대한 단일 TCP 연결을 공유

• 클라이언트는 서버가 충돌 , 재부팅하는 것을 검출하면 서버에 다시 연결 시도

• 클라이언트가 충돌하더라도 실행 중인 응용 프로그램은 실행

Page 26: TCP/IP  네트워크

26성균관 대학교

SungKyunKwan Univ.

정보통신연구실

6. 6. NFS NFS 예예

파일 읽기 cat(1) 명령어 사용 터미널에 NFS 서버에 있는 파일 복사 예제

sun % cat /nfs/bsdi/usr/rstevens/hello.c copy file to terminal

main()

{

printf(“hello, world\n”);

}

1 0.0 sun.7aa6 > bsdi.nfs: 104 getattr

2 0.003587 (0.0036) bsdi.nfs > sun.7aa6: reply ok 96

3 0.005390 (0.0018) sun.7aa7 > bsdi.nfs: 116 lookup “rstevens”

4 0.009570 (0.0042) bsdi.nfs > sun.7aa7:reply ok 128

5 0.011413 (0.0018) sun.7aa8 > bsdi.nfs: 116 lookup “hello.c”

6 0.015512 (0.0041) bsdi.nfs > sun.7aa8: reply ok 128

7 0.018843 (0.0033) sun.7aa9 > bsdi.nfs: 104 getattr

8 0.022377 (0.0035) bsdi.nfs > sun.7aa9: reply ok 96

9 0.027621 (0.0052) sun.7aaa > bsdi.nfs: 116 read 1024 bytes @ 0

10 0.032170 (0.0045) bsdi.nfs > sun.7aaa: reply ok 140

Page 27: TCP/IP  네트워크

27성균관 대학교

SungKyunKwan Univ.

정보통신연구실

6. 6. NFS NFS 예예 (( 계속계속 ..)..)

디렉토리 만들기 작업중인 디렉토리를 NFS 에 있는 다른 디렉토리로 변경 및 새로운 디렉토리 생성 예제

sun % cd /nfs/bsdi/usr/rstevens 작업 디렉토리 변경sun % mkdir Mail 그리고 디렉토리 생성

1 0.0 sun.7ad2 > bsdi.nfs: 104 getattr

2 0.004912 (0.0049) bsdi.nfs > sun.7ad2: reply ok 96

3 0.007266 (0.0024) sun.7ad3 > bsdi.nfs: 104 getattr

4 0.010846 (0.0036) bsdi.nfs > sun.7ad3: reply ok 96

5 35.769875 (35.7590) sun.7ad4 > bsdi.nfs: 104 getattr

6 35.773432 ( 0.0036) bsdi.nfs > sun.7ad4: reply ok 96

7 35.775236 (0.0018) sun.7ad5 > bsdi.nfs: 112 lookup “Mail”

8 35.780914 (0.0057) bsdi.nfs > sun.7ad5: reply ok 28

9 35.782339 (0.0014) sun.7ad6 > bsdi.nfs: 144 mkdir “Mail”

10 35.992354 (0.2100) bsdi.nfs > sun.7ad6: reply ok 128

Page 28: TCP/IP  네트워크

28성균관 대학교

SungKyunKwan Univ.

정보통신연구실

6. 6. NFS NFS 예예 (( 계속계속 ..)..)

Server Crash NFS 서버로부터 파일을 읽는 도중에 서버가 갑자기 동작을 멈추거나 재시동 되는 경우

sun % cat /nfs/svr4/usr/share/lib/termcap

1 0.0 sun.7ade > svr4.nfs: 104 getattr

2 0.007653 (0.0077) svr4.nfs > sun.7ade: reply ok 96

3 0.009041 (0.0014) sun.7adf > svr4.nfs: 116 lookup “share”

4 0.017237 (0.0082) svr4.nfs > sun.7adf: reply ok 128

5 0.018518 (0.0013) sun.l7ae0 > svr4.nfs: 112 lookup “lib”

6 0.026802 (0.0083) svr4.nfs > sun.7ae0: reply ok 128

7 0.028096 (0.0013) sun.7ae1 > svr4.nfs: 116 lookup “termcap”

8 0.036434 (0.0083) svr4.nfs > sun.7ae1: reply ok 128

9 0.038060 (0.0016) sun.7ae2 > svr4.nfs: 104 getattr

10 0.045821 (0.0078) svr4.nfs > sun.7ae2: reply ok 96

11 0.050984 (0.0052) sun.7ae3 > svr4.nfs: 116 read 1024 bytes @ o

12 0.084995 (0.0340) svr4.nfs > sun.7ae3: reply ok 1124

reading continues

Page 29: TCP/IP  네트워크

29성균관 대학교

SungKyunKwan Univ.

정보통신연구실

6. 6. NFS NFS 예예 (( 계속계속 ..)..)

128 3.430313 (0.0013) sun.7b22 > svr.nfs: 116 read 1024 bytes @ 64512

129 3.441828 (0.0115) svr4.nfs > sun.7b22: reply ok 1124

130 4.125031 (0.6832) sun.7b23 > svr4.nfs: 116 read 1024 bytes @ 65536

131 4.868593 (0.7436) sun.7b24 > svr4.nfs: 116 read 1024 bytes @ 73728

144 71.090305 (19.2594) sun.7b23 > svr4.nfs: 116 read 1024 bytes @ 65536

145 71.830155 (0.7398) sun.7b24 > svr4.nfs: 116 read 1024 bytes @ 73728

retransmissions continue

167 291.824285 (0.7400) sun.7b24 > svr4.nfs: 116 read 1024 bytes @ 73728

168 311.083676 (19.2594) sun.7b23 > svr4.nfs: 116 read 1024 bytes @ 65536

server reboots

169 311.149476 (0.0658) arp who-has sun tell svr4

170 311.150004 (0.0005) arp reply sun is-at 8:0:20:3:f6:42

171 311.154852 (0.0048) svr4.nfs > sun.7b23: reply ok 1124

172 311.156671 (0.0018) sun.7b25 > svr4.nfs: 116 read 1024 bytes @ 66560

Page 30: TCP/IP  네트워크

30성균관 대학교

SungKyunKwan Univ.

정보통신연구실

Idempotent 프로시저 서버에 의해 한번 이상 실행되어질 수 있고 여전히 같은 결과가

나온다면 RPC 프로시저를 Idempotent 라 부름 . Idempotent 인 NFS operations:

• GETATTR, STATFS, LOOKUP, READ, WRITE, READLINK, READDIR.

Idempotent 가 아닌 프로시저 :• CREATE, REMOVE, RENAME, LINK, SYMLINK, MKDIR,

RMDIR. NFS 서버는 nonidempotent 동작을 처리할 수 있는 방법 필요

• 잃어버린 응답은 UDP 에서 발생 할 수 있음 .

• Nonidempotent 동작을 위해 최근의 응답을 저장한 recent-reply 캐쉬 구현

6. 6. NFS NFS 예예 (( 계속계속 ..)..)

Page 31: TCP/IP  네트워크

31성균관 대학교

SungKyunKwan Univ.

정보통신연구실

7. 7. NFS NFS 버전 버전 33

구 분 버전 2 버전 3

파일처리 크기

READ/WRITERPC 당 바이트 수

파일크기 , READ/WRITE 순서 시작 바이트 offset

파일 속성

WRITE 동기 여부

추가 프로시저

32 바이트 고정

8192 바이트 까지 제한

32 비트

GETATTR

동기 필요

64 바이트 까지 가변

제한 없음

64 비트까지 확장

속성에 영향을 주는 모든 요구마다 되돌려질 수 있음

비동기 가능

- STATFS 삭제- ACCESS, MKNOD, READDIRPLUS, FSINFO, FSSTAT, PATHCONF, COMMIT 추가

Page 32: TCP/IP  네트워크

32성균관 대학교

SungKyunKwan Univ.

정보통신연구실

8. 8. 요 약요 약

RPC 는 클라이언트가 서버에게 수행하도록 요청하는 것 같은 클라이언트 서버 응용 프로그램을 구체화 하기 위한 하나의 방법

모든 망의 세부 사항은 클라이언트와 서버 stub, RPC

라이브러리 루틴 내에 숨겨져 있음 .

XDR 은 RPC 클라이언트와 서버들이 다른 구조를 가진 머신들에서 동작하도록 값을 암호화 하는데 사용

NFS 와 NFS 가 UDP 와 TCP 를 사용 방법 15 개 프로시저가 NFS 버전 2 프로토콜에서 정의 한 NFS 서버에 클라이언트의 접근은 mount 프로토콜로 시작 ,

클라이언트에 하나의 파일 처리 반환 NFS 는 그것의 프로시저를 idempotent 화 시도