计算机网络-应用层

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络-应用层相关的知识,希望对你有一定的参考价值。

一、应用层协议原理

    1.网络应用程序体系结构

    应用程序的体系结构明显不同于网络的体系结构。从应用程序研发者的角度看,网络体系结构是固定的,并为应用程序提供了特定的服务集合。

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

    现代网络应用程序的两种主流体系结构:客户机/服务器体系结构和对等(P2P)体系结构。

    客户机/服务器体系结构(client-sever architecture):有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。客户机主机既可以有时打开,也可能总是打开。一个典型的例子是Web应用程序,其中总是打开的Web服务器服务于运行在客户机主机上的浏览器的请求。当Web服务器接收到来自某客户机对某对象的请求时,它向该客户机发送所请求的对象作为响应。注意到客户机/服务器体系结构中,客户机相互之间不能直接通信,例如,在Web应用中两个浏览器不能直接通信。客户机/服务器体系结构的另一个特征是服务器具有固定的、周知的地址,称为IP地址。因为服务器具有固定的、周知的地址,并且总是处于打开状态,所以客户机总是能够通过向该服务器的地址发送分组来与其联系。某些具有客户机/服务器体系结构的更为著名的应用程序包括Web、FTP、Telnet和电子邮件。

    在P2P体系结构(P2P architecture)中,对总是打开的基础设施服务器有最小的依赖。任意间断连接的主机对称为对等方,直接相互通信。对等方并不为服务提供商所有,而是为用户控制的桌面机和膝上机所有,大多数对等方驻留在家庭、大学和办公室。因为这种对等方通信不必通过专门的服务器所以体系结构被称为对等方到对等方(简称为对等)。目前,大多数流行的流量密集型应用程序都是P2P体系结构的,包括文件分发、文件搜索/共享、因特网电话和IPTV(PPLive).某些应用具有混合的体系结构,由客户机/服务器和P2P元素结合而成。例如,对于许多即时通讯而言,服务器场用于跟踪用户的IP地址,但用户到用户的报文在用户主机之间直接发送(无需通过中间服务器)。P2P体系结构的最突出特性之一是它的自扩展性(self-scalability)。例如,在一个P2P文件共享应用中,尽管每个对等方都由请求文件产生负载,但每个对等方向其他对等方分发文件也为系统增加了服务能力。P2P体系结构也是成本有效的,因为它们通常不需要庞大的服务器基础设施和服务器带宽。为了降低成本,服务提供商(MSN、Yahoo等)对于P2P体系结构用于系统的兴趣越来越大。另一方面,由于P2P应用程序具有高度分布和开放的性质,因此要格外关注系统的安全。

    2.进程通信

    2.1 客户机和服务器进程

    网络应用程序由成对的进程组成,这些进程通过网络相互发送报文。例如,在Web应用程序中,一个客户机浏览器进程与一台Web服务器进程交换报文。在一个P2P文件共享系统中,文件从一个对等方中的进程传输到另一个对等方中的进程。对每对进程通信,通常将这两个进程之一表示为客户机(client),而另一个进程表示为服务器(server)。在Web中,浏览器是一个客户机进程,Web服务器是一个服务器进程。对于P2P文件共享,下载文件的对等方被标示为客户机,上载文件的对等方的对等方称为服务器。

    在给定的一对进程之间的通信会话中,发起通信的进程被标示为客户机,在会话开始时等待联系的进程是服务器

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

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

    进程类比于一座房子,而它的套接字可以类比于它的门。当一个进程想向位于另外一台主机上的另一个进程发送报文时,它把报文推出门(socket)。该发送进程假定门到另一侧之间有运输的基础设施,该设施将把报文传送到目的进程的门口。一旦报文抵达目的主机,它通过报文接收进程的门(socket)传递,然后接收进程对报文进行相应的处理。

    由于套接字是在网络上建立网络应用程序的可编程接口,因此也将套接字称为应用程序和网络之间的应用程序编程接口(Application Programming Interface,API)。应用程序开发者可以控制套接字在应用层端的所有东西,但是对该套接字的运输层端几乎没有控制。

    应用程序开发者对运输层的控制仅限于:选择运输层协议 也许能设定及格运输层参数,如最大缓存、最大报文长度等。一旦应用程序开发者选择了一个运输层协议(若可供选择),则应用程序就建立在由该协议提供的运输层服务之上。

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

    2.4  因特网提供的运输服务

    2.5  应用层协议

    

二、Web应用和HTTP协议

三、文件传输协议:FTP

四、因特网中的电子邮件

五、DNS:因特网的目录服务

六、P2P应用

七、TCP套接字编程

八、UDP套接字编程

以上是关于计算机网络-应用层的主要内容,如果未能解决你的问题,请参考以下文章

网络分层和Http协议原理

socket原理讲解

《计算机网络原理》网络应用通信基本原理

云计算--网络原理与应用--20171115

Android网络编程HTTP协议原理

网络原理