【计算机网络】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)】3d

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

  • 套接字至关于一个公用的中间语言,让不一样的主机能够顺利通话。
  • 套接字是创建网络应用程序的可编程接口,所以套接字也称为应用程序和网络之间的应用程序编程接口(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为例;

相关文章
相关标签/搜索