计算机网络——自顶向下的应用层

一、应用协议原理

1.1 网络应用程序体系结构
  应用程序体系结构由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。
  在客户-服务器体系结构中,有一个总是打开的主机称为服务器,它服务于来自许多其它称为客户的主机的请求,而客户相互之间不直接通信。服务器具有固定的、周知的地址,称为IP地址。配备大量主机的数据中心常被用于创建强大的虚拟服务器。
  在对等【Peer-to-peer,P2P】体系结构中,应用程序在间断来接的主机对之间使用直接通信,这些主机称为对等方。P2P具有自扩展性,即对等方产生工作负载的同时为系统增加服务能力。

1.2 网络应用通信原理
  用操作系统的术语说,进行通信的实际上是进程,一个进程可以被认为是运行在端系统的一个程序。同一端系统上的进程间通信的规则由操作系统确定,而不同端系统上的进程,通过跨越计算机网络交换报文【massage】而互相通信,进程通过套接字【socket】的软件接口像网络发送报文和从网络接收报文。
  在因特网中,主机由其IP地址标识,而一般而言一台主机能够运行许多网络应用,进程由其端口号用于标识。

1.3 应用层协议
  应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文,特别是应用层协议定义了:
   - 交换的报文类型,例如请求报文和响应报文;
   - 各种报文类型的语法,如报文的各个字段及这些字段是如何描述的;
   - 字段的语义,即这些字段中的信息的含义;
   - 确定一个进程何时以及如何发送报文,对报文进行相应的规则。


二、HTTP
  因特网的一个主要的应用,万维网【World Wide Web】极大的改变了人们与工作环境内外交流的方式,将因特网从只是很多数据网之一的地位提升为仅有一个的数据网。

2.1 Web与HTTP
  Web的应用层协议是超文本传输协议【HyperText Transfer Protocal,HTTP】,是Web的核心。Web页面是由对象组成的。一个对象只是一个文件,诸如一个HTML文件,一个JPEG图形等,且它们都可以通过一个URL地址寻址。多数Web页面含有一个HTML基本文件以及几个引用对象。HTML基本文件通过对象的URL地址引用页面中的其他对象。每个URL地址由两部分组成:存放对象的服务器主机名和对象的路径名。
  HTTP由两个程序实现:一个客户程序和一个服务器程序,运行在不同的端系统中,通过交换HTTP报文进行会话。Web浏览器实现了HTTP的客户端,而Web服务器实现了HTTP的服务端。
  HTTP服务器并不保存关于客户的任何信息,称为无状态协议。Web具有按需操作的属性,即用户需要时,就能得到所需要的内容。HTTP使用端口80。

2.2 HTTP连接
  HTTP的客户-服务器交互是经TCP进行的,应用程序的研制者就需要做一个重要决定,即每个请求/相应对是经一个单独的TCP连接发送,还是所有的请求及其相应经相同的TCP连接发送。前者称为非持续连接,后者称为持续连接。HTTP 1.0使用非持续连接,而HTTP 1.1在默认方式下使用持续连接。
  往返时间【Round-Trip Time,RTT】是指一个短分组从客户到服务器然后再返回客户所花费的时间。其包括分组的传播时延、排队时延以及处理时延。非持续连接要比持续连接经过更多的TTL。

2.3 HTTP报文格式
  HTTP规范包含了对HTTP报文格式的定义。HTTP的报文有两种:请求报文和响应报文,内容均为ASCII码。
  HTTP的请求报文的通用格式为
在这里插入图片描述其中sp为空格,cr为回车,lf为换行符。
  HTTP请求报文的第一行称为请求行,包括方法、URL与HTTP版本字段。方法可以取GET、POST等;后继的行称为首部行,指明了一些属性参数;最后为实体体,可能包含一些传递的信息或为空。
  HTTP的相应报文的通用格式为在这里插入图片描述
  HTTP响应报文的第一行称为状态行,包括HTTP版本、状态码与状态信息字段。实体体是响应报文的主要部分,包含了所请求的对象本身。

