zoukankan      html  css  js  c++  java
  • 第二章 应用层(一) 应用层概览

    前言

      该章节主要是应用层的笔记,包括HTTP超文本传输协议、FTP文件传输协议、SMTP邮件协议、DNS服务、TCP和UDP套接字。

    应用层协议原理

      这一小节的名字是这么叫的,但实际上是应用层的概览,应用层的东西,首先应当从网络应用程序的体系结构开始。

      网络应用程序的体系结构:一种是客户机/服务器体系结构(client-server architecture),及有一个总是打开的主机称为服务器,它服务于其他称为客户机的主机请求,我们经常玩的网络游戏大部分都是这种结构。另一种是P2P体系结构(P2P architecture),不用总是打开服务器,任意间断连接的主机对——称为对等方,直接相互通信,这些对等方大部分是家庭主机,最具体现P2P结构的应用就是大家耳熟能详的迅雷了。

      那么问题来了,不同的程序对网络有不同的需求。举个例子,迅雷下载肯定是要求越快越好的,而这个快其实说的是吞吐量的大小。而网络游戏我们则希望它不要有卡顿,这个卡顿则是信息不要有延时,也就是有个定时保证。当然啦还有使用网银的时候我们希望信息是安全的之类。下面还是列出一个表格,更直观的看这些对网络的不同要求:

      相关术语 说明 此要求较高的应用
    可靠性 可靠数据传输(reliable data transfer)、容忍丢失的应用(loss-tolerant application) 及保证分组不会损坏,不会丢失 邮件传输、文件传输、远程主机访问
    吞吐量

    敏感应用(bandwidth-sensitive application)、弹性应用(elastic application)

    及单位时间内能快速的传输分组 多媒体应用
    定时   及传输分组到对方接收分组的间隔越短越好 因特网电话、交互式游戏
    安全性   及传输的分组不会被第三方获取,或者获取了也不能解析信息 银行方面的web应用

      程序对运输服务的要求就这样了。然而在网络中还不是直接运输这些数据,而是把这些数据给一个应用程序接口(Application Programming Interface),也就是大家熟知的套接字(socket)。然而根据可靠性要求的不同,所使用的套接字分为两种,TCP套接字和UDP套接字,然后根据安全性要求的不同,我们还得考虑是否给TCP套接字添加SSL代码等等。

      下面给出我们常用应用的应用层协议和运输层协议的概览:

      应用层协议 对应运输层协议
    电子邮件 SMTP[RFC 2821] TCP
    远程终端访问者 Telnet[RFC 854] TCP
    Web HTTP[RFC 2616] TCP
    文件传输 FTP[RFC 959] TCP
    流媒体 HTTP、RTP TCP或者UDP
    因特网电话 SIP、RTP 通常是UDP

      由于应用层部分的东西感觉比较重要,而且实用,还是分几篇来做笔记吧,实用的东西会多记录些,并用相关的软件做下实验。

  • 相关阅读:
    AfxMessageBox详细使用说明
    动态规划: 求一个一维整数数组的最大子序列和
    常见HTTP状态码
    PHP 基础系列(三) 【转】PHP 函数实现原理及性能分析
    empty() isset() isnull() 比较
    isset() 与 array_key_exists() 比较
    PHP基础系列(二) PHP数组相关的函数分类整理
    PHP基础系列(一) PHP字符串相关的函数分类整理
    linux df 命令
    grep 同时满足多个关键字和满足任意关键字
  • 原文地址:https://www.cnblogs.com/WhatsYourProblem/p/4094247.html
Copyright © 2011-2022 走看看