바인딩(2)은 네트워크 장치를 어떻게 선택합니까?

바인딩(2)은 네트워크 장치를 어떻게 선택합니까?

배경

저는 비 IP 네트워크 프로토콜 및 관련 네트워크 장치 드라이버(비 이더넷 하드웨어)의 커널 공간 구현을 작성하려고 합니다. 내 프로토콜을 사용하여 소켓을 내 드라이버와 연결하는 방법을 이해하는 데 어려움이 있지만 프로토콜 및 드라이버 개발에 대한 몇 가지 리소스를 찾았습니다.

목적은 사용자 공간의 프로그램이 bind(socket(AF_TERRIBLE_IDEA, ...), ...);실행을 위해 호출하기만 하면 되도록 작동하게 만드는 것입니다.

목적은 동시에 커널 공간에서의 개발에 더 익숙해지기 위한 것이므로 사용자 공간으로의 마이그레이션은 이상적이지 않습니다.

질문

언제제본호출을 한 후 커널은 소켓을 연결할 장치(따라서 장치 드라이버)를 어떻게 알 수 있습니까?

답변1

구경하다원시 소켓그리고패킷 소켓, 이는 사용자 공간에서 비표준 네트워크 프로토콜을 구현하도록 특별히 설계되었습니다.

다른 응용 프로그램이 드라이버에 연결하는 방법은 전적으로 귀하에게 달려 있으며 최선의 선택은 구현하려는 세부 사항에 따라 달라집니다.

bind명령은 다양한 컨텍스트에서 다양한 작업을 수행합니다. 일반적으로 "필요한 기본 데이터를 제공하겠습니다"의 변형입니다. 저것할 수 있는특히 표준 프로토콜(사용하지 않는)의 경우 특정 소스 주소 및/또는 네트워크 인터페이스를 표시하지만 필수는 아닙니다. 그래서 생각처럼 되지 않습니다.

관련 정보