2.4 cookie
  cookie允许站点对用户进行跟踪。包括:
  -在HTTP响应报文中的cookie头部行;
  -在HTTP请求报文中的cookie头部行;
  -用户端系统保存的cookie文件;
  -Web服务器端的后台数据库。
cookie使用一个识别码进行标识。

2.5 Web缓存
  Web缓存器,也叫代理服务器,代表初始Web服务器满足HTTP请求的网络实体,额可以配置用户的浏览器,使得用户的所有HTTP请求首先指向Web缓存器。Web缓存既充当客户端,也充当服务器,一般由Internet服务提供商【Internet Service Provider,ISP】架设。
  Web缓存使用条件GET方法,其检查了缓存是否存在新的版本。其在HTTP请求报文中声明了所持有版本的日期<If-modified-since>:<date>,若对象未更新,则会返回不包含对象的响应报文。


三、Email应用
  Email由邮件客户端、邮件服务器与邮件的传输协议构成。

3.1 SMTP
  简单邮件传输协议【Simple Mail Transfer Protocol,SMTP】使用TCP通过端口25对email消息进行持续性连接的可靠传输,通过HELO、MAIL FROM、REPT TO、DATA、CRLF.CRLF、QUIT与服务器交互,分别自解释为建立交互、邮件源地址、邮件目的地址、邮件报文、邮件报文结束与退出交互。

3.2 Email报文格式
  Email报文有一定的规定格式,形如在这里插入图片描述
与SMTP命令不同,上述的首部行与消息体等均是邮件报文本身的一部分。

3.3 MIME
  多用途互联网邮件扩展类型【Multipurpose Internet Mail Extensions,MIME】可以通过在邮件首部行增加额外的行<MIME-Version>:<value>等,以声明MIME的内容类型。

3.4 POP3
  典型的用户通常在本地计算机上运行一个用户代理程序,用于访问储存在总是保持开机的共享文件服务器上的邮箱。但用户不能通过SMTP获取服务器上的邮件,因为SMTP用于推送文件。通过引入邮件访问协议来解决这个问题。目前流行的邮件访问协议包括第三版的邮局协议【Post Office Protocal Version 3,POP3】与因特网邮件访问协议【Internet Mail Access Protocal,IMAP】。
  POP3的口令包括User、Pass、List、Retr、Dele、Quit与服务器交互,分别自解释为声明用户名、声明密码、列出消息数量、编号获取信息、编号删除信息、退出交互。服务器的口令为+OK与-ERR。
  IMAP更具特色,也更复杂,支持文件夹组织消息等操作。


四、DNS
  主机可以通过主机名方便的标识或IP地址层次的标识,人们喜欢便于记忆的主机名,而路由器则喜欢定长的、有着层次结构的IP地址。

4.1 DNS服务
  主机名与IP地址存在一定的映射关系,而进行主机名到IP地址转换的目录服务,就是域名系统【Domain Name System,DNS】的主要任务。DNS是一个由分层的DNS服务器实现的分布式数据库,使得主机能够查询分布式数据库的应用层协议。

4.2 DNS工作机理
  DNS使用了大量的DNS服务器,以层次方式组织,分布在全世界范围内。DNS服务器分为NDS服务器、顶级域【Top-Level Domain,TLD】DNS服务器和权威DNS服务器,以如下图所示的层次结构组织起来。
在这里插入图片描述
  -根DNS服务器有400多个,遍及全世界,由不同的组织管理,提供TLD服务器的IP地址;
  -顶级域服务器对于每个顶级域和国家的顶级域,都有TLD服务器,提供权威DNS服务器的IP地址;
  -权威服务器收藏了因特网上具有公共可访问主机的组织机构提供的公共可访问的DNS记录。

  此外,还有一类重要的DNS服务器,称为本地DNS服务器,其不严格属于DNS服务器的层次结构。每一个ISP都有一台本地DNS服务器。当主机进行DNS查询时,首先会发送到本地域名服务器。
  DNS查询分为两种查询方法:
  -迭代查询:被查询服务器将域名解析服务器的IP地址返回给本地DNS服务器,并迭代的查询下一层服务器。
  -递归查询:被查询服务器直接查询下一层服务器,并递归的继续查询下一层服务器。

  为了改善时延性能并减少因特网上到处传输的DNS报文数量,DNS广泛使用了DNS缓存技术。每当DNS服务器接收到一个DNS回答时,便将映射缓存在本地储存其中。另一个对相同主机名的查询到达该DNS服务器时,就能够提供所要求的IP地址,即使其不是该主机名的权威服务器。主机和主机名与IP地址间的映射并不是永久的,DNS服务器在一段时间后会丢弃缓存的信息。事实上,因为缓存,除了少数DNS查询以外,根服务器不经常被访问。

