ch2应用层
2.3电子邮件
本节讨论电子邮件的核心,即应用层协议
如果接收方的邮件服务器没有开机,该邮件仍保留
在发送方邮件服务器上,并在以后进行再次传送
SMTP SMTP不使用中间邮件服务器发送邮件
- 邮件不会在某个中间邮件服务器停留
- 持续HTTP和SMTP都使用持续连接
- 都用于从一台主机向另一台主机传送文件
HTTP是拉协议(pull protocol):用户使用HTTP从服务器拉取信息
SMTP是推协议(push protocol):发送邮件服务器把文件推向接收邮件服务器
SMTP使用7位ASCII码格式:
对一些包含了非7位ASCII字符的报文或二进制数据
(如图片、声音),需要按照7位ASCII码进行编码,再
传送。
在接收方需要解码还原为原有报文。
HTTP数据没有该限制。对含有文本和图形 (或其他媒体类型)的文档:
✓HTTP把每个对象封装在它各自的HTTP响应报文中发
送。
✓电子邮件则把所有报文对象放在一个报文中
MIME(多用途因特网邮件扩展):用于非ASCII数据传输。将非ASCII数据编码后传输,接收方再解码还原
◼发送方:用户代理用SMTP将邮件推入其邮件服务器→ 邮件服务器再用SMTP将邮件转发到接收方的邮件服务器
◼ 接收方:通过其用户代理使用一个邮件访问协议(不是SMTP),从其邮件服务器上取回邮件。
取邮件是一个拉操作,而SMTP协议是一个推协议。
四、邮件访问协议
POP3(第三版的邮局协议)
IMAP(因特网邮件访问协议)
HTTP
◼ POP3缺陷:用户读取邮件后,服务器不再保存。
◼ IMAP: 功能强
用户在自己的PC机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样,是一个联机协议。
✓ 未发出删除命令前,一直保存在邮件服务器
DNS:因特网的目录服务
标识主机的两种方式:
✓ 主机名:由不定长的字母和数字组成。便于记忆。如www.yahoo.com路由器处理困难。
✓ IP地址:由4个字节组成,有着严格的层次结构。路由器容易处理。
如IP地址(点分十进制):121|||||||||.7.106.83
网络号 主机号
DNS提供的服务
报文在网络中传输,使用IP地址。
◼ 域名系统DNS (Domain Name System):进行主机名到IP地址的转换。
✓ 一个由分层的DNS服务器实现的分布式数据库。
✓ 允许主机查询分布式数据库的应用层协议。
✓ DNS协议运行在UDP之上,使用53号端口。
✓ DNS通常直接由其他的应用层协议 (包括HTTP、SMTP 和FTP)使用,以将用户提供的主机名解析为IP地址。用户只是间接使用
过程如下:
✓ 用户主机上运行DNS应用的客户机端。
✓ 浏览器从URL中解析出主机名,传给DNS客户机端。
✓ DNS客户机向DNS服务器发送一个包含主机名的请求;
✓ DNS客户机收到含有对应主机名的IP地址的回答报文;
✓ 浏览器向该IP地址指定的HTTP服务器发起一个TCP连接
增加一定时延
根域名服务器:
◼ 如果域名映射未知,联系权威域名服务器。
◼ 获得映射。
◼ 返回对本地域名服务器的映射。
顶级域(TLD)服务器:负责com, org, net, edu等,以及所有顶级国家域 uk, fr, ca, jp.
◼ Network Solutions维护com顶级域服务器 。
◼ Educause维护edu顶级域服务器 。
◼ 权威DNS服务器:某组织的DNS服务器为该组织的服务器(如Web和电子邮件)提供对IP映射的权威主机名 。
◼ 能够由组织或服务提供商维护。
当主机发出DNS请求时,请求被发送到其本地域名服务器
一旦(任何)域名服务器知道了映射,它将缓存该映射
顶级域服务器通常缓存在本地域名服务器中
◼ 因此不经常访问根域名服务器
Internet采用了层次结构的命名方法。任何一个连接在Internet上
的主机或路由器,都有一个惟一的层次结构的名字,称为域名。
域名即主机名。
➢域是指名字空间中一个可被管理的子空间。域还可以进一步划分
为子域。
3.. 域名的作用
- 32bits的IP地址难于记忆,对于用户而言,用文本描述的域名地址更易于记忆。
- 具有层次结构,提供网络管理组织信息。
- 便于网络管理和维护。主机的IP地址可以随网络变化,但是域名可以保持不变。
层次结构的域名分为若干等级构成一棵命名树
- cn下注册的二级域名
“类别域名”和“行政区域名”两类
递归查询(Recursive Query)
客户机只需接触一次DNS服务器系统,就可得到所需的结点地址。
如果DNS服务器内没有所需要的数据,则DNS服务器会代替客户机向其他的DNS服务器查询
迭代查询(Iterative Query)
2.5 套接字编程:生成网络应用
两种传输服务的两种套接字类型:
◼ UDP: 不可靠的数据报。
◼ TCP: 可靠的,面向字节流的。
一、UDP套接字编程
UDP: 客户端和服务器之间没有“连接”
UDP: 传输的数据可能会丢失或乱序接收应用观点---提供不可靠的字节组(“数据报”)传输
Comments | NOTHING