CSC8021_computer network_The Application Layer

在这里插入图片描述

The Role of the Application layer

The Application layer is the interface between the network and its users
› It contains network services (e.g. DNS)
› It contains user applications (e.g. email, web browsing)

Domain Name System (DNS)

› The Domain Name System (DNS) is the phonebook of the Internet. Humans access information online through domain names, like nytimes.com or espn.com.
› Web browsers interact through Internet Protocol(IP) addresses. DNS translates domain names to IP addresses so browsers can load Internet resources.
›域名系统(DNS)是互联网的电话簿。人们通过域名访问在线信息,如nytimes.com或espn.com。
› Web浏览器通过互联网协议(IP)地址进行交互。DNS将域名转换为IP地址,以便浏览器可以加载Internet资源。

在这里插入图片描述

DNS names

› DNS name space is hierarchical staring from the root (often omitted)
› Name space is divided into zones. At least one DNS name server exists in each zone
› A DNS name server knows about its children (all hosts in its zone) and its parent (higher level DNS server).
› Top level domains are in the highest hieratical level after root
› DNS名称空间是从根开始的层次结构(通常省略)
›命名空间被划分为多个区域。每个区域中至少存在一个DNS名称服务器
DNS名称服务器知道它的子服务器(它所在区域中的所有主机)和它的父服务器(更高级别的DNS服务器)。
›顶级域名位于根之后的最高层次
在这里插入图片描述在这里插入图片描述› Finding the IP address for a given hostname is called resolution and is done with the DNS protocol
› E.g. Host A (flits.cs.vu.nl) wants the IP address of Host B(robot.cs.washington.edu)
›查找给定主机名的IP地址称为解析,通过DNS协议完成
›例如,主机A(flits.cs.vu.nl)想要主机B(robot.cs.washington.edu)的IP地址
在这里插入图片描述1. Originating host contacts its local DNS name server
2. Local name server asks the root name server
3. Root returns the name server for a lower zone
4. Continue down zones until name server completes resolution and returns the final answer
› The query can be cache for future uses (including partial answers)
1.发起主机联系其本地DNS名称服务器
2.本地名称服务器询问根名称服务器
3. Root返回较低区域的名称服务器
4.继续向下分区,直到名称服务器完成解析并返回最终答案
›查询可以缓存以备将来使用(包括部分答案)

Email (Electronic mail)

› User agents: allow people to read and send email (e.g. MS Outlook).
› Message transfer agents: move the messages from the source to the destination (e.g. MS Exchange).
在这里插入图片描述› Mail is transferred from source host to destination mail server by a message transfer agent using SMTP (Simple Mail Transfer Protocol).
› Mail is transferred from destination mail server to destination host by a user agent using POP3 (Post Office Protocol,version3) or IMAP (Internet Message Access Protocol)
›邮件由邮件传输代理使用SMTP(简单邮件传输协议)从源主机传输到目标邮件服务器。
›邮件由用户代理使用POP3(邮局协议,版本3)或IMAP(Internet消息访问协议)从目标邮件服务器传输到目标主机

Message format (text)

› Message sent by the user agent must be placed in a standard form (RFC 822) to be handled by the message transfer agent
›用户代理发送的消息必须以标准格式(RFC 822)放置,以便由消息传输代理处理
在这里插入图片描述

SMTP (a “push” protocol)

Example of the transfer of a message from source host elinor@abcd.com ©
to destination mailbox carolyn@xyz.com (S):

  1. Source contacts destination
  2. Mailbox says it is ready
  3. Source identifies itself
  4. Mailbox accepts
  5. Source identifies recipient
  6. Mailbox recognizes recipient
  7. Negotiate any parameters
  8. Source sends email
  9. Mailbox accepts email
  10. Source terminates conversation
    在这里插入图片描述

POP3 ( a “pull” protocol)

Example of retrieving messages from destination mailbox (S) to destination
host ©:

  1. Destination identifies user
  2. Mailbox recognizes user
  3. Destination supplies password
  4. Mailbox accepts password
  5. Destination requests message list
  6. Mailbox sends message list
  7. Destination requests message 1
  8. Mailbox sends message 1
  9. Destination deletes message 1 from ISP mailbox (optional)

  10. Destination terminates conversation
    在这里插入图片描述

