计算机网络——应用层

news/2024/5/20 3:34:46

文章目录

    • **1 网络应用模型**
    • **2 域名系统DNS**
    • **3 文件传输协议FTP**
    • **4 电子邮件**
      • **4.1 电子邮件系统的组成结构**
      • **4.2 电子邮件格式与MIME**
      • **4.3 SMTP和POP3**
    • **5 万维网WWW**
      • **5.1 HTTP**

1 网络应用模型

客户/服务器模型 C/S

服务器服务于许多来自其他称为客户机的主机请求

工作流程:

(1)服务器处于接收请求的状态

(2)客户机发送服务请求,并等待接收结果

(3)服务器收到请求后,分析请求,进行必要的处理,得到结果发给客户机

客户程序必须知道服务器程序的地址,服务器程序不需要知道客户的地址

主要特点:

(1)网络中各计算机的地位不平等,服务器可以对用户权限的限制来管理客户机

整个网络的管理工作由少数服务器担当,因此网络管理非常集中和方便

(2)客户机相互之间不直接通信

(3)可扩展性不佳

P2P模型

C/S模型中服务器性能的好坏决定整个系统的性能,大量用户请求时,服务器成为系统的瓶颈

P2P模型每个结点都同时具有下载,上传的功能,其权利和义务大体对等

在这里插入图片描述

优点:

(1)减轻了服务器的计算压力,消除对服务器的完全依赖,任务分配到各个结点,大大提高了系统效率和资源利用率

(2)多个客户机直接可以直接共享文档

(3)可扩展性好,传统服务器有相应和带宽的限制,只能接收一定数量的请求

(4)网络健壮性强,单个结点失效不影响其他结点

缺点:获取服务时还要给其他结点提供服务,因此会占用较多的内存,影响整机速度

2 域名系统DNS

DNS是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.DASDSA.COM)转换为便于机器处理的IP地址。DNS采用C/S模型,运行在UDP之上,使用53号端口

DNS分为三部分

层次域名空间

域可划分为子域,子域还可以划分为子域的子域,形成了顶级域,二级域,三级域

特点:

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

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

(3)每个标号不超过64个字符,完整域名最长不超过255个字符

(4)级别最低的域名在最左边,最高的在最右边

顶级域名:

(1)国家地区顶级域名:如cn,us,uk

(2)通用顶级域名:com公司,net网络服务机构,org非盈利性组织,gov国家或政府部门

(3)基础结构域名:只有一个,arap,用于反向域名解析,又称反向域名

国家顶级域名下注册的二级域名有国家自行决定;每个域分别由不同的组织管理

在这里插入图片描述

域名服务器

域名系统被设计成一个联机分布式的数据库系统,采用C/S模型;域名到IP地址的解析是由域名服务器上的程序完成的,一个服务器负责管辖的范围称为区,每个区设置相应的权限域名服务器,用来保存该区中所有主机的域名到IP地址的映射

DNS使用大量的域名服务器,以层次的方式组织,没有一台域名服务器具有因特网上所有主机的映射

(1)根域名服务器:知道所有的顶级域名服务器的IP地址;它不直接把查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找那个顶级域名服务器进行查询

(2)顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名

(3)授权/权限域名服务器:每台主机都必须在授权域名服务器登记,许多域名服务器同时充当本地域名服务器和授权域名服务器,总能将其管辖的主机名转换为IP地址

(4)本地域名服务器:每个因特网服务提供者都可以有一个,主机发出DNS查询请求,先发给主机的本地域名服务器

在这里插入图片描述

域名解析过程

正向解析:把域名映射成IP地址

反向解析:把IP地址映射成域名

域名解析的方式:递归查询,递归与迭代结合的查询

在这里插入图片描述

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

(2)本地域名服务器向根域名服务器的查询采用迭代查询

为提高DNS的查询效率,并减少因特网的DNS报文数量,在域名服务器中广泛的使用了高速缓存;但主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息

3 文件传输协议FTP

