进程间通信

发布于:2025-04-23 ⋅ 阅读:(17) ⋅ 点赞:(0)

本文来源 : 《计算机网络 自顶向下方法》


用操作系统的术语来说,进行通信的实际上是进程(process)而不是程序。

当多个进程运行在相同的端系统上时,它们使用进程间通信机制相互通信。

在两个不同端系统上的进程,通过跨越计算机网络交互报文(message)而相互通信。

发送进程生成并向网络发送进程报文;接收进程接收这些报文并可能通过回送报文进行响应。


我们定义客户和服务器进程如下:

在一对进程之间的通信会话场景中,发起通信的进程被标识为客户,在会话开始后等待联系的进程是服务器。


进程与计算机网络之间的接口

多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文。从一个进程向另一个进程发送的报文必须通过下面的网络。进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文。


因特网的TCP协议 : 运输层协议

因为套接字是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口。应用程序开发者可以控制套接字在应用层端的一切,但对于该套接字的运输层端几乎没有控制权。

应用程序开发者对于运输层的控制权仅限于 :

(1)选择运输层协议

(2)也许可以设置几个运输层参数,如最大缓存和最大报文段长度。


可供应用程序使用的运输服务

运输层协议负责从接收进程的套接字得到该报文

包括因特网在内的很多网络提供了不止一种运输层协议。当开发一个应用时,必须选择一种可用的运算层协议。

我们大体从4个方面对应用程序服务要求进行分类 :

(1)可靠数据传输

(2)吞吐量

(3)定时

(4)安全性


(1)分组(socket)在计算机网络中可能丢失,例如:分组能够使路由器中的缓存溢出,或者当分组中的某些比特损坏后可能被丢弃。

如果一个协议可以确保数据交付服务,我们就认为它提供了可靠数据传输。

对于多媒体应用,如交谈式音频/视频,它们可以承受一定量的数据丢失,所以它们可以选用一个不提供可靠数据传输的运算层协议。(要求没有那么严苛)

(2)在沿着一条网络路径上的两个进程之间的通信会话场景中,可用吞吐量就是发送进程能够向接收进程交付比特的速率。

因为其他会话将共享沿着该网络路径的带宽,并且因为这些会话将会到达和离开,该可用吞吐量将随时间波动。这种观察导致另一种自然的服务,即运输层协议能够以某种特定的速率提供确保的可用吞吐量。使用这种服务,该应用程序能够请求r比特/秒的确保吞吐量,并且该运输协议能够确保可用吞吐量总是为至少r比特/s。

具有吞吐量要求的应用程序被称为带宽敏感的应用。许多当前的多媒体应用是带宽敏感的。

(3)运输层协议也能提供定时保证。定时保证能够以多种形式实现。一个保证的例子如:发送方注入套接字的每个比特到达接收方的套接字不迟于100ms。

这种服务对于交互式实时应用程序有吸引力。

(4)运输协议可以为应用程序提供一种或多种安全性服务。


网站公告

今日签到

点亮在社区的每一天
去签到