域socket(domain socket)和ipsocket(TCP/IP socket)区别
引言
前篇文章談到 mysql 中 localhost 和 127.0.0.1 連接的區(qū)別,其實(shí)質(zhì)分別對(duì)應(yīng)的就是 Unix domain socket 和 TCP/IP socket。 下面再來(lái)看看這兩者之間的區(qū)別。
UNIX Domain Socket 與 TCP/IP Socket 對(duì)比
socket API原本是為網(wǎng)絡(luò)通訊設(shè)計(jì)的,但后來(lái)在socket的框架上發(fā)展出一種IPC機(jī)制,就是UNIX Domain Socket。
雖然網(wǎng)絡(luò)socket也可用于同一臺(tái)主機(jī)的進(jìn)程間通訊(通過(guò)loopback地址127.0.0.1),
但是UNIX Domain Socket用于IPC更有效率:不需要經(jīng)過(guò)網(wǎng)絡(luò)協(xié)議棧,不需要打包拆包、計(jì)算校驗(yàn)和、維護(hù)序號(hào)和應(yīng)答等,只是將應(yīng)用層數(shù)據(jù)從一個(gè)進(jìn)程拷貝到另一個(gè)進(jìn)程。
UNIX域套接字與TCP套接字相比較,在同一臺(tái)主機(jī)的傳輸速度前者是后者的兩倍。
這是因?yàn)?#xff0c;IPC機(jī)制本質(zhì)上是可靠的通訊,而網(wǎng)絡(luò)協(xié)議是為不可靠的通訊設(shè)計(jì)的。
UNIX Domain Socket也提供面向流和面向數(shù)據(jù)包兩種API接口,類(lèi)似于TCP和UDP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不會(huì)丟失也不會(huì)順序錯(cuò)亂。
參考文章:Unix domain socket 和 TCP/IP socket 的區(qū)別
總結(jié)
以上是生活随笔為你收集整理的域socket(domain socket)和ipsocket(TCP/IP socket)区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 什么是标准输入,标准输出(stdin,s
- 下一篇: servlet和CGI的区别和联系