【计算机网络自顶向下】如何学好计网-第二章应用层

这篇具有很好参考价值的文章主要介绍了【计算机网络自顶向下】如何学好计网-第二章应用层。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第二章 应用层

应用层协议原理

【计算机网络自顶向下】如何学好计网-第二章应用层

网络应用程序体系结构

  • 客户机/服务器体系结构:至少有一个服务器,一个客户机,其中服务器总是打开的,具有固定的众所周知的IP地址,主机群集常被用于创建强大的虚拟服务器,而客户机向服务器端进行通信,可以间断的同服务器连接,可以拥有动态的IP地址,客户机相互之间不直接通信
  • P2P体系结构:没有总是打开的服务器,任意一对主机直接相互通信,对等方间歇连接并且可以改变IP地址
    • 优点:自扩展性
    • 缺点:难以管理
  • 客户机/服务器和P2P混合的体系结构:文件直接在对等方之间交换,文件搜索通过服务器,中心服务器记录对等方内容,对等方查询中心服务器来决定要求文件位置,两个聊天用户之间是P2P,注册查询时通过服务器,用户上线时要在中心服务器上进行注册,用户与中心服务器联系以找出在线小伙伴,git配合上共享服务器就能实现该种方式

进程通信

  • 进程:运行在端系统中的程序
  • 同一主机上的两个进程通过内部进程通信机制进行通信
  • 不同主机上的进程通过交换报文相互通信
    • 客户进程: 发起通信的进程
    • 服务器进程: 等待联系的进程
  • 寻址通过IP地址和端口号

注意:具有P2P体系结构的应用程序既有客户进程和服务器进程。

【计算机网络自顶向下】如何学好计网-第二章应用层

应用层协议

  • 交换的报文类型,如请求报文和应答报文
  • 报文类型的语法:报文中的各个字段及其详细描述
  • 字段的语义,即包含在字段中的信息的含义
  • 进程何时、如何发送报文及对报文进行响应

因特网传输协议提供的服务

  • TCP服务

    • 面向连接的服务:在客户机程序和服务器程序之间必须建立连接
    • 可靠的传输服务:接收和发送进程间,数据是可靠的
    • 流量控制:发送方不会淹没接收方
    • 拥塞控制:网络出现拥塞时抑制发送进程
    • 没有提供:时延保证,最小带宽保证
  • UDP服务

    • 无连接服务
    • 不可靠数据传输
    • 没有提供:建立连接,可靠性,流量控制,拥塞控制,时延和带宽保证

面向连接是指:必须在建立连接之前确认双方链路可达,并已准备好才开始通信,提供了可靠或者不可靠的服务

无连接指:发送端在开始通信前不去询问接收端是否可达和是否已准备好数据,提供不可靠的服务

应用 应用层协议 下面的传输协议
电子邮件 SMTP [RFC 28c21] TCP
远程终端访问 Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
文件传输 FTP [RFC 959] TCP
流媒体 通常专用(e.g. RealNetworks) TCP or UDP
因特网电话 通常专用(e.g., Skype) 典型用 UDP

  • TCP和UDP
    • 没有加密
    • 网络明文传输,如用户名和口令信息等
  • SSL【应用层】
    • 提供加密的TCP连接
    • 保证数据完整性
    • 端点认证
    • 应用使用SSL库调用TCP服务接口
    • SSL提供套接字API

Web应用和Http协议

  • 网页(Web页,或称文档)由许多对象组成。
  • 对象就是文件,可以是HTML文件, JPEG图像, Java applet, 音频文件…
  • 多数网页由单个基本HTML文件和若干个所引用的对象构成
  • 每个对象被一个URL(Uniform Resource Locator统一资源定位符)寻址
    举例URL:

