该ss
命令(来自iproute2
作为 的更新替代品的工具集netstat
)具有--help
以下选项
-0, --packet display PACKET sockets
-t, --tcp display only TCP sockets
-S, --sctp display only SCTP sockets
-u, --udp display only UDP sockets
-d, --dccp display only DCCP sockets
-w, --raw display only RAW sockets
-x, --unix display only Unix domain sockets
RAW
域套接字和域套接字之间到底有什么区别UNIX
?
套接字到底是什么PACKET
?
答案1
A原始套接字是一个网络插座(AF_INET
或AF_INET6
通常)。它可用于创建原始 IP 包,可用于故障排除或实现您自己的 TCP 实现,而无需使用SOCK_STREAM
:
原始套接字允许在用户空间中实现新的 IPv4 协议。原始套接字接收或发送不包括链路层标头的原始数据报。 [
raw(7)
]
像使用原始套接字这样的工具nmap
可以在初始后停止 TCP 握手SYN
,SYN-ACK
因为 TCP 连接从未完全建立。作为网络套接字,它用于sockaddr_in
地址。
然而,原始套接字的创建通常受到限制。只有特权进程才能创建它们。
AUnix套接字另一方面是不是网络套接字 ( AF_UNIX
)。它是当地的插座:
AF_UNIX
(也称为)套接字系列AF_LOCAL
用于在同一台计算机上的进程之间进行有效的通信。 [unix(7)
]
它使用另一种地址结构(sockaddr_un
)。它是在单个系统上实现进程间通信双向通信的常用方式不经过网络层。
和数据包套接字是原始数据包司机等级:
数据包套接字用于在设备驱动程序(OSI 第 2 层)级别接收或发送原始数据包。它们允许用户在物理层之上的用户空间中实现协议模块。 [
packet(7)
]
其他插座作用于网络层(OSI 第 3 层)或更高层。此时,您将直接与网络接口的驱动程序对话。
欲了解更多信息,请参阅socket(2)
,ip(7)
,packet(7)
,raw(7)
,socket(7)
和unix(7)
。