4.3 DNS报文格式
  共同实现DNS分布时数据库的所有DNS服务器存储了资源记录【Resource Record,RR】,RR提供了主机名到IP地址的映射,是一个包含了下列字段的4元组:(Name, Value, Type, TTL)。TTL是该记录的生存时间,决定了RR应当从缓存中删除的时间,而Name和Value取决于Type:
  -Type = A,Name为主机名,Value是该主机名对应的IP地址;
  -Type = NS,Name为域,Value是获得该域中主机IP地址的权威DNS服务器的主机名;
  -Type = CNAME,Value是别名为Name的主机的规范主机名;
  -Type = MX,Value是别名为Name的邮件服务器的规范主机名。

  DNS报文格式如下:
在这里插入图片描述
其中:
  -首部区域为前12个Bytes,包括:
    -标识符,16位用于表示该查询,其会被复制到对查询的回答报文中;
    -标志符,包括1位指出查询/回答,1位指出是否是所请求名字的权威服务器,1位指出希望递归查询,1位指出递归可用;
    -数量字段,指出首部后数据区域出现的数量。
  -问题区域包含着正在进行的查询信息,包括名字字段与类型字段。
  -回答区域包含了对最初请求的名字的RR;
  -权威区域包含了其他权威服务器的记录;
  -附加区域包含了其他有帮助的记录。


五、FTP
  文件传输协议【File Transfer Protocol,FTP】是因特网上使用的最广泛的文件传输协议,屏蔽了各计算机系统的细节,适合在异构网络中的任意计算机之间传送文件。

5.1 FTP工作机理
  FTP采用客户-服务器的工作方式,使用TCP的传输服务。FTP的服务器进程包括一个主进程,负责接收新的请求,另外有若干个从属进程,负责处理单个请求。

5.2 控制连接与数据连接
  FTP在工作时使用两个并行的TCP连接,使用不同的端口号,使协议更加简单和共容易实现。
  服务器监听端口21,等待客户连接,建立在该端口的连接称为控制连接,用于传输控制信息。
  服务器的控制进程接收到FTP客户的文件传输请求后,会在端口20创建数据传送进程和数据连接,用于连接客户与服务器的数据传输进程。


六、P2P文件分发

