计网笔记 02 | 应用层

应用层协议原理

关于网络应用

(1)网络应用:

  • 运行在不同的端系统上
  • 通过网络交流(可向网络发送数据、接收数据,可对数据进行处理)
  • 可快速部署开发
  • 不需要在网络核心设备上运行

(2)网络应用的架构

共三种:
在这里插入图片描述

C/S架构:

  • 一个服务器(或多个服务器共同构成服务器集群),服务的提供者

在这里插入图片描述

  • 多个客户端,服务的使用者

在这里插入图片描述

P2P体系架构:

客户机两两直连,所有客户机同时承担服务器、客户端的功能(身份对等)。

在这里插入图片描述

混合结构(C/S+P2P):

客户机向服务器发送资源请求,若服务器没有该资源,则服务器会询问其它客户机并找到拥有该资源的客户机,使得这台客户机与请求客户机之间进行连接,完成资源的传递。

(3)网络应用所需要的服务类型(不同应用对以下所有服务的需求可能不同):

  • 数据的可靠传输
  • 带宽的自动控制
  • 传输和反馈的实时性
  • 安全性

应用层协议

  • 定义了不同主机上的进程之间通信的规则(此处的进程,专指不同端系统上的进程)
  • 不同主机上进程的通信采用的报文交换的方式
  • 应 用 层 协 议 定 义 内 容 { 交 换 的 报 文 类 型 各 种 报 文 类 型 的 语 法 字 段 的 语 义 进 程 何 时 、 如 何 发 送 报 文 及 对 报 文 进 行 响 应 应用层协议定义内容 \begin{cases} 交换的报文类型\\ 各种报文类型的语法\\ 字段的语义\\ 进程何时、如何发送报文及对报文进行响应 \end{cases}
    协议不同于应用,协议给定的是规则,应用则是运行时对应的实体载体

一个问题,区分网络应用所在的主机 & 区分该应用是该主机上的哪个网络应用(进程)⇒ 套接字(socket)

套接字(“传送门”)

每个网络应用进程都有一个属于自己的套接字 ,该套接字在整个因特网上独一无二

套接字组成:

  • 主机地址:32位 IP 地址(唯一)进行标识,标识该网络应用进程运行在因特网上哪一台主机上
  • 端口地址:16位端口号,标识在该主机上标示该网络应用进程
  • 套接字长度:32+16=48位

进程通过套接字来发送、接收报文。发送进程将报文交给套接字,套接字将报文传输到接收进程的套接字。

在这里插入图片描述

两类传输层服务

运输层将所提供的传输服务整合为两类:TCP & UDP

TCP

Transmission Control Protocol

在这里插入图片描述

UDP

User Datagram Protocol

在这里插入图片描述

TCP & UDP 安全性

在这里插入图片描述

各种协议

http

关于web

不必对web感到神秘,web只是一种网络应用:

  • web属于C/S模式

  • web的构成:
    客户机通过http协议向服务器发起外部请求,服务器可搭载于不同平台上;服务器对客户机进行响应,最终返回基于http的服务。
    整个过程的载体即为浏览器为整个http提供服务。
    在这里插入图片描述

  • web内容的表达:

web的内容通过 HTML协议+HTTP协议 进行解释和表述。我们需要一个唯一的标识符去指代需要的对象所在地址,这样才有可能在服务器中找到对象,故而使用 URL 来定位。
在这里插入图片描述

  • web内容传输:使用http 协议

在这里插入图片描述

关于http协议,具体见下。

http TCP传输服务

  • 客户端启动 TCP 连接 创建套接字 ) 到服务器 , 端口 80
  • 服务器接受来自客户端的 TCP 连接
  • http 报文(应用层协议报文)在浏览器 (http client) 和Web 服务器 (http 之间进行交换
  • 关闭 TCP 连接

http无状态,服务器不会保留任何访问过的请求信息

在这里插入图片描述

http两种连接方式

http1.0 非持久性连接

在这里插入图片描述
在这里插入图片描述

对于非持久性连接:

  • 取对象需要 2 RTTs,一次是TCP连接,一次是对象请求/发送
  • 总时间=2 RTTs+文件传输时间
  • 许多浏览器同时打开多个并行的连接来改善性能

示意图如下:
在这里插入图片描述

http1.1 持久性连接

服务器在发送响应后,不再断开 TCP 连接,而是保持该连接用于后续对象的传送,直至该连接“ 休息 ”了一个较长的时间后,再断开该连接。

  • 优点:减少了对服务器端连接数的需要,从而减少了对服务器端套接字资源的占用,提高了服务器的负载能力
  • 分类:

在这里插入图片描述

http报文类型

请求报文

客户机发送给服务器

在这里插入图片描述
http报文请求的一般格式:

在这里插入图片描述
(1)请求行支持办法

http 1.0:
在这里插入图片描述
在这里插入图片描述

响应报文

服务器发送给客户机

一段典型的http响应报文:

在这里插入图片描述

响应报文的一般格式:

与请求报文的区别在于状态行,URL的位置变成了状态,版本的位置变成了短语

在这里插入图片描述

常见响应状态码和短语:

在这里插入图片描述

Cookie

http协议无状态,但很多情况下又需要“保持状态”,这也正是cookie产生的一个原因

(1)什么是Cookie:

  • 服务器响应请求中的一段数据
  • 浏览器需要保存这段数据,不得轻易删除(以文本的形式保存在客户机上)
  • 此后每次浏览器访问该服务器,都必须带上这段数据
    在这里插入图片描述
    或者说,Cookie是一个唯一标识,能让服务器知道访问的用户身份,从而恢复该用户所保存的一些信息等等。

(2)使用Cookie的目的:

  • 限制用户访问
  • 把内容和用户身份关联起来

(3)Cookie的组成部分:
在这里插入图片描述

(4)Cookie工作流程:

在这里插入图片描述

(4)Cookie用途

在这里插入图片描述

显然,cookie安全性较差,一旦被攻击,将会泄漏大量用户信息,故而有了session:通过cookie识别不同的用户,对应的在session里保存私密的信息以及超过4096字节的文本,session保存在服务器。

SMTP

Simple Mail Transfer Protocol,简单邮件传输协议。SMTP 作为邮件传输的一个主要协议,运行在电子邮件系统中。

电子邮件系统:

(1)构成:

  • 用户代理
  • 邮件服务器
  • SMTP:在传输邮件过程中告诉服务器这是一封邮件,而非可任意显示的对象

在这里插入图片描述

(2)工作流程:

  1. 发送方用户通过用户代理来写作、编辑邮件,形成邮件报文
  2. 发送端的报文通过SMTP传送到邮件服务器,邮件服务器收到报文请求后,将用户邮件发送到接收方的邮件服务器
  3. 接收方的邮件服务器推送邮件(或:接收方的用户代理拉取邮件)给接收方用户(此过程不是SMTP,而是POP3/IMAP,后述讲到)

在这里插入图片描述

SMTP协议:

-

  • SMTP 使用持续连接
  • SMTP 要求报文 (首部 &信体 ) 全部使用 7 bit ASCII 码
  • 某些代码组合不允许出现在报文中 (e.g.,CRLF.CRLF),否则容易被错读或误读。此类数据必须进行编码 通常使用 base 64 或 quoted printable)
  • SMTP 服务器用 CRLF.CRLF 表示邮件报文的结束

