计算机网络---应用层

应用层概述

应用层是对应用程序的通信提供服务

应用层协议定义:
应用进程交换的报文类型,请求还是响应?
各种报文类型的语法,如报文中的各个字段及其详细描述。
字段的语义,即包含在字段中的信息的含义。
进程何时、如何发送报文,以及对报文进行响应的规则。

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

这个表格现在还不是很好懂,但是后续会一一讲解。

网络应用模型

网络应用模型有两种:
客户/服务器模型(这个是不对等的模型,一台主机是客户另一台是服务器)

P2P模型(这个是对等模型,也就是两个主机相互为客户端和服务端)

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

在这里插入图片描述
服务器:提供计算服务的设备。
1.永久提供服务(一直等着你来,24小时不打烊)
2.永久性访问地址/域名(一直就是这个入口,很少更改)

客户机:请求计算服务的主机。
1.与服务器通信,使用服务器提供的服务(这个客户嘛,当然是享受服务的嘛)
2.间歇性接入网络(这个就是你可以想上qq的时候上一下,不想上qq的时候就退出)
3.可能使用动态IP地址(这个就是你可以在各种地方连入服务器,不需要在固定的地方)
4.不与其他客户机直接通信(这个就是你在qq聊天的时候其实你的消息会先发送到腾讯手上,然后在发给你要发的那个人手上)

这个模型的应用有:Web,文件传输FTP,远程登录,电子邮件

P2P模型

在这里插入图片描述
不存在永远在线的服务器(这个就是字面意思,不需要一直在线)
每个主机既可以提供服务,也可以请求服务(这个就是P2P的区别了,主机之间相互服务)
任意端系统/节点之间可以直接通讯(字面意思奥)
节点间歌性接入网络(这个互为客户嘛,想来来,想走走)
节点可能改变IP地址(毕竟动态接入,会改变IP的)
可扩展性好(这个就是你即使一下子涌入了大批的主机,我也还是可以做到相同功能)
网络健壮性强(这个就是不会因为某个节点坏了,就网络瘫痪了,对比C/S就是服务器如果坏了,就瘫痪了)

DNS系统

大家都知道,我们访问网站都是www.xxx.com或者.cn等等,而不是访问那个主机的IP地址,那个太长了,太难记了(这里以王道论坛为例)

而我们又是如何通过www.cskaoyan.com进入王道论坛服务器IP的呢,就是使用了DNS系统(域名系统)

在这里插入图片描述
具体形式就如同上图所示

主机将域名发送给DNS服务器,DNS服务器解析以后告诉主机目标服务器IP,然后主机开始于目标服务器通信

域名

举例:
www.cskaoyan.com

这个域名实际上应该是www.cskaoyan.com.

从右往左被称为顶级域名,二级域名,三级域名,四级域名(只不过这个域名中没有)

顶级域名:
cn,us,uk(这个是国家顶级域名,中国、美国、英国,当然不止这几个,知识举个例子)

com,net,org,gov,int,aero,museum,travel(这个是通用顶级域名,就是大家都用,比如com公司企业通用,net信息服务机构通用,org非营利性机构通用,gov政府通用,int国际组织通用,aero航空传输企业通用,museum博物馆通用,travel旅游机构通用,等等,还有好多)

arpa(基础结构域名/反向域名,用于将ip地址解析为域名,这种只有这一个)

二级域名:
ac,com,edu,gov,mil,net,org(类别域名,这个会和顶级域名有所重叠,毕竟他可以是com.cn;edu.cn嘛)

bj,js(行政区域名用于我国各省、自治区、直辖市,这个拼音就不用我说了吧)

二级域名还有一些,就是自己申请的,类似于cskaoyan,cctv等(但是注意,这个域名必须独一无二)

三级域名:
向举例里面的www.cskaoyan.com中www就是三级域名

四级域名:
那未必有,比如www.cakaoyan.com.cn的话www就是四级域名(这网址纯属我拿来出举例,不晓得有没有)

一般情况下用域名树来表示:
在这里插入图片描述
由于全世界都在用这个DNS系统,我们肯定不可能只有一台DNS服务器,不仅很多,而且还根据这个域名等级,给他划分了区别

根域名服务器
负责所有顶级域名服务器的IP,会给你指向属于的顶级域名的IP

顶级域名服务器(管理该顶级域名服务器注册的所有二级域名)
每种顶级域名会有好多这样的服务器,分管这二级域名的服务器

权限域名服务器(负责一个区的域名服务器)
这里解释二级域名的服务器,按区划分

本地域名服务器(这个不属于域名层次的划分,但是很重要)
如果访问的域名属于本地域名服务器下的,他就给你直接转过去,不需要往上面走(这个本地域名服务器一般离你不远,也就隔了几个路由器)

域名解析过程

有两种查询方法:递归查询和迭代查询(这里递归查询比较少用)

递归查询就是正常的自上而下的查询:
首先访问本地域名服务器,如果没有就去根域名服务器
如果还没有根域名服务器就去顶级域名服务器
如果还没有顶级域名服务器就去权限域名服务器
一直到找到位置,然后一层一层返回

