8 应用进程跨越网络的通信

Wu Jun 2020-02-19 12:57:31
04 计算机网络 > 6 应用层

1 系统调用和应用编程接口

1.1 系统调用

大多数操作系统使用系统调用(system call)的机制在应用程序和操作系统之间传递控制权。

当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。此接口再把控制权传递给计算机的操作系统。操作系统把这个调用转给某个内部过程,并执行所请求的操作。内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程。

系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口。

image

1.2 应用编程接口 API

由于应用程序在使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口 API (Application Programming Interface)。

API 从程序设计的角度定义了许多标准的系统调用函数。应用进程只要使用标准的系统调用函数就可得到操作系统的服务。因此从程序设计的角度看,也可以把 API 看成是应用程序和操作系统之间的接口。

1.3 TCP/IP 协议 API

由于 TCP/IP 协议族被设计成能运行在多种操作系统的环境中,TCP/IP 协议允许系统设计者选择应用程序与 TCP/IP 协议软件的接口 API 的具体实现细节。

目前,只有几种可供应用程序使用 TCP/IP 的应用编程接口API。

在讨论网络编程时常常把套接字作为应用进程和运输层协议之间的接口,现在套接字己成为计算机操作系统内核的一部分。

image

在套接字以上的进程是受应用程序控制的,而在套接字以下的运输层协议软件则是受计算机操作系统的控制。

1.4 socket 套接字

套接字是应用进程为了获得网络通信服务而与操作系统进行交互时使用的一种机制。

image

2 几种常用的系统调用

以使用 TCP 的服务为例

2.1 连接建立阶段

服务器

客户端

2.2 数据传送阶段

2.3 连接释放阶段

image