• 计算机网络 2. 应用层


    应用架构application architecture。一般网络应用,有两种结构,客户机/server建筑建筑及同行(P2P)。

    顾客/server架构client-server architecture于。称为server,它为来自客户机的请求提供服务。客户机之间不进行直接通信。server拥有固定的周知的地址,称为IP地址,且总是处于打开状态。常会出现一台server主机跟不上其全部客户机请求的情况。常使用主机群集a cluster of hosts或者称为server场server farm,创建强大的虚拟server。基于客户机server体系结构的应用服务一般是基础设施密集的infrastrucuture intensive。由于要购买,安装和维护server场。

    在P2P体系结构中,对总是打开的基础设施server有最小或者没有依赖。随意时间连接的主机对称为对等方peers,直接通信。

    p2p中,最突出的特性是它的自扩展性self-scalability。


    进行通信的实际是进程process。而不是程序。

    不同端系统的进程通过跨越计算机网络交换报文而相互通信。

    分为客户机进程和server进程。

    在给定的一对进程之间的通信会话中,发起通信的进程为客户机进程,而等待联系的进程为server进程。

    进程通过一个称为套接字socket的软件接口在网络上发送和接收报文。套接字是应用程序与网络之间的应用程序编程接口API。

    能够依据可靠传输数据,吞吐量,定时和安全性相应用程序服务进行分类。

    可靠传输数据:可靠传输数据reliable data transfer,运输层进行可靠的传输数据,当运输层使用这样的服务时,就能够相信该数据无差错的到达接收进程。当一个运输层协议不提供可靠传输数据时。对于容忍丢失的应用loss-tolerant application,如多媒体应用,一定程度的数据丢失是能够接受的。

    吞吐量throughput:具有吞吐量要求的程序称为带宽敏感应用bandwidth-sensitive application。大多多媒体应用都是带宽敏感的。

    而弹性应用elastic appliction可以依据须要充分利用可供使用的吞吐量。

    定时timing:运输层协议也提供定时保证,如同保证吞吐量一样。不同的应用程序对时间限制不同。

    安全性security:运输层协议可以为应用程序提供一种或多种安全性服务。


    因特网或者能够说是TCP/IP网络上的应用使用两个运输层协议:UDP和TCP。

    TCP服务:包含面向连接服务和可靠传输数据服务。当应用层程序调用tcp协议作为它的运输层协议时。该应用程序就获得了这两种服务。

    面向连接服务 connection-oriented service:在报文開始流动前,客户机程序和server程序之间交换运输层控制信息。即握手过程 handshaking。握手过程提示客户机和server做好了传输分组的准备。握手后。在两个进程的套接字sockets之间建立了一个TCP连接TCP connection。

    可靠传输数据服务reliable data transfer service:进行通信的进程,无差错。按顺序交付发送的数据。

    UDP服务是无连接的。没有握手过程。udp不能保证报文可以正确被接收。且没有拥塞控制机制。


    进程寻址addressing processes:须要主机的名称或地址和用来指定目的主机上接收进程的标志。主机是用IP地址来进行标识的。进程由 目的地端口号port number来指定。

    在一个主机上可能同一时候有多个进程都要使用同一个port。如多个浏览器都用80port来浏览网页。可是操作系统规定了一个时间仅仅能有一个进程在使用port和监听port,即当你让一个进程获得焦点时。就是它在使用port,而其它进程无法使用port。


    应用层协议定义了:

    交换的报文类型,如请求报文和响应报文。

    各种报文的syntax语法,如报文中每一个字段及其具体描写叙述。

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

    进程何时以及怎样发送报文,以及对报文进行响应的规则。

    应用层协议是网络应用的一部分。


    Web应用和HTTP协议:

    web的应用层协议为 超文本传输协议HyperText Transfer Protocol HTTP。

    HTTP由两部分程序实现,一个客户机程序。一个server程序。

    Web页面Web page是由对象组成的,对象object就是文件,html文件,图片文件。视频文件等。文件通过url地址寻址。

    web一般包括一个主要的HTML文件和几个引用对象。

    HTTP使用TCP作为运输层协议。HTTP不保存关于客户机的不论什么信息。是一个无状态协议stateless protocol。

    非持久连接non-persistent connection:每一个请求/响应经一个单独的TCP连接发送。

    持久连接persistent connection:全部的请求经由同样的TCP连接发送。HTTP默认使用持久连接。

    对于非持久连接,当一个网页有多个引用时,每一次对引用文件的载入都须要创建一个新的连接来数据传输。往返时间Round-Trip Time RTT,为一个分组从客户机到server再回到客户机的时间。而每一个TCP连接都有三次握手的过程。


    HTTP报文:

    请求报文Response Message:请求报文的第一行叫做请求行require line。其后继的行叫做首部行header line。剩下的行为实体主体entity body。

    请求行有三个字段field:方法字段。URL字段和HTTP版本号。方法字段的取值为GET,POST,HEAD,PUT,DELETE。


    套接字编程。

    待续。


    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    【Lucene4.8教程之五】Luke
    【Tika基础教程之一】Tika基础教程
    【Lucene4.8教程之四】分析
    【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象
    【Lucene4.8教程之三】搜索
    Java路径问题最终解决方案—可定位所有资源的相对路径寻址
    java.util.logging.Logger基础教程
    【Lucene4.8教程之二】索引
    【Lucene4.8教程之一】使用Lucene4.8进行索引及搜索的基本操作
    【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4889337.html
Copyright © 2020-2023  润新知