计算机网络之应用层
两个位于因特网上的进程通过socket通信;
socket是建立网络应用程序的可编程接口(API);
socket是应用程序进程和运输层协议的接口;
根据程序不同的用途选择不同的运输层协议,TCP or UDP;
可以从4个方面考虑:
1.可靠数据传输 交易/视频
2.吞吐量 网络电话/Email
3.定时 游戏/Email
4.安全性
安全性:
TCP和UDP都不能保证安全性,二者都是明文发送。现在出现了SSL,可以对TCP进行加密。SSL不是传输协议,是在应用层的API,用来加密数据。SSL加密后传给TCP;
经典的应用层协议:
HTTP:用于Web;HTTP是一个无状态协议;
非持续性连接:每次连接都使用单独的TCP;
持续性连接:服务器响应后保持TCP连接打开,直到超时;
HTTP请求报文:request head,分为状态行,首部行,实体体,下同;
HTTP响应报文:response head;
cookies:使服务器可以对客户端进行标识;
web缓存器(代理服务器):减少客户请求的响应时间;既是服务器又是客户;减少流量;
FTP:
使用了两个并行的TCP连接,一个控制连接,一个数据链接,FTP客户连接服务器的21号端口,建立一条控制TCP 连接,然后服务器通过20号端口与客户建立一条数据TCP连接,数据TCP连接在传输完一个文件后关闭,传输第二个文件需重开数据TCP连接;
SMTP:用于Email中;
用户代理;
邮件服务器;
邮件访问协议;
基于web的电子邮件;
DNS:一个由分层的DNS服务器实现的分布式数据库;
一个使得主机能够查询分布式数据库的应用层协议;
DNS协议运行在UDP上,使用53号端口;
DNS通常被其他应用层协议使用,将用户提供的主机名解析为IP地址;
主机别名;邮件服务器别名;负载分配
DNS使用了大量的DNS服务器,大致分为3类:
1.根DNS服务器;
2.顶级域DNS服务器;
3.权威DNS服务器;
另还有本地DNS服务器;
DNS查找过程:
首先与根DNS服务器之一联系,根据返回的信息与下一级DNS服务器联系,直到获得IP地址。
DNS缓存:
为了改善延时性能并减少DNS报文数量。本地DNS服务器可以缓存任何信息,下次遇到相同的请求可以直接返回IP,缓存在一段时间后将丢弃。
P2P:
P2P体系结构的扩展性;
BitTorrent是一种用于文件分发的流行P2P协议;
分布式散列表(DHT):分布式、P2P版本的数据库;