《计算机网络》学习总结(2)

  接着写计算机网络的知识点,这次写OSI模型中的应用层,也就是最顶层。这一层也是与我们联系最紧密的一层。

应用层

  1.应用层协议原理
    研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络批次通信的程序,而现代网络应用程序体系结构有两大主流结构:客户-服务器(C/S)体系结构或对等(P2P)体系结构。
     (1)客户-服务器体系:服务器总是处于工作之中,并且客户之间相互不能直接通信,必须通过服务器;另外一个特征是该服务器具有固定的、周知的地址,也就是IP地址。
     (2)P2P体系:对等方通信不必通过专门的服务器,自己相互之间就能进行通信交流。
  这里写图片描述
   2.进程通信
     (1)网络应用程序是由成对的进程组成,这些进程通过网络相互发送报文。对每对通信进程,我们将其中的一个标记为客户(client,一般为发起通信的一方),另一个标记为服务器(server,等待联系的一方)。
     (2)套接字:进程通过套接字向网络发送报文和从网络接收报文。套接字就是进程和计算机之间的接口,也是应用层和运输层之间的接口。
     (3)进程寻址:对于需要接收分组的进程,该进程需要一个地址。那么需要定义两种信息:(a)主机地址(也就是IP地址),(b)进程标识符(也就是端口号)。
   3.应用层协议
    定义了运行在不同端系统上的应用程序如何相互传递报文。例如Web的应用层网络协议是HTTP,电子邮件的主要应用层协议是SMTP。
    (1)Web和HTTP:HTTP(超文本传输协议),它是web的核心。HTTP定义了web客户向web服务器请求web页面的方式,以及服务器向客户传送web页面的方式。HTTP使用TCP作为它的支撑运输协议(也就是不用担心数据丢失)。web服务器总是打开的,具有一个固定的IP地址。端口号为80
    注意:HTTP不存储关于该用户的状态信息,也就是说是一个无状态协议。
    <1>HTTP请求报文和响应报文:
    这里写图片描述
    这里写图片描述
    <2>常见的响应状态码:
       200 :请求成功
       301 :请求的对象已被永久转移了
       400 :该请求不能被服务器理解
       404 :被请求的文档不在服务器上
       505 :服务器不支持请求报文使用的HTTP协议版本
    <3>用户与服务器的交互:cookie
      正常情况下,HTTP是不保留用户的信息的,因为是无状态协议。但是一般web服务站点一般希望能标识用户,因此HTTP使用了cookie。cookie技术有4个组件:
        (a)在响应报文中的一个cookie首部行。
        (b)在HTTP请求报文中的一个cookie首部行。
        (c)在用户端系统中保留一个cookie文件,并由用户的浏览器进行管理。
        (d)位于Web站点的一个后端数据库。
        这里写图片描述
    (2)文件传输协议:FTP
      HTTP和FTP都属于文本传输协议,并且有很多共同点,但是也有一些重要的区别。其中最显著的一个不同就是:FTP使用了两个并行的TCP连接来传输文件,一个是控制连接,另一个是数据连接。控制连接用于在两主机之间传输控制信息;数据连接用于实际发送一个文件。端口号为21
      FTP在同一个会话期间,如果用户还需要传输另一个文件,那么FTP就会打开另外一个数据连接(也就是说数据连接是非持续的),而控制连接则是贯穿了整个用户回话期间。而且FTP必须在整个会话期间保留用户的状态,也就是对每个进行中的会话的状态信息进行追踪,这也就大大限制了FTP同时维持的会话总数。从这一点上说,HTTP是不需要对任何用户进行追踪的。
      这里写图片描述
    (3)简单邮件传输协议:SMTP
      SMTP是因特网电子邮件汇总主要的应用层协议,他是用TCP可靠数据传输服务。端口号为25
      注意:SMTP一般不使用中间邮件服务器发送邮件,即使这两个邮件服务器位于地球的两端也是这样。
    这里写图片描述
    SMTP使用的是持续连接,如果发送邮件服务器有几个报文发往同一个接收邮件服务器,它可以通过同一个TCP连接发送这些所有的报文。HTTP也使用持续连接。
    注意一点:从邮件服务器到浏览器以及从浏览器到邮件服务器用的是HTTP,从邮件服务器到邮件服务器用的是SMTP。
  (4)DNS:因特网的目录服务(DNS也是一种应用层协议)
    因特网上的主机可以使用多种标识方式来标识自己,比如主机名或者IP地址。相比之下,人类明显喜欢用主机名,而路由器则喜欢用规则性极强的IP地址。为了折衷这两种方式,我们使用DNS(域名系统)来进行从主机名到IP地址转换的目录服务。
    DNS是:
       <1>一个由分层的DNS服务器实现的分布式数据库
       <2>一个使得主机能够查询分布式数据库的应用层协议
    DNS运行在UDP协议之上,使用53号端口。
    这里写图片描述
  (5)P2P应用:
    <1>第一种应用是文件分发,其中应用程序从单个源向大量的对等方分发一个文件。其中代表协议是BitTorrent协议,这也就是众多高校中的资源论坛使用的。
    <2>第二种应用是分布在大型对等方社区中数据库。相关概念是分布式散列表(DHT)。
  关于应用层的主要知识点大概就是这些,剩下的比如时延、吞吐量等的计算问题,以及P2P中的各种底层原理就不说了,想详细了解的就去看书吧。

猜你喜欢

转载自blog.csdn.net/katrina_ali/article/details/79404974