【计算机网络】2.1 应用层协议原理

第二章第一节 应用层协议原理

网络应用是计算机网络存在的理由,在本章中,我们学习有关网络应用的原理和实现方面的知识。我们学习包括应用沉香谷所需要的网络服务、客户和服务器、进程和运输层接口。

我们详细考察几种网络应用程序,包括Web、电子邮件、DNS 和 P2P文件分发。

Outline

Notes

## 应用程序体系结构

应用程序体系结构规定了由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。

三种程序结构为:客户 - 服务器体系结构、对等(P2P)体系结构混合结构

【客户-服务器体系结构】

  • 定义:有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求
  • 服务器
    • 对外提供不间断服务
    • 服务器具有固定的、周知的地址(IP地址)
    • 利用大量服务器实现可扩展性(数据中心)
  • 客户端
    • 客户端使用服务,间歇性接入网络
    • 可能使用动态的IP地址
    • 客户端之间不相互通信
  • 栗子:Web服务器、FTP、电子邮件

 

【P2P体系结构】

  • 特点:
    • 对于位于数据中心的专用服务器有最小(或没有)的依赖
    • 任意端系统/节点可以直接通信,这些主机被称为对等方
    • 端系统间歇性接入网络,可能改变IP地址
  • 栗子(流量密集型应用):文件共享、对等方协助下载加速器(迅雷)、因特网电话等
  • 优点:自扩展性(成本可控、通过与其他对等方分发文件以增加服务能力)
  • 缺点:难以管理
  • 三大挑战
    • ISP友好:大多数住宅ISP的下载要比上载多得多,ISP已经受制于非对称的带宽应用
    • 安全性:因为高度分布和开放特性,P2P给安全带来挑战
    • 激励:要税负用户资源提供带宽、存储和计算资源

【混合结构】

P2P难于管理,那我们就混入C/S的集中管理。C/S中服务器压力过大,我们就混入P2P中的P们来为它减轻负担。Napster就是这样做的。

Napster:文件传输使用P2P结构,文件搜索使用C/S结构

## 进程通信

  • 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位
  • 如果同一主机上运行的进程想互相通信,它们可以通过进程间通信机制来完成,这种机制是由操作系统提供的 
  • 两个不同端系统上的进程,通过跨越计算机网络交换报文(message)而相互通信
  • 端系统的进程通过套接字进行接受报文或发送报文
  • 网络应用程序是由成对的进程组成,这些进程通过网络相互发送报文。对每对通信进程,我们将其中的一个标记为客户(client,一般为发起通信的一方),另一个标记为服务器(server,等待联系的一方)。 

【套接字(Socket)】

  • 套接字是同一台主机内应用层与运输层之间的接口

  • 套接字相当于一个公用的中间语言,让不同的主机可以顺利通话。
  • 套接字是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口(Application Programming Interface,API)
  • 应用程序开发者对于运输层的控制仅限于:
    • 选择运输层协议;
    • 也许能设定几个运输层参数,如最大缓存和最大报文段长度等(将在第3章中涉及)。

 【进程寻址】

  • 如果想实现不同主机上的进程间通信,每个主机必须拥有标识符——IP地址,每个进程需要拥有标识符——端口号
  • 进程的标识符 = IP地址+端口号
  • IP地址是一个32比特的量且唯一的标识主机,更多的内容请参考第4章
  • 端口号如:HTTP Sever:80

## 因特网提供的运输服务

【网络应用的需求和传输层服务】

  • 运输层协议提供的运输服务包括:
    • 可靠数据传输(容忍丢失)
    • 吞吐量(带宽敏感)
    • 定时(延迟)
    • 安全性
  • 常见的应用所需的运输服务

 

 【Internet提供的两类传输服务——TCP服务】

  • TCP服务模型包括面向连接服务可靠数据传输服务,TCP还提供拥塞控制机制
  • 服务的具体描述:
    • 面向连接:客户机/服务器进程间需建立连接。握手过程提示客户和服务器,使它们为大量分组的到来做好准备。在握手阶段后,一个TCP连接(TCP connection)就在两个进程的套接字之间建立了。
    • 可靠的传输:通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。
    • 流量控制:发送方不会发送过快,超过接收方的处理能力。
    • 拥塞控制:当网络负载过重时能够限制发送方的发送速度。
    • 不提供时间/延迟保障。
    • 不提供最小带宽保障。

Internet提供的两类传输服务——UDP服务

  • UDP是一种不需要服务的轻量级运输协议。
  • 无连接:它不需在两主机间建立连接。
  • 提供不可靠的数据传输
  • 不提供拥堵控制UDP的发送端可以用它选定的任何速率向其下层(网络层)注入数据(值得注意的是实际端到端吞吐量可能小于这种速率,这可能是因为中间链路的带宽受限或因为拥塞而造成的)
  • 也不提供:可靠性保障、流量控制、延迟保障、带宽保障。

【常见应用选择的运输协议】

 ## 应用层协议

  • 运输服务遵循应用层协议
    • 公开协议:由RFC定义,标准化的HTTP、SMTP等
    • 私有协议:多数P2P文件共享应用
  • 应用层协议的主要内容
    • 消息的类型(type):请求消息,响应消息。
    • 消息的语法(syntax)/格式:消息中有哪些字段,每个字段如何描述。
    • 字段的语义(semantics):字段中信息的含义。
    • 规则(rules):进程何时发送/响应消息等。
  • 以HTTP为例;

猜你喜欢

转载自www.cnblogs.com/hithongming/p/9329180.html