1.5 MiB
应用层
应用层对应用程序的通信提供服务。
传输层功能:
- 文件传输、访问和管理。
- 电子邮件。
- 虚拟终端。
- 查询服务与远程作业登陆。
网络应用模型
C/S模型
客户/服务器模型中服务器提供计算服务的设备,而客户指请求计算服务的主机。
服务器的特点:
- 永久提供服务。
- 永久访问地址/域名。
客户机的特点:
- 与服务器通信,使用服务器提供的服务。
- 间歇接入网络。
- 可能使用动态IP地址。
- 不能直接与其他客户机通信。
应用:Web、FTP、电子邮件等。
P2P模型
对等模型也可以看作C/S模型的变形
对等模型的特点:
- 不存在永远在线的服务器。
- 每个主机既提供服务也可以提供服务。
- 任意端系统或结点之间可以直接通信。
- 结点间歇接入网络。
- 结点可能改变IP地址。
- 扩展性好。
- 网络健壮性强。
DNS
域名系统将域名转换为IP地址。域名方便记忆。
域名
域名从右到左级别降低,最右边的是顶级域名,如<www.baidu.com>,com就是顶级域名,baidu就是二级域名,www就是三级域名。其实com后面应该有一个点,这个点就是根。
顶级域名分为:
- 国家顶级域名:cn,us等。
- 通用顶级域名:com(商业组织),net(信息服务提供机构),org(非盈利机构),gov(政府),int(国际组织),aero(航空企业),museum(博物馆),travel(旅游业)等。
- 基础结构域名/反向域名:arpa。
二级域名分为:
- 类别域名:ac(科研机构),com(盈利机构),edu(教育机构),net(信息服务提供机构),org(非盈利机构),gov(政府),mil(国防机构)。
- 行政区域名:用于省市如bj等。
- 自主注册域名,要求全球唯一。
DNS服务器
- 根域名服务器:知道所有顶级域名服务器域名与IP地址,一共13个根域名服务器,A到M。
- 顶级域名服务器:管理该顶级域名服务器注册的所有二级域名。
- 权限域名服务器:负责一个区(域)的域名服务器。
- 本地域名服务器:当一个主机发出DNS查询请求时,这个请求报文就发送给本地域名服务器,是最近的服务器。
域名解析过程
- 递归查询:本地域名服务器查找根域名服务器,根域名服务器查找顶级域名服务器,顶级域名服务器查找权限域名服务器,最后得到的结果再由权限域名服务器到顶级域名服务器到根域名服务器到本地域名服务器最后到主机。(靠别人)
- 迭代查询:本地域名服务器查找根域名服务器,本地域名服务器查找顶级域名服务器,本地域名服务器查找权限域名服务器。(靠自己)
为了解决查询速度过慢,高速缓存可以存储域名与IP地址值。
文件传送协议
分为文件传送协议FTP和简单文件传送协议TFTP。
FTP协议
- 提供不同种类主机系统之间的文件传输能力。
- FTP基于C/S模型。用户通过一个客户机程序连接至远程计算机上运行的服务器程序。依照FTP协议提供服务,进行文件传输的计算机就是FTP服务器,连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP服务端。
FTP协议工作原理
- 登录(用户名+密码或匿名登录)。
- 使用TCP协议提供可靠传输。
- 服务器进程:1个主进程与n个从属进程提供服务。
为什么有匿名登陆:对于一些公共服务器来说,增加验证阶段就是增加资源开销,减少验证阶段就可以节省资源来更好地服务,使用特殊用户名anonymous。
主进程和从属进程的区别:主进程是打开端口,让外部发送的数据可以进来,并且将这些数据逐个分配各从属进程。从属进程则是单独为这些数据服务。
FTP协议连接流程
- 客户端和服务器端先建立TCP连接,端口是21,称为控制连接。
- 然后看情况是主动建立连接还是被动建立连接。
- 主动建立连接是指服务器端主动发送请求和客户端进行连接,此时端口号固定是20。
- 被动连接是指客户端发送请求和服务器端建立数据传送连接,此时端口号是不确定,有两者协商得到,一般大于1024。
- 数据传输完成之后,数据连接断开,控制连接继续保持,直至两边发送断开请求。
数据连接与控制连接都属于从属进行,控制连接始终保持,数据连接只保持一会。
FTP协议传输模式
- 文本模式:ASCII模式,以文本序列传输数据。
- 二进制模式:Binary模式,以二进制序列传输数据。
TFTP协议
TFTP协议了解即可。
特点
- 简单文件传送协议端口号为69。
- 每次传输的数据报文中包含512字节,最后一次可不足512字节。
- 数据报按序编号,从1开始。
- 支持ASCII码或二进制传输。
- 可对文件进行读写。
- 首部简单。
- 使用C/S模型。
- 使用UDP数据报。
优点
- 适用于只支持UDP协议的环境,可以同时向许多机器下载。
- 占用的内存很小且很容易实现,对于小型计算机或特殊设备非常有利。
缺点
- 需要自己实现差错改正。
- 只支持文件传输而不支持交互。
- 没有很大的命令集,无法列目录,也无法用户身份鉴定。
TFTP协议工作流程
- 客户进程发送一个读/写请求报文给TFTP服务器进程,端口号为69。
- TFTP服务器选择另一个端口和客户进程通信。
- 传输文件长度若正好是512的整数倍,则传输完毕后还要发送一个只含有首部而无数据的报文。
- 传输文件长度若不是512的整数倍,则最后一个报文数据部分不满512字节,正好作为文件结束标志。
TELNET协议
远程终端协议(终端仿真协议)让用户使用TCP连接登录到远地主机。其定义了数据和命令应该如何通过互联网,即网络虚拟终端NVT。
现在这个协议很少使用了。
WWW与HTTP
WWW
- 万维网WWW是一个大规模联机式的信息储藏所,是无数个网络结点与网页的集合。
- 是以C/S方式工作,浏览器就是客户端,文档所在的主机允许服务器程序。
- 用户可以点击超链接获取资源,是通过超文本传输协议HTTP传输。
- 万维网使用超文本标记语言HTML使得网页设计者可以从一个页面跳转到另一个页面并能显示页面。
URL
统一资源定位符唯一标识资源,一般形式是:<协议>://<主机>:<端口>/<路径>。
URL不区分大小写。
URL可以使用HTTP也可以使用FTP。
HTTP协议
- 超文本传输协议定义了浏览器怎样向万维网服务器请求文档,以及服务器如何传输文档。
- 服务器监听TCP运行于80端口。
- HTTP可以不一次性下载完页面的所有资源,可以只下载文本部分,其他音频视频等待用户下一步请求之后再传输。
HTTP协议工作流程
- 浏览器分析URL。
- 浏览器向DNS请求解析IP地址。
- DNS解析出IP地址。
- 浏览器与服务器建立TCP连接。
- 浏览器发出取文件命令。
- 服务器响应。
- 释放TCP连接。
- 浏览器显示。
HTTP协议的特点
- 无状态(即无法记忆用户),如果需要记忆就需要使用Cookie,是存储在用户主机的文本协议。
- HTTP协议采用TCP连接,但是HTTP协议本身无连接,即交换HTTP报文之前不需要先建立HTTP连接。
HTTP协议的连接
HTTP连接包括:
- 持久连接Keep-alive:
- 非流水线。
- 流水线。
- 非持久连接Close。
时间连接较长,每次需要2RTT+文档接收时间。
这个图片是非流水线式,如果是流水线则一次性可以发送多个请求。
HTTP协议报文
HTTP报文分为请求报文和响应报文,因为其面向文本,所以报文中的每一个字段都是ASCII码串。
- 请求报文与响应报文的第一行叫做开始行,用于互相区分。
- 请求报文的方法是指命令,就是对所请求的对象进行什么操作,如获取/删除等等。
- URL就是资源标识符。
- 版本是指使用的是什么版本的HTTP协议。
- CRLF标识一行的结束。同时,在整个首部行结束时,为了区别首部行和实体主体还会有一行单独的CRLF。
- 首部行用于说明浏览器、服务器和报文主体的一些信息。
- 状态码,表明服务器当前的状态:
- 1xx表示通知信息的,如请求收到了或正在处理。
- 2xx表示成功,如接受或知道了。
- 3xx表示重定向,如要完成请求还必须采取进一步的行动。
- 4xx表示客户的差错,如请求中有错误的语法或不能完成。
- 5xx表示服务器的差错,如服务器失效无法完成请求。
电子邮件
电子邮件格式
- 信封:收件人的邮箱等。
- 内容:
- 首部:发送人的邮箱;主题等。
- 主体:邮件内容。
电子邮件系统组成结构
用户代理的四个功能:
- 撰写就是给用户编辑信件的环境。
- 显示就是可以看到自己写的和自己收的信件内容。
- 处理就是对信件进行操作,包括删除,打印,转发等等。
- 通信就是可以将邮件发送到邮件服务器当中,同时可以从邮件服务器当中读取邮件。
邮件服务器的功能:
- 邮件服务器端的发送和接受是指从自己的用户代理处接收邮件,之后向对面的邮件服务器发送邮件。
- 邮件服务器的报告邮件发送结果就是投递是否成功这种情况。
- 邮件服务器既可以作为客户端又可以作为服务器端,使用的是C/S方式。
协议:
- 发邮件用的是SMTP。
- 收邮件的是POP3或者IMAP。
SMTP协议
简单邮件传送协议规定了两个互相通信的SMTP进程之间应该如何交换信息。
建立在TCP连接上,使用的端口号为25。
使用C/S模型,负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。
这里STMP客户和服务器不是固定死的,可以也可以成为服务器,服务器也可以成为用户,由发送方和接收方决定,发送方就是客户,接收方就是服务器。
SMTP协议通信
SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。具体的过程了解就可以。
令发送方邮件服务器为A,接收方邮件服务器为B。
- 连接建立:
- 发送方将邮件发送给A(客户)的邮件缓存中。
- 每隔一段时间A就会扫描缓存,如果有邮件就准备使用SMTP协议与25号发送,与B建立TCP连接。
- B发出应答信息:220 Service ready,表明可以发送。
- 然后A向B发送一个HELLO命令并附上发送方的主机名。
- 如果B有能力接收邮件,就应答:250 OK。否则就应答:421 Service not available。
- 邮件发送:
- A会向B发送一个命令:MAIL FORM:<邮件发送者地址>。
- 如果B能接收,就返回:250 OK,如果不能接收,就返回不能返回的原因的数字代码和英文说明。
- A收到允许发送的命令后,会发送多个RCPT命令:RCPT TO:<邮件接收者地址>,表示发送给谁。
- 如果B接收到并确认,就返回:250 OK,如果B不能接收,就返回:550 No such user here。
- A发送B一个DATA命令,表示要开始传输数据了。
- B返回:354 start mail input;end with <CR><LF>.<CR><LF>。表示B同意传输。
- A开始传输数据。
- A发送命令:<CR><LF>.<CR><LF>表示数据传输已经结束。
- B返回:250 OK表示明白传输已经结束。
- 连接释放:
- 邮件发完,A发送QUIT命令表示要释放连接。
- B返回:221表示同意释放TCP连接。
MIME协议
SMTP的缺点:
- 不能传送可执行文件或其他二进制对象。
- 仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
- SMMTP服务器会拒绝超过一定长度的邮件。
通用因特网邮件扩充协议改善SMTP发送数据的缺点,是SMTP的功能性扩展。
MIME协议已经逐渐开始应用到浏览器当中,通过对不同文件类型用不同的标识符标识,来让浏览器读取通过MIME的相关文件。
POP协议
邮局协议现在一般是POP3。建立于TCP连接上,端口号是110,使用C/S模型。
工作方式:
- 下载并保存在服务器。
- 下载并删除。
IMAP协议
网际报文存取协议比POP协议更复杂。
当客户端打开IMAP服务器邮箱时,用户可以看到邮件的首部,只有打开某个邮件时才上传到用户本地计算机上。
可以在不同地方不同的计算机上随时处理邮件,还可以只读取邮件的一部分。
DHCP协议
动态主机配置协议用于动态分配$IP$地址、子网掩码与默认网关等,使用客户/服务器方式,客户端与服务端通过广播方式进行交互,基于$UDP$协议(因为没有$IP$地址所以无法建立连接)。
提供即插即用机制,允许地址重用、移动用户加入网络、在用地址续租。
工作流程:
- 主机广播“$DHCP$发现报文”,寻找网络中的$DHCP$服务器,从其中获得一个$IP$地址。
- $DHCP$服务器收到“$DHCP$发现报文”后,广播“$DHCP$提供报文”,其中包括提供$DHCP$客户机的$IP$地址与配置信息。
- $DHCP$客户机收到“$DHCP$提供报文”,接收$DHCP$服务器所提供的相关参数,客户机广播“$DHCP$请求报文”,向$DHCP$服务器请求提供$IP$地址。
- $DHCP$服务器广播$DHCP$确认报文,将$IP$地址分配给$DHCP$客户机。