计算机网络 - 应用层

news2024/9/28 6:42:02

Application Layer

Network Application 的架构

  1. client-server

    最常见的架构, 比如上淘宝, google drive都是客户端-服务器的架构

  2. P2P

    很多下载软件用的是这个架构, 比如BitTorrent

Web and HTTP

Overview

  1. 是一个超文本传输的协议, 客户端请求, 服务器响应, 发送对象的Web服务器
  2. 使用TCP, 客户端建立TCP链接, port=80, 与服务器交换HTTP报文

HTTP连接

非持久 - 最多一个对象在TCP连接上发送, 下载多个对象, 比如多个图片就需要建立多个TCP链接, HTTP/1.0 使用非持久连接

持久 - 多个对象可以在一个TCP上发送, HTTP/1.1 默认使用持久连接

HTTP报文

Request
请添加图片描述

Response

请添加图片描述

User-Server Interactions: cookies

因为HTTP是无状态的, 所以如果要维护状态需要靠别的支持

cookies就是client请求的时候, server会在client上set cookies, 然后client下次请求的时候会带上这个cookie, 那么server就清楚client的state了

Web 缓存

也叫做proxy server, 就是不需要访问原始服务器, 就满足client的需求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmWgpGMr-1684534394773)(Application%20Layer%20801aa386c0ad4feb8d1e93e1590cbe10/Untitled%202.png)]

  • 降低响应时间
  • reduce traffic, 提升性能

当client请求server的时候, proxy先看看有没有cache, 有的话再跟server确认一下last-modify date, 如果proxy内容跟server内容一致, 则proxy负责把内容发给server. 注意, proxy还是会跟server通讯, 但是这个铜须不涉及context的传输, 比如视频跟图片, 所以不会给server太大压力; 相反, 如果client一开始就向server请求视频跟图片, 这就给server很大压力

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NqtkesI5-1684534394774)(Application%20Layer%20801aa386c0ad4feb8d1e93e1590cbe10/Untitled%203.png)]

HTTP2

Framing

HTTP2 可以把HTTP的message拆分成独立的小片发送, 然后再另一端组装起来

Response Message Prioritization

Response Message 可以assign weight between 1 and 256 到每一个message, server可以根据weight的大小分配发送的先后

Server Pushing

Server可以不用等待client的request直接给client发送数据, 减少latency

Email

3个主要的组成部分

  1. 客户代理: Gmail客户端
  2. 邮件服务器: google的gmail服务器
  3. 简单邮件传输协议: SMTP - 邮件服务器的通讯使用的是SMTP通讯

SMTP

  • 使用TCP通讯, port25
  • SMTP把多个对象包含在一个报文中, HTTP是每个对象封装在各自的响应报文中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PPCCvKPg-1684534394780)(Application%20Layer%20801aa386c0ad4feb8d1e93e1590cbe10/Untitled%204.png)]

  1. 用户sender先把邮件push到sender的邮件服务器, enqueue
  2. sender的邮件服务器dequeue, 把邮件在发到接收方的邮件服务器
  3. 接收方需要通过POP3, IMAP等协议从接收方把邮件pull下来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PnwOcHNc-1684534394787)(Application%20Layer%20801aa386c0ad4feb8d1e93e1590cbe10/Untitled%205.png)]

报文格式

首部行

  • To:
  • From:
  • Subject:

主体

  • 报文

邮件访问协议

POP3: 下载到本地 - 本地管理

IMAP: IMAP服务器将每个报文与一个文件夹联系起来, 允许用户用目录组织保温, IMAP回话中保留用户状态 - 远程管理

DNS

就是把ip地址跟网页域名联系在一起

主要思路

  • 分层, 基于域的命名机制
  • 分布式数据库
  • 在UDP之上, port53
  • 是核心的Internet功能, 但以应用层协议实现

A Distributed, Hierachical Database

Database分为Root DNS servers, Top-level domain (TLD) servers以及Authoritative DNS servers.

Root DNS servers: 有1000台, 分布在13个地区. Root name server provide the IP address of the TLD servers

Top-level domain (TLD) servers: 就是 com, org, net, edu, gov, uk, ca, and jp ect. TLD servers provide the IP addresses for authoritative DNS servers

Authoritative DNS servers: organization负责管理

Local DNS server: local DNS is in local ISP(internet service provider) - close to clients. 这个server会有caching的功能

