计算机网络 自顶向下方法 第七版 第二章 应用层

本系列是学习感想和总结,如有错误,恳请评论区留言指正

系列文章链接

第一章 计算机网络和因特网
第二章 应用层



网络应用是计算机网络存在的理由。

1. 应用层协议原理

  网络核心设备并不在应用层上起作用,网络应用被限制在端系统上。这样的设计方法促进了网络应用程序的迅速研发和部署。
在这里插入图片描述

1.1 网络应用程序体系结构

  应用程序体系结构(application architecture)由应用程序设计者决定那个如何在各种端系统上组织该应用程序。目前两种主流的应用程序体系结构是:客户 - 服务器体系结构和对等体系结构。

1.1.1 客户 - 服务器体系结构

  客户 - 服务器体系结构(client-server architecture)中有一个总是打开的主机服务器,它服务于来自称为客户主机的请求。

  在该体系结构中,不同的客户之间不会直接通讯。服务器具有一个固定的地址,该地址被称作IP地址。

  使用客户 - 服务器体系结构的常见的应用有:全球广域网、文件传输、远程登陆(Web、FTP、Telnet)电子邮件等。

  在这个体系结构的应用中,常常会有服务器跟不上它所有客户的请求的情况,此时常常会配备大量主机的数据中心来作为服务器。

1.1.2 P2P体系结构

  在P2P体系结构(P2P architecture)中,对位于数据中心的专用服务器具有最小(或者没有)依赖。应用程序在间断连接的主机对之间直接通讯,这些主机对称作对等方(peer)。对等方不所属于服务提供商,不通过专门的服务器。服务器用于跟踪用户的IP地址,但是用户和用户之间的报文不经过服务器。

  常见的P2P应用有:文件共享、对等方协助下载、因特网电话和视频会议等。

  P2P协议最大的特性是自扩展性(self-scalability)。在P2P应用程序中,对等方的增加虽然会产生更多的工作负载,但是由于对等方会向其他对等方分发文件,所以也会提高整个系统的服务能力。

在这里插入图片描述

1.2 进程通讯

  进行通讯的实际上是进程(process)。一个进程被认为是端系统内的一个程序。当一个端系统中运行多个不同的进程时,它们使用进程间通讯机制相互通讯。在两个不同端系统上的进程,通过跨越计算机网络交换报文(message)相互通信。

1.2.1 客户和服务器进程

  每对通讯的进程,将其中之一记作服务器(server),将另一个记作客户(client)

  我们定义服务器和客户如下:在一对进程通信中,发起通讯的进程被标记做客户,在会话开始时等待的联系的进程是服务器

  对于Web应用,浏览器是客户程序,Web服务器是一台服务器进程。对于P2P而言,下载文件的对等方记作客户,上传文件的对等方记作服务器。

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

  进程通过称作套接字(socket)的软件接口向网络发送报文和从网络接受报文。套接字也称作应用程序和网络之间的应用程序编程接口(Application Programming Interface, API)

  应用程序开发者对于运输层的控制仅有:选择运输层协议、设定部分参数(例如最大报文段长度)。

1.2.3 进程寻址

  为了向特定主机发送分组,需要目的进程的两类信息:主机地址,在目的主机中进程的标识符。

  主机由IP地址(IP address)标识,而进程在主机上的标识符为目的端口号(port number)。目前许多流行的应用已经分配了特定的端口号,例如Web端口号是80,邮件服务器的端口号是25

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

我们需要根据可靠数据传输、吞吐量、定时和安全性几类来选择数据运输服务。

1.3.1 可靠数据传输

  部分应用程序要求不能存在数据丢失,因此对于这些应用需要确保发送方的数据正确完全地交付给接收方。如果一个协议可以提供这样的数据传输,那么认为它提供了可靠数据传输(reliable data transfer)

  当一个运输层协议不提供可靠数据传输时,发送端的某些数据可能会丢失,这些协议可能被容忍丢失的应用(loss-tolerant application)使用。比如多媒体应用能够承受一定程度上的数据丢失。

1.3.2 吞吐量

  在进程通讯的过程中,可用吞吐量就是发送进程能够向接收进程交付比特的速率。可用的吞吐量是随时间而波动的,于是某些协议能够确保应用程序以某一吞吐量运行。

  具有吞吐量有要求的应用被称作带宽敏感应用(bandwidth-sensitive application),队淘汰了没有特定要求的是弹性应用(elastic application)

1.3.3 定时

  运输层协议可以够提供定时保证,定时保证以多种形式实现。这种服务比较适用于交互式实时应用程序,例如网络电话、多方游戏等。对于非实时应用,低时延比高时延好,但是对端到端的时延没有要求。

1.3.4 安全性

  运输协议能够为应用程序提供一种或者多种安全性服务。例如能够对报文加密发送,在交付给接收进程时解密。

1.4 因特网提供的运输服务

  因特网为应用程序提供两个运输层协议:TCP、UDP。选择哪一个要根据应用程序的特点来决定。

应用 数据丢失 带宽 时间敏感
文件传输 不能丢失 弹性
电子邮件 不能丢失 弹性
Web文档 不能丢失 弹性(几 kbps)
因特网电话 / 视频会议 容忍丢失 音频(几 kbps ~ 1Mbps)
视频(10kbps ~ 5Mbps)
是, 100ms
流式存储音频 / 视频 容忍丢失 同上 是, 几秒
交互式游戏 容忍丢失 kbps ~ 10kbps 是, 100ms
智能手机讯息 不能丢失 弹性 是和不是

1.4.1 TCP服务

  当某个应用程序调用TCP作为其运输协议的时候,它能够获得TCP提供的两种服务。

  1. 面向连接的服务
      在应用层数据报流动之前,TCP让客户和服务器交换运输层控制信息(握手),以做好大量分组传输的准备。握手之后应该TCP连接在两个进程的套接字之间建立了。结束报文发送后,需要拆除连接。
      这个连接是全双工的,双方可以同时进行报文收发。

  2. 可靠数据传输服务
      通讯的进程能够无差错、以适当顺序交付所有数据,没有数据的丢失和冗余。

  TCP协议还具有拥塞控制等,能够调度进程以避免因特网整体的拥塞。

1.4.2 UDP服务

  UDP服务不通过不必要的服务,没有握手,提供不可靠数据传输。UDP也没有拥塞控制。

1.5 应用层协议

  应用层协议(application-layer protocol)定义了运行在不同端系统上的应用层程序如何传递报文,具体定义了:报文类型、各种报文的语法、字段的语义、何时和如何发送报文。

  有些应用层协议是由RFC定义的,是公共的。也有一些是专用的协议。


2. WebHTTP

2.1 HTTP概况


未完待续

猜你喜欢

转载自blog.csdn.net/weixin_43762938/article/details/109332230
今日推荐