【计算机网络】——应用层

2023-09-21 13:32:21

// 图片取自王道 仅做交流学习

一、基本概念

应用层概述

协议是  网络层次模型 中多台主机之间 同层之间进行通信的规则。是一个水平概念

垂直空间上,向下屏蔽下层细节,向上提供服务接入,多台主机之间同层之间形成一条逻辑信道。

应用层的功能:                                                                应用层的重要协议:
文件传输、访问和管理                                                   FTP
电子邮件                                                                        SMTP、POP3
虚拟终端                                                                        HTTP
查询服务和远程作业登录                                               DNS

1、网络应用模型

C/S模型 (客户端/服务器模型)

服务器:提供计算服务的设备。(被动)
1.永久提供服务
2.永久性访问地址/域名

3、不需要知道客户机地址


客户机: 请求计算服务的主机。(主动)
1.与服务器通信,使用服务器提供的服务
2.间歇性接入网络
3.可能使用动态IP地址
4.不与其他客户机直接通信


应用: Web,文件传输FTP,远程登录,电子邮件

P2P模型

不存在永远在线的服务器

每个主机既可以提供服务,也可以请求服务

任意端系统/节点之间可以直接通讯

节点间歇性接入网络节点

可能改变IP地址
可扩展性好
网络健壮性强

例如:P2P种子搜索

二、相关应用

1、DNS 域名系统

把人们便于记忆的特定含义的主机名,转换成便于机器处理的IP地址

比如 www.baidu.com  -----DNS----> IP地址

DNS是采用C/S模型, 其协议运行在UDP之上。端口号是53

1)域名:

因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名 (Domain Name)。

域(Domain) 是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成术了顶级域、二级域、三级域等。

每个域名都由标号序列组成,而各标号之间用点 (“.”) 隔开

关于域名中的标号有以下几点需要注意:

1) 标号中的英文不区分大小写。

2) 标号中除连字符 (-) 外不能使用其他的标点符号。

3)每个标号不超过 63 个字符,多标号组成的完整域名最长不超过 255 个字符。

4)级别最低的域名写在最左边,级别最高的顶级域名写在最右边。

顶级城名
1)国家顶级域名 cn,us,uk

2)通用顶级域名 com,net,org,gov,int,aero,museum,travel

3)基础结构域名/反向域名 arpa

二级域名
1)类别域名 ac,com,edu,gov,mil,net,org
2)行政区域名 用于我国各省、自治区、直辖市 bj;js

2)域名服务器

因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到IP 地址的解析是由运行在域名服务器上的程序完成的,一个服务器所负责管辖的(或有权限的)范围称为区(不以“域”为单位)。各单位根据具体情况来划分自己管辖范围的区,但在一个区中的所有结点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。每个域名服务器不能够进行一些域名到IP 地址的解析,而且还必须具有连向其他域名服务器的信息。当自己不能进行域名到IP 地址的转换时,能够知道到什么地方去找其他域名服务器。

小结上面这段话:

以区为单位

每个区设置相应的权限域名服务器,保存该区的主机的域名到IP的映射,并且可以指明本服务器找不到映射时,去哪可以找到(连通)

DNS 使用了大量的域名服务器,它们以层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的 DNS 上。采用分布式设计的 DNS,是一个在因特网上实现分布式数据库的精彩范例。主要有 4 种类型的域名服务器。

1.根域名服务器

根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP 地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。因特网上有13
个根域名服务器,尽管我们将这 13个根域名服务器中的每个都视为单个服务器,但每个“服器”实际上是冗余服务器的集群,以提供安全性和可靠性。需要注意的是,根域名服务器用来辖顶级域(如.com),通常它并不直接把待查询的域名直接转换成 IP 地址,而是告诉本地域名务器下一步应当找哪个顶级域名服务器进行查询。

2.顶级域名服务器

这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。收到 DNS 查询请求时就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的 IP 地址)。

3.授权域名服务器(权限域名服务器)
每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两授权域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。授枚域名服务器总能将其管辖的主机名转换为该主机的 IP 地址。

4.本地域名服务器
本地域名服务器对域名系统非常重要。每个因特网服务提供者 (ISP),或一所大学,甚至、所大学中的各个系,都可以拥有一个本地域名服务器。当一台主机发出 DNS 查询请求时,这查询请求报文就发送给该主机的本地域名服务器。事实上,我们在 Windows 系统中配置“本地接”时,就需要填写 DNS 地址,这个地址就是本地 DNS(域名服务器)的地址。

3)域名解析过程

域名解析是指把域名映射成为IP 地址或把IP地址映射成域名的过程。前者称为正向解析,后者称为反向解析

当客户端需要域名解析时,通过本机的 DNS 客户端构造一个 DNS 请求报文以UDP 数据报方式发往本地域名服务器。

域名解析有两种方式:

递归查询 和   递归与迭代相结合的查询。

(1)主机向本地域名服务器的查询采用的是递归查询

也就是说,如果本地主机所询问的本地域名服务器不知道被查询域名的 iP 地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自已进行下一步的查询。两种查询方式的这一步是相同的。

