计算机网络之应用层★知识点汇总★

计算机⽹络之应⽤层★知识点汇总★
计算机⽹络之应⽤层
应⽤层
1应⽤层协议原理
研发⽹络应⽤程序的核⼼是写出能够运⾏在不同的端系统和通过⽹络彼此通信的程序。
1.1 ⽹络应⽤程序体系结构
应⽤程序体系结构(application architecture)由应⽤程序研发者设计,规定了如何在各种端系统上组织该应⽤程序。现代⽹络应⽤程序中所使⽤的的两种主流体系结构:客户-服务器体系结构和对等(P2P)体系结构。
客户-服务器体系结构(client-server architecture)中,有⼀个总是打开的主机称为服务器,该服务器具有固定的、周知的地址,该地址称为IP地址,且在该体系中,客户之间不直接通信。具有该体系结构的著名的应⽤程序包括Web、FTP、Telnet和电⼦邮件等。vissim
P2P体系结构(P2P architecture)中,对位于数据中⼼的专⽤服务器有最⼩的依赖,应⽤程序在主机对之间使⽤直接通信。⽬前流⾏的、流量密集型应⽤都是P2P体系结构的,包括⽂件共享(BitTorrent)、对等⽅协助下载加速器(如迅雷)、因特⽹电话(如Skype)、和IPTV(如"⾟迅雷看看"、“PPstream”)。P2P体系结构的最引⼈⼊胜的特性之⼀是它的⾃扩展性(self-scalability)。
需要注意,某些应⽤具有混合的体系结构,它结合了客户-服务器和P2P的元素。例如对于很逗即时讯息⽽⾔,服务器被⽤于跟踪⽤户的IP地址,但⽤户到⽤户的报⽂在⽤户主机之间直接发送,⽆需经过中间服务器。
钉子汤1.2 进程通信
在操作系统的术语中,进⾏通信的实际上是进程(processing)⽽不是程序,⼀个进程可以被认为是运⾏在端系统中的⼀个程序。在两个不同端系统上的进程,通过跨越计算机⽹络交换报⽂(message)⽽互相通信。
1. 客户和服务器进程:在给定的⼀对进程之间的通信会话场景中,发起通信(即在该会话开始时发起与其他进程的联系)的进程被标识为客
户,在会话开始时等待联系的进程是服务器。
2. 进程与计算机⽹络之间的接⼝:多数应⽤程序是由应⽤进程对组成的,从⼀个进程向另⼀个进程发送的报⽂必须通过因特⽹;进程
通过套接字(socket)的软件接⼝向⽹络发送报⽂和从⽹络接收报⽂。由于套接字是建⽴⽹络应⽤程序的可编程接⼝,因此套接字也被称为应⽤程序和⽹络之间的应⽤程序编程接⼝(Application Programming Interface, API).
3. 进程寻址:在主机上运⾏的进程为了标识接收进程,需要定义两种信息,即主机的地址和定义在⽬的主机中的接收进程的标识符;
在因特⽹中,分别由IP地址(IP address)和⽬的地端⼝号(port number)来实现。
1.3 可供应⽤程序使⽤的运输服务
中国早期政治制度的特点
从四个⽅⾯对应⽤服务要求进⾏分类:可靠数据传输、吞吐量、定时和安全性。
1. 可靠数据传输:当⼀个运输层协议提供可靠数据传输服务时,发送进程只要将其数据传递进套接字,就可以完全相信该数据将能⽆差
错的到达接收进程;当⼀个运输层协议不提供可靠数据传输时,由发送进程发送的某些数据可能不能
够到达接收进程,这可能能被容忍丢失的应⽤(loss-tolerant application)所接受,如交谈式⾳频/视频等。
2. 吞吐量:可⽤吞吐量就是发送进程能够向接收进程交付⽐特的速率。运输层协议能够以某种特定的速率提供确保的可⽤吞吐量。
3. 定时:运输层协议能够提供定时保证。例如,发送⽅注⼊进套接字中的每个⽐特到达接收⽅的套接字不迟于100ms。
4. 安全性:运输协议能够为应⽤程序提供⼀种或多种安全性服务。例如,在发送主机中,运输层协议能够加密由发送进程传输的所有数
据,在接收主机中,运输层协议能够在将这些数据交付给进程之前解密这些数据。
1.4 因特⽹提供的运输服务
因特⽹为应⽤程序提供两个运输层协议:TCP和UDP
1. TCP服务模型包括⾯向连接服务和可靠数据传输服务。
2. UDP是⼀种不提供不必要服务的轻量级运输协议,它提供⼀种不可靠数据传输服务。
3. 对于TCP、UDP协议是运输层中的重中之重,在这⾥仅提到它们与应⽤层之间的关系,两个协议的具体内容将在运输层中介绍。
1.5 应⽤层协议
应⽤层协议定义了运⾏在不同端系统上的应⽤程序进程如何互相传递报⽂。特别是应⽤层协议定义了:
1. 交换的报⽂类型,如请求报⽂和响应报⽂;
2. 各种报⽂类型的语法,如报⽂中的各个字段及这些字段是如何描述的;
3. 字段的语义,即这些字段中包含的信息的含义;
4. ⼀个进程何时以及如何发送报⽂,对保⽂进⾏响应的规则。
2 Web和HTTP
2.1 HTTP概况
Web的应⽤层协议是超⽂本传输协议(HyperText Transfer Protocol, HTTP),该协议由两个程序实现:
⼀个客户程序和⼀个服务器程序。
HTTP使⽤TCP作为它的⽀撑运输协议。
HTTP服务器并不保存关于客户端的任何信息,它是⼀个⽆状态协议(stateless protocol)。Web的服务器总是打开的,它具有⼀个固定的IP地址。
2.2 ⾮持续连接和持续连接
当每个请求/响应对是经⼀个单独的TCP连接发送,该应⽤程序被称为使⽤⾮持续连接(non-persistent connection);当所有的请求及其相应经过相同的TCP连接发送时,该应⽤程序被称为持续连接(persistent connection)。HTTP在默认⽅式下使⽤持续连接,当然它也能配置成使⽤⾮持续连接。
1. 在⾮持续连接中,每个TCP连接只传输⼀个请求报⽂和响应报⽂;传输的每⼀个对象的时间⼤概为两陪往返时间(Round-Trip Time,
RTT)加传输对象的时间。
2. 在采⽤持续连接的情况下,服务器在发送响应后保持该TCP连接打开,如果⼀条连接经过⼀定时间间隔(⼀个可配置的超时间隔)仍未
被使⽤,HTTP服务器则关闭该连接。
2.3 HTTP报⽂格式
HTTP请求报⽂的第⼀⾏叫做请求⾏(request line),该⾏有三个字段:⽅法字段、URL字段和HTTP版本字段。⽅法字段包括GET、POST、HEAD、PUT和DELETE。使⽤GET⽅法时请求包体为空,使⽤POST⽅法时该请求包体中包含的是⽤户在表单字段中的输⼊值。
HTTP响应报⽂的第⼀⾏叫做状态⾏(status line),该⾏有三个字段:协议版本字段、状态码和相应状态信息。这⾥总结⼀下状态码及状态码描述:
1. 200 OK:请求成功,信息在返回的响应报⽂中;
2. 301 Moved Permanently:请求的对象已经被永久转移;
3. 400 Bad Request:⼀个通⽤差错代码,指⽰该请求不能被服务器理解;
4. 404 Not Found:请求的⽂档不在服务器上;
5. 505 HTTP Version Not Supported:服务器不⽀持请求报⽂使⽤的HTTP版本协议。
2.4 ⽤户与服务器的交互:cookie
2.1中提到HTTP服务器并不保存关于客户端的任何信息,它是⼀个⽆状态协议(stateless protocol),但⼀个Web站点通常希望能够识
别⽤户,所以HTTP使⽤了cookie,它允许站点对⽤户进⾏跟踪。
cookie可⽤于标识⼀个⽤户。⽤户⾸次访问⼀个站点时,需要提供⼀个⽤户标识。在后继对话中,浏览器向服务器传递⼀个cookie⾸部,从⽽向该服务器标识了⽤户。
2.5 Web缓存器
Web服务器(Web Server)也叫代理服务器(proxy server),它是能够代表初始Web服务器来满⾜HTTP请求的⽹络实体。它有⾃⼰的磁盘存储空间,并在存储空间中保存最近请求过的对象的副本。
Web缓存器即使服务器也是客户。当他接收浏览器的请求并发回相应是,他是⼀个服务器。当它向初始服务器发出请求并接收响应时,它是⼀个客户。
2.6 条件GET⽅法
为防⽌出现保存在服务器中的对象⾃该副本缓存在缓存器后被修改,HTTP协议提供⼀种条件GET(conditional GET)⽅法,允许缓存器证实它的对象是最新的。
如果:①请求报⽂使⽤GET⽅法:并且②请求报⽂中包含⼀个"If-Modified-Since:"⾸部⾏,那么这个HTTP请求报⽂就是⼀个条件GET 请求报⽂。
3 ⽂件传送协议:FTP
⽤户通过⼀个FTP⽤户代理与FTP交互的过程:
1. ⽤户⾸先提供远程主机的主机名,是本地主机的FTP客户进程建⽴⼀个到远程主机的FTP服务器进程的TCP连接;
2. ⽤户提供⽤户标识和⼝令,作为FTP命令的⼀部分在TCP连接上传送;
3. ⼀旦服务器向该⽤户授权,⽤户可以将存放在本地⽂件系统中的⼀个或者多个⽂件复制到远程⽂件系统(反之亦然)。
FTP使⽤了两个并⾏的TCP连接来传输⽂件,⼀个是控制连接(control connection),⼀个是数据连接(data connection). 因为FTP使⽤⼀个独⽴的控制连接,故也称FTP的控制信息是带外(out-of-band)传送的.
FTP服务器必须在整个会话期间保留⽤户的状态,即对每个进⾏中的⽤户会话的状态信息进⾏追踪,⼤⼤限制了同时维持的会话总数;
⽽HTTP是⽆状态连接的,即它不必对任何⽤户状态进⾏追踪。
在FTP会话中,TCP控制连接端⼝号为21,TCP数据连接端⼝号为20.
4 因特⽹中的电⼦邮件
因特⽹电⼦邮件系统的关键组件:⽤户代理(user agent)、邮件服务器(mail server)和简单邮件传输协议(Simple Mail Transfer Protocol, SMTP).
SMTP是因特⽹电⼦邮件中主要的应⽤层协议,它使⽤TCP可靠数据传输服务。⽤户SMTP(运⾏在发送邮件服务器上)在25号端⼝建⽴⼀个到服务器SMTP(运⾏在接收邮件服务器上)的TCP连接。
SMTP与HTTP协议都是⽤于从⼀台主机向另⼀台主机传送⽂件:HTTP从Web服务器向Web客户(通常
是⼀个浏览器)传送⽂件(对象);SMTP从⼀个邮件服务器向另⼀个邮件服务器传送⽂件(及电⼦邮件报⽂)。当进⾏⽂件传送时,它们都采⽤持续连接;它们有⼀些重要的区别:
1. HTTP是⼀个拉协议(pull protocol),即⽤户使⽤HTTP从Web服务器拉取想要获得的信息;SMTP是⼀个推协议(push protocol),
即发送邮件服务器把⽂件推向接收邮件服务器;
2. SMTP要求每个报⽂使⽤7⽐特ASCII码格式,HTTP数据不受这种限制;
3. 关于如何处理⼀个既包含⽂本⼜包含图形的⽂档:HTTP把每个对象封装到它⾃⼰的HTTP响应报⽂中,⽽SMTP则把所有报⽂对象放
在⼀个报⽂中。
SMTP被设计成将电⼦邮件从⼀台主机推到另⼀台主机。⽤户代理不能使⽤SMTP取回报⽂,因为取报⽂是⼀个拉操作,⽽SMTP协议是⼀个推协议。对于⽤户从邮件服务器读取邮件的问题,可以通过引⼊⼀个特殊的邮件访问协议来解决,具体包括:第三版的邮局协议(Post Office Protocol———Version 3, POP3)、因特⽹邮件访问协议(Inter Mail Access Protocol, IMAP)以及HTTP。
1. POP3:当⽤户代理打开⼀个到邮件服务器端⼝110上的TCP连接后, POP3按照三个阶段进⾏⼯作:特许(authorization)、事务处
理和更新。POP3协议没有给⽤户提供任何创建远程⽂件夹并为报⽂指派⽂件夹的⽅法。
2. IMAP服务器把每个报⽂与⼀个⽂件夹联系起来,他维护了⽤户状态信息;它具有允许⽤户代理获取报⽂组件的命令。
3. ⽬前越来越多的⽤户使⽤Web浏览器收发电⼦邮件,这种服务的⽤户代理就是普通的浏览器,⽤户和他远程邮件服务器之间的通信通
过HTTP进⾏。
5 DNS:因特⽹的⽬录服务
⼀个主机使⽤IP地址(IP address)进⾏标识,⼀个IP地址由4个字节组成,并有着严格的层次结构。
5.1 DNS提供的服务
可以通过主机名或者IP地址来标识主机,⼈们喜欢便于记忆的主机名标识⽅式,⽽路由器则喜欢定长
的、有着层次机构的IP地址,⽽域名系统(Domain Name System, DNS)的主要任务就是完成主机名转换到IP地址转换的⽬录服务。
DNS是:①⼀个由分层的DNS服务器实现的分布式数据库;②⼀个使得主机能够查询分布式数据库的应⽤层协议。DNS服务器通常是运⾏BIND(Berkley Internet Name Domain)软件的UNIX机器。
DNS协议运⾏在UDP之上,使⽤53号端⼝。
DNS通常是由其他应⽤层协议所使⽤的,包括HTTP、SMTP和FTP,将⽤户提供的主机名解析为IP地址。
DNS还提供了其他重要的服务:主机别名(host aliasing)、邮件服务器别名(mail server aliasing)、负载分配(load distribution)等。
5.2 DNS⼯作机理
白铜锡DNS采⽤了分布式的设计⽅案,它使⽤了⼤量的DNS服务器,它们以层次的⽅式组织,并且分布在全世界范围内。没有⼀台DNS服务器拥有因特⽹上所有主机的映射。
有三种类型的DNS服务器:跟DNS服务器、顶级域(Top-Level Domain, TLD)DNS服务器和权威DNS服务器。
从请求主机到本地DNS服务器的查询是递归的(recursive query),其余的查询是迭代的(iterative query)。
DNS缓存(DNS caching):为改善时延性能并减少因特⽹上到处传输的DNS保⽂数量,DNS⼴泛采⽤了DNS缓存技术。当某DNS服务器接收到⼀个DNS回答时,能够将回答中的信息缓存在本地存储器中。由于主机和主机名与IP地址间的映射不是永久的,DNS服务器在⼀段时间后(通常设置为两天)将丢弃缓存的信息。
5.3 DNS记录和报⽂
共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(Resource Record, RR),RR提供了主机名导IP地址的映射。
资源记录是⼀个包含以下字段的4元组:(Name、Value、Type、TTL),其中TTL是该记录的⽣存时间,它决定了资源记录应该从缓存中删除的时间。
DNS只有查询报⽂和回答报⽂,它们有着相同的格式,如下图所⽰。
6 P2P应⽤
以上描述的应⽤(Web、电⼦邮件和DNS)都采⽤了客户-服务器体系结构,极⼤地依赖于总是打开的基础设施服务器;⽽是⽤P2P体系结构对总是打开的基础设施服务器没有依赖,成对间歇连接的对等⽅彼此直接通信。有两种特别适合于P2P设计的应⽤:
1. P2P⽂件分发。单⼀服务器向⼤量主机分发⼀个⼤⽂件时,在客户-服务器⽂件分发中,该服务器必须向每个对等⽅发送该⽂件的⼀个
teleport pro中文版副本,消耗了⼤量的服务器带宽;在P2P⽂件分发中,每个对等⽅能够重新分发他所有的该⽂件的任何部分,从⽽帮助服务器分担带宽压⼒。
⽬前最流⾏的P2P⽂件共享协议是BitTorrent,参与⼀个特定⽂件分发的所有对等⽅的集合被称为⼀个洪流(torrent),在⼀个洪流中的对等⽅彼此下载等长度的⽂件块(chunk)。
2. 分布式散列表(Distributed Hash Table, DHT):在P2P系统中,每个对等⽅保持(键,值对)占总体数据库的⼀个⼩⼦集,允许任何对
等⽅⽤⼀个特别的键来查询分布式数据库。分布式数据库则将定位拥有该相应(键,值对)的对等⽅,然后向查询的对等⽅返回该键值对。任何对等⽅也可以在数据库中插⼊新键-值对。
男生恋爱后患接吻病分布式散列表包括环形DHT和对等⽅扰动技术。
欢迎关注【OAOA】

本文发布于:2024-09-22 16:41:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/126868.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:服务器   进程   协议   提供   邮件   能够
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议