6.1 P2P体系结构的自扩展性
  考虑一个用于客户-服务器体系结构与P2P体系结构类型的简单定量模型,将一个文件分发给一个固定对等方集合。
  服务器和对等方使用接入链路与因特网相连。其中 u s u_s us表示服务器接入链路的上载速率, u i u_i ui表示第i对等方接入链路的上载速率, d i d_i di表示了第i对等方接入链路的下载速率, F F F表示被分发的文件长度, N N N表示要获得该文件副本的对等方的数量。分发时间是所有N个对等方得到该文件的副本所需要的时间。
  假设因特网核心具有足够的带宽,服务器和客户没有参与任何其他网络应用。
  首先确定对于客户-服务器体系结构的分发时间 D c s D_{cs} Dcs。服务器串行的发送N个副本,所需要的上传时间为 N F / u s NF/u_s NF/us;令 d m i n d_{min} dmin表示具有最小下载速率的对等方的下载速率,则最小分发时间为 F / d m i n F/d_{min} F/dmin。故 D c s ≥ m a x { N F / u s , F / d m i n } D_{cs} \ge max\{NF/u_s, F/d_{min}\} Dcsmax{NF/us,F/dmin}取下界作为实际发送时间,即 D c s = m a x { N F / u s , F / d m i n } D_{cs} = max\{NF/u_s, F/d_{min}\} Dcs=max{NF/us,F/dmin}  再分析P2P体系结构的分发时间 D P 2 P D_{P2P} DP2P。在分发的开始,服务器至少发送该文件的每个比特一次,所需的上传时间为 F / u s F/u_s F/us d m i n d_{min} dmin表示具有最小下载速率的对等方的下载速率,则最小分发时间为 F / d m i n F/d_{min} F/dmin;系统的总上载能力是服务器与对等方的上载能力之和,即 u t o t a l = u s + ∑ i = 0 N u i u_{total} = u_s + \sum_{i = 0}^N u_i utotal=us+i=0Nui,系统需要向N个对等方上交,即NF,所需的最小分发时间为 N F / u t o t a l NF/u_{total} NF/utotal。故 D P 2 P ≥ m a x { F / u s , F / d m i n , N F / ( u s + ∑ i = 0 N u i ) } D_{P2P} \ge max\{F/u_s, F/d_{min}, NF/(u_s + \sum_{i = 0}^N u_i)\} DP2Pmax{F/us,F/dmin,NF/(us+i=0Nui)}取下界作为实际发送时间,即 D P 2 P = m a x { F / u s , F / d m i n , N F / ( u s + ∑ i = 0 N u i ) } D_{P2P} = max\{F/u_s, F/d_{min}, NF/(u_s + \sum_{i = 0}^N u_i)\} DP2P=max{F/us,F/dmin,NF/(us+i=0Nui)}  随着对等方数量N的增加,客户-服务器体系结构的分发时间呈线性增长并且没有界,然而对于P2P体系结构,最小分发时间不仅总是小于客户-服务器体系结构的分发时间,斌给对于任意的对等方数量N,如果假定所有对等方具有相同的上载速率 u u u,则分发时间将总是小于 F / u F/u F/u
  因此,具有P2P体系结构的应用程序能够是自扩展的,对等方除了是比特的消费者外还是它们的重新分发者。

6.2 BitTorrent
  BitTorrent是一种用于文件分发的流行P2P协议,参与一个特定文件分发的素有对等方的集合称为一个洪流【Torrent】。洪流中的对等方彼此下载等长度的文件块。
  每个洪流具有一个追踪器,当一个对等方加入某洪流时,便向追踪器注册自己,并周期性地通知追踪器表示仍在该洪流中。追踪器随机的从参与对等放的集合中选择对等方的一个子集,与对等方建立连接。在对等方下载的同时,也需要向其他对等方上传文件块。
  对等方获取文件时,不同的对等方持有不同的文件块。对等方会定期查询连接方所持有的文件块列表并请求,其中,最稀缺的会得到优先的更为迅速的重新分发。
  对等方发送文件时,会向能够以最高速率向其提供数据的连接方提供优先权,称为疏通。所有对等方定期的评估疏通,直到达到彼此协调的速率上载。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络课程设计中小型企业网络设计的主要内容包括概要设计和需求分析两个方面。 在概要设计中,首先需要画出网络拓扑结构图,明确网络中各个设备的连接关系和布局。根据企业的需求,需要进行VLAN划分,将网络划分为不同的虚拟局域网,以实现部门之间的隔离和安全性。同时,还需要进行子网规划,确定各个子网的IP地址范围和子网掩码。在网络中还需要搭建各种服务,如WWW服务器、FTP服务器、MAIL服务器等,以满足企业员工的各种需求。 而在需求分析中,需要详细描述企业对网络的需求。包括对子网划分的要求,需要考虑各个部门之间的通信和信息隔离。还需要说明所提供的服务,如WWW、FTP、MAIL、DNS等,以及支持这些服务的软件和主要原理。需求分析还需要考虑企业规模和用户数量,比如行政楼上的用户约120人,分为5个部门,不同部门的用户可能处在不同楼层。 综上所述,中小型企业网络设计的主要内容包括概要设计和需求分析。在概要设计中需要画出网络拓扑结构图,划分VLAN和子网规划,搭建各种服务。在需求分析中需要详细描述企业对网络的需求,包括子网划分、所提供的服务以及支持软件的选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [计算机网络课程设计——中小型网络工程设计与实现](https://blog.csdn.net/Sukiugg/article/details/96476294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值