1

首先来看环回ip地址和其他ip作为目的ip地址的区别:
环回地址作为目的地址和其他网络地址作为目的地址的区别:
环回地址照样会完成传输层和网络层的所有过程,只是在数据离开网络层时将其返回给自己。环回地址不会触发ARP协议以及不会发送到以太网。

internet vs unix domain
unix域套接字以文件系统作为地址名称空间,这意味着可以使用unix文件系统的权限机制通信访问。但是ip地址是暴露在当前系统下的,为了安全性必须要做一些额外的操作。
网络套接字不会省略传输层和网络层的任何机制,包括ack确认,分包与解包,发送大的数据也要被分割为MTU大小的包,而unix域套接字没有校验和,没有头部封装,没有路由选择,并且由于其能够访问到另一端套接字缓存,因此可以直接给发送者提供反馈(自己的套接字缓存是满的还是空的),这样避免了流量控制机制。unix域套接字不提供而网络套接字提供的:带外数据。实际情况来看这一项几乎等于没有(带外数据几乎没什么用么。。。)
这些是unix域套接字在性能上比网络套接字优秀的地方,具体使用选择主要还是看你注重性能还是网络扩展性。

url:https://lists.freebsd.org/pip...


p__n
491 声望10 粉丝

科学告诉你什么是不可能的;工程则告诉你,付出一些代价,可以把它变成可行,这就是科学和工程不同的魅力。