【计算机网络自顶向下】如何学好计网-第二章应用层

  • HTTP: 超文本传输协议(HyperText Transfer Protocol)

    • Web的应用层协议
    • client/server模式
      • client: 浏览器browser请求, 接收, “解释显示” Web对象
      • server: Web服务器响应请求,发送 Web对象
    • HTTP 1.0: RFC 1945
    • HTTP 1.1: RFC 2616
  • 使用TCP:

    • 客户初始化一个与HTTP服务器80端口的TCP连接 (创建套接字)
    • HTTP服务器接受来自客户的TCP连接请求, 建立连接
    • Browser (HTTP client)和Web服务器 (HTTP server) 交换HTTP消息(应用层协议消息)包括HTTP请求和响应消息
    • 最后结束(或叫关闭)TCP连接
  • HTTP是无状态协议

  • HTTP服务器不维护客户先前的状态信息

非持续连接和持续连接

  • 非持久HTTP连接

    • 每个TCP连接上只传送一个对象,下载多个对象需要建立多个TCP连接
    • HTTP/1.0使用的是非持久HTTP连接
  • 持久HTTP连接

    • 一个TCP连接上可以传送多个对象
    • HTTP/1.1默认使用持久HTTP连接
    • 不带流水的持久HTTP连接:客户必须收到响应才能继续发送请求,也就说多个资源之间不能够并发
    • 带流水的持久HTTP连接:客户可以在收到响应之前发送新的请求,多个请求可以同时发送,只需要一个RTT就能获得所有资源
  • 定义往返时间RTT(Round-Trip Time):
    • 1个小分组从客户主机到服务器再到客户主机所花费的时间
  • 响应时间:
    • 1个RTT用于建立TCP连接
    • 1个RTT用于HTTP请求/响应消息的交互
    • html文件传输时间
  • total = 2RTT+transmit time
image-20230613102129398

HTTP/2

  • 关键目标:减少多对象HTTP请求的延迟
    • HTTP1.1:在单个TCP连接上引入了多个流水线GET
    • 服务器按顺序响应GET请求(FCFS: first-come-first-served scheduling)
    • 对于FCFS,小对象可能必须在大对象后面等待传输( head-of-line (HOL) blocking, 线头阻塞HOL)
    • 丢失恢复(重新传输丢失的TCP段)对对象传输时间的影响
    • HTTP/2:[RFC 7540,2015]增加了服务器向客户端发送对象的灵活性
    • 方法、状态代码、大多数头字段与HTTP1.1相比没有变化
    • 基于客户端指定的对象优先级的请求对象的传输顺序(不一定是FCFS)
    • 将未请求的对象推送到客户端
    • 将对象划分为框架,安排框架以减少HOL阻塞

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

  • 普通TCP连接没有安全性
  • HTTP/3:通过UDP增加了安全性、每个对象的错误和拥塞控制(更多的流水线操作)
  • 关于传输层支持HTTP/3的更多信息: QUIC协议(Quick UDP Internet Connections)

HTTP报文格式

请求报文格式

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

请求方法类型

  • GET
  • POST
  • HEAD
    • 服务器收到请求时,用HTTP报文进行响应,但不返回请求对象
  • HTTP1.1
    • PUT
      • 文件在实体主体中被上载到URL字段指定的路径
    • DELETE
      • 删除URL字段指定的文件

响应报文格式

【计算机网络自顶向下】如何学好计网-第二章应用层

HTTP 响应的状态码

位于服务器响应客户的响应消息的第一行
几个常见的样本状态码:

  • 200:请求成功,所请求信息在响应消息中返回
  • 301:所请求的对象已永久迁移,新的URL在本响应信息的头部指出
  • 400:该请求不能被服务器解读
  • 404:服务器不存在所请求文档

Cookies

目的:提高用户和服务的交互性

  • cookie头部行在HTTP请求消息中
  • cookie头部行在HTTP响应消息中
  • cookie文件保存在用户主机中并被用户浏览器管理
  • cookie信息也保存在Web站点的后端数据库中

cookies可以跟踪用户:例如虚拟购物车,推荐广告,身份认证,用户会话状态

