计算机网络应用层协议——《计算机网络:自顶向下方法》笔记

计算机网络应用层协议——《计算机网络:自顶向下方法》笔记计算机网络在应用层的协议可以分为用户——服务器结构的协议(C/S)和P2P结构的协议。《计算机网络:自顶向下方法》详细介绍了两种结构的应用层协议。

计算机网络在应用层的协议可以分为用户——服务器结构的协议(C/S)和P2P结构的协议。HTTP、SMTP和DNS都是C/S结构的协议,前两者采用TCP的传输层协议确保可靠的数据传输,DNS在传输层采用UDP协议。

socket套接字

网络应用程序是成对的一组进程,在C/S体系结构下就是客户端程序和服务器端程序。socket套接字是应用层进程和传输层的接口,网络总是把应用层进程的报文通过套接字推到传输层的TCP,然后客户端通过TCP将报文传输到服务器端的传输层,服务器同样将报文由服务器的套接字推到服务器的应用层进程。这样作为应用层和传输层接口的套接字被称为应用程序编程接口(Application Programming Interface,API)

HTTP

HTTP协议是典型的C/S结构的应用层协议,Web浏览器作为HTTP的客户端,Web服务器作为HTTP的服务器端。
HTTP只会发送两种报文,即请求报文和响应报文。请求报文由请求行、首部行和实体体(Entity body)组成,响应报文由状态行、首部行和实体体组成。请求报文如果使用GET方法一般实体体为空,如果使用POST方法实体体为用户传递的表格(如搜索引擎中输入的内容)。响应报文的实体体包含服务器返回的文件内容。
浏览器在创建TCP连接时会经历“三次握手”,即客户端发送的TCP请求报文,服务器端发送的TCP响应报文以及客户端发送的确认报文,客户端的请求报文会在第三次握手时随着确认报文一同发送。HTTP一般采用持续链接的方式管理TCP,即连续几次客户端对对象的请求会在同一个TCP连接中传输。

SMTP

SMTP的基本通信模型如下:
发送方用户代理->发送方邮件服务器->接收方邮件服务器->接收方用户代理
用户代理就是如qq邮箱这样可以让用户编辑、接受、发送、删除和管理邮件的软件,邮件服务器含有邮件排队队列和用户的邮箱,当发送方发送的邮件无法到达接收方的邮件服务器时,该邮件就留在排队队列里不断尝试发送,如果一定时间后仍然无法送达,则删除该邮件。如果发送方的邮件送达了接收方的邮件服务器,该邮件就会分发到接收方的邮箱中,等待接收方查阅。
SMTP和HTTP最主要的不同点在于HTTP是一种拉协议,即Web服务器创建网页文件后留在服务器内,等待用户(浏览器)发起对页面的请求后再响应文件;相反,SMTP是一种推协议,用户就是把邮件推向网络的一方。正是由于这一点,邮件发送到接收方邮箱后需要接收方使用一种不同于SMTP协议的查阅协议,因为查阅邮件是一种“拉行为”,而SMTP却是一种推协议。
这种用于访问邮件的协议有POP3、IMAP和HTTP等。值得注意的是,现在大多数用户代理都支持用Web访问邮件,即访问协议采用HTTP,这种情况下发送方的用户代理和发送方的邮件服务器之间采用的也是HTTP协议,而非SMTP;但是两个邮件服务器之间仍然采用SMTP协议。

DNS(Domain Name System)

不同的主机由各自的IP地址标识出各自在网络中的位置,但是人类通常善于记忆主机名而非32比特的IP,因此DNS服务可以提供从主机名到IP地址的映射。
将所有主机名和IP地址的映射存储到一个服务器中是一个很有吸引力的设计,但是它会面临单点故障,流量、时延过大等问题,因此DNS采用分布式系统的设计,所有的DNS服务器被分为三层:根DNS服务器,顶点域DNS服务器和权威DNS服务器。三层之中,上一层的服务器会存储下一层某个服务器和其对应IP地址的映射,权威DNS服务器提供所查找主机的主机名和IP映射的记录。除了这三层服务器,DNS还配有本地DNS服务器,本地服务器作为一个代理,为应用程序向DNS系统发出请求。
应用程序向DNS请求某一主机的IP地址时,先向本地DNS服务器发出请求,本地服务器再依次向三层DNS服务器发出请求,最后将结果返回给应用程序。这样会产生大量的流量,为了减少网络中的流量DNS采用了DNS缓存的方法,即各个服务器可以将最近得到的主机和IP地址的记录缓存下来,这样下一次再收到相同请求时就可以直接发挥该记录而不需要再向后面迭代。这种缓存的思想也应用在了HTTP协议中,Web缓存(代理服务器)同样可以减少网络中的流量。

P2P

之前我们讲的都是采用了C/S体系结构的应用层协议,C/S结构极度依赖于单个的服务器,而P2P结构可以最大限度地降低对服务器的依赖(甚至没有依赖)。这是因为P2P结构有极强的自扩展性,即一台主机进入网络后会产生对流量的需求,但它本身也可以作为流量的生产者,由在一定程度上抵消了这种需求。BitTorrent文件传输是一种典型的P2P协议。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/36924.html

(0)
上一篇 2023-11-11
下一篇 2023-11-12

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注