工作原理

提供交互式访问,允许客户指明文件的类型和格式,允许文件具有存取权限,屏蔽了计算机系统的细节,适合在异构网络中的任意计算机之间传送文件;采用C/S工作方式,使用TCP可靠传输;端口号21

提供功能:

(1)提供不同种类主机系统之间的文件传输能力

(2)以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力

(3)以匿名FTP的方式提供公用文件共享的能力

FTP服务器必须在整个会话期间保留用户的状态信息

控制连接与数据连接

FTP工作时使用两个并行的TCP连接,一个控制连接(服务器端口号21),一个数据连接(服务器端口号20)

在这里插入图片描述

(1)控制连接

用来传输控制信息(如连接请求,传送请求等),并且控制信息都以7位ASCII格式传送

传输文件时还可以使用控制连接,如客户在传输中途发一个终止传输的命令,因此连接一直保持打开状态

(2)数据连接

服务器收到文件传输请求后,就创建数据传送进程和数据连接

数据连接的两种传输模式

主动模式PORT:客户端先连接到服务器的21端口,登录成功后读取数据时,客户端要随机开放一个端口,并告知服务器,服务器收到PORT命令和端口号后,通过20端口和客户端开放的端口连接,发送数据

被动模式PASV:不同是服务器在本地随机开放一个端口,告知客户端,客户端再连接到服务器开放端口进行数据传输

FTP要修改服务器上的文件,必须先传给本地主机,修改后再将副本传给服务器

网络文件系统NFS,运行进程打开一个远程文件,并在文件某个特定位置开始读写数据,这样NFS可使用户复制大文件中一个很小的片段,不需要复制整个文件

4 电子邮件

4.1 电子邮件系统的组成结构

三个最主要的组成构件,即用户代理,邮件服务器和电子邮件使用协议

在这里插入图片描述

用户代理UA:用户与电子邮件系统的接口,具有撰写,显示和邮件处理的功能,通常情况下就是一个用户程序

邮件服务器:发送和接收邮件,向发信人报告邮件传送情况,采用C/S工作方式,同时充当客户和服务器

邮件发送协议和读取协议:发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP;读取协议用于用户代理从邮件服务器读取邮件,如POP3

在这里插入图片描述

4.2 电子邮件格式与MIME

邮件分为信封和内容两大部分,内容又分为首部和主体两部分

RFC822规定了邮件的首部格式,主体部分让用户自由撰写,写好首部系统自动填写信封

内容的首部首部包含一些首部行,每个首部行由一个关键字后跟冒号再后跟值组成

多用途网际邮件扩充MIME

SMTP只能传输一定长度的ASCII码邮件,一些其他国家的非英语文字就无法传送,且无法传送可执行文件及其他二进制对象,因此提出MIME

MIMIE并未改动SMTP或取代它,继续使用目前格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则

MIMI主要内容:

(1)5个新的邮件首部字段:MIME版本,内容描述,内容标识,传送编码和内容类型

(2)定义了许多邮件内容的格式:对多媒体电子邮件的表示方法进行了标准化

(3)定义了传送编码,对任何内容格式进行转换,而不会被邮件系统改变

在这里插入图片描述

4.3 SMTP和POP3

SMTP

简单邮件传输协议SMTP,提供可靠且有效的电子邮件传输的协议,TCP连接,端口号25

(1)连接建立:SMTP客户每隔一定时间对邮件缓存扫描一次,发现有文件就建立TCP连接,建立后,接收方服务器发出220 service ready,然后客户向服务器发送HELLO命令,并附上发送方的主机名;两个服务器直接连接,不管有多远

(2)邮件传送:

MAIL命令后右发件人的地址:MAIL FROM:asudiashd

服务器准备好接收就回答:250 OK

客户端发送一个或多个RCPT命令:RCPT TO:收件人地址;每发送一个RCPT就有一个相应信息从服务器返回;RCPT的作用是检测接收方是否做好接收邮件的准备,然后才发送,避免资源浪费