DNS records

DNS database的格式是Resource Records, 包括了(Name, Value, Type, TTL)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xjWIkQnW-1684534394789)(Application%20Layer%20801aa386c0ad4feb8d1e93e1590cbe10/Untitled%206.png)]

A记录(Type A): “A"在这里代表"Address”。A记录用于将主机名(或者说是域名)映射到对应的IP地址。比如,如果你有一个域名 example.com,你可能有一个A记录把这个域名映射到IP地址例如192.0.2.1。这意味着当用户访问example.com时,他们实际上会被指向192.0.2.1这个IP地址上的服务器。

NS记录(Type NS): “NS"在这里代表"Name Server”。NS记录用于指示该域名由哪些DNS服务器负责解析。这些DNS服务器有权威地知道如何将域名转换成IP地址。比如,对于 example.com 这个域名,其NS记录可能会指向ns1.example.net和ns2.example.net,这就意味着当需要解析example.com时,就会去询问这两个Name Server。

迭代查询

Local Name Server向不同的服务器获得需要的地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXbyJCsW-1684534394790)(Application%20Layer%20801aa386c0ad4feb8d1e93e1590cbe10/Untitled%207.png)]

CDN

背景

视频占据这大量的网络带宽, 需要解决规模性的服务用户. 于是, 需要分布式, 应用层面的基础设施

多媒体流化服务 DASH

服务器: 将视频分为多个块, 每个块独立储存, 编码于不同的码率, 然后提供不同的URL

客户端: 先获取告示文件 (manifest file) 周期性测试带宽, 查询告示文件, 在一个时刻请求一个块, 根据带宽请求不同码率的文件

CDN

通过CDN,全网部署缓存节点,存储服务 内容,就近为用户提供服务,提高用户体验

  • enter deep: 将CDN服务器深入到许多接入网
  • bring home: 部署在少数(10个左右)关键位置,如将服 务器簇安装于POP附近(离若干1stISP POP较近)

总结

总的来说, 应用层的服务是比较多的, 这里介绍了HTTP, STMP, DNS 以及 CDN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/546543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【野火启明_瑞萨RA6M5】按键输入检测

文章目录 一、GPIO输入——按键输入检测二、硬件设计三、软件设计下载验证 一、GPIO输入——按键输入检测 按键检测原理 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生 下图中的带波…

城市内涝的原因是什么?城市内涝监测预警系统有什么作用?

城市内涝是指在城市地区发生的、由于降雨或其他水源无法迅速排出而引起的洪水现象,城市内涝是城市发展过程中面临的重要挑战之一。本文着重为大家介绍城市内涝的原因,以及城市内涝监测预警系统的作用。 一、城市内涝的原因是什么? 1、排水系统不完善&am…

【基础6】存储过程的 创建与调用

