计算机网络学习-应用层笔记

1.对于许多即时讯息应用而言,采用的是混合体系结构。服务器主要用来跟踪用户之间的IP地址,但用户与用户之间的报文不经过服务器,而是由一个用户直接发给另一个用户。(猜想QQ就是这样实现通信的)

2.具有吞吐量要求的应用程序被称为带宽敏感的应用。比如现在大多数多媒体应用(视频播放这类应用要求具有一定的吞吐量才能拥有良好的画质与播放效果),而弹性应用能根据情况或多少少地利用可供使用的吞吐量。电子邮件,文件传输以及web传送都属于弹性应用。(什么意思呢?比如我们下载文件时,速度快慢并不会影响我们最终的下载结果,但会影响最终的下载时间,所以针像这类应用,我们只需要让它保证它的底层协议是可以可靠传输的就行了,当然谁都不会嫌网速太快),这里需要注意一点吞吐量≠网速。为什么这样说呢?吞吐量是由所有链路的速率的最小值来决定的,而现在的网络核心链路都是非常快的,为啥我们每家每户的宽带可以根据不同价格定位不同速度呢?主要原因是接入网链路的速率远低于核心网络链路速率,所以吞吐 量就由接入链路决定了,这也就是为什么我们办宽带时,我们可以要求办10M,50M,百米不同规格的原因,ISP根据不同规格来进行定价。我们办的宽带越快,接入链路的速率就越快,整体的吞吐量就越高。

3.今天的互联网通过几种不错的设计技巧会为带宽敏感的应用提供良好的服务,但并不为吞吐量和定时做任何保证。

4.因为TCP需要“三次握手”以及拥有拥塞控制机制,建立连接需要时间,同时拥塞控制又会根据网络情况来调整发送端的发送速率,所以针对那些吞吐量较大的应用(比如视频播放软件)有时候不太适合用TCP。

5.数据在传输层协议中,一般都是直接以明文传输的。如果想要对数据进行加密的话,处于应用层之上的SSL可以为TCP提供安全保障,在传输数据时进行加密,接收数据时进行解密。(需使用专用的SSL套接字)

6.Web和文件传输采用了TCP。这些应用采用了TCP的主要原因是TCP提供了可靠数据传输服务,确保所有数据最终到达目的地。因为互联网电话应用(如Skype的)通常能够容忍某些丢失但要求达到一定的最小速率才能正常工作,所以因特网电话应用的开发者更愿意采用UDP,从而设法避开TCP的拥塞控制机制和分组开销。但许多因为防火墙被配置成阻挡被配置成阻挡(大多数类型的)UDP流量,所以因特网应用通常设计成UDP通信失败就使用TCP作为备份。

7.web页面是由对象组成的。一个对象可以是一个HTML文件,一张图片,一个视频。这些对象由URL来进行定位。也就是说一个网页页面最基本的框架是一个HTML基本文件,里面存在对各个对象的引用。例如http://www.someSchool.edu/someDepartment/picture.gif,其中www.someSchool.edu是主机名(最终会由DNS服务器解析为IP地址),/ someDepartment /图片。 GIF是路径名.someDepartment是一个基本的HTML文件,picture.gif是这个文件上图片对象的引用。

8.服务器向客户发送被请求的文件,而不存储任何有关该客户的状态信息。假如某个特定的客户在短短的几秒钟内两次请求同一个对象,服务器并不会因为刚刚为该客户发送了对象而不进行响应,而是重新发送一个对象给客户。就像忘记之前做过的事一样,因为HTTP服务器并不保存关于客户的任何信息,所以我们说HTTP一个的英文无状态协议

9.http的持续连接与非持续连接:

   假设我们有一个网页,上面有10个图片对象

    ①HTTP客户进入端口号80发起一个到服务器www.someSchool.edu的TCP连接。该端口号是HTTP的默认端口。在客户和服务器上分别有一个套接字与该连接相关联。

    ②HTTP客户经它的套接字向该服务器发送一个HTTP请求报文。请求报文中包含了路径名/ SomeDepartment/home.index

    ③HTTP服务器进程经它的套接字接收该请求报文,从其存储器(RAM或磁盘)中检索出对象www.someSchool.edu/someDepartment/home.index,在一个HTTP响应报文中封装对象,并通过其套接字向客户端发送响应报文。

    ④HTTP服务器进程通知TCP断开该TCP连接。(但是直到TCP确认客户已经完整地收到响应报文为止,它才会实际中断连接。)

    ⑤HTTP接收响应报文,TCP连接关闭。该报文文指出封装的对象是一个HTML文件,客户从响应报文中提取出该文件,检查该HTML文件,得到10个JPEG图形的引用。

   ⑥对每个引用的JPEG图形对象重复前四个步骤。

