【计算机网络】第二章、应用层

一、应用层协议原理

  • 研发应用层的核心
    • 写出能够运行在不同端系统的通过网络彼此通信的程序。
  • 没有应用程序在网络核心设备上
    • 网络核心设备并不在应用层上起作用,而仅在较低层起作用。
    • 将应用软件限制在端系统的方法,促进了大量的网络应用程序的迅速发展和部署。

网络应用程序体系结构

  • 应用程序的体系结构明显不同于网络的体系结构。

    • 研发者角度看,网络体系结构是固定的
    • 应用程序体系结构由研发者设计,规定了如何在各种端系统上组织该应用程序。
  • 主流体系结构

    • 客户-服务器体系结构
    • 对等(P2P)体系结构
  • 客户-服务器体系结构(90%

    • 有一个总是打开的主机称为服务器,它服务于许多称为客户的主机的请求。
    • 服务器
      • 保持开启,保持域名不变(IP不变
    • 客户机
      • 可以间断同服务器连接。
      • 可以拥有动态ip
      • 客户机之间不直接通信。
  • P2P体系结构

    • 应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方
    • 由于高度非集中结构,面临安全性、性能和可靠性等挑战。
    • 其实相对于一方为服务器,一方为客户端。

进程通信

  • 程序

    • 实现特定目标而完成的有序行为集合。
  • 进程

    • 程序的执行载体。
    • 初始化通信的进程为客户端进程
    • 等待被连接的进程为服务端进程
    • 两个不同端系统上的进程,通过报文来相互通信。
  • 套接字Sockets

    • 进程通过它的套接字接收消息。
    • 套接字类比于门户
    • 指代进程间通信的逻辑体系,以及暴露给应用程序使用的API
  • 进程寻址

    • Host->IP
    • Process->Port

因特网提供的传输服务

  • TCP服务
    • 可靠传输
    • 流量控制
      • 发送方不会淹没接收方。
      • 发送方进行控制。
    • 拥塞控制
      • 网络拥塞时,抑制发送进程
    • 面向连接
  • UDP服务
    • 不可靠数据传输

上面两者都是明文传输,下面为密文传输。

  • SSLSecure Socket Layer)安全套接层
  • TLSTransport Layer Security)传输层安全

SSLTLS不兼容。

二、Web和HTTP

HTTP概况

  • URLUniform Resource Locator)资源定位符
    • U R L = H o s t + P a t h URL=Host+Path URL=Host+Path
  • HTTPHyper Text Transfer Protocol超文本传输协议
    • stateless无状态
    • 使用TCP建立连接

状态state:历史状态需要被维护

  • C/S模式
    • 客户端负责请求和接收回复并呈现Web对象。
    • 服务端负责(使用HTTP)发送对象以回复请求。
  • HTTP连接
    • 非持久HTTP连接
      • 每个链接只能传输一个对象。
    • 持久HTTP连接
      • 每个链接都能传输多个对象。

非持续连接和持续连接

  • Non-persistent非持续性连接
    • 请求一个object就需要建立一个TCP连接。
    • 下载多个对象需要申请多次连接。
  • RTTRound Trip Time往返时间
    • 从发送一个分组到收到回复的时间。
      H T T P n o n − p e r s i s t e n t = 2 × R T T + F i l e t r a n s m i s s i o n HTTP_{non-persistent}=2\times RTT+File_{transmission} HTTPnonpersistent=2×RTT+Filetransmission
  • Persistent持续性连接
    • 多个对象的请求只需要一次TCP连接。
  • 流水线
    • 不带流水线的持续性连接
      • 客户先收到响应消息,才发出新的请求
      • 每个对象经历一个RTT
    • 带流水线的持续性连接
      • 客户遇到引用对象发送请求消息
      • 所有对象只经历一个RTT

HTTP报文格式

  • CRLF
    • \rCarriage Return
    • \nLine-Feed Character
    • 报文以\r\n结束。
  • 请求方法
方法作用
POST向指定资源提交数据进行处理请求
GETURL中包括请求数据
PUT文件在实体主体中被上载到URL字段指定的路径
DELETE删除URL字段指定的文件
HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
  • 请求报文
