要了解socket,首先要了解TCP/IP四层模型。
1.TCP/IP四层模型
TCP/IP四层模型是对OSI七层模型的简化,其自顶向下包含四层,分别是应用层、传输层、网络层、链路层。其中的每一层都有若干规则保障其与上下层级进行交互,也就是协议,进行通信的双方必须遵循协议才能顺利、高效的收发数据。在这些协议中,位于传输层的TCP协议和位于网络层的IP协议是使用频率最高,适用范围最广的协议,因此TCP/IP四层模型中的协议被统称为TCP/IP协议族。
2.什么是socket?
socket是位于应用层和传输层中间的中介,向上,socket负责接收应用层进程将要通过网络发出的数据和传递由网络过来发给进程的数据;向下,socket负责接收传输层发送过来的数据和发送进程将要利用网络发出的数据。socket可以看作是网络通信两端的接口,在Linux中,其本质是一种文件,记录了端的相关信息。也就是说,应用层和传输层之间不会直接面对面交流,而是通过socket以统一的、安全的方式进行网络数据传输。
为什么Linux中的socket被视作一种文件类型?
在Linux中所有的文件都有文件描述符,socket被视为一种文件的好处就在于Linux系