(2)本地域名服务器向根域名服务器的查询采用迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的 IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”。然后让本地械名服务器向这个顶级域名服务器进行后续的查询,如图 b所示。同样,顶级域名服务器收到查询报文后,要么给出所要查询的 IP 地址,要么告诉本地域名服务器下一步应向哪个权限域名服务器查询。最后,知道所要解析的域名的 IP 地址后,把这个结果返回给发起查询的主机。

为了提高 DNS 的查询效率,并减少因特网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。当一个 DNS 服务器接收到 DNS 查询结果时,它能将该 DNS 信息缓存在高速缓存中。这样,当另一个相同的域名查询到达该 DNS 服务器时,该服务器就能够直接提供所要求的IP 地址,而不需要再去向其他 DNS 服务器询问。因为主机名和P 地址之间的映射不是永的,所以 DNS 服务器将在一段时间后丢弃高速缓存中的信息。

感觉是不是有点像Http请求的 转发与重定向

二、文件传输协议FTP

三、电子邮件

四、万维网

更多推荐

【多线程案例】单例模式

单例模式是设计模式的一种,先谈谈什么是设计模式?大家应该都知道棋谱、剑谱之类的,就是一些“高手”在经历过长期的累计之后,更具经验写出的具有固定套路的处理“方法”,只要按照这个套路来,在对局之中必然是不会吃亏的,甚至能够一招制敌。那么在我们日常的开发中也有大佬们针对一些十分常见的场景,抽象出固定的套路。一些小白在学习了大

Spark的基础

实训笔记--Spark的基础Spark的基础一、Spark的诞生背景二、Spark概念2.1SparkCore2.2.SparkSQL2.3SparkStreaming2.4SparkMLlib2.5SparkGraphX2.6SparkR三、Spark的特点3.1计算快速3.2易用性3.3兼容性3.4通用性四、Spa

Java IO 之 BIO、NIO 和 AIO

一、IOIO是Input和Output二词的缩写,意为输入和输出,直接来说,实现一般的I/O是没有什么难度的,但涉及到多线程时,要解决I/O的问题就不是一个简单的事情了,会涉及到同步和异步的问题,阻塞和非阻塞的问题。1.1同步和异步同步可以借用多线程来方便理解,多条线程,从字面意思上来看,当他们在同一直线上时,就是同步

mysql---视图详解

提示:视图最大的优点用来协助用户提高查询效力以及保护数据安全文章目录视图视图的作用:创建视图单表创建视图多表创建视图查看视图更新视图数据修改视图删除视图视图视图(View)是一个虚拟表,其内容由select查询定义。同真实的表一样,是一个select查询的结果集,所有数据来源于基表视图其实就是一个select返回的结果

写一篇nginx配置指南

nginx.conf配置找到Nginx的安装目录下的nginx.conf文件,该文件负责Nginx的基础功能配置。配置文件概述Nginx的主配置文件(conf/nginx.conf)按以下结构组织:配置块功能描述全局块与Nginx运行相关的全局设置events块与网络连接有关的设置http块代理、缓存、日志、虚拟主机等

分布式电源接入对配电网影响分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码、数据、文章💥1概述分布式电源的接入将配电系统从传统的无源放射

极简解析!IP计费的s5爬虫IP

大家好!今天我将为大家分享关于s5爬虫IP服务的知识。对于经常做爬虫的小伙伴来说,需要大量的爬虫IP支持爬虫业务,那么对于选择什么样的爬虫IP,我想我有很多发言权。下面我们一起了解下IP计费的s5爬虫IP的知识,废话不多说,让我们开始吧!第一部分:了解s5爬虫和IP计费首先,让我们简单了解一下s5爬虫和IP计费是什么。

最新AI系统ChatGPT源码+支持OpenAI全模型+国内AI模型+AI绘画

一、SparkAI智能创作系统SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!SparkAi程序使用Ne

【AI语言大模型】星火使用介绍

一、前言现在AI语言大模型是百花齐放,挺好!有竞争,有发展,才能推出更好的产品。现在,科大讯飞就推出了大语言模型——星火!能够学习和理解人类的语言,进行多轮对话,回答问题,高效便捷地帮助人们获取信息、知识和灵感。星火在对话栏设置了三个插件:文档回答、PPT生成、简历生成,下面详细介绍三个插件的用法。二、插件介绍如下图所

9 种方法使用 Amazon CodeWhisperer 快速构建应用

AmazonCodeWhisperer是一款很赞的生成式人工智能编程工具。自从在工作中使用了CodeWhisperer,我发现不仅代码编译的效率有所提高,应用开发的工作也变得快乐起来。然而,任何生成式AI工具的有效学习都需要初学者要有接受新工作方式的心态和意愿。AmazonCodeWhispererAICodeGene

一篇关于vue的入门的详细介绍

目录一.介绍二.库和框架的区别三.什么是MVVM模式四.实例4.1.Vue开发示例4.2.双向数据绑定4.3.生命周期好啦,今天的分享就到这了,希望能够帮到你呢!😊😊一.介绍Vue.js是一种流行的JavaScript框架,用于构建用户界面。它被设计为一个渐进式框架,可以逐步应用到现有项目中,也可以作为一个完整的单

热文推荐