数据链路层、网络层、传输层协议是在内核中实现的,因此操作系统需要实现一组系统调用,使得应用程序能够访问这些协议提供的服务,实现这组系统调用的API有socket
,socket
与TCP/IP协议族
的关系:
由socket
定义的一组API
提供两点功能:一是将应用程序数据从用户缓冲区
中复制到TCP/UDP内核发送缓冲区
以交付内核来发送数据,或者是从内核TCP/UDP接收缓冲区
中复制数据到用户缓冲区
,以读取数据。
二是应用程序可以通过它们来修改内核中各层协议的某些头部信息或其他数据结构,从而精细地控制底层通信的行为。
socket
是一套通用网络编程接口
,它不但可以访问内核中TCP/IP协议栈
而且还可以访问其他网络协议栈(X.25协议栈、UNIX本地域协议栈等)。