非持续连接:每个TCP连接在传输完对象之后会关闭也就是说每有一个请求就要建立一个TCP连接,也就是说对于这个例子就要建立11个TCP连接,而对于每个TCP连接,都需要三次握手。前两次握手花费一个RTT,第三次握手以及它的响应报文又花费一个RTT,然后就是传输文件的时间。总共开销为2个RTT +传输文件的时间。对于每个对象都要加上这个时间。

持续连接:在服务器做完响应之后,TCP连接还一直存在,之后所有的请求可以都通过这个TCP连接传输。

10.针对不同的应用有着不同的应用层协议,比如网络(万维网)的应用层协议的HTTP,不同的应用层协议定义了不同的报文请求相应格式,以及报文中各个字段的含义,以及何时发送报文,对报文进行响应的规则。

  HTTP定义了浏览器与网络服务器之间传输的报文格式和序列。

请求报文:

 得到:当点击网页或者在搜索栏上输入网址时,会发出一个GET请求报文,

 后:当我们在网页上输入了信息,而传输的结果取决于用户输入的信息时,发送的就是后请求报文例如登录账号,或填注册信息这类的操作

 头:使用头有点像得到,会返回响应报文,但是不会返回对象主要用于调试。

 提出:允许用户上传文件到网络服务器指定的目录下

删除:允许用户或应用程序删除网络服务器上的对象。

响应报文:

状态码

200 OK请求成功信息在返回的响应报文中

301永久移动请求的对象已经被永久转移了,新的URL定义在响应报文中的位置首部行中,客户软件将自动获取新的URL。

400 Bad Request一个通用差错代码,指示该请求不能被服务器理解

404 Not Found:被请求的文档不在服务器上

505 HTTP版本不支持:该服务器不支持请求报文的HTTP协议版本

304 Not Modified它告诉代理服务器可以使用该对象(代理服务器中的对象还没过期)

11.FTP与HTTP的区别

  FTP使用用户标识和口令,登录FTP客户端。然后用户提供远程用户的主机名,然后与那个主机建立TCP连接。建立连接之后就可以与远程用户进行传输文件。

  FTP与HTTP的相同之处:

  1.FTL与HTTP都属于文件传输协议,都是采用TCP连接进行传输

  2.它们都是在传输完一个文件之后断开连接,所以数据连接都属于非持续连接(当然HTTP也有持续连接的)。

  不同之处:

  1.FTP使用两个TCP连接进行传输,一个是控制连接复制传输用户标识,口令,改变远程目录的命令(get put存放还是获取文件)。另一个TCP连接负责传输文件。因为FTP是通过一个独立的TCP控制连接,所以我们也称FTP的控制信息是带外的,而HTTP的控制信息是与文件一起通过一个TCP传输的,所以我们称HTTP是带内发送控制信息的。

  2.FTP服务器必须在整个会话期间保留用户的状态。特别是,服务器必须把特定的用户账号与控制连接联系起来,随着用户在远程目录树上徘徊,服务器必须追踪用户在远程目录树上的当前位置。对每个进行中的用户对话的状态信息进行追踪,大大限制了FTP同时维持的会话总数。而另一方面,前面讲过HTTP是无状态的,即它不必对任何用户状态进行追踪。

 3.请求报文形式不同

   USER username:用于向服务器传递用户指令

   PASS passward:用于向服务器发送用户指令

   LIST:用于请求服务器回送当前远程目录中的所有文件列表该文件列表是经一个(新建且非持续)数据连接传送的,而不是在控制TCP连接上传送。

  RETR filename:用于从远程主机当前目录检索(即获取)文件。该命令引起远程主机发起一个数据连接,并经该数据连接发送所请求的文件。

 STOP filename:用于在远程主机的当前目录上存放(即put)文件。

  响应报文状态码:

  331用户名OK,Passward reuired(用户名OK,需要口令)

  125数据连接已打开;传输启动(数据连接已经打开,开始传送)

  425无法打开数据连接(无法打开数据连接)

  452写入文件时出错(写文件差错)

