什么是unix的socket

起因:大平在进行unix运维的时候,总是发现后缀是sock的文件,因此想,这是啥文件呢?有什么作用?为什么会有这个文件?

Socket文件用于同一OS或不同OS中进程相互传输数据的一个标识,可以把它想象成一个插座,然后用网线连接两个socket。

为什么是个文件?
简单来说,就是使用文件最方便
文件系统在Unix中与System Call(系统调用)是同步的,由此可见,文件系统可以提供一种使用System call的方便途径。

进程是如何使用socket的?

进程使用socket descriptor来使用socket,这个socket descriptor是一个抽象概念,通常使用一个整数来表示。一个进程通常对协议栈(protocol stack)申请创建一个socket,然后,stack返回一个socket descriptor给这个进程。当进程想要发送或接收数据时,就把这个socket descriptor发送给协议栈。

两个node之间进行通信时,进程不会直接连接到另外一个node的socket descriptor,而是连接到本node的socket descriptor【一个整数】,然后由本node的socket发送数据到protocol stack,另外node的protocol stack接收后,传给另外node的process。













请使用浏览器的分享功能分享到微信等