六、应用层
概念和功能
| 应用层 |
|---|
| 应用层对应用程序的通信提供服务。 |
| 应用层协议定义 |
|---|
| 应用进程交换的报文类型,请求还是响应? |
| 各种报文类型的语法,如报文中的各个字段及其详细描述。 |
| 字段的语义,即包含在字段中的信息的含义。 |
| 进程何时、如何发送报文,以及对报文进行响应的规则。 |
| 应用层的功能 |
|---|
| 文件传输、访问和管理 |
| 电子邮件 |
| 虚拟终端 |
| 查询服务和远程作业登录 |
| 网络应用模型 | 应用 | |
|---|---|---|
| 客户/服务器模型(Client/Server) | 服务器:提供计算服务的设备。1.永久提供服务。2.永久性访问地址/域名。 客户机::请求计算服务的主机。1.与服务器通信,使用服务器提供的服务。2.间歇性接入网络。3.可能使用动态IP地址。4.不与其他客户机直接通信。 | Web,文件传输FTP,远程登录,电子邮件 |
| P2P模型(Peer-to-peer) | 1.不存在永远在线的服务器。2.每个主机既可以提供服务,也可以请求服务。3.任意端系统/节点之间可以直接通讯。4.节点间歇性接入网络。5.节点可能改变IP地址。 6.可扩展性好。 7.网络健壮性强。 |
域名系统(DNS)
| 域名系统(Domain Name System,DNS) |
|---|
| 域名 | |
|---|---|
| 根 | |
| 顶级域名 | 国家顶级域名:cn,us,uk 通用顶级域名:com,net,org,govint,aero,museum,travel 基础结构域名/反向域名:arpa |
| 二级域名 | 类别域名:ac,com,edu,gov,mil,net,org 行政区域名:用于我国各省、自治区、直辖市 bj,js |
| 三级域名 | |
| 四级域名 |
| 域名服务器 | |
|---|---|
| 根域名服务器 | |
| 顶级域名服务器(管理该顶级域名服务器注册的所有二级域名) | org域名服务器、com域名服务器、edu域名服务器 |
| 权限域名服务器(负责一个区的域名服务) | y.abc.org域名服务器 |
| 本地域名服务器 | 当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。 |
| 域名解析过程 | |
|---|---|
| 递归查询 | 靠别人 |
| 迭代查询 | 靠自己 |
高速缓存:定期更新。
文件传输协议
1.FTP
| 文件传送协议 (File Transfer Protocol,FTP) |
|---|
| 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。 |
| FTP服务器和用户端 |
|---|
| FTP是基于客户/服务器(C/S)的协议。 |
| 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。 |
| 依照FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器。 |
| 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。 |
| FTP工作原理 |
|---|
| 登陆 ftp地址 用户名&密码 |
| 匿名登陆:互连网中有很大一部分FTP 服务器被称为“匿名” (Anonymous)FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous”登陆FTP服务,就可访问远程主机上公开的文件。 |
| FTP使用TCP实现可靠传输。 |
| 服务器进程:1个主程,n个从属进程。 |
| 控制连接始终保持 数据连接保持一会 |
| 是否使用TCP20端口建立数据连接与传输模式有关:1.主动方式使用TCP20端口。2.被动方式由服务器和客户端自行协商决定(端口>1024)。 |
| FTP传输模式二进制模式: Binary模式,以二进制序列传输数据 |
|---|
| 文本模式:ASCII模式,以文本序列传输数据。 |
| 二进制模式: Binary模式,以二进制序列传输数据。 |
2.SFTP
| 安全的文件传输协议(Secure File Transfer Protocol,SFTP) |
|---|
| SFTP是基于SSH(Secure Shell)协议的扩展。 |
| 使用SFTP时,客户端和服务器之间建立一个加密的连接,这确保了传输的机密性和完整性。所有通过SFTP传输的数据都会进行加密,防止中间人攻击和窃听。此外,SFTP还提供身份验证机制,以确保只有授权用户才能访问服务器上的文件。 |
| 22号端口。 |
3.TFTP
| 简单文件传送协议 (Trivial File Transfer Protocol,TFTP) |
|---|
| 它是在UDP协议的基础上实现的。是TCP/I P协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。 |
电子邮件
| 电子邮件的信息格式 | |
|---|---|
| 信封 | abc@163.com |
| 内容 | 1.首部 2.主体 |
| 组成结构 | |
|---|---|
| 用户代理 | 电子邮件客户端软件,Foxmail、Outlook。 功能:1.撰写。2.显示。3.处理。4.通信。 |
| 邮件服务器 | 功能: 1.发送到接收房邮件服务器。2.向发件人报告邮件传送结果。 |
| 协议 |
1.简单邮件传输协议(SMTP)
| 简单邮件传输协议 (Simple Mail Transfer Protocol,SMTP) |
|---|
| SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。 |
| 负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。 |
| SMTP规定了14条命令(几个字母)和2种应答信息 (三位数字代码+简单文字说明)。 |
| TCP连接,端口号25,c/S |
| SMTP通信三个阶段 |
|---|
| 1.连接建立 |
| 2.邮件传送 |
| 3.连接释放 |
| 通用因特网邮件扩充(Multi purpose Internet Mail Extensions,MIME) |
|---|
| SMTP的缺点: 1.SMTP不能传送可执行文件或者其他二进制对象。 2.SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。 3.SMTP服务器会拒绝超过一定长度的邮件。 |
| 使电子邮件系统可以支持声音、图像、视频、多种国家语言等等。使得传输内容丰富多彩。 |
2.邮局协议(POP3)
| 邮件接收协议(Post Office Protocol,POP) |
|---|
| 目前为 P O P 3 版本;POP 3 是基于 TCP 协议的,默认端口 110 。 |
| POP3工作方式 |
|---|
| 下载并保留(在服务器) |
| 下载并删除 |
| 互联网邮件访问协议(Internet Message Access Protocol,I MAP)网际报文存取协议 |
|---|
| IMAP协议比POP协议复杂。当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部若用户需要打开某个邮件,该邮件才上传到用户的计算机上。 |
| IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分 (先看正文,有wiFi的时候再下载附件)。 |
| 与POP3不同,IMAP是使用客户端/服务器架构的协议,可以与邮件服务器进行交互,从邮件服务器上获取邮件信息,并支持对邮件进行各种操作,如查看、删除、移动、回复等。 |
| I MAP 4 |
3.基于万维网的电子邮件
方便
万维网和HTTP协议
| 万维网(World Wide Web,www) |
|---|
| 是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。 |
| 统一资源定位符URL唯一标识资源(文字、视频、音频...) |
| 用户通过点击超链接(www.baidu.com)获取资源,这些资源通过超文本传输协议 (HTTP)传送给使用者。 |
| 万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。 |
| 万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。 |
1.HTTP
| 超文本传输协议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连接)。 |
| HTTP的连接方式 | |
|---|---|
| 持久连接Keep-alive | 非流水线 流水线 |
| 非持久连接Cose |
| 超文本传输协议HTTP一报文结构 | |
|---|---|
| HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串。 | |
| 1.请求报文。 | |
| 2.响应报文。 | 状态码: 1xx表示通知信息的,如请求收到了或正在处理。 2xx表示成功,如接受或知道了。 3xx表示重定向,如要完成请求还必须采取进一步的行动。 4xx表示客户的差错,如请求中有错误的语法或不能完成。 5xx表示服务器的差错,如服务器失效无法完成请求。 |
| HTTP请求过程 |
|---|
| 1.浏览器向DNS获取web服务器的IP地址; |
| 2.浏览器与IP地址为 115.239.211.112 的服务器进行TCP链接 端口为80; |
| 3.浏览器执行HTTP协议,发送GET /internet 命令,请求该文件; |
| 4.news.baidu.com 服务器返回 /internet文件到客户端; |
| 5.释放TCP链接; |
| 6.浏览器解释/internet文件的内容,并显示该文件表示的页面。 |
2.HTTPS
| (Hypertext Transfer Protocol Secure,HTTPS) |
|---|
| HTTPS 是 HTTP 与 SSL 的结合体,为传输层以上层次数据加密。 |
| HTTPS工作流程 |
|---|
| 1.客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。 |
| 2.Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。 |
| 3.客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。 |
| 4.客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。 |
| 5.Web服务器利用自己的私钥解密出会话密钥。 |
| 6.Web服务器利用会话密钥加密与客户端之间的通信。 |
| 1.会话密钥是客户端创建的,所以客户端本身就是拥有会话密钥,这是对称加密。 2.公钥是服务器的,作用仅仅用于把会话密钥加密,让客户端传给服务器,保证会话密钥即使被第三方截获也不能解密,因为只有服务器有自己的私钥。 3.服务器的公钥则是存放在证书当中,证书需要CA机构认证,用来确认服务器的身份。 |
| HTTPS 与 HTTP的差异 |
|---|
| 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 |
| 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 |
| 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 |
| 4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 |
附录
| 安全外壳协议(Secure Shell,SSH) |
|---|
| 在网络中创建安全隧道来实现 SSH 客户端与服务器之 间的连接, SSH 最常见的用途是远程登录系统,人们通常利用 SSH 来传输命令行界面和远程执行命令。 |
| Telnet |
|---|
| telnet 协议是 TCP/IP 协议栈中的一员,它是基于TCP协议,使用的端口号是 23 。 |
| telnet 之所以不安全,是因为客户端和服务器之间交互的报文是没有加密的,可以被有心人轻易的找出用户名和密码。 |
| 简单网络管理协议(Simple Network Management Protocol,SNMP) |
|---|
| 它是一种用于网络设备管理的协议,用于收集网络设备的状态信息、监视网络的性能和配置网络设备等。 |
| 基于UDP协议。 |
| 网络时间协议(Network Time Protocol,NTP) |
|---|
| 它是一种用于同步计算机系统时钟的协议,用于确保计算机在网络上具有准确的时间。 |
| 基于UDP协议。 |
| 远程帧缓冲协议(Remote Frame Buffer,RFB) |
|---|
| 一个用于远程访问图形用户界面的简单协议。 |
| 安全套接层(Secure Socket Layer,SSL) |
|---|
| 它位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议的目的是在客户端和服务器之间建立一个安全通道,对传送的数据进行加密和隐藏,确保数据在传送中不被改变,即确保数据的完整性。 |
| SSL协议能够提供以下服务: 1.数据加密:通过使用加密算法对数据进行加密,确保只有接收方可以解密并获取原始数据。 2.数据完整性:通过使用消息摘要算法对数据进行处理,确保数据在传输过程中没有被篡改或损坏。 3.身份认证:通过使用数字证书和公钥体系对通信双方进行身份验证,确保只有正确的接收方能够接收到数据。 4.防止重放攻击:通过使用加密技术和时间戳等手段,确保每个数据包只能被使用一次,从而防止重放攻击。 |
| SSL通常用于保护Web浏览器和服务器之间的通信,而TLS则更广泛地用于各种应用程序,包括电子邮件、即时消息和VoIP等。 |
| 安全传输层协议(Transport Layer Security,TLS) |
|---|
| (Datagram Transport Layer Security,DTLS) |
|---|
| 一种基于传输层安全协议(TLS)的加密通信协议,用于在不可靠的数据报传输层上提供数据加密、身份验证和消息完整性保护。DTLS旨在解决Datagram协议(如UDP)缺乏可靠传输的问题,提供类似于TLS的功能,但适用于不可靠的通信环境。 |