네트워크 드라이버 인터페이스 사양
Network Driver Interface SpecificationNetwork Driver Interface Specification(NDIS; 네트워크드라이버 인터페이스 사양)은 Network Interface Controller(NIC; 네트워크인터페이스 컨트롤러)용 Application Programming Interface(API; 애플리케이션프로그래밍 인터페이스)입니다.
사양
마이크로소프트와 3Com Corporation이 공동으로 개발했으며 주로 마이크로소프트 윈도우즈에서 사용됩니다.단, 오픈소스 NDWrapper 및 Project Evil 드라이버 래퍼 프로젝트에서는 Linux, FreeBSD 및 NetBSD에서 많은 NDIS 준거 NIC를 사용할 수 있습니다.Magnussoft ZETA는 다수의 NDIS 드라이버를 지원합니다.
NDIS는 Logical Link Control(LLC; 논리링크 제어) 서브레이어를 형성합니다.LLC 서브레이어는 OSI 데이터 링크레이어(레이어 2)의 상위 서브레이어입니다.따라서 NDIS는 데이터 링크층의 하위 서브레이어인 Media Access Control(MAC; 미디어 액세스컨트롤) 서브레이어와 네트워크층(레이어 3) 사이의 인터페이스로서 기능합니다.
NDIS는 NIC 하드웨어의 기본적인 복잡성을 숨기고 수준 3 네트워크 프로토콜 드라이버 및 하드웨어 레벨 MAC 드라이버의 표준 인터페이스 역할을 하는 "래퍼"라고 불리는 기능의 라이브러리입니다.
다양한 Windows 버전에서 지원되는 NDIS 버전은 다음과 같습니다.[1]
- NDIS 2.0: MS-DOS, Windows for Workgroups 3.1, OS/2
- NDIS 3.0: Windows for Workgroups 3.11
- NDIS 3.1: Windows 95
- NDIS 4.0: Windows 95 OSR2, NT 4.0, Windows CE 3.0
- NDIS 4.1: Windows 98
- NDIS 5.0: Windows 98 SE, Me, 2000
- NDIS 5.1: Windows XP, Server 2003, Windows CE 4.x, 5.0, 6.0[2]
- NDIS 5.2: Windows Server 2003 SP2
- NDIS 6.0: Windows Vista
- NDIS 6.1: Windows Vista SP1, Server 2008, Windows Embedded Compact 7,[3] Windows Embedded Compact 2013
- NDIS 6.20: Windows 7, Server 2008 R2
- NDIS 6.30: Windows 8, Windows Server 2012
- NDIS 6.40: Windows 8.1, Windows Server 2012 R2
- NDIS 6.50: Windows 10, 버전 1507[4]
- NDIS 6.60: Windows 10, 버전 1607 및 Windows Server[5] 2016
- NDIS 6.70: Windows 10, 버전 1703[6]
- NDIS 6.80: Windows 10, 버전 1709[7]
- NDIS 6.81: Windows 10, 버전 1803[8]
- NDIS 6.82: Windows 10, 버전 1809 및 Windows Server[9] 2019
- NDIS 6.83: Windows 10, 버전 1903 및 Windows Server[10] 2022
- NDIS 6.84: Windows 10, 버전[11] 2004
- NDIS 6.85: Windows 10, 버전 21H2[12]
- NDIS 6.86: Windows 11, 버전 21H2[13]
NIC가 받아들이는 트래픽은 NDIS Miniport[14] Driver에 의해 제어되며 TCP/IP 등의 다양한 프로토콜은 NDIS Protocol [15]Driver에 의해 구현됩니다.단일 미니포트를 하나 이상의 프로토콜과 연결할 수 있습니다.즉, 미니포트에 착신하는 트래픽은 여러 개의 프로토콜 드라이버에 의해 병렬로 수신될 수 있습니다.예를 들어 Winpcap은 수신 패킷을 캡처하기 위해 선택한 미니포트에 두 번째 프로토콜 드라이버를 추가합니다.또한 단일 물리 NIC에서 트래픽을 송수신하는 가상 미니포트 드라이버를 구현하여 여러 가상 NIC를 시뮬레이션할 수 있습니다.가상 미니포트 드라이버의 사용 예로는 각각 다른 VLAN을 가진 가상 NIC를 추가하는 것이 있습니다.실장에서는, 다른 드라이버가 같은 버퍼를 수신했다고 가정할 수 없기 때문에, 착신 버퍼는 읽기 전용으로 취급해, 패킷의 내용을 변경하는 드라이버는 자신의 버퍼를 할당할 필요가 있습니다.NDIS Miniport 드라이버는 Windows 드라이버 모델 인터페이스를 사용하여 네트워크 [16]하드웨어를 제어할 수도 있습니다.
또 다른 드라이버 타입은 NDIS Intermediate Driver 입니다.중간 드라이버는 MAC 레이어와 IP 레이어 사이에 배치되어 NIC가 받아들이는 모든 트래픽을 제어할 수 있습니다.실제로 중간 드라이버는 미니포트 인터페이스와 프로토콜 인터페이스를 모두 구현합니다.미니포트 드라이버 및 프로토콜 드라이버는 실제로 중간 드라이버에 있는 해당 미니포트 및 프로토콜 인터페이스와 통신합니다.이 설계를 통해 미니포트와 프로토콜 드라이버 사이에 여러 개의 체인된 중간 드라이버를 추가할 수 있습니다.따라서, 드라이버 벤더는, 트래픽을 송신하는 인터페이스가 체인의 마지막 드라이버에 의해서 실장되고 있는 것을 전제로 할 수 없습니다.NDIS 를 사용해 애플리케이션을 기술하려면 , Microsoft 의 Windows 드라이버 키트(WDK)에 부속의 샘플을 사용할 수 있습니다."PassThru" 샘플은 이 드라이버 유형에 필요한 모든 세부 정보를 구현하지만 체인의 다음 드라이버로 트래픽을 전달하기 때문에 중간 드라이버의 출발점이 됩니다.
「 」를 참조해 주세요.
- Open Data-Link Interface(Open Data-Link Interface)
- 균일 드라이버 인터페이스(UDI)
- 유니버설 네트워크 디바이스 인터페이스(UNDI)
- PC/TCP 패킷 드라이버
레퍼런스
- ^ "Overview of NDIS versions - Windows drivers". docs.microsoft.com. Retrieved 2020-03-24.
- ^ Network Drivers (Windows Embedded CE 6.0)
- ^ What's New (Windows Embedded Compact 7)
- ^ aviviano. "Introduction to NDIS 6.50 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.60 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.70 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.80 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.81 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.82 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.83 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.84 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.85 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ aviviano. "Introduction to NDIS 6.86 - Windows drivers". docs.microsoft.com. Retrieved 2022-07-12.
- ^ "Deserialized NDIS Miniport Drivers - Windows drivers".
- ^ "Introduction to NDIS Protocol Drivers - Windows drivers".
- ^ "NDIS Miniport Drivers with a WDM Lower Edge - Windows drivers".