12.总结一个发邮件的过程

   概念:

    ①用户代理:比如微软的展望,Apple邮件,通过用户名和口令登录,邮件代理可以对邮件进行阅读,转发,回复,保存 

    像现在基于网络的电子邮件系统比如QQ邮箱。网页就是用户代理,我们通过QQ号和密码登录与腾讯的服务器进行验证。

   ②邮件服务器:负责收发邮件,当在用户代理上撰写完电子邮件后发出是先发到自己的邮件服务器上,然后由邮件服务器转发到指定的邮件服务器上。至于为什么不直接由用户代理发到指定邮件服务器上,这是因为当我们的指定邮件服务器关闭时,我们的发送不一定会成功。所以如果我们先发到自己的邮件服务器上,再由自己的邮件服务器转发,如果对方的邮件服务器关闭时,邮件会先放到一个报文队列,每隔一段时间重新发,直到对方的邮件服务器打开并接收。如果几天之后依然无法发送成功,则自己的邮件服务器会发送邮件给用户本身并提醒发送失败。

   客户在各自的邮件服务器上会有一个邮箱管理和维护发送给客户的邮件。

  每台邮件服务器即担任了客户端也担任了服务器端的职责,因为它不仅要接收邮件也要发送邮件。

  ③SMTP简单邮件传输协议 

过程:

    当一个调用它的邮件代理程序并提供鲍勃的邮件地址,撰写报文,然后指示用户代理发送该报文。

    一个的邮件代理程序把报文发送给她的邮件服务器,在那里该报文被放进报文队列。

   运行在一个的邮件服务器上的SMTP客户端发现了报文队列中的这个报文,它就创建一个到运行在对方邮件服务器的SMTP服务器的TCP连接。

   在经过一系列初始SMTP握手后,SMTP客户通过该TCP连接发送一个的报文。

  在对方的邮件服务器上,SMTP的服务器端接收该报文。对方的邮件服务器然后将该报文放进对方的邮箱中。

  等到对方登录时,便可以通过用户代理去查看该邮件

?由于SMTP是一个推协议,那用户代理如何访问邮箱中的邮件呢通过邮件访问协议:

  通过邮件代理程序与邮件服务器建立一个TCP连接,可以根据配置来进行读取如下载并删除,下载并保存,后者可以使得之后换到其他地方依然能继续访问该邮件,通过命令可以管理邮件。