World Wide Web

› The Web is an architectural framework for accessing linked content (Web pages) spread out over millions of machines all over the Internet
› Most pages are written in HTML. They are viewed with a program called a browser (e.g. MS Explorer or Chrome)
› Page may contain links to other pages called hypertext
› A piece of text, icon, image associated with another page is called a hyperlink
› HTTP (HyperText Transfer Protocol) is used to fetch pages. It is a simple text-based protocol that runs over TCP
Web是一个架构框架,用于访问分布在Internet上数百万台机器上的链接内容(Web页面)。
大多数页面都是用HTML编写的。它们是通过一个名为浏览器的程序(例如MS Explorer或Chrome)查看的
›页面可能包含指向其他页面的链接,称为超文本
›与另一个页面相关联的文本、图标、图像称为超链接
› HTTP(超文本传输协议)用于获取页面。它是一个简单的基于文本的协议,在TCP上运行

› Pages are named with URLs (Uniform Resource Locators) (e.g. http://www.cs.washington.edu/index.html)
› This URL consists of three parts:
• Part before 😕/ specifies application/protocol (e.g. http)
• Part after 😕/ specifies the DNS name of the target host (e.g.www.cs.washington.edu)
• and the path (file) name (e.g. index.html)
›页面以URL(统一资源定位器)命名(例如http://www.cs.washington.edu/index.html)
›此URL由三部分组成:
· Part before://指定应用程序/协议(例如http)
· Part after://指定目标主机的DNS名称(e.g.www.cs.washington.edu)
·路径(文件)名称(例如index.html)
在这里插入图片描述› What happens when you click a link?
在这里插入图片描述

Client (browser)

› Browser understands html (hypertext mark-up language)
› Steps a client (browser) takes to follow a hyper link:

  1. Determine the URL (and protocol used).
  2. Ask DNS for the IP address of the server
  3. Make a TCP connection to server
  4. Send an HTTP request for the page /index.html, server sends the page as an HTTP response,
  5. Fetch other URLs as needed to display the page.
  6. Close idle TCP connections
    ›浏览器理解html(超文本标记语言)
    ›客户端(浏览器)跟踪超链接的步骤:
    1.确定URL(和使用的协议)。
    2.向DNS请求服务器的IP地址
    3.建立到服务器的TCP连接
    4.发送对页面/index. html的HTTP请求,服务器将页面作为HTTP响应发送,
    5.根据需要获取其他URL以显示页面。
    6.关闭空闲的TCP连接

› Browser uses plug-ins or helper applications to handle specific file types referenced by html web pages e.g. audio, video
›浏览器使用插件或助手应用程序来处理HTML网页引用的特定文件类型,例如音频,视频
在这里插入图片描述

Server

› Main steps a server takes to serve pages (Modern Web servers have more features):

  1. Accept TCP connection from a client (browser)
  2. Get the path to the page, which is the name of the file requested
  3. Get the resource (e.g. file from disk)
  4. Send contents of the resource to the client
  5. Release the TCP connection
    › Web servers can use caching, multiple threads, and a front end to scale performance
    ›服务器提供页面服务的主要步骤(现代Web服务器具有更多功能):
    1.接受来自客户端(浏览器)的TCP连接
    2.获取页面的路径,即所请求文件的名称
    3.获取资源(例如从磁盘获取文件)
    4.将资源的内容发送到客户端
    5.释放TCP连接
    › Web服务器可以使用缓存、多线程和前端来扩展性能
    在这里插入图片描述

HTTP protocol

› HTTP has several request methods
在这里插入图片描述› And reply (Response) codes
在这里插入图片描述

HTTP message header

在这里插入图片描述

Cookies

Used to store state information so a returning user can resume a session
› First-party cookies are directly stored by the website you are on (e.g. login IDs,passwords, credit card numbers)
› Third-party cookies are transmitted to websites other than the one you are on(e.g. tracking Internet usage for marketing purposes)
用于存储状态信息,以便返回的用户可以继续会话
›第一方Cookie直接存储在您访问的网站上(例如登录ID、密码、信用卡号)
›第三方Cookie传输到您所在网站以外的网站(例如,出于营销目的跟踪互联网使用情况)
在这里插入图片描述

Static web pages

› Static Web pages are simply files. Have the same contents for each viewing
› Can be visually rich and interactive nonetheless (e.g. HTML that mixes text and images, forms that gather user input)
› Html pages describe both content and formatting. Makes it difficult to achieve consistent look and feel across a large website (CSS introduced style sheets to the Web with HTML 4.0)
静态网页只是文件。每次观看的内容相同
›可以是视觉丰富和交互式的(例如,混合文本和图像的HTML,收集用户输入的表单)
HTML页面描述内容和格式。很难在一个大型网站上实现一致的外观和感觉(CSS通过HTML 4.0将样式表引入Web)
在这里插入图片描述

Dynamic web pages

› Dynamic pages are generated dynamically by programs running at the server (with a database) and the client
› E.g. PHP at server, JavaScript at client
› Pages vary each time like using an application
动态页面由运行在服务器(带有数据库)和客户端的程序动态生成
›例如服务器端的PHP,客户端的JavaScript
›页面每次都不同,就像使用应用程序一样
在这里插入图片描述

Caching

› Copies of frequently used web pages stored on client, local proxy host or ISP proxy host. Caching improves performance but content could be old (big issue with dynamic pages)
› How to determine if a local copy can be re-used or not?
• Locally determine copy is still valid (e.g. “expires” header)
• Revalidate copy with remote server (e.g. “last-modified” header)
›存储在客户端、本地代理主机或ISP代理主机上的常用网页副本。缓存提高了性能,但内容可能是旧的(动态页面的大问题)
›如何确定本地副本是否可以重复使用?
·本地确定副本仍然有效(例如,“expires”报头)
·使用远程服务器重新验证副本(例如,“last-modified”报头)
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

51单片机_智能家居终端

实物演示效果: https://www.bilibili.com/video/BV1bh4y1A7ZW/?vd_source6ff7cd03af95cd504b60511ef9373a1d 51单片机是否适合做多功能智能家居控制系统?51单片机的芯片是否具有与WiFi通信的能力?如果有的话,具体有哪些芯片啊&a…

安泰高压放大器设计的意义及其应用价值

高压放大器的设计是电子工程领域中的重要课题。其意义在于提供强大的放大能力,将高电压信号放大到所需的输出水平。高压放大器在多个领域具有广泛应用,包括科学研究、医疗设备、工业驱动和能量传输等。下面安泰电子将带来高压放大器设计的意义和其所带来…

豆瓣酱生产加工污水处理需要哪些工艺设备

酱生产加工工程中,污水处理是一个至关重要的环节。豆瓣酱作为一种传统的食品调料,由于其酱豆和辅料的混合,往往会产生大量的污水。为了实现环境友好型生产,保护我们的大自然,豆瓣酱生产厂家需要采用一些科学先进的工艺…

SpringBoot 2.x 正式停更了。Java 8 由 Solon 接收!

最近有好多个新闻说:SpringBoot 2.x 正式停更了,Java 8 怎么办?当然用 Solon 喽! Solon,同时支持 jdk8, jdk11, jdk17, jdk21。也支持 graalvm native image。既支持 java8,也支持 java21 的: …

基于springboot+vue的网上订餐系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现Mono12和Mono16位深度的图像保存(C#)

Baumer工业相机堡盟工业相机如何联合BGAPI SDK和OpenCVSharp实现Mono12和Mono16位深度的图像保存(C#) Baumer工业相机Baumer工业相机保存位深度12/16位图像的技术背景代码案例分享1:引用合适的类文件2:NEOAPI SDK联合OpenCV进行图…

centos7 arm服务器编译升级安装动态库libstdc++.so.6,解决GLIBC和CXXABI版本低的问题

前言 由于centos7内置的libstdc.so.6版本太低,导致安装第三方包的时候,会报“CXXABI_1.3.8”不存在等问题。 自带的打印如下: strings /usr/lib64/libstdc.so.6 | grep GLIBC strings /usr/lib64/libstdc.so.6 | grep CXXABI 如图 升级 注…

数据结构之串

数据结构之串 1、串的定义及基本运算2、串的存储结构3、串的模式匹配 数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发,分析和研究计算机加工的数据的特性,以便…

16bit半精度浮点加乘法(用于结果验证)-图形测试小程序(python)

测试: 代码如下: import tkinter as tk import struct from tkinter import Entry, Button, Labeldef float_to_binary_16(value):# 将浮点数转换为16位二进制表示binary_representation struct.pack(!e, value)binary_string .join(f{byte:08b} for…

Ubuntu20.4 Mono C# gtk 编程习练笔记(二)

界面设计习练后,下面写一些程序设计心得。 程序结构 先看一下程序总体结构,先在program.cs中找到main入口,在命名空间下是MainClass类,Main函数进入后首先建立应用程序环境 Application.Init,然后对MainWindow进行实…

css实现动态水波纹效果

效果如下: 外层容器 (shop_wrap): 设置外边距 (padding) 提供一些间距和边距 圆形容器 (TheCircle): 使用相对定位 (position: relative),宽度和高度均为 180px,形成一个圆形按钮圆角半径 (border-radius) 设置为 50%&…

【性能调优】local模式下flink处理离线任务能力分析

文章目录 一. flink的内存管理1.Jobmanager的内存模型2.TaskManager的内存模型2.1. 模型说明2.2. 通讯、数据传输方面2.3. 框架、任务堆外内存2.4. 托管内存 3.任务分析 二. 单个节点的带宽瓶颈1. 带宽相关理论2. 使用speedtest-cli 测试带宽3. 任务分析3. 其他工具使用介绍 本…

生物识别规划人脸识别芯片方案的概述和特点

方案概述 人脸识别方案采用高性能AI芯片,支持RGB和IR摄像头, 支持LCD显示屏。 方案特点 • 普通RGB摄像头和IR摄像头同时参与3D成像RGB摄像头 支持屏幕回显 • 双目摄像头得到特征点视差计算人脸相 对3D深度信息, 同时利用可见光和红外 光谱信…

达梦数据库入门语法:从基础到进阶的指南

目录 博客前言: 达梦数据库语法介绍 一.创建表空间 1.图形化创建 2.语法创建 ​编辑​编辑 3.修改表空间参数 图形化修改 ​编辑​编辑 语法修改 4.设置加密算法、密码 二.创建用户 1.图形化 2.sql执行 ​编辑 3.授予权限 授予用户 DBA 权限 授予用户…

运算符和表达式

表达式 表达式是由运算符、运算量和标点符号组成的有效序列,其目的是用来说明一个计算过程,表达式可以独立成句,一般形式为: 表达式; 运算符 运算符可以按照功能分为:算术运算符、赋值运算符、关系运算…

【 文本到上下文 #4】NLP 与 ML

一、说明 欢迎回到我们的 NLP 博客系列!当我们进入第四部分时,焦点转移到机器学习 (ML) 和自然语言处理 (NLP) 之间的动态相互作用上。在本章中,我们将深入探讨 ML 和 NLP 的迷人协同作用&#…

PLSQL 把多个字段转为json格式

PLSQL 把多个字段转为json格式 sql Select cc.bm, cc.xm, json_arrayagg(cc.hb) jgFrom (Select aa.bm, aa.xm, json_object(aa.ksbh, aa.wjmc) hbFrom (Select 001 bm, 老六 xm, 0001 ksbh, 文具盒 wjmcFrom dual tUnion AllSelect 001 bm, 老六 xm, 0002 ksbh, 毛笔 wjmcFr…

LabVIEW精确测量产品中按键力和行程

项目背景 传统的按键测试方法涉及手工操作,导致不一致和效率低下。在汽车行业中,带有实体按键的控制面板非常常见,确保一致的按键质量至关重要。制造商经常在这些组件的大规模、准确测试中遇到困难。显然,需要一个更自动化、精确…

Modbus协议学习第三篇之协议通信规则

导语 本篇博客将深入介绍Modbus协议的一些内容,主要包括通讯方式和通讯模型的介绍 Modbus通讯方式 Modbus协议是单主机、多从机的通信协议,即同一时间,总线上只能有一个主设备,但可以有一个或者多个从设备(最多好像是2…

基于springboot+vue的校园管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…