Questions tagged «socket»

是用于在同一主机操作系统内执行的进程之间交换数据的数据通信端点。

2
在Linux中,unix域套接字路径开头的@符号表示什么?
当我运行时,netstat --protocol unix或lsof -U看到某些unix套接字路径前面带有@符号,例如@ / tmp / dbus-qj8V39Yrpa。然后,当我运行时,我在ls -l /tmp那里看不到名为dbus-qj8V39Yrpa的文件。 问题是,@符号前面表示什么?第二个相关的问题是-我实际上在文件系统上哪里可以找到该unix套接字文件(@ / tmp / dbus-qj8V39Yrpa)?
17 linux  path  socket 

3
在不使用NFS的系统上运行的rpc.statd
我有一台Debian机器,该机器正在通过rcp.statd此类套接字监听警报(通过Tiger自动审核器)。谷歌搜索节目rpc.statd是NFS使用的守护程序。据我所知,我没有使用(也没有安装)与NFS相关的任何东西。 什么会安装/启动此服务,我需要做些什么来禁用适当的rcp.statdNFS守护程序?


1
iproute软件包中的“ ss”命令;为什么要查询平板表中的timewait套接字?
如果这不是解决此问题的最佳论坛,请原谅我,但它似乎与内核有关,而不是与编程本身有关。 我正在编写一个脚本,用于查询系统的开放端口,以便我们可以绘制图形并监视统计信息。为此,我使用了iproute软件包中的“ ss”命令。如果执行ss -s|grep estab,将收到类似以下的输出: TCP: 296 (estab 6, closed 238, orphaned 0, synrecv 0, timewait 238/0), ports 0 我的问题与timewait变量有关,该变量显示了处于TIME_WAIT状态的计算出的套接字。当我试图找出在斜杠后引用的数字时,它成为了寻找源代码的狂热冒险,最终使我找到了以下代码段: printf("TCP: %d (estab %d, closed %d, orphaned %d, synrecv %d, timewait %d/%d), ports %d\n", s.tcp_total + slabstat.tcp_syns + s.tcp_tws, sn.tcp_estab, s.tcp_total - (s.tcp4_hashed+s.tcp6_hashed-s.tcp_tws), s.tcp_orphans, slabstat.tcp_syns, s.tcp_tws, slabstat.tcp_tws, slabstat.tcp_ports ); 我必须承认,我对“ …

2
Linux是否会自动清理抽象域套接字?
在StackOverflow上有一个很好的答案,那就是为守护程序(由Eduardo Fleury合成)提供更好的锁定,而该锁定不依赖于守护程序的通用PID文件锁定机制。关于为什么PID锁定文件有时会引起问题,有很多很好的评论,因此在这里我不会对其进行哈希处理。 简而言之,该解决方案依赖于Linux抽象名称空间域套接字,该套接字为您按名称跟踪套接字,而不是依赖文件,该文件在守护进程被SIGKILL处理后仍会存在。该示例表明,一旦进程终止,Linux似乎可以释放套接字。 但是我找不到在Linux中的权威文档,该文档没有说明当绑定进程进行SIGKILL操作时Linux对抽象套接字的确切作用。有人知道吗? 换句话说,确切地说什么时候抽象套接字可以释放以供再次使用? 我不想用抽象套接字替换PID文件机制,除非它能最终解决问题。



1
关闭后绑定的TCP本地套接字地址多长时间不可用?
在Linux上(我的实时服务器在RHEL 5.5上-下面的LXR链接是其中的内核版本),man 7 ip说: 除非已设置SO_REUSEADDR标志,否则已绑定的TCP本地套接字地址在关闭后的一段时间内不可用。 我没有使用SO_REUSEADDR。“一段时间”是多长时间?我如何知道它有多长时间,以及如何更改它? 我一直在仔细研究这个问题,发现了一些信息,但是从应用程序程序员的角度来看,这些信息都无法真正解释。以机智: TCP_TIMEWAIT_LEN in net/tcp.h是“等待破坏TIME-WAIT状态的时间”,固定为“大约60秒” / proc / sys / net / ipv4 / tcp_fin_timeout为“如果套接字已被我们关闭,则将套接字保持在状态FIN-WAIT-2的时间”,并且“默认值为60秒” 我遇到的困难是弥合TCP生命周期的内核模型与程序员的端口模型不可用之间的差距,即了解这些状态与“某个时间”的关系。