获得OK后,客户端使用DATA命令,表示要开始传输邮件

(3)连接释放:

邮件发送完毕,客户发出QUIT命令,服务器返回221表示同意释放

POP3和IMAP

邮局协议POP3,非常简单功能有限,使用C/S,TCP,端口号110,

两种工作方式:

下载并保留:读取邮件后仍保存在服务器上

下载并删除:邮件一旦读取就被从邮件服务器上删除

邮件读取协议IMAP:为用户提供了创建文件夹,在不同文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令,为此IMAP服务器维护了会话用户的状态信息

IMAP允许用户代理只获取报文的部分,非常适合低带宽的情况,用户可能不想读取所有邮件

随着万维网的发展,出现了很多基于万维网的电子邮件如Gmail,特点是用户浏览器与邮件服务器之间的邮件发送或接收使用HTTP,仅在不同邮件服务器之间传送才使用SMTP

5 万维网WWW

万维网是一个分布式,联机式的信息存储空间,这个空间中:一样有用的事物称为一样资源,由一个全域同一资源定位符URL标识

这些资源通过超文本传输协议HTTP传送给使用者,而后者通过单击链接来获取资源

超文本标记语言HTML使得万维网页面的设计者可以很方便的用一个超链接从本页面的某处链接到因特网上的任何一个万维网页面,并能够在自己的计算机屏幕上显示这些页面

万维网内核部分的三个标准:

(1)统一资源定位符URL:表示万维网上的各种文档,并使文档具有唯一标识符,相当于一个文件名在网络范围的拓展

(2)超文本传输协议HTTP:一个应用层协议,使用TCP连接进行可靠的传输,是客户和服务器必须遵守的协议

(3)超文本标记语言HTML:使用一些约定的标记对页面上的各种信息,格式进行描述

URL一般形式:<协议>://<主机>:<端口>/<路径>

5.1 HTTP

是面向事物的应用层协议,定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器

操作过程

浏览器访问www服务器时,首先对域名解析,获得IP地址,浏览器就通过TCP向服务器发送连接建立请求

在这里插入图片描述

HTTP报文:请求报文,响应报文

具体过程:页面的URL—DNS解析IP地址—建立TCP连接—浏览器发出HTTP请求—服务器发出HTTP响应和文件—释放TCP连接—打开文件并显示页面

特点

HTTP本身是无连接的,交换报文前不需要先建立HTTP连接

无状态的,同一个客户第二次访问同一个服务器的页面,服务器的响应和第一次访问相同,简化了服务器设计,容易支持大量并发的HTTP请求

既可以使用非持久连接,也可以使用持久连接

非持久:每个网页元素都单独建立一个TCP连接,每次都要建立新的缓存和变量使得服务器负担重

持久:万维网服务器发送相应后仍保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文

在这里插入图片描述

持久连接又分为非流水线和流水线两种方式

非流水线:客户在收到前一个响应后才能发出下一个请求,服务器发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源

流水线(HTTP/1.1):客户每遇到一个对象引用就立即发出一个请求,因而客户可以逐个的连续发出对各个引用对象的请求

如果所有请求响应都是连续发送,那么所有引用对象共计一个RTT延迟,而不是像非流水线方式那样,每个引用都必须有一个RTT延迟,这种方式减少了TCP连接中的空闲时间,提高了效率

报文结构

HTTP是面向文本的,报文中每个字段都是ASCII码串,长度也不确定

在这里插入图片描述

开始行:用于区分是请求报文还是响应报文;请求报文的开始行称为请求行,响应报文的开始行称为状态行。方法是对所请求对进行的操作,方法实际上就是一些命令

在这里插入图片描述

首部行:用来说明浏览器,服务器或报文主体的一些信息,首部行结束时,还有一空行将首部行和实体主体分开

在这里插入图片描述


http://www.mrgr.cn/p/27283013

相关文章

ElementUI Select选择器如何根据value值显示对应的label