迭代查询就是问一次,要到一个地址,然后自己再去问:
首先访问本地域名服务器,如果没有就去根域名服务器
如果没有,拿着顶级域名服务器的IP回来,再由本地域名服务器去访问顶级域名服务器
如果还没有,拿着权限服务器的IP回来,再由本地域名服务器去访问权限域名服务器

图解如下
在这里插入图片描述
这样子不停访问会导致效率极其低下,那么在本地域名服务器其实会有一个Cache,用来存储最近访问的域名以及相对应的IP地址(当然也会存相对应的顶级域名服务器,权限域名服务器的IP),这个Cache也会定期更新

文件传送协议

文件传送协议其实有两个:
文件传送协议FTP和简单文件传送协议TFTP

简单文件传送协议TFTP
很小的,易于实现的文件传输协议
优点:适用于UDP环境(将文件同时给多台主机发送);适用于容量很小的主机

文件传送协议FTP

提供不同种类主机系统(硬、软件体系等都可以不用)之间的文件传输能力
(比如机房的FTP下发作业和上交作业,其实就是文件的下载和上传)

FTP是基于客户/服务器(C/S)的协议
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

在这里插入图片描述
如上图所示,我们在机房使用FTP下载和上传作业的时候就是FTP的客户端

FTP的工作原理

首先要登录FTP服务器

使用的方式可以是
ftp地址 用户名&密码
匿名登录(这个讲解一下)
互连网中有很大一部分FTP服务器被称为“匿名”(Anonymous) FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。

Anonymous (匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous"登陆FTP服务,就可访问远程主机上公开的文件。
(就是用一个公用账户进行登录)

FTP使用TCP实现可靠传输

FTP服务器进程是一个主进程(负责就收新的请求,打开熟知端口21,熟知端口之前有写到过,可以回去看看,用来迎接请求)+n个从属进程(处理单个的请求)

这个就好比理发店,一个拉客的,n个剪头的,一个剪头的一次只能伺候一位客人

在这里插入图片描述
步骤:
用户通过主机的控制进程进行连接请求(这个在端口21,并且一直保持)

然后开始建立数据连接,进行文件传输(这个在端口20)

这个21的连接请求是一直在的,但是20的连接时一旦数据传送完毕就结束了

当然,传送文件的时候有两种方式,对应的端口号也不一样:
主动方式TCP 20端口
被动方式由服务器和客户端自行协商决定(一般端口>1024)

主动方式:
主动的原因是:在21端口建立了连接以后,服务器主动在20端口进行连接建立

被动方式:
被动的原因是:在21端口建立了连接以后,客户端给服务端要端口号,这时候服务器就会给一个大于1024的端口号

FTP传输模式
文本模式: ASCII模式, 以文本序列传输数据:
二进制模式: Binary模式, 以二进制序列传输数据。

电子邮件系统概述

电子邮件的组成部分:信封(比如xx@qq.com自己的邮箱号)和内容

内容分为首部(目标地址,目标的邮箱号以及摘要,这个内容的主题是什么)和主题(主要的邮件内容)

首部扩充以后
在这里插入图片描述

组成结构

主要由三个部分组成:用户代理(发送方和接收方各一个)、邮件服务器(发送方和接收方各一个)和协议

在这里插入图片描述
用户代理:
电子邮件的客户端软件(就软件啊,网页啊啥的)
功能:
1.撰写(编辑信件)
2.显示(看到收、发的信件)
3.处理(可以对信件进行处理,删除,转发等等)
4.通信(利用协议发送到发送方邮件服务器)

邮件服务器:
就是发送信件的服务器
功能:
1.发送&接收邮件
2.向发件人报告邮件传送结果

注:这个邮件服务器采用的是C/S模式,接收方服务器是服务器,发送方服务器是客户

协议:
服务器之间发送邮件时候遵守的协议
SMTP协议,用于发送,即用户代理发送到发送方邮件服务器;发送方邮件服务器发送到接收方邮件服务器

POP3、IMAP协议,用于接收,即用户代理接收接收方邮件服务器中的邮件

图解如下所示:
在这里插入图片描述

注:这中间所有的传输用的都是TCP的连接

SMTP

SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息

负责发送邮件的SMTP进程就是SMTP客户(这里可以是用户代理,也可以是发送端邮件服务器),负责接收邮件的进程就是SMTP客户(一般也就是接收端邮件服务器)

SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。

注:这玩意儿用的是TCP连接,端口号25,用的是C/S模式

SMTP通信三个阶段
在这里插入图片描述
具体步骤:
1.连接建立
在这里插入图片描述
首先发送方会先写一个邮件到发送方邮件服务器的缓存当中
然后发送方邮件服务器建立一个TCP连接接收方邮件服务器
接收方邮件服务器返回一个220 Service ready
发送方邮件服务器发送一个HELLO命令给接收方服务器
如果现在接收方邮件服务器可以接受邮件,返回一个“250 OK";不可以,则返回“421 Service not available"

如果在规定时间内无法发送出去,发送方邮件服务器就会给发送方返回消息,告诉他发送不了

2.邮件发送
A: MAIL FROM: wangdao@163.com
B:2500K/B:451 (452、 500…) 作用:SMTP服 务器是否已经准备好接收邮件
A: RCPT TO: mooc@163.com 可以有 多个RCPT命令(因为可以一次给多个目标发送邮件)
B:250 OK / B:550 No such user here 作用:SMTP服 务器确定是否有这个用户
A: DATA要开始传输邮件的内容了(这里还没有开始传,是告诉他要开始了)
B :354 start mail input; end with <CR><LF>.<CR><LF>(这一长串也就是个命令,不用记) SMTP服 务器同意传输
A:Date…开始传输邮件内容
B:250 OK接收结束

3.连接释放
邮件发完,SMTP客户发送QUIT命令,SMTP服务器返回“221",表示同意释放TCP连接

SMTP的缺点(并且利用MIME弥补)

1.SMTP不能传送可执行文件或者其他:二进制对象。
2.SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
3.SMTP服务器会拒绝超过定长度的邮件。

因此就通过因特网邮件扩充MIME弥补

在这里插入图片描述
就是利用MIME把非ASCII码变成ASCII码

使电子邮件系统可以支持声音、图像、视频、多种国家语言等等。(是的传输内容丰富多彩)

POP3

邮局协议
使用TCP连接,端口号为110,采用C/S模式

工作方式有两种下载并保留和下载并删除(这个都是接收方邮件服务器的,一个是用户接受了还留着,一个是用户接受了就删了)

IMAP协议

IMAP协议比POP协议复杂。当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。

IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)。

