数据链路层、 网络层、传输层协议是在内核中实现的。实现这组系统调用的API(Application Programming Interface, 应用程序编程接口)实现一组系统调用,使得应用程序能够访问这此协议提供的服务。主要有两套:socket 和XTI。XTI协议族的关系。现在基本不再使用,木书仅讨论socket。图1-1显示了socket 与TCP/IP由soo定义的这一组 API提供如下两点功能一是将应用程序数据从用户缓冲区中复制到TCP/UDP内核发送缓冲区,以交付内核米发送数据(比如图1-5所示的send雨数),或者是从内核TCP/UDP接收缓冲区中复制数据到用户缓冲区,以读取数据;二是应用程序可以通过它们来修改内核中各层协议的某些头部信息或其他数据结构,从而精细地控制底层通信的行为。比如可以通过setsockot雨数来设置IP数据报在网络上的存活时间。我们将在第5章详细讨论这一-组API。
值得一提的是, socket 是一套通用网络编程接口,它不但可以访同内核中TCPIP E栈,而且可以访问其他网络协议栈(比如X.25协议栈、uUNIX本地域协议栈等)