如何访问TCP/IP协议
网络中两个进程的通信实际上是借助网络协议栈实现的。应用进程把数据交给下层的传输层协议实体,调用传输层提供的传输服务,传输层及其下层协议将数据层层向下递交,最后由物理层将数据变为信号,发送到网上,经过各种网络设备的寻址和存储转发,才能到达目的端主机。目的端的网络协议栈再将数据层层上传,最终将数据送交接收端的应用进程,这个过程非常复杂。但对于网络编程来说,必须要有一种非常简单的方法与协议栈连接。
操作系统的设计者们把协议软件安装在操作系统中,并设计协议软件接口,定义一组精确的过程来访问TCP/IP协议。协议软件接口可以按照两种方法来实现:第一种方法是设计者发明一种新的系统调用,应用程序用它们来访问TCP/IP,这要求设计者列举出所有的概念性操作,为每个操作指定一个名字和参数,将每个操作实现为一个系统调用;第二种方法是设计者沿用一般的I/O调用,对其进行扩充,使其既可以同网络协议又可以同一般的I/O设备一起工作。在实际运用中,许多设计者选择了这两种方法的混合,即尽可能使用基本的I/O功能,但对那些不能方便表达的操作则增加其他的函数。