POP3协议允许电子邮件客户端下载服务器上,但是在客户端的操作(如移动邮件,标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的。

IMAP提供webmail与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。

同时,IMAPPOP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间,主题,发件人,大小等信息后才作出是否下载的决定。此外,IMAP更好 地支持了从多个不同设备中随时访问新邮件。

IMAP及POP3有什么区别?
   

总之,IMAP  整体上为用户带来更为便捷和可靠的体验POP3  更易丢失邮件或多次下载相同的邮件,但  IMAP  通过邮件客户端与网络邮件之间的双向同步功能很好地避免了这些问题

提供汇款凭证的扫描件格式要求及实例 注:若在网络邮箱中设置了“保存到已发送”,使用客户端POP服务发信时,已发邮件也会自动同步到网页端“已发送”文件夹内。

基于网络的电子邮件:

   用户代理是浏览器,用户和其他远程邮箱之间的通信是通过HTTP进行的。当一个收件人想从他的邮箱中访问一个报文时,该电子邮件报文从他的邮件服务器发送到它的浏览器,使用的是HTTP而不是POP3或者IMAP。当我要发一封电子邮件报文时,该电子邮件报文从我的浏览器发到我的邮件服务器中是通过HTTP而不是SMTP 。然而,我的邮件服务器与其他的邮件服务器之间接收发送邮件时,任然使用的是SMTP。

 

14.摘抄书上一段文字

  一旦SMTP将邮件报文从爱丽丝的邮件服务器交付给鲍勃的邮件服务器,该报文就被放入了鲍勃的邮箱中。在此讨论中,我们按惯例假定鲍勃是通过登录到服务器主机,并直接在该主机上运行了一个邮件阅读程序来阅读他的邮件的直到20世纪90年代早期,这都是一种标准方式而在今天,邮件访问使用了一种客户 - 。服务器体系结构,即典型的用户通过在用户端系统上运行的客户端程序来阅读电子邮件,这里的端系统可能是办公室的PC,便携机或则是智能机。通过在本地主机上运行邮件客户程序,用户享受一系列丰富的特性,包括查看多媒体报文和附件的能力。

  假设鲍勃(接收方)在其本地PC上运行用户代理程序,考虑在他的本地PC上也放置了一个邮件服务器时自然而然的事。在这种情况下,爱丽丝的邮件服务器就能直接与鲍勃的PC直接对话了。然而这种方法会有一个问题。前面讲过邮件服务器管理用户的邮箱,并且运行SMTP的客户端和服务器端。如果鲍勃的邮件服务器位于他的电脑上,那么为了能够及时接收任何时候到达的新邮件,他的PC必须总是不间断地运行着并一直保持在线。这对于大多数因特网应用是不现实的。相反,典型的用户通常在本地PC上运行一个用户代理程序,而它访问存储在总是保持开机的共享邮件服务器上的邮箱。该邮件服务器与其他用户共享,通常由用户的ISP(大学或公司)进行维护。

猜想:QQ邮箱的用户代理是网页,用户通过QQ号和密码进行登录当向对方发邮件时,如果对方的邮箱地址也是QQ邮箱的话,通过HTTP协议发到共享的邮件服务器上,根据QQ号发到对应的用户邮箱中。对方登录时直接访问自己的邮箱查看邮件。如果对方不是QQ邮箱的话,那么我们与对方就不处在共享服务器上,我们首先通过HTTP发到我们腾讯的邮件服务器上,然后腾讯的邮件服务器又通过SMTP发到对方主机对应的邮件服务器上,然后对方通过邮件代理程序(也是某个指定网页比如网易163邮箱)进行访问邮件。

15.HTTP与SMTP的区别

   HTTP是一个拉协议,而SMTP是一个推协议

   SMTP必须要求报文格式为7比特ASCII码格式

   对于处理一个既包含图形也可能是其他媒体类型的文档,HTTP把每个对象封装到它自己的HTTP响应报文中,而SMTP则把所有报文对象放在一个报文之中。也就是说HTTP是一个对象一个请求报文,而SMTP是所有对象共用一个请求报文。

16.cookie是怎么一回事?

  答:当你登录某个网站时,服务器端会根据你的账号或者其他元素通过哈希算法得到一个唯一标识(猜想是IP地址+用户名),这个唯一标识码会保存在服务器端的数据库中,本地会保留一个cookie的文件保存该唯一标识由浏览器管理。过一段时间当你再次访问那个网站时,发送的报文中会包含那个cookie的标识,之后你的每步操作都将会与那个标识绑定,并在服务器端记录,然后购物网站可以根据你的消费习惯进行推荐内容。

17.web代理服务器

答:类似CPU的缓存,如果我们配置了代理服务器的话,以后每次访问网页,我们会先向代理服务器发起一个TCP连接,然后向它发出请求报文,如果代理服务器中包含有你显高的HTML文件的话,则直接在响应报文中返回该对象。由于代理服务器是出于局域网中的,所以速度会比你直接向实际的服务器请求快很多。如果代理服务器中没有你想要的页面,则代理服务器会向实际的服务器发出请求(这也是为什么HTTP报文格式中会有一个主机名字段的原因),得到响应报文之后并取出对象在代理服务器保存一份,然后再向用户发响应报文并包含那个对象。这样看来网络代理服务器既是客户也是服务器,当它接收浏览器请求时是服务器,当它向服务器发送请求时,是客户。如果实际服务器的文件更新了,而代理服务器依然保存的是原来的副本咋办,实际上代理服 器会不断检查文件的修改时间(HTTP报文有一个字段叫最后修改时间),代理服务器通过向服务器发送一个条件GET请求报文,去判断哪个最终修改时间字段是否一致,如果一致则返回响应报文状态码304 Not Modified,响应报文并不包含对象。如果最终修改时间不一致的话,响应报文会携带那个对象一起返回。

18.DNS挟持

答:当我们访问非法网页时,网页的代码使得我们的DNS服务器发生了改变,指向黑客指定的服务器。这样当我们进行正常的的域名解析时得到的就不是正确的IP地址。

 

你可能感兴趣的:(计算机网络)