1
如何获取有关套接字文件的更多信息?
对于这样的套接字文件: # ls -alti socket 14112 srw------- 1 root root 0 Nov 15 20:03 socket # cat socket cat: socket: No such device or address 由于cat命令在这里没有用,是否有任何方法可以获取有关套接字文件的更多信息?例如正在侦听哪个端口?等等


1
移动UNIX域套接字如何使socat监视流量?
socat 可以用来监视跨Unix域套接字的流量: sudo mv /path/to/sock /path/to/sock.original sudo socat -t100 -x -v UNIX-LISTEN:/path/to/sock,mode=777,reuseaddr,fork UNIX-CONNECT:/path/to/sock.original 我不太了解这种机制的工作原理,希望有人能对此有所解释。特别是,如果进程已经在侦听套接字文件,那么如何移动套接字文件?此外,在移动后:没有lsof /path/to/sock,也没有/path/to/sock.original返回任何结果。
12 socket  socat 

2
&6和/ dev / fd / 6有什么区别?
要读取文件描述符6,我可以使用<&6或</dev/fd/6(aka /proc/self/fd/6)。通常两者都可以很好地工作。但是,如果该文件描述符恰好是套接字,则会发生奇怪的事情。例如: $ bash -c 'ls -l /dev/fd/6;cat /dev/fd/6' 6</dev/tcp/localhost/12345 lrwx------ 1 michas michas 64 Jan 10 19:50 /dev/fd/6 -> socket:[315010] cat: /dev/fd/6: No such device or address 这里ls显示描述符确实存在。但是用这种方式不可能访问数据。如果我cat <&6改用其他方法,一切都会再次正常。 两种访问文件描述符的方式有什么区别? 如果数字在变量中给出,是否有访问描述符的好方法?(</dev/fd/$fd可以,但<&$fd不能。) (以上情况在Linux上可以观察到,但在OpenBSD上则不能观察到。-似乎文件描述符在那里是常规字符设备。)

1
有人可以解释不同类型的Unix域套接字吗?
如果我运行netstat --all | grep ^unix某些输出的套接字路径,则在其前面加上“ @”,而有些则没有。我注意到在浏览文件系统时,那些以“ @”开头的文件不会显示,ls而其余的则显示。 这两种插座是什么,它们之间有什么区别?
11 socket 

2
本地Unix套接字-吞吐量的粗略概念
是否有人知道使用本地unix套接字进行进程间通信的吞吐量基准/测量? 我想说明在与从数据库请求数据的软件相同的服务器上拥有本地数据库实例的性能优势,而不必通过网络链接进行通信,尤其是像千兆以太网这样的网络链接,我预计它会比较慢相对而言。 在线搜索时,我发现一些基准显示每秒的操作数量,但没有每秒的吞吐量(即12GB / s)。 我了解性能会因诸如给定系统上的内存吞吐量或其他硬件特性之类的因素而有所不同,但是仅需要一个大概的想法。 这不是指本地TCP性能或与之相比。

1
什么是通用套接字,它与网络设备有什么关系?
我试图了解网络驱动程序如何在Linux下工作。此次问答表明,Linux中的网络设备未由设备文件表示。它指出网络驱动程序可以使用sockets。 例如,这引用了如何通过ioctl呼叫来设置网络设备。ioctl但是,由于没有用于网络驱动程序的设备文件,因此需要一个文件描述符,唯一可以传递的文件描述符是套接字中的文件描述符。 这使我明白了问题的重点。到目前为止,似乎是物理网卡的软件表示形式的网络接口实际上是套接字的劣等对象。 但是,从抽象的角度来说,套接字是什么,它仅仅是支持推送通知的设备文件的另一个名称吗?我通过用户空间应用程序绑定到网络接口上的address:port对的连接点来理解TCP套接字。我不了解套接字是设置网络接口的先决条件。 Linux上的网络接口(如eth0列出的ifconfig)是否可以不带套接字? ifconfig或某些网络管理器守护程序是否保持套接字打开以允许我们设置网络接口选项?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.