计网应用层总结

应用层的几个协议

  1. HTTP
  • HTTP协议。中文叫超文本传输协议。
  • HTTP协议为WEB的应用层协议,它定义了浏览器和服务器之间的报文格式和序列,还定义了WEB客户向WEB服务器请求WEB页面的方式。
  • HTTP协议使用TCP作为它的支撑运输协议。
  • HTTP协议为无状态协议,就是说HTTP服务器并不保存客户的任何信息。
  • HTTP协议的连接方式有两种。1:非持续连接,这种连接方式下,假如客户请求的一个页面包含多个对象,那么客服与服务器之间要进行多次TCP连接,每次TCP连接服务器只发送一个对象后就关闭连接,并且每个TCP连接只发送一个请求报文和一个相应报文。2:持续连接,客户请求一个页面,传送所有报文只使用一个TCP连接。
  • HTTP报文,HTTP请求报文:第一行为请求行,含三个字段,后继为首部行。HTTP响应报文:第一行为状态行,然后六个首部行,然后是实体主体

      2.邮件传输协议

  • SMTP邮件传输协议,该协议也是以TCP为依靠。为将邮件从用户代理送到邮件服务器,从发送方的邮件服务器送到接收方的邮件服务器的的协议
  • SMTP协议是一个“推协议”。因为它只能将邮件报文从用户代理“推”到邮件服务器和从一个邮件服务器推到另一个邮件服务器,而不能将邮件报文从邮件服务器“推”到用户代理,因为邮件报文从邮件服务器到用户代理是一个“拉”的操作
  • A向B发送邮件,首先A调用它的邮件代理程序,提供B的邮件地址,然后让用户代理发送该报文。然后A的用户代理将报文发送给A的邮件服务器,服务器再报文队列中发现该报文后创建一个与B的邮件服务器的TCP连接。
  • 然后经过一些SMTP握手之后A的邮件服务器向B的邮件服务器发送报文,B服务器接收报文然后放入邮箱中
  • POP3协议,它就是将邮件报文从邮件服务器中取出传给用户代理的协议
  • POP3协议有三个阶段,第一个阶段:特许,用户代理发送用户名和口令来鉴别用户。第二个阶段:事务处理,用户代理取回报文,并且可以对其进行删除操作。第三个阶段:更新,这个时侯邮件服务器会删除再第二个阶段被标记为删除的邮件

