원시 소켓에서 읽은 데이터에 물리 계층 헤더가 없습니까?

원시 소켓에서 읽은 데이터에 물리 계층 헤더가 없습니까?

RAW 소켓에 대해 읽은 적이 있습니다. 이는 UNIX 도메인 소켓이며 일반적으로 TCP 또는 UDP와 같은 네트워크를 통해 이동하지 않습니다. 프로세스 간 통신에 사용됩니다. 또한 새로운 전송 계층 프로토콜을 구현하는 데 사용되며 ICMP(핑용)에도 사용됩니다.

답변1

unix domain sockets전송 오버헤드를 줄이기 위해 의도적으로 존재합니다. 이를 통해 애플리케이션 간에 데이터를 교환할 수 있으므로 [tcp/ip model][1]순서, 신뢰성 또는 흐름 제어를 보장하기 위한 전송 프로토콜이 필요하지 않습니다. 메시지 전송 수신자는 동일한 컴퓨터의 프로세스이므로 네트워크 액세스 계층이 필요하지 않습니다.

답변2

원시 소켓과 Unix 소켓은 같은 것이 아닙니다. 원시 IP 소켓을 사용하면 IP 패킷에 직접 액세스할 수 있습니다. 이는 유선을 통해(또는 적어도 IP 계층을 통해) 이동합니다. UDP 또는 TCP 이외의 연결(예: ping)을 위해 IP 패킷을 보내거나 받는 모든 애플리케이션은 원시 소켓을 사용해야 합니다.

Unix 도메인 소켓은 시스템에 대해 로컬이며 동일한 시스템에서 실행되는 프로세스 간의 통신 수단입니다.

두 소켓 유형 모두 물리적 계층에 대한 액세스를 제공하지 않습니다. Unix 도메인 소켓에는 물리적 계층이 없으며 원시 IP 소켓은 IP 패킷을 전달합니다. 물리 계층에 액세스하려면 IP나 Unix가 아닌 다른 종류의 소켓이 필요합니다. 이것은 때때로 "원시" 소켓이라고 불릴 수 있지만 이 이름은 Unix 소켓과 다른 것처럼 원시 IP 소켓과도 동일하지 않기 때문에 오해의 소지가 있습니다. Linux에서는 이더넷 또는 기타 물리적 계층 패킷(예: ARP)이 다음을 통해 액세스됩니다.인터넷 연결소켓.

관련 정보