GET /path/page.html HTTP/1.1 \r\n
Host: www.xxser.com \r\n
Connection: close \r\n
User-agent: Mozilla/5.0 \r\n
Accept-language: zh-cn \r\n
\r\n
  • 第一行为请求行,之后为首部行
  • \r\n表现为空行
  • User-agent代表用户发送报文的软件。
  • 回复报文格式
    • Status Line
    • Header Lines
    • Data
  • 状态码
    • 2xx正常
    • 3xx重定向
    • 4xx客户端出错
    • 5xx服务器出错
HTTP/1.1 200 OK \r\n
Connection:close \r\n
Date: Sat, 06 Aug 2011 12:00:15 GMT \r\n
Server: Apache/1.3.0 (Unix) \r\n
Last-Modified: Thu, 22 Jun 2011 \r\n 
Content-Length: 6821 \r\n
Content-Type: text/html \r\n
 \r\n
data data data data data ... 

第一行为请求行,中间为首部行,后面为数据部分

用户与服务器的交互:cookie

  • Cookie
    • 由于HTTP无状态,服务器给客户端用于确认身份的,Cookie用来表示状态。
  • 存在位置
    • HTTP响应消息Cookie标题行。
    • 下一条HTTP请求消息Cookie标题行。
    • 本机有个Cookie文件被浏览器管理
    • 服务器后台数据库保存。

Web缓存(代理服务器)

web cache

  • 概念
    • 使用代理服务器接收请求,减轻原服务器的压力
    • 如果Proxy里面没有想要的资源,访问Origin
  • 作用
    • 提高响应速度
    • 减少内部网络与接入链路上的通信量。
    • 能从整体上大大降低因特网上的Web流量。

条件GET方法

  • 作用
    • 确认目标文件的上一次修改时间
    • 确保获取的对象是最新的。
  • 步骤
    • 如果代理服务器本地存在的请求页面过期了(返回中包含Last-modified: date),则向原服务器发起条件GET请求(If-modified-since: date)。
    • 原服务器先查看自己是否在date之后对该页面进行修改,若修改,则返回整个网页;若未修改,则返回304 Not modified

三、因特网中的电子邮件

  • 主要组成部分
    • 用户代理user agents
      • 邮件阅读器
    • 邮件服务器mail servers
      • 存放用户的邮件消息
    • 简单邮件传输协议SMTP
      • 邮件服务器之间的通信协议
        email

简单邮件传输协议SMTP

  • 客户邮件服务器到服务邮件服务器
    • TCP可靠传输
    • 端口号25
    • 直接传送
      smtp
  • 特点
    • 使用持久连接
    • 邮件信息(Header+Body)必须是7-bit ASCII
    • 使用CRLF判断邮件结束

与HTTP的对比

  • SMTP有状态
    • 除了TCP连接之外,在应用层也有握手的过程。
  • Command类似HTTP的命令
    • HELO招手
    • MAIL FROM表示来源
    • RCPT TO表示目的
    • DATA传送数据
    • QUIT断开连接
  • HTTP使用Pull,而SMTP使用Push
  • 都有状态码返回。

邮件报文格式

  • 报文大小必须为7比特制的ASCII码。

M e s s a g e s = H e a d e r + B l a n k   L i n e + B o d y Messages=Header+Blank\ Line+Body Messages=Header+Blank Line+Body

  • 报文以CRLF结尾。

邮件访问协议

  • 作用
    • 接收方通过用户代理使用从其邮件服务器上取回邮件的方式。
  • POP110端口)
    • 下载并且删除
    • 下载并且保持
  • IMAP143端口)
    • 把所有邮件放在服务端。
  • HTTP80端口)
    • 取邮件用PULL,发邮件用PUSH
    • QQ邮箱
    • 谷歌邮箱

不使用SMTP将邮件Push到每个接收端,是因为接收端的IP往往不确定。

POP3协议

  • 两个阶段
    • 身份认证阶段
    • 传输阶段
  • 自身缺陷
    • 用户读取邮件后,服务器不再保存
    • 会话无状态

IMAP

  • 所有邮件消息都保存在服务器
  • 允许用户在服务器的各文件夹中管理邮件消息。
  • IMAP跟踪用户会话的状态信息 :
    • 文件夹和邮件消息IDs与文件夹名字的映射

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