SMTP 与 HTTP 对比:

在这里插入图片描述

邮件报文格式(RFC 822):

在这里插入图片描述
注意,邮件报文格式不同于SMTP协议,SMTP协议是对报文格式进行的标准化解释,各方主机通过这个标准的解释才能正确传输邮件

MIME:

Multipurpose Internet Mail Extensions,多用途互联网邮件扩展

MIME试图在不改变SMTP协议和RFC822(邮件格式标准)的基础上,使得邮件可以传送任意二进制文件。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

客户机获取邮件的方法:

在这里插入图片描述

其中,HTTP协议是一种较为偷懒的方式,可直接在浏览器上请求获取对象。

POP3:

客户机将邮件从服务器拉过来

  • 认证阶段(用户名、密码)
  • 认证之后,

在这里插入图片描述
总结:

在这里插入图片描述

IMAP:

达到客户机和邮件服务器同步

在这里插入图片描述

DNS

Domain Name System,域名解析系统,即将域名与其所需对应的实体进行连接。作为一个网络应用来理解比较容易。

将域名(如www.baidu.com)解析为IP地址(如 211.69.4.1,IP地址是标准的能够被所有进程所接受的实体),从而不必记录32位冗长的IP地址,只需使用域名即可访问需要访问的地址。

在这里插入图片描述
DNS服务内容:

在这里插入图片描述

DNS解析过程:

在这里插入图片描述

在这里插入图片描述

发起请求使用递归查询,后续解析为迭代查询

在这里插入图片描述

DNS的实现:

在这里插入图片描述

对于一个DNS请求,首先会到权威DNS服务器上去找,找不到的话去顶级DNS服务器上找,再找不到的话就去根DNS服务器上找。

(1)根域名服务器:

在这里插入图片描述

(2)顶级域服务器、权威域服务器:

在这里插入图片描述

严格的讲,本地 DNS 服务器其并不属于 DNS 层次结构中的一层:

  • 每一个网络服务提供商都会提供一个本地 DNS 服务器,有时我们将其称为默认 DNS 服务器。
  • 当一台主机需要做一个域名查询的时候,查询请求首先被发送到就近的本地域名服务器进行查询(就近,这也可以说明比如当你访问一个(从未访问过的)网站发现访问速度较快时,可能是使用同一个DNS服务器的人之前访问过这个网站,访问信息就近缓存在了本地DNS服务器)

本地域名服务器的行为就像一个代理,它会向域名的层次体系中进行进一步的域名查询

DNS缓存:

在这里插入图片描述

插播nslookup看域名:
在这里插入图片描述

DNS记录的实现:
在这里插入图片描述

在这里插入图片描述

攻击DNS服务器:

(1)DDos攻击:

本地DNS服务器容易受到拒绝服务攻击
在这里插入图片描述

(2)重定向攻击:

在这里插入图片描述

(3)利用 DNS 服务器对目标主机采用 DDoS 攻击——反射攻击

P2P文件共享

一次P2P传输情景:

在这里插入图片描述

P2P结点数量过多,虽易于扩展,但不便管理。

  • C/S模式:文件传输效率受结点间链路和节点数量确定(受节点数量的单个链路所确定?)
  • P2P模式:受整体文件传输速率所确定

故而随着加入节点数量的增多,C/S需要的时间越长,呈线性递增;而P2P,越来越多的节点能够请求资源也能够提供资源,时间没有太明显的变化,此时效率更高

在这里插入图片描述

在这里插入图片描述

P2P文件定位的方法:

  • 集中式目录
  • 洪泛查询
  • 利用不均匀性法

一个典型应用:BT

试图在整个P2P应用构成的网络(应用)中,试图找到所有可能存在我所需资源的点,这个过程使用各种键值、数值表示,最后构成一个正常的分布式哈希表,试图标识所有散列值和对等方的标识

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实际上,是一个环形DHT
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

FTP

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值