修改前效果如图所示&#xff0c;数据值状态应显示为可用&#xff0c;但实际上仅显示了状态码1&#xff0c;并没有显示其对应的状态信息。在排查了数据类型对应关系问题后&#xff0c;并没有产生实质性影响&#xff0c;只好对代码进行了如下修改。 修改前代码&#xff1a; <…

CSS鼠标样式(cursor)

CSS cursor 属性值 属性值示意图描述auto默认值&#xff0c;由浏览器根据当前上下文确定要显示的光标样式default 默认光标&#xff0c;不考虑上下文&#xff0c;通常是一个箭头none不显示光标initial将此属性设置为其默认值inherit从父元素基础 cursor 属性的值context-menu…

学习React(四)

学习React&#xff08;四&#xff09; componentWillMount&#xff08;被放弃使用&#xff09;rendercomponentDidMountshouldComponentUpdate(nextProps,nextState)componentWillUpdate&#xff08;被放弃使用&#xff09;componentDidUpdatecomponentWillReceiveProps&#x…

Excel修改日期格式,改变日期的筛选方式

我们有两列日期数据&#xff1a; 左边这一列筛选会显示&#xff1a; 右边这一列筛选会显示&#xff1a; 修改格式&#xff0c;将【日期1】改为【日期2】 将【日期1】的格式修改为文本格式即可 修改格式&#xff0c;将【日期2】改为【日期1】 选中日期2&#xff0c;点击【数据…

7月31日每日两题

