当前位置: 首页 > Linux

Networksocketvsunixdomainsocket

时间:2023-04-06 03:11:44 Linux

先看loopbackip地址和其他ip作为目的ip地址的区别:使用loopback地址作为目的地址和其他网络地址作为目的地址的区别:loopbackaddress仍然会完成传输层和网络层的所有流程,只是在离开网络层时将数据返回给自己。环回地址不会触发ARP协议,也不会发送到以太网。internetvsunixdomainunixdomainsockets使用文件系统作为地址命名空间,也就是说可以使用unix文件系统的权限机制进行通信和访问。但是ip地址在当前系统下是暴露的,为了安全必须做一些额外的操作。网络套接字不会省略传输层和网络层的任何机制,包括ack确认、分包和拆包,大数据的发送必须分成MTU大小的包,而unix域套接字没有校验和,有是没有header封装,没有路由,而且因为可以访问到另一端的socket缓存,所以可以直接反馈给发送方(自己的socket缓存是满还是空),从而避开了流量控制机制。unix域套接字不提供而网络套接字提供的功能:带外数据。从实际情况来看,这一项几乎等于没有(带外数据几乎没用。。。)这些都是Unix域套接字在性能上优于网络套接字的地方。具体选择使用主要看你对性能还是网络可扩展性的关注。网址:https://lists.freebsd.org/pip...