Web缓存

  • 目标: 代表起始服务器满足HTTP请求

  • 用户配置浏览器: Web 访问经由缓存

  • 所有HTTP请求指向缓存

    • 对象在缓存中:缓存器返回对象
    • 否则缓存器向起始服务器发出请求,接收对象后转发给客户机
  • 减少对客户机请求的响应时间

  • 减少内部网络与接入链路上的通信量

  • 能从整体上大大降低因特网的Web流量

条件GET方法:

  • 用于判断缓存是否为最新的版本,在请求中包含if-modified-since:根据响应报文的内容判断缓存是否为最新的
  • 如果是最新的,响应报文中不会含有请求的对象,会包含:HTTP/1.0 304Not Modified表示缓存是最新版本
  • 如果修改过,则会返回正常请求的对象

文件传输协议:FTP

FTP:传输文件到远程主机/从远程主机下载文件,默认端口号21

FTP的工作流程:

  • 客户首先发起建立一个与服务器21端口之间的TCP连接(控制连接)
  • 客户在控制连接上进行身份认证
  • 客户在控制连接上发送命令浏览远程主机目录
  • 当服务器接收到一个文件传输命令时,他使用端口20创建一个与客户的TCP数据连接
  • 传输一个文件后,服务器结束这个连接,因为FTP是带外发送控制信息,也就是说如果要请求其他的文件会建立新的TCP连接,因为FTP传输的单位是文件,所以传输多个文件时会创建多个TCP连接这是低效的,推荐打包后传送

【计算机网络自顶向下】如何学好计网-第二章应用层

FTP数据连接的建立的方式:

  • 主动模式客户端指定地址和端口):
    • 客户端通过发送PORT命令来指定IP地址和端口号
    • 服务器根据PORT命令的端口号和地址来建立连接
  • 被动模式服务器指定地址和端口):
    • 客户端发送PASV命令
    • 服务器返回监听的地址和端口号
    • 客户端发起数据连接

SMTP

电子邮件的三大组成

  • 用户代理:运行在客户端的软件或者Web网页,允许用户对邮件进行相关操作(发送,转发等)
  • 邮件服务器:存放用户邮件的服务器,邮件之间的发送通过邮件服务器通信来完成
  • 邮件协议:邮件的发送协议,邮件的收取协议,采用标准的7位ASCII码

SMTP

  • 用来交换邮件消息的协议
  • 客户使用TCP来可靠传输邮件消息到服务器端口号25
  • 直接传送: 发送服务器到接收服务器
  • 传输的3个阶段
    • 握手 (问候)
    • 邮件消息的传输
    • 结束
  • 命令/应答的交互
    • 命令: ASCII文本格式
    • 应答: 状态码及其短语
  • 邮件消息必须是7-bit ASCII

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

SMTP: 总结

  • SMTP使用持久连接
  • SMTP 要求邮件消息(header & body)必须是7-bit ASCII
  • SMTP服务器使用CRLF.CRLF 来判断邮件消息的结束

与HTTP的比较:

  • HTTP: 拉协议
  • SMTP: 推协议
  • 都有ASCII 命令/应答交互, 状态码
  • HTTP: 每个对象封装在它各自的HTTP响应消息中发送
  • SMTP: 一个邮件内各个对象置于同一个邮件消息的多目部分发送

邮件访问协议

  • SMTP: 递送/存储邮件消息到接收者邮件服务器
  • 邮件访问协议: 从服务器获取邮件消息
    • POP: Post Office Protocol 邮局协议[RFC 1939]110端口号
      • 身份认证 (代理 <–>服务器) 并 下载邮件消息
      • 包含三个阶段:
      • 授权,事务处理,更新,POP是没有状态的,当断开连接之后,需要重新登录
    • IMAP: Internet Message Access Protocol [RFC 3501] 143端口
      • 更多功能特征 (更复杂!)
      • 允许用户像对待本地邮箱那样操纵远程邮箱的邮件
    • HTTP: 也可以通过HTTP来进行邮件的接收

POP3协议

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

DNS

DNS: 存储资源记录(RR,Resource Records)的分布式数据库

