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

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

  • 相关阅读:
    Tomcat的SessionID引起的Session Fixation和Session Hijacking问题
    别把项目成功当目标!——项目经理的误区(1)(转)
    技术,项目经理的命?——项目经理的误区(3)(转)
    项目管理中,最难管的是什么?(转)
    项目经理的超越(三)人际优先,做事上的超越(转)
    大丈夫不可一日无权啊!——项目经理的误区(2)(转)
    舌尖上的职场(二)一起去吃饭吧!(转)
    舌尖上的职场(一)你最近还好吗?(转)
    【项目经理之修炼(10)】《初级篇》人际关系问题也是可以避免的(转)
    gcc与g++区别
  • 原文地址:https://www.cnblogs.com/WhatsYourProblem/p/4094247.html
Copyright © 2011-2022 走看看