Windows 파일 공유는 실제로 어떻게 작동합니까?

Windows 파일 공유는 실제로 어떻게 작동합니까?

HTTP를 통해 통신할 때 브라우저에서 보려면 먼저 소스를 다운로드해야 한다는 것을 알고 있습니다. 그러나 Windows 파일 공유를 사용할 때 실제로 어떤 메커니즘이 작동합니까(네트워크 라우터를 통해 공유할 때와 PC-1에서 PC-2로 LAN 케이블을 직접 공유할 때 모두)?

  1. 클라이언트가 수신할 특정 포트에서 데이터 전송을 시작하는 요청이 서버로 전송됩니까?
  2. 클라이언트가 기존 드라이브처럼 서버의 드라이브에 액세스하고 데이터를 읽고 이를 자체 드라이브에 복사합니까?
    1. 서버가 파일을 클라이언트의 하드 디스크에 복사합니까?

답변1

Windows 파일 공유는 실제로 어떻게 작동합니까?

Microsoft SMB 프로토콜 인증

Microsoft SMB 프로토콜에 사용되는 보안 모델은 다른 SMB 변형에서 사용되는 보안 모델과 동일하며 사용자와 공유라는 두 가지 보안 수준으로 구성됩니다. 공유는 Microsoft SMB 프로토콜 클라이언트가 액세스할 수 있는 파일, 디렉터리 또는 프린터입니다.

사용자 수준 인증은 서버의 공유에 액세스하려는 클라이언트가 사용자 이름과 암호를 제공해야 함을 나타냅니다. 인증되면 사용자는 공유 수준 보안으로 보호되지 않는 서버의 모든 공유에 액세스할 수 있습니다. 이 보안 수준을 통해 시스템 관리자는 공유에 액세스할 수 있는 사용자와 그룹을 구체적으로 결정할 수 있습니다.

공유 수준 인증은 공유에 대한 액세스가 해당 공유에만 할당된 암호에 의해 제어됨을 나타냅니다. 사용자 수준 보안과 달리 이 보안 수준에서는 인증을 위해 사용자 이름이 필요하지 않으며 사용자 ID가 설정되지 않습니다.

이 두 보안 수준 모두에서 비밀번호는 서버로 전송되기 전에 암호화됩니다. NTLM 및 이전 LM(LAN Manager) 암호화는 Microsoft SMB 프로토콜에서 지원됩니다. 두 가지 암호화 방법 모두 시도-응답 인증을 사용합니다. 여기서 서버는 클라이언트에 임의의 문자열을 보내고 클라이언트는 클라이언트가 액세스를 위한 충분한 자격 증명을 가지고 있음을 증명하는 계산된 응답 문자열을 반환합니다.

원천


Microsoft SMB 프로토콜 및 CIFS 프로토콜 개요

SMB(서버 메시지 블록) 프로토콜은 네트워크 파일 공유 프로토콜이며 Microsoft Windows에서 구현되는 프로토콜은 Microsoft SMB 프로토콜로 알려져 있습니다. 특정 버전의 프로토콜을 정의하는 메시지 패킷 세트를 방언이라고 합니다. CIFS(Common Internet File System) 프로토콜은 SMB의 방언입니다. SMB와 CIFS는 모두 VMS, 여러 버전의 Unix 및 기타 운영 체제에서도 사용할 수 있습니다.

CIFS에 대한 기술 참조는 Microsoft Corporation에서 구할 수 있습니다.CIFS(공통 인터넷 파일 시스템) 파일 액세스 프로토콜.

주요 목적은 파일 공유이지만 추가 Microsoft SMB 프로토콜 기능에는 다음이 포함됩니다.

OSI 네트워킹 모델에서 Microsoft SMB 프로토콜은 응용 프로그램 계층 또는 프레젠테이션 계층 프로토콜로 가장 자주 사용되며 전송을 위해 하위 수준 프로토콜을 사용합니다. Microsoft SMB 프로토콜과 함께 가장 자주 사용되는 전송 계층 프로토콜은 TCP/IP를 통한 NetBIOS(NBT). 그러나 Microsoft SMB 프로토콜은 별도의 전송 프로토콜 없이도 사용할 수 있습니다. 일반적으로 이전 버전과의 호환성을 위해 Microsoft SMB 프로토콜/NBT 조합이 사용됩니다.

Microsoft SMB 프로토콜은 클라이언트-서버 구현이며, 각각 클라이언트가 보낸 요청이나 서버가 보낸 응답을 포함하는 일련의 데이터 패킷으로 구성됩니다. 이러한 패킷은 다음과 같이 광범위하게 분류될 수 있습니다.

  • 세션 제어 패킷 - 공유 서버 리소스에 대한 연결을 설정하고 중단합니다.
  • 파일 액세스 패킷 - 원격 서버의 파일과 디렉터리에 액세스하고 조작합니다.
  • 일반 메시지 패킷 - 데이터를 인쇄 대기열, 메일 슬롯 및 명명된 파이프로 보내고 인쇄 대기열 상태에 대한 데이터를 제공합니다.

일부 메시지 패킷은 그룹화되어 한 번의 전송으로 전송되어 응답 대기 시간을 줄이고 네트워크 대역폭을 늘릴 수 있습니다. 이것을 "배칭"이라고 합니다. 그만큼Microsoft SMB 프로토콜 패킷 교환 시나리오 섹션에서는 패킷 일괄 처리를 사용하는 Microsoft SMB 프로토콜 세션의 예를 설명합니다.


주제: Microsoft SMB 프로토콜 방언

  • 설명:Microsoft SMB 프로토콜을 사용하여 클라이언트와 서버 간의 연결을 설정하려면 먼저 클라이언트와 서버가 모두 지원하는 최고 수준의 기능을 갖춘 언어를 결정해야 합니다.

주제: Microsoft SMB 프로토콜 인증

  • 설명:Microsoft SMB 프로토콜에 사용되는 보안 모델은 다른 SMB 변형에서 사용되는 보안 모델과 동일하며 사용자와 공유라는 두 가지 보안 수준으로 구성됩니다. 공유는 Microsoft SMB 프로토콜 클라이언트가 액세스할 수 있는 파일, 디렉터리 또는 프린터입니다.

주제: Microsoft SMB 프로토콜 패킷 교환 시나리오

  • 설명:클라이언트와 서버 간의 Microsoft SMB 프로토콜 패킷 교환의 예입니다.

원천


코멘트 설명

파일 액세스 패킷 - 원격 서버의 파일과 디렉터리에 액세스하고 조작합니다.' 어떻게 이런 일이 발생하나요? 요청한 데이터를 클라이언트에 제공하기 위한 응답 패킷은 어디에 있습니까? 크라켄

각 패킷은 일반적으로 파일 열기, 파일 닫기 또는 파일 읽기와 같은 일종의 기본 요청입니다. 그런 다음 서버는 패킷을 수신하고 요청이 합법적인지 확인하고 클라이언트에 적절한 파일 권한이 있는지 확인한 다음 마지막으로 요청을 실행하고 클라이언트에 응답 패킷을 반환합니다. 그런 다음 클라이언트는 응답 패킷을 구문 분석하고 초기 요청이 성공했는지 여부를 확인할 수 있습니다.

원천


추가 리소스

프로토콜을 사용하여 클라이언트-서버 세션을 설정하는 데 관련된 인증 측면에 대한 다이어그램과 설명입니다.

SMB에 대한 자세한 내용을 읽어보세요.

관련 정보