DNS的出现是为了方便人们记忆网站的地址,IP地址难以记忆,可以转换为其他的字符串例如转换为uestc.edu.cn

DNS主要提供的功能:

  • 主机名到IP地址的转换
  • 主机别名
    • 一个主机可以有一个规范主机名和多个主机别名
  • 邮件服务器别名
  • 负载分配
    • DNS实现冗余服务器:一个IP地址集合可以对应同一个规范主机名

DNS的分层架构【Domain Name System】域名系统:

  • 分布式数据库:一个由分层DNS服务器实现的分布式数据库
  • 应用层协议:DNS服务器实现域名转换 (域名/地址转换)

【计算机网络自顶向下】如何学好计网-第二章应用层

客户机怎样决定主机名www.amazon.com的IP地址?

  1. 客户机查询根服务器得到com DNS服务器

  2. 客户机查询com DNS服务器得到amazon.comDNS服务

  3. 客户机查询amazon.comDNS服务器得到www.amazon.com的IP地址

根名字服务器负责记录顶级域名服务器的信息

顶级域服务器(top-level domain servers):负责顶级域名 com, org, net, edu, etc, 和所有国家的顶级域名 uk, fr, ca, jp.

  • Network solutions 公司维护com顶级域的TLD服务器
  • Educause 公司维护edu顶级域的 TLD服务器

权威DNS服务器(authoritative DNS servers):

在因特网上具有公共可访问主机(如Web服务器和邮件服务器)的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。组织机构的权威DNS服务器负责保存这些DNS记录。

  • 多数大学和公司维护它们的基本权威DNS服务器

本地DNS服务器:Local DNS Name Server

  • 严格来说不属于层次架构
  • 每个ISP都有一个本地DNS服务器,也叫默认服务器
  • 当主机发出DNS请求时,该请求被发往本地DNS服务器,起着代理的作用,转发请求到层次结构中

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

DNS存储资源记录(RR:Resource Records)

RR格式(name,value,type,ttl)

当type=A(Address)时,name表示主机名,value表示ip地址

当type=CNAME(canonical)时,name表示主机别名,value表示规范主机名

当type=NS(name server)时,name表示域名,value表示权威名字服务器的主机名

当type=MX(Mail Exchange)时,name表示邮件服务器的主机别名,value表示邮件服务器的真实规范主机名


DNS协议 : 查询报文与应答报文 , 但具有同样的报文格式

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

P2P技术

  • 没有总是在线的服务器
  • 任意端系统之间直接通信
  • 对等方之间可以间断连接并可以改变IP地址

一般采用集中式目录架构:例如git+github

【计算机网络自顶向下】如何学好计网-第二章应用层

存在问题

  • 单点故障
  • 性能瓶颈
  • 侵犯版权

BitTorrent是一种用于文件分发的流行P2P协议。
参与一个特定文件分发的所有对等方的集合被称为一个洪流(torrent)。
一个洪流中的对等方彼此下载等长度的文件块(chunk),典型块长度为256KB。

【计算机网络自顶向下】如何学好计网-第二章应用层

内容分发网络(CDN)

  • 将多份拷贝存储在地理上分散的不同站点来提供服务(CDN)
  • 深入: 将CDN服务器部署在众多的接入网络中
    • 靠近用户
    • Akamai首创, 使用了1700多个位置
  • 邀请做客: 在少量(例如10个)靠近接入网的关键位置(例如IXP)建造大集群,邀请到ISP做客
    • Limelight等使用

【计算机网络自顶向下】如何学好计网-第二章应用层

【计算机网络自顶向下】如何学好计网-第二章应用层

网络应用程序体系结构
Web应用和HTTP协议
基本术语(网页、URL等)
HTTP的特性及其区别(无状态、非持久和持久等)
请求和响应报文
COOKIE技术
Web缓存

文件传输协议FTP :两种连接*

  • 数据连接、控制连接

电子邮件:组成及其使用的协议

  • SMTP
  • POP
  • IMPA
  • HTTP