其他的一些知识点:

  1. cookie,它用来标识用户的身份,是WEB站点用来识别用户的一个唯一的识别码。当用户首次访问某个网站,这个网站会生成一个唯一的识别码,并以此作为索引在它的后端数据库中产生一个表项,然后这个网站的服务器会用一个包含Set-cookie的首部的HTTP响应报文来响应用户的浏览器,然后浏览器收到该报文后就会将这个cookie存到特定的文件中,之后这个用户再访问相同的网站时浏览器就会从文件中取出该cookie并放入HTTP报文的首部行。这样网站就能够根据用户来指定一些不同的推送。
  2. web缓存器,也叫代理服务器。如果某个浏览器被配置了使用代理服务器,那么当用户从这个浏览器请求某个网站的对象时,它将会先建立一个到代理服务器的TCP连接,如果代理服务器上没有请求对象的副本,那么代理服务器将会发起一个到原本应该访问的服务器的TCP连接,然后再发起一个请求该对象的HTTP请求,接收到对象后它先在本地存一个副本,然后再再把对象发送给浏览器。如果说一开始代理服务器上有对象的副本,那么直接将副本发给浏览器就完事了。但其实有副本的话也没这么简单,因为代理服务器上的副本可能已经过期了,就是说在副本存在于代理服务器上的这段时间,原服务器上的该对象内容有更新。为了防止将过期的对象发给浏览器,代理服务器每次接收到请求并且有对象的副本,它还是会发送一个HTTP请求报文给原服务器,但是里面包含了代理服务器上次获得对象副本的时间,如果该副本在那之后没有更新,那么原服务器直接发送一个没有实体主体的HTTP响应报文告诉它没有更新,然后代理服务器收到后就直接把副本发给浏览器了。如果更新了,那么就把对象发给代理服务器,然后代理服务器存下副本再发给浏览器。因为没有更新的话源服务器只是发送一个HTTP头,所以不会花很多时间。
  3. FTP文件传输协议,也是运行在TCP协议上的。但是它用了两个并行的TCP连接来传输文件,一个是数据连接,一个是控制连接。数据连接用来传输数据,控制连接用来传输用户标识以及一些命令,口令。两个连接还有不同的地方就是,控制连接是贯穿整个用户会话期间的,而数据连接在每一次的文件传输中都要建立一个新的(非持续)。
  4. DNS,DNS提供从主机名到IP地址的转换的服务。DNS其实是一个分层的DNS服务器实现的分布式数据库。我们有时候访问网站是通过类似于 www.baidu.com这样的主机名来访问的,但是实际上网站的地址都是通过IP地址来标识的,因为IP地址不好记,所以才有了上面的那种主机名。然后DNS发明就是为了将主机名转换为IP地址。DNS服务器大致分三种:根服务器,顶级域服务器,权威服务器。通过根服务器可以找到顶级域服务器的地址(.com 、.cn、.edu),然后通过顶级域服务器可以找到目标主机的权威服务器(baidu.com、amazon.com),然后通过权威服务器就可以知道目标主机的IP地址。访问一个主机的大概流程是这样的:假如A想知道B的IP地址,那么它先向本地DNS服务器发送一个查询报文(里面含有目标主机名,比如www.baidu.com),然后本地DNS服务器再向根服务器转发该报文,然后根服务器注意到主机名里面的.com ,于是向本地DNS服务器返回一个负责.COM的顶级域DNS服务器的IP地址,然后本地DNS收到后再向那个顶级域服务器发送查询报文,然后该顶级域服务器注意到 baidu.com, 然后用负责该主机的权威服务器的IP进行响应,然后本地DNS再向权威服务器发起询问,然后权威服务器再响应目标主机的IP给它,最后本地DNS再把目标主机的IP响应给请求主机。如果每次都这样查似乎很花时间,所以又有了一个DNS缓存机制,当某个DNS服务器收到一个DNS回答时,它会在自己本地缓存一个主机名到IP的映射,这样当下次有DNS请求到达该主机时它就可以直接返回目标主机的IP,这样就可以节省很多时间。因为主机名到IP之间的映射不是永久的,所以DNS服务器一般在两天之后丢弃缓存的信息
  5. P2P文件分发,连接的双方都既是客户又是服务器,称为对等方。P2P在文件分发中有很大的用处,比如说一台服务器要将一个文件分发给因特网中的若干个用户(有N个用户就要发送N份该文件的副本 ),如果只是服务器将文件发送到网络上,然后各用户再各自从网络上下载这个文件的话,那么从服务器将文件开始发送到互联网到所有用户都收到完整的文件的时间可能就取决于用户里面最慢的那个或者是所有文件副本发到互联网上的时间,这样的话就拖了大家的后腿,并且随着用户的增加,时间会变得非常长。而P2P解决了这个问题,它允许当某个用户已经接收到完整的文件后,它可以帮助服务器向其他用户发送文件的副本。这样的话当用户数量很多时,时间上限也就等于 NF /(U+(U1 +U2 +U3+......UN))  ,N是用户数量,F是文件大小,U是将文件从服务器传出去的时间,U1,U2.....是各个用户接收完文件的时间。这样就算用户数量增多,时间变化也不会太大。
  6. BitTorrent,也是一种P2P协议。参与一个特定的文件分发的所有对等方的文件的集合叫做洪流,洪流中的对等方彼此下载等长度的文件块,一旦某个对等方获得整个文件,它可能离开洪流,也可能继续留在洪流中为其他对等放分发文件块。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值