DNS提供的服务

  • DNSDomain Name System
    • 主机名解析为IP地址。
    • 协议基于应用层
    • 端口号为53
  • 根域名(Root Name Server
    • 本地域名服务器遇到解析不了的域名就会连接它。
    • 全球有13个。
  • 顶级域名TLDTop Level Domain
    • 国家或地区级nTLD/nnTLDcccountry code
    • 目前有300多个。
  • 基础设施域arpaAddress and Routing Parameter Area
    • 专门用于Internet基础设施。
  • 通用顶级域gTLD
    • 现已注册1200多个。
  • 权威域名服务器ANSAuthoritative Name Server
    • TLD下一级的二级域名。
  • 本地域名服务器(Local DNS Server
    • 没有严格地属于分层制度
    • 每个ISP拥有一个。

dns

DNS工作机理概述

  • 递归
    • 一层一层地寻找到权威域名服务器
    • 具有层次性

recursive

  • 迭代(常用)
    • 每次Local DNS Server发送询问和接收

iterated

  • 缓存
    • 提高效率
    • TLD Server通常被Local保存,解放Root DNS Server
    • 保持资源的更新

DNS记录和报文

  • RRResource Records)资源记录
    • A(Address)
      • IP和主机名的对应
      • name=>Hostname
      • value=>IP address
    • NS(Name Server)
      • 域名和权威域名服务器的对应
      • name=>Domain
      • value=>ANS hostname
    • CNAME(Canonical)
      • 主机别名服务
        • 别名和真名的对应
      • name=>Alias name
      • value=>Canonical name
    • MX(Mail eXchange)
      • 邮件服务器别名
      • value=>Mailserver name(和name有联系)

R R   f o r m a t : ( n a m e , v a l u e , t y p e , t t l ) RR\ format:(name,value,type,ttl) RR format:(name,value,type,ttl)

  • 报头
    • 标识Identification
      • 16比特
    • Flags标志位
      • 请求还是回复
      • 递归还是迭代
      • 是否支持递归
      • 是否是权威性的回复

protocol

需要掌握大概的报文结构。

  • 插入记录(必考)
#需要插入的内容
dns1.mytech.com 111.111.111.1
dns2.mytech.com 222.222.222.2
#机构插入语句
(mytech.com, dns1.mytech.com, NS)
(dns1.mytech.com, 111.111.111.1, A)
(mytech.com, dns2.mytech.com, NS)
(dns2.mytech.com, 222.222.222.2, A)

五、P2P文件分发(不考)

  • 特点
    • 没有总是打开的服务器。
    • 任意终端系统直接通信。
    • 对等点间歇性连接并更改IP地址。
  • C/S模式
    • 服务端
      • 顺序地传送N个大小为F的文件到网络中。
      • 发送的速率为Us
    • 客户端
      • 在网络中下载完整一份的文件。
      • 下载速率为Di
    • 最短分发时间

D c / s ≥ m a x { N F / u s , F / d m i n } D_{c/s}\geq max\{NF/u_s,F/d_{min}\} Dc/smax{NF/us,F/dmin}

  • P2P模式

    • 服务器

      • 传送一份文件到网络中。
    • 客户端

      • 下载文件的部分并且复制N-1份,分发到网络中。
      • 下发速率为Ui
    • 最短分发时间

D P 2 P ≥ m a x { F / u s , F / d m i n , N F / ( u s + ∑ u i ) } D_{P2P}\geq max\{F/u_s,F/d_{min},NF/(u_s+\sum u_i)\} DP2Pmax{F/us,F/dmin,NF/(us+ui)}

六、视频流和内容分发网(不考)

  • 流媒体特点
    • 端到端时延约束。
    • 端到端时序约束。
    • 有一定兼容能力。
  • 挑战
    • 规模。
    • heterogeneity异构性。
  • 解决方案
    • 分布式、应用层设施。

因特网视频

  • 编码
    • 利用冗余去减少比特以达到压缩的目的。
    • 例:哈夫曼编码。
    • cbrconstant bit rate)固定码率
    • vbrvariable bit rate)变化码率

HTTP流和DASH

  • DASHDynamic,Adaptive Streaming over HTTP
    • 服务端
      • 提供不同码率的切块。
    • 客户端
      • 接收最大承受的码率的切块。
      • 智能地决定何时、如何、何地去接收切块。
    • ABRAdaptive bit rate)自适应码率
      • 广泛用于直播和实时通讯。

七、内容分发网CDN

面临挑战

  • 发送流给成千上万的用户。

CDN内容

cdn

  • CDNContent Distribution Networks
    • 建立一个巨大的单点服务器。
    • Enter Deep
      • CDN服务器推送到接入网中。
      • 离用户更近。
    • Bring Home
      • bring object to cdn home
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值