
RAWソケットについて読んだことがあります。これはUNIXドメインソケットであり、通常TCPやUDPなどのネットワークを介して移動しません。プロセス間通信に使用されます。また、新しいトランスポート層プロトコルを実装するために使用され、ICMP(ping用)にも使用されます。
答え1
unix domain sockets
送信オーバーヘッドを減らすために意図的に存在します。これにより、アプリケーション間でデータを交換できるため、[tcp/ip model][1]
順序、信頼性、またはフロー制御を保証するためのトランスポートプロトコルは不要です。メッセージ送信受信者は同じコンピュータ上のプロセスなので、ネットワークアクセス層は必要ありません。
答え2
生ソケットとUnixソケットは同じではありません。ネイティブIPソケットを使用すると、IPパケットに直接アクセスできます。これは有線を介して(または少なくともIP層を介して)移動します。 UDPまたはTCP以外の接続(pingなど)のためにIPパケットを送受信するすべてのアプリケーションは、rawソケットを使用する必要があります。
Unix ドメインソケットは、システムに対してローカルであり、同じシステムで実行されるプロセス間の通信手段です。
両方のソケットタイプは物理層へのアクセスを提供しません。 Unix ドメインソケットには物理層がなく、RAW IP ソケットは IP パケットを転送します。物理層にアクセスするには、IPやUnix以外の種類のソケットが必要です。これは時々「生」ソケットと呼ばれることがありますが、この名前はUnixソケットとは異なるように生のIPソケットと同じではないため、誤解を招く可能性があります。 Linuxでは、イーサネットまたは他の物理層パケット(ARPなど)が次のようにアクセスされます。インターネット接続ソケット。