目录 什么是存储过程 用户自定义存储过程 练习 什么是存储过程 什么是存储过程 类似于C语言中的函数。用来执行管理任务或应用复杂的业务规则存储过程可以带参数,也可以返回结果存储过程可以包含数据操纵等语句、变量、逻辑控制语句等。(单个select语…

QT窗体绘图QPainter

QPainter INSCODE AI 创作助手: QPainter是Qt中的一个类,用于在窗口、图像或其他用户界面上绘制图形和文本。它提供了一些方便的方法来画线、矩形、圆、多边形和文本 QPainter绘图函数 INSCODE AI 创作助手: QPainter是Qt中一个用于绘图的类&…

MATLAB开发中的常见问题和解决方法:如何解决常见的性能和bug问题

章节一:引言 在MATLAB开发中,经常会遇到一些常见的性能和bug问题。这些问题可能导致程序运行缓慢、结果不准确或者甚至崩溃。本文将介绍一些常见问题,并提供解决方法和案例,帮助开发者更好地应对这些挑战。 章节二:性…

chatgpt赋能Python-python3多行输入

Python3多行输入教程:如何让你的输入更加高效 Python3是一种功能强大、易于学习的编程语言,被广泛应用于科学计算和数据分析领域。但是,对于初学者来说,输入数据可能是一个有些棘手的问题。在本文中,我们将介绍如何使…

chatgpt赋能Python-python3拷贝文件

Python3 拷贝文件方法及注意事项 拷贝文件在日常开发中是一项基本的操作。Python3作为一门既简洁又强大的编程语言,也提供了丰富的文件操作函数。在本篇文章中,我们将介绍如何使用Python3拷贝文件以及需要注意的细节。 为什么要拷贝文件? …

RHCE--openlab搭建网站

--作业要求-- 综合练习:请给openlab搭建web网站 ​ 网站需求: ​ 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! ​ 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站&#x…

积水监测用什么传感器?道路积水监测设备

近年来,由于全球气候变化导致极端天气频发,在暴雨的侵袭下,许多城市都面临路面积水严重的问题,道路积水是道路交通安全和行车舒适度的一大威胁,给司机和行人带来了巨大的安全隐患。 如何解决道路积水问题? 1、强城市排…

ChatGPT又一重磅更新 - iOS官方App发布

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

余压传感器(探测器)最重要的两个功能是什么?

余压传感器(探测器)是什么? 余压传感器(探测器)主要用于测量两个位置之间的压差。 余压传感器(探测器)的作用? 流量测量:在管道中,通过测量两点之间的压差&…

头歌计算机组成原理实验—运算器设计(11)第11关:MIPS运算器设计

第11关:MIPS运算器设计 实验目的 学生理解算术逻辑运算单元(ALU)的基本构成,掌握 Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的32位加法器、 Logisim 中的运算组件构造指…

基于Freertos的ESP-IDF开发——5.使用按键[不带消抖、带消抖、长按短按识别]

基于Freertos的ESP-IDF开发——5.使用按键[不带消抖、带消抖、长按短按识别] 0. 前言1. 确定GPIO引脚2. 触发函数(不带消抖)3. 触发函数(带消抖)4. 长按和短按识别5.其他FreeRtos文章 0. 前言 这一节我们来学习使用按键操作。包括带消抖和不带消抖。 由于之前已经学习过FreeR…

chatgpt赋能Python-python3_run

Python3 Run:学习Python必须掌握的运行方式 如果你在学习Python编程,那么Python3 Run是你必须掌握的运行方式之一。Python3 Run可以让你在本地环境中运行Python代码并查看运行结果。在本文中,我们将介绍Python3 Run的基本概念、使用方法和注…

概论_第4章__协方差Cov(X)的定义和性质___相关系数的定义和性质

前面讨论的方差是 一维随机变量X, 对于二维随机变量, 怎样计算方差呢? 这就引出了 协方差: 讨论X与Y之间相互关系的数字特征。 一 协方差的定义 协方差通俗的理解: 两个随机变量X, Y协作产生的方差。 计算协方差的公式有…

SSM框架学习-Spring事务

1. 数据库中事务与Spring中的事务 数据库事务和Spring中的事务是两个不同的概念,但Spring中的事务是建立在数据库事务之上的。 数据库事务是指一组数据库操作,要么全部成功执行,要么全部回滚(撤销)。这么做是为了保证数…

【Markdown】笔记

设置-通用-开启调试模式 普通文本编辑器编写的轻量级标记语言 标题 # ~ ###### 文本 _斜体_ *斜体* **粗体** ***粗斜体*** 列表 无序 * - 有序 1. 2. 3. Tab控制层级 链接 [链接名](链接地址) <链接地址> 引用 > 嵌套 > >> >>&…

hadoop零碎知识点总结

系列文章目录 ubuntu虚拟机下搭建zookeeper集群&#xff0c;安装jdk压缩包&#xff0c;搭建Hadoop集群与spark集群的搭建 虚拟机VMware里面安装Windows sever 2003版本详细教程_vmware安装win2003 centos7配置静态网络常见问题归纳_centos7网络问题 文章目录 系列文章目录…

chatgpt赋能Python-python3_排序

Python3 排序指南&#xff1a;介绍、说明和实践 Python3是当今最受欢迎的编程语言之一&#xff0c;拥有许多可用于各种任务的库和框架。其中之一是它自带的排序函数&#xff0c;在数据分析和机器学习等领域中非常有用。 在本篇文章中&#xff0c;我们将简要介绍Python3的排序和…

Baumer工业相机堡盟工业相机IO介绍与配置(二)

Baumer工业相机堡盟工业相机IO介绍与配置&#xff08;二&#xff09; Baumer工业相机Baumer工业相机IO的功能Baumer工业相机IO的作用Baumer工业相机IO上点连线方法 Baumer工业相机 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机&#xff0c;可用于各种应用场景&#…