计算机网络自学笔记:应用层协议的原理

应用软件通常在网络边缘的端系统中运行,而不是在网络核心的交换机和路由器上运行,这种模式促进了大量应用的开发和部署。网络核心的交换机和路由器只专注于数据包(分组)的转发。

1 网络应用程序体系结构

应用程序都有一个体系结构。网络应用程序所使用的两种体系结构包括:客户机/服务器(C/S)体系结构或对等(P2P)体系结构。

在客户机/服务器体系结构中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。

一个典型的例子是Web应用程序,当Web服务器接收到来自某客户机浏览器对某对象的请求时,它向该客户机发送所请求的对象作为响应。注意到客户机/服务器体系结构中,客户机相互之间不直接通信。服务器具有固定的、周知的地址,称为IP地址,并且总是处于打开状态。

在客户机/服务器体系结构中,常用主机群集之类的虚拟服务器对客户机提供服务。

在P2P体系结构中,对作为基础设施的服务器依赖很少。相反,主机与主机之间—称为对等方,直接相互通信,互相提供服务。很多应用程序都是P2P体系结构的,包括文件分发、因特网电话Skype等。P2P体系结构的最突出特性之一是它的可扩展性。

某些应用具有混合的体系结构,由客户机/服务器和P2P结合而成。例如,对于许多即时讯息应用(QQ等)而言,服务器用于跟踪用户的IP地址,但用户到用户的消息在用户主机之间直接发送(无需通过中间服务器)。

2 进程通信

运行在多个端系统上应用程序之间的互相通信,对于操作系统来说,实际上是进程之间的通信。进程可以被认为是程序的一次执行。同一台主机上的进程间通信的可以使用操作系统的进程间通信机制例如共享内存、信号量等。但运行在不同端系统(可能具有不同的操作系统)上的进程间的通信,需要交换消息(message)来实现相互通信。发送进程创建并向网络中发送消息,接收进程接收这些消息并负责回送消息。这个过程是通过调用操作系统提供的发送接收函数来实现的。

•客户机和服务器进程网络应用程序由成对的进程组成,这些进程通过网络相互发送消息。对每对通信进程,在给定的一次通信会话中,发起通信的进程被标示为客户机,在会话

开始时接受请求的进程是服务器。例如在Web中,一个浏览器进程向Web服务器进程发起联系,因此该浏览器进程是客户机,而该Web服务器进程是服务器。

•进程与计算机网络之间的接口从一个进程向另一个进程发送的消息必须经过下面的网络进行传输。进程通过一个操作系统提供的称为套接字(Socket)的编程接口在网络上发送和接收消息,发送和接收函数是这个编程接口提供的最基本的两个函数。

应用程序开发者对于传输层的控制仅限于:1选择传输层协议。2设定几个传输层参数,如最大缓存、最大报文段长度等。

进程在通信时,必须给接收方指定接收地址,这个地址包括两个部分:对方主机的IP地址和应用程序的标识—端口号。

3 可供应用程序使用的传输服务

因特网提供了不止一种传输层协议。当开发一个应用时,在选择可用的传输层协议时需要从四个方面对应用程序所需的传输服务进行考虑:是否要求可靠数据传输、吞吐量、时效性和安全性。

•可靠数据传输

分组可能在计算机网络中丢失。有些应用如电子邮件、文件传输、远程主机访问以及网络金融等应用,数据丢失可能会造成灾难性的后果。对于这些应用,必须确保应用程序一端发送的数据正确地、完全地交付给该应用程序的另一端。当一个传输层协议提供这种服务时,发送进程只要将其数据传递到套接字,就可以确信该数据将能无差错地到达接收进程。

当一个传输层协议不提供可靠数据传输时,发送的数据可能不能到达接收进程。对于多媒体应用,如实时音频/视频或存储的音频/视频,它们能承受一定程度的数据丢失。

•吞吐量

有些应用例如网络电话对话音传输有最小的带宽要求,当话音以32kbps的速率进行编码,那么在通话过程中一直以这个速率向网络发送数据,并向接收应用程序交付数据。如果传输层不能提供这种吞吐量保证,那么该应用程序或以较低速率进行编码,或者放弃发送。而弹性应用能够根据需要充分利用可供使用的吞吐量。电子邮件、文件传输以及Web传输都属于弹性应用。

•时效性例如,因特网电话中较长的时延会导致会话中不自然的停顿。在网络游戏和虚拟互动环境中,在动作及响应之间较长的时延会使游戏失去真实感。在非实时的应用中,对端到端的时延没有严格的约束。

•安全性传输层协议能够为应用程序提供一种或多种安全性服务。传输层协议也能提供除了机密性以外的其他安全性服务,包括数据完整性和端点鉴别。

4因特网提供的运输服务

因特网(更一般地说是TCP/IP网络)为应用提供了两个传输层协议:UDP和TCP(对应于socket编程的SOCK_STREAM,SOCK_DGRAM)。

•TCP服务

TCP服务模型是面向连接的可靠数据传输服务。

面向连接服务:使用TCP协议时,在应用程序开始交换消息之前,客户机程序和服务器

程序之间互相交换传输层控制信息,做好传输分组的准备。在握手阶段后,就在两个进程的套接字之间建立了一个TCP连接。这个连接是全双工的,即连接双方的进程都有发送和接收缓冲区,可以在此连接上同时进行报文段的收发。当应用程序结束消息发送时,必须拆除该连接。

可靠数据传愉服务:进行通信的进程依靠TCP协议,无差错、按适当顺序交付发送的数据。其主要原理是报文段丢失了会进行重传。

TCP协议还具有拥塞控制机制,这种服务能为因特网带来整体好处。

•UDP服务

UDP是一种不提供可靠传输服务的轻量级传输层协议。UDP是无连接的,因此在两个进

程通信前没有握手过程。UDP没有拥塞控制机制。•因特网传输层协议所不提供的服务不提供吞吐量和时效性保证的服务。

5应用层协议

应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递消息。

特别是定义了:

交换的消息类型,如请求消息和响应消息。

各种消息类型的语法,如消息中的各个字段及其详细描述。

字段的语义,即包含在字段中的信息的含义。

进程何时、如何发送消息及对消息进行响应的规则。

有些应用层协议是由RFC文档定义的,因此它们位于公共领域,例如HTTP。有些应用层协议是公司或者个人私有的,位于私人领域,例如QQ。

6 本文涉及的网络应用

Web、文件传输、电子邮件、DNS目录服务和P2P。重点需要了解Web和DNS。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容