第一题:再解炸弹人 小哼最近爱上了“炸弹人”游戏。你还记得在小霸王游戏机上的炸弹人吗?用放置炸弹的方法来消灭敌人。需将画面上的敌人全部消灭后,并找到隐藏在墙里的暗门才能过关。 现在有一个特殊的关卡如下。你只有一枚炸弹,但是这枚炸弹威力超强(杀伤距离超长,可…

铁路关基保护新规:优先采购安全可信的网络产品和服务!

《征求意见稿》第十四条提到&#xff1a;运营者应当加强供应链安全保护&#xff0c;优先采购安全可信的网络产品和服务&#xff1b;采购网络产品和服务影响或者可能影响国家安全的&#xff0c;运营者应当预判网络产品和服务投入使用后可能带来的国家安全风险&#xff0c;按照国…

Openlayers实战:绘制多边形,导出CSV文件

CSV(Comma-Separated Values)是一种常用的数据交换格式,是一种纯文本文件格式。在Openlayers的交互中,经常性的我们要导出一些数据,在这个实战中,演示的是导出CSV文件。 安装依赖 npm install file-saver --save npm install papaparse --save 效果图 导出的文件 源代码…

yellowbrick:一款特征工程可视化神器!

在建立模型之前一个非常重要的工作就是做特征工程&#xff0c;而在特征工程的过程中&#xff0c;探索性数据分析又是必不可少的一部分。 本次介绍一款功能十分强大的特征工程可视化工具&#xff1a;yellowbrick&#xff0c;包括雷达、一维排序、PCA、特征重要性、递归消除、正…

k8s安装Jenkins

目录 ​编辑 一、环境准备 1.1 环境说明 二、安装nfs 2.1 安装NFS 2.2 创建NFS共享文件夹 2.3 配置共享文件夹 2.4 使配置生效 2.5 查看所有共享目录 2.6 启动nfs 2.7 其他节点安装nfs-utils 三、创建PVC卷 3.1 创建namespace 3.2 创建nfs 客户端sa授权 3.3 创建…

Github 霸榜!竟是阿里技术官的微服务分布式项目实战笔记总结

一个初创公司的老板带着他们的技术负责人来做技术交流&#xff0c;他们列了一长串问题&#xff0c;有微服务技术选型方面的&#xff0c;有技术难点方面的。这些问题如果不能快速解决&#xff0c;那么就会影响产品质量、上线进度&#xff0c;进而直接影响业务。 这是很多企业常…

CAN学习笔记1:计算机网络

计算机网络 1 概述 计算机网络就是把多种形式的计算机用通信线路连接起来&#xff0c;并使其能够互相进行交换的系统。实际上&#xff0c;计算机网络包括了计算机、各种硬件、各种软件、组成网络的体系结构、网络传输介质和网络通信计数。因此&#xff0c;计算机网络是计算机…

“程序员求职攻略:IT技术岗面试的必备技巧“

文章目录 每日一句正能量前言分享面试IT公司的小技巧IT技术面试有哪些常见的问题&#xff1f;分享总结遇到过的面试题后记 每日一句正能量 人活一世&#xff0c;不在乎朋友多少&#xff0c;不问财富几车&#xff0c;关键看在你最困难的时候&#xff0c;是否有一个伸出援手的人&…

直播预告 | 开源运维工具使用现状以及可持续产品的思考

运维平台自上世纪90年代开始进入中国市场&#xff0c;曾形成以传统四大外企&#xff1a;IBM、BMC、CA、HP为代表的头部厂商&#xff0c;还有一众从网管起家的国内厂商。2010年前后&#xff0c;出现了以Zabbix、Nagios、Cacti为代表的开源工具&#xff0c;后来又陆续出现了Prome…

应用无线鼠标中的2.4GHz无线收发芯片

无线键盘和无线鼠标作为现代办公环境中常见的工具&#xff0c;为我们的工作带来了便利。无线键盘和无线鼠标的工作原理都是基于无线技术实现的&#xff0c;其中常见的是2.4GHz无线技术。让我们一起来详细了解一下它们的工作原理。 无线鼠标的原理非常简单,鼠标部分工作与传统鼠…

使用docker-compose搭建lnmpr环境

源码gitee compose 使用的三个步骤&#xff1a; • 使用 Dockerfile 定义应用程序的环境。 • 使用 docker-compose.yml 定义构成应用程序的服务&#xff0c;这样它们可以在隔离环境中一起运行。 • 最后&#xff0c;执行 docker-compose up -d 命令来启动并运行整个应用程序…

C++笔记之迭代器失效问题处理

C笔记之迭代器失效问题处理 code review! 参考博文&#xff1a;CSTL迭代器失效的几种情况总结 文章目录 C笔记之迭代器失效问题处理一.使用返回新迭代器的插入和删除操作二.对std::vector 来说&#xff0c;擦除&#xff08;erase&#xff09;元素会导致迭代器失效 一.使用返回…

小白三步即可设置企业在线帮助中心?

设置企业在线帮助中心是提升客户服务质量和用户体验的重要举措。以下将介绍三个简单的步骤&#xff0c;帮助企业建立一个高效的在线帮助中心。 第一步&#xff1a;规划与设计 在设置企业在线帮助中心之前&#xff0c;需要进行一定的规划和设计工作&#xff0c;确保帮助中心能够…

Django模板语法和请求

1、在django关于模板文件加载顺序 创建的django项目下会有一个seeetings.py的文件 如果在seeetings.py 中加了 os.path.join(BASE_DIR,‘templates’)&#xff0c;如果是pycharm创建的django项目会加上&#xff0c;就会默认先去根目录找templates目录下的html文件&#xff0c…

【Linux | Shell】结构化命令2 - test命令、方括号测试条件、case命令

目录 一、概述二、test 命令2.1 test 命令2.2 方括号测试条件2.3 test 命令和测试条件可以判断的 3 类条件2.3.1 数值比较2.3.2 字符串比较 三、复合条件测试四、if-then 的高级特性五、case 命令 一、概述 上篇文章介绍了 if 语句相关知识。但 if 语句只能执行命令&#xff0c…

华为HCIP第二节-------------------------ISIS

IS-IS&#xff08;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff09;是ISO &#xff08;International Organization for Standardization&#xff0c;国际标准化组织&#xff09;为它的CLNP&#xff08;ConnectionLessNetwork Protocol&…