노무현 전 대통령 서거 추모글 남기기

티스토리 툴바


Network2009/05/29 09:10

Application프로그램이 파일의 읽기, 쓰기 등 파일과 관련된 작업을 수행하고자 할때 는 정확한 소프트웨어 명령어를 사용해야 한다. 이러한 명령어의 복사본을 각각의 Application에 포함시키는것은 비효율적이므로 명령어를 Procedure라고 부르는 표준화된 소프트웨어 모듈로 인코딩한다.

Application은 작업수행시 이 Procedure를 호출하고 Procedure는 일시적으로 메인프로그램의 제어권을 가지고 데이터의 읽기나 쓰기와 같은 작업을 수행한다. 이후 Procedure는 제어권을 반환한다.

NFS에서는 파일관련작업을 위하여, 원격지의 Procedure를 호출해야하는 상황이 발생한다. 따라서 Application에서는 보이지 않는 방법으로 네트워크를 통한 호출 전송처리를 위한 특별한 후틴 집합을 사용하는데 이가 RPC이다. 또한 NFS와 RPC는 별도의 프로토콜로 간주한다.

RPC가 NFS의 실질적인 통신 과정이므로 NFS는 여타의 TCP/IP와 차이점을 가진다. RPC가 모든 통신관련 작업을 수행한다. NFS는 NFS Server가 NFS Client에게 제공하는 RPC서버 절차와 동작의 집합으로 정의 한다.

 

특정머신상의 파일에 작업을 수행하기위해 클라이언트는 머신의 NFS Server에 호출하기위해 RPC를 사용한다. Server는 요청을 수락하고, 요청된 작업을 수행한 후 결과 코드를 클라이언트에게 반환하며 요청에 따라서는 데이터도 함꼐 반환한다.

(NFS는 세션 계층에 유효한 RPC구현을 가진 어떤 전송 방식에서도 동작할 수 있다.)

 

NFS Client

 

NFS는 UDP방식을 사용하나, NFS자체가 데이터의 손실을 허용하며, 이를 복구할수 있도록 설계되었으므로 문제가 되지 않는다. 또한 NFS는프로토콜구현의 책임을 Server가 아닌 Client에 둔다. Client는 실패한 통신의 복구를 포함한 가장 중요한 세부 사항의 대부분을 처리하는 반면, Server는 오로지 응답만 보낼 뿐이다. 이는 Server는 클라이언트를 위해 유지하는 정보가 전혀 없기때문에 잃어버릴 것 또한 없다.

NFS Client와 Server는 모두 성능 향상을 위해 캐싱을 사용할 수 있다. 서버는 예측캐싱을 사용할 수 있는데 이를 프리패칭이라 한다. 이는 데이터 블록을 읽으라는 요청을 받았을경우 다음 블럭을 미리 메모리에 불러 올 수 있는데, 이는 다음블럭이 요청될 확률이 높기 때문이다.(추측!!)

클라이언트에서는 추가적인 RPC호출을 피하면서 Application으로 부터의 반복 요청을 충족하기 위해 캐싱을 사용한다.

 

NFS Server

 

RPC프로토콜은 NFS클라이언트와 서버 간의 실질적인 정보 교환을 수행한다. 각 정차는 파일의 생성,제거, 읽기, 쓰기 등과 같이 클라이언트가 수행할 수 있는 특정 동작을 표현한다. 파일을 참조할 때 파일 핸들이라는 데이터 구조를 사용해야 한다. 마운트 프로토콜을 파일시스템을 마운트하여 NFS절차에 파일 핸들에 접근할 수 있게 한다.

 

 

* 퍼가실때 댓글은 매너&필수 입니다!!


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

'Network' 카테고리의 다른 글

RPC를 통한 NFS동작  (0) 2009/05/29
XDR  (0) 2009/05/29
NFS  (0) 2009/05/29
NFS  (0) 2009/05/29
Posted by 실론티짱
TAG ,

댓글을 달아 주세요