应用层概述
应用层对应用程序的通信提供服务。
应用层协议定义:
- 应用进程交换的报文类型,请求还是响应
- 各种报文类型的语法,如报文中的各个字段及其详细描述
- 字段的语义,即包含在字段中的信息的含义
- 进程何时,如何发送报文,以及对报文进行响应的规划
应用层的功能:
- 文件传输,访问和管理
- 电子邮件
- 虚拟终端
- 查询服务和远程作业登录
应用层的重要协议:
- FTP
- SMTP,POP3
- HTTP
- DNS
网络应用模型
- 客户/服务器模型(Client/Server)
- P2P模型(Peer - to - peer)
客户/服务器(C/S)模型
服务器
提供计算服务的设备。
服务器功能:
- 永久提供服务
- 永久性访问地址/域名
客户机
请求计算服务的主机
客户机的功能:
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
- 不与其他客户机直接通信
应用
Web,文件传输FTP,远程登陆,电子邮件
P2P模型
也叫做对等模型。不存在永远在线的服务器
每个主机既可以提供服务,也可以请求服务
任意端系统/结点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
可扩展性好
网络健壮性强
域名解析系统DNS
DNS系统
域名
顶级域名:
- 国家顶级域名:cn,us,uk
- 通用顶级域名:com, net, org, gov, int, aero, museum, travel
- 基础结构域名/反向域名:arpa
二级域名:
- 类别域名:ac, com, edu, gov, mil, net, org
- 行政区域名:用于我国各省,自治区,直辖市 bj, js
- 自己注册:cctv等(全球唯一)
三级域名
四级域名
域名服务器
- 根域名服务器:
- 顶级域名服务器:管理该顶级域名服务器注册的所有二级域名
- 权限域名服务器:负责一个区的域名服务器
- 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
域名解析过程
- 递归查询
- 迭代查询
文件传输协议FTP
- 文件传送协议FTP(File Transfer Protocol)
- 简单文件传送协议TFTP(Trivial File Transfer Protocol)
文件传送协议FTP(File Transfer Protocol)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。
FTP服务器和用户端
FTP是基于客户/服务器(C/S)的协议。
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。
FTP工作原理
- 登录:ftp地址:用户名&密码,匿名登录
- FTP使用TCP实现可靠传输
电子邮件
电子邮件:
- 信封
- 内容:包括首部(给谁,主题)和主体
电子邮件系统组成结构
用户代理 --- 电子邮件客户端软件(Foxmail,Outlook)
功能:
撰写,显示,处理,通信
邮件服务器
功能:
- 发送&接收邮件
- 向发件人报告邮件传送结果
C/S
简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。
SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
TCP连接,端口号25,C/S
SMTP通信三个阶段:
连接建立->邮件传送->连接释放
SMTP缺点
- SMTP不能传送可执行文件或者其他二进制对象
- SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
- SMTP服务器会拒绝超过一定长度的邮件。
通用因特网邮件扩充MIME
使电子邮件系统可以支持声音,图像,视频,多种国家语言等等,使得传输内容丰富多彩。
邮局协议POP3
POP3工作方式
- 下载并保留(在服务器)
- 下载并删除
网际报文存取协议IMAP
IMAP协议比POP协议复杂。当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WIFI的时候再下载附件)。
基于万维网的电子邮件
万维网和HTTP协议
万维网WWW(World Wide Web)是一个大规模的,联机式的信息存储所/资料空间,是无数个网络站点和网页的集合。
URL:
统一资源定位符URL,唯一标识资源,URL不区分大小写。
URL一般形式:
<协议>://<主机>:<端口>/<路径>
http:域名
ftp:IP地址
用户通过点击超链接获取资源,这些资源输入URL超文本传输协议(HTTP)传送给使用者。
万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网稳当所主流的主机运行服务器程序。
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。
超文本传输协议HTTP
HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
用户浏览页面的方法:
- 输入URL
- 点击超链接
具体过程:
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
HTTP协议特点
- HTTP协议是无状态的。但是在实际工作中,一些万维网站点常常希望能够识别用户。Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如”123456“)的访问记录,从而提供个性化服务。
- HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。
HTTP的连接方式
- 非持久连接
- 持久连接
HTTP协议报文结构
HTTP报文(包括请求报文,响应报文),HTTP报文时面向文本的,因此在报文中的每一个字段都是一些ASCII码串
状态码:
- 1xx表示通知信息的,如请求收到了或正在处理。
- 2xx表示成功,如接收或知道了
- 3xx表示重定向,如要完成请求还必须采取进一步的行动
- 4xx表示客户的差错,如请求中有错误的语法或不能完成
- 5xx表示服务器的差错,如服务器失效无法完成请求