基于万维网的电子邮件

什么是基于万维网呢,就是你在网页就可以收发邮件,不需要下载一个专门的邮件客户端

在这里插入图片描述
具体的改变也就是用户和邮件服务器之间,都采用了HTTP协议,而不是SMTP和POP3

脑图总结

在这里插入图片描述

万维网和HTTP协议

万维网www (World Wide Web)是一一个大规模的、联机式的信息储藏所/资料空间(资源:文字、视频、音频),是无数个网络站点和网页的集合。(这就是我们最常在网址中输入的www)

这个万维网用一个统一资源定位符URL唯一表示一个资源(一个网页)

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

协议常用的:HTTP、FTP

主机:域名/IP地址

端口和路径:基本上不写,毕竟哪里能记得这么细致

注:URL不区分大小写

举例:
用户通过点击超链接(http://www.baidu.com) 获取资源,这些资源通过超文本传输协议(HTTP) 传送给使用者。

万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。(就是我们用的主机是客户,存着要访问资源的服务器是服务器)

万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。

HTTP

HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

具体工作流程:
在这里插入图片描述
具体过程: .
1.浏览器分析URL
2.浏览器向DNS请求解析IP地址
3.DNS解析出IP地址
4.浏览器与服务器建立TCP连接
5.浏览器发出取文件命令
6.服务器响应
7.释放TCP连接
8.浏览器显示

HTTP特点

HTTP是无状态的

但是!!!在实际工作中,一些万维网站点常常希望能够识别用户。(例如淘宝,一个购物网站,一直要你登录肯定嫌烦)

因此就出现了Cookie,Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如“123456" )的访问记录。

HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。(也就是这个是先建立TCP连接,然后直接发送HTTP请求报文,而不是建立HTTP连接)

HTTP连接方式

HTTP的连接方式有两种持久连接(这个又分为非流水线和流水线)和非持久连接

在这里插入图片描述
在这里插入图片描述
这个就是一次性的,我申请完一个资源以后会断开连接,还想要就只能再来一次

在这里插入图片描述
这个就是不断开,能再次访问,这里是非流水线式,类似于停等协议,必须收到返回数据以后,在发送请求

流水线是就是能够直接把多个请求一起发送了出去

HTTP报文结构

HTTP报文有两种:请求报文和响应报文

HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串

在这里插入图片描述
这里可以从开始行明显的看出请求报文和响应报文的不同

方法指的是要干什么,URL就是唯一标识符,版本指的是哪个版本的HTTP协议,CRLF是回车换行,标志着开始行的结束

首部行用来说明浏览器、服务器和报文主题的一些信息

实体主体在请求报文中通常不用,响应报文中也有部分是不使用的

具体的请求报文如下所示:
在这里插入图片描述
响应报文也是
版本号就是HTTP的版本
状态码+短语如下所示:
1xx表示通知信息的,如请求收到了或正在处理。
2xx表示成功,如接受或知道了。(202 Accepted接收)
3xx表示重定向,如要完成请求还必须采取进一步的行动。(301 Moved Permanently当前访问地址已经转移)
4xx表示客户的差错,如请求中有错误的语法或不能完成。(404 Not Found 没找到网页)
5xx表示服务器的差错,如服务器失效无法完成请求。

最终总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就这个样子吧,希望各位观看的同学考研的加油!!!期末必过!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值