计算机网络 - 应用层

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值