DNS的功能和实现
P2P文件共享原理和实现技术*
CDN
构造简单的web服务器*

第二章单元检测

【计算机网络自顶向下】如何学好计网-第二章应用层文章来源地址https://www.toymoban.com/news/detail-486985.html

到了这里,关于【计算机网络自顶向下】如何学好计网-第二章应用层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《计算机网络-自顶向下》04. 网络层-数据平面

    从表面上看网络层的作用:将分组从一台发送主机移动到另一台接收主机。 完成该功能需要两个重要的网络层功能: 转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。 路由选择:当分组从发送方流向接收方时,网络层必须决

    2023年04月15日
    浏览(46)
  • 《计算机网络——自顶向下方法》精炼——3.7(2)

    读书有三到:谓心到,眼到,口到。——明·朱熹 为了简化对一条TCP连接吞吐量的描述,我们首先忽略连接过程中处于慢启动状态的时间,因为这一状态时间极短,而且相比于其他状态的线性增长,该状态的指数式增长会将计算复杂化;而对于快速恢复状态,这一状态仅在网

    2024年02月07日
    浏览(46)
  • 计算机网络自顶向下WireShark实验:TCP

    计算机网络 WireShark 实验记录可供参考 1:What is the IP address and TCP port number used by the client computer (source) that is transferring the file to gaia.cs.umass.edu? To answer this question, it’s probably easiest to select an HTTP message and explore the details of the TCP packet used to carry this HTTP message, using the “details of

    2023年04月15日
    浏览(63)
  • 《计算机网络:自顶向下方法》第五章--网络层:控制平面

    控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理 传统上,控制平面功能与数据平面的转发功能在一起实现,在路由器中作为统一的整体 在网络层:数据平面中有转发

    2024年02月12日
    浏览(53)
  • 计算机网络——自顶向下方法(第三章学习记录)

    本章学习运输层 运输层位于应用层和网络层之间,是分层的网络体系的重要部分,该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。 运输层协议为运行在不同主机上的应用进程之间提供了 逻辑通信 (logic communication)功能。从应用程序的角度看,通

    2024年02月11日
    浏览(42)
  • 计算机网络——自顶向下方法(第四章学习记录)

    本章学习网络层:数据平面 前一章中我们学习了运输层依赖于网络层的主机到主机的通信服务,提供了各种形式的进程到进程的通信。在本章中我们将看到与运输层和应用层不同的是,在网络中的每一台主机和路由器中都有一个网络层部分。 网络层能够被分解为两个相互作

    2024年02月11日
    浏览(57)
  • 计算机网络——自顶向下方法(第一章学习记录)

    可以从两个不同的方面来理解Internet。(它的构成。它的服务) 1.因特网的主要构成          处在因特网的边缘部分就是在因特网上的所有主机,这些主机又称为 端系统 (end system),端系统通过 因特网服务提供商 (Internet Service Provider,ISP)接入因特网,端系统通过 通信

    2024年02月10日
    浏览(45)
  • 计算机网络——自顶向下方法(第二章学习记录)

    本章学习应用层 网络应用是计算机网络存在的理由。 现代网络应用程序有两种主流体系结构:客户—服务器体系结构和对等(P2P)体系结构 客户—服务器体系结构 (client-server ),在这个结构中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求

    2024年02月09日
    浏览(46)
  • 《计算机网络--自顶向下方法》第四章--网络层:数据平面

    每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报 ;控制平面的主要作用是协调这些本地路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径进行端到端传送 路由器具有截断的协议栈,即没有网络层之上的部分,因为 路由器不运行应

    2024年02月12日
    浏览(45)
  • 《计算机网络——自顶向下方法》精炼——1.4到1.7

    三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。 计算机网络在这一学科中的重要性毋庸置疑,而黑皮书又是这一学科的教科书级经典,因此本书是计算机从业者的必读书之一。笔者用一个专栏来精炼这本书的知识,帮助想了解这方面知识的同学快速打

    2023年04月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包