网络架构与网络协议.ppt
计算机网络原理,第二讲 网络架构与网络协议,主讲人:钱燕,网络体系结构的基本概念,网络协议是为网络数据交换而制定的规则、约定与标准;网络协议的三要素:语义、语法与时序;语义:用于解释比特流的每一部分的意义;语法:语法是用户数据与控制信息的结构与格 式,以及数据出现的顺序的意义;时序:事件实现顺序的详细说明。,网络体系结构,层次(layer)层次是人们对复杂问题处理的基本方法;将总体要实现的很多功能分配在不同层次中;对每个层次要完成的服务及服务要求都有明确规定;不同的系统分成相同的层次;不同系统的最低层之间存在着“物理”通信;不同系统的对等层次之间存在着“虚拟”通信;对不同系统的对等层之间的通信有明确的通信规定;高层使用低层提供的服务时,并不需要知道低层服务的具体实现方法。,网络体系结构,接口(interface)接口是同一结点内相邻层之间交换信息的连接点;同一个结点的相邻层之间存在着明确规定的接口,低层向高层通过接口提供服务;只要接口条件不变、低层功能不变,低层功能的具体实现方法与技术的变化不会影响整个系统的工作。,网络体系结构,网络体系结构(network architecture)一个功能完备的计算机网络需要制定一整套复杂的协议集;网络协议是按层次结构来组织的;网络层次结构模型与各层协议的集合称为网络体系结构;网络体系结构对计算机网络应该实现的功能进行了精确的定义;体系结构是抽象的,而实现是指能够运行的一些硬件和软件。,ISO/OSI参考模型,在制定计算机网络标准方面,起着很大作用的两大国际组织是:国际电报与电话咨询委员会(CCITT)国际标准化组织(ISO)CCITT与ISO的工作领域不同:CCITT 主要是考虑通信标准的制定;ISO主要是考虑信息处理与网络体系结构。,体系结构,开放系统的层次结构、层次之间的相互关系及各层所包括的可能的服务;作为一个框架来协调和组织各层协议的制定;对网络内部结构最精炼地概括与描述。,服务定义,详细地说明了各层所提供的服务;某一层的服务就是该层及其以下各层的一种能力;低层的服务是通过接口向上一层提供的;各层所提供的服务与这些服务是如何实现的无关;定义了层与层之间的接口与各层使用的原语,但不涉及接口是具体实现的。,ISO划分七层结构的基本原则,网中各结点都具有相同的层次;不同结点的同等层具有相同的功能;同一结点内相邻层之间通过接口通信;每层可以使用下层提供的服务,并向其上层提供服务;不同结点的同等层通过协议来实现对等层之间的通信。,社会上存在的邮政系统,OSI参考模型的结构,物理层的主要功能,利用传输介质为通信的网络结点之间建立、管理和释放物理连接;实现比特流的透明传输,为数据链路层提供数据传输服务;物理层的数据传输单元是比特。,数据链路层/网络层的主要功能,数据链路层的主要功能:在物理层提供的服务基础上,数据链路层在通信的实体间建立数据链路连接;传输以“帧”为单位的数据包;采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。网络层的主要功能:通过路由选择算法为分组通过通信子网选择最适当的路径;为数据在结点之间传输创建逻辑链路;实现拥塞控制、网络互连等功能。,传输层/会话层的主要功能,传输层的主要功能:向用户提供可靠端到端(end-to-end)服务;处理数据包错误、数据包次序,以及其他一些关键传输问题;传输层向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中关键的一层。会话层的主要功能:负责维护两个结点之间的传输链接,以便确保点-点传输不中断;管理数据交换。,表示层/应用层的主要功能,表示层的主要功能:用于处理在两个通信系统中交换信息的表示方式;数据格式变换;数据加密与解密;数据压缩与恢复。应用层的主要功能:为应用程序提供了网络服务;应用层需要识别并保证通信对方的可用性,使得协同工作的应用程序之间的同步;建立传输错误纠正与保证数据完整性的控制机制。,OSI环境(OSI environment),OSI环境中的数据流,1974年Kahn定义了最早的TCP/IP参考模型;80年代Leiner、Clark等人对TCP/IP参考模型进一步的研究;TCP/IP协议一共出现了6个版本,后3个版本是版本4、版本5与版本6;目前我们使用的是版本4,一般被称为IPv4;IPv6被称为下一代的IP协议。,TCP/IP参考模型,开放的协议标准;独立于特定的计算机硬件与操作系统;独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互连网中;统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的地址;标准化的高层协议,可以提供多种可靠的用户服务。,TCP/IP协议的特点,应用层(application layer)传输层(transport layer)互连层(internet layer)主机-网络层(host-to-network layer),TCP/IP参考模型各层的功能,TCP/IP 参考模型与 OSI 参考模型的对应关系,TCP/IP参考模型的最低层,负责通过网络发送和接收IP数据报;允许主机连入网络时使用多种现成的与流行的协议,例如局域网的Ethernet、令牌网、分组交换网的X.25、帧中继、ATM协议等;当一种物理网被用作传送IP数据包的通道时,就可以认为是这一层的内容;充分体现出TCP/IP协议的兼容性与适应性,它也为TCP/IP的成功奠定了基础。,主机-网络层,相当OSI参考模型网络层无连接网络服务;处理互连的路由选择、流控与拥塞问题;IP协议是一种无连接的、提供“尽力而为”服务的网络层协议。,互连层,主要功能是在互连网中源主机与目的主机的对等实体间建立用于会话的端-端连接;传输控制协议TCP是一种可靠的面向连接协议;用户数据报协议UDP是一种不可靠的无连接协议。,传输层,网络终端协议Telnet文件传输协议FTP简单邮件传输协议SMTP域名系统DNS简单网络管理协议SNMP超文本传输协议HTTP,应用层,TCP/IP协议栈,对OSI参考模型的评价,层次数量与内容选择不是很好,会话层很少用到,表示层几乎是空的,数据链路层与网络层有很多的子层插入;OSI 参考模型将“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,实现困难;寻址、流控与差错控制在每一层里都重复出现,降低系统效率;数据安全性、加密与网络管理在参考模型的设计初期被忽略了;参考模型的设计更多是被通信的思想所支配,不适合于计算机与软件的工作方式;严格按照层次模型编程的软件效率很低。,对TCP/IP参考模型评价,在服务、接口与协议的区别上不很清楚,一个好的软件工程应该将功能与实现方法区分开,参考模型不适合于其它非TCP/IP协议族;TCP/IP参考模型的主机-网络层本身并不是实际的一层;物理层与数据链路层的划分是必要和合理的,但是TCP/IP参考模型却没有做到这点。,一种建议的参考模型,应用层的基本协议,万维网协议 WWW超文本传输协议HTTP文件传送协议FTP远程登录协议TELNET电子邮件协议SMTP(发送)电子邮件协议POP3(接收)域名服务DNS,域名空间,DNS在概念上将因特网分成了200多个顶级域,每个顶级域被进一步划分成若干个二级子域,每个二级子域还可以再分子域,依次类推。一个指定的域是指树中一个特定的节点以及该节点以下所有的节点。某个域的域名用从该域开始向上直到树根(为空)的标号序列表示,标号之间用句点隔开,如。域名的任一后缀也是一个域。顶级域分为通用域和国家域两类。,域名机构的类型,.GOV政府机构.EDU教育机构.INT国际组织(如北大西洋公约组织NATO).MIL军事部门.COM商业机构.NET网络中心.ORG社会组织、专业协会,普及地理类顶级域名,域名国家或地区.am亚美尼亚.aq南极洲.ar阿根廷.au澳大利亚.bb巴巴多斯.be比利时.bg保加利亚.ca加拿大.ch瑞士.cl智利.cn中国.cr哥斯达黎加.cy塞浦路斯.de德国.dk丹麦.ec埃及.eg萨尔瓦多.es西班牙.fi芬兰.gb英国.gr希腊.hk香港.hu匈牙利.ie爱尔兰.il以色列.in印度.ir伊朗.it意大利.jm牙买加.jp日本.kr韩国.lt立陶宛.lu卢森保.mo澳门.mx墨西哥.ni尼加拉瓜.nl荷兰.no挪威.nz新西兰.pe贝卢.ph菲律宾.pl波兰.pt葡萄牙.ru俄国.se瑞典.sg新加坡.si斯洛文尼亚.th泰国.tn突尼斯.tr土耳其.tw台湾.us美国.uk英国.ve委内瑞拉.vn越南.zm赞比亚,域名结构图,万维网WWW,万维网WWW(World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所,英文简称为Web。万维网是一个分布式的超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。万维网以客户服务器方式工作。客户程序向服务器程序发出请求,服务器程序向客户程序返回客户所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面(page)。,网页获取,Web采用客户/服务器模式工作,客户为浏览器软件,服务器是运行在Web服务器上的一个软件程序;服务器平时总在端口80上监听客户的连接请求,当用户点击了一个超级链接后:浏览器找到该链接所指的网页的名字与网页所在的服务器建立一个TCP连接向服务器发送取网页的请求服务器将请求的网页发送给浏览器释放TCP连接两个问题需要解决:如何命名一个网页定义客户和服务器之间的传输协议,Web工作模型,统一资源定位符URL,Uniform Resource Locator(URL)的一般格式为 schemename:/host/pathSchemename:方法名,指出访问网页的协议名称,常见的方法有http、ftp、telnet等;Host:网页所在宿主机的域名Path:网页在宿主机上的全路径名,Web的客户方(1),当用户点击了某个超级链接http:/后,浏览器按以下步骤工作:浏览器确定URL(从页及点击位置获取);请求DNS解析域名,DNS返回IP地址;浏览器与的端口80建立一个TCP连接;浏览器发送一个请求,要求取文件/home/index.html;服务器发送文件/home/index.html,释放TCP连接;浏览器显示文件/home/index.html的所有文本内容;浏览器取回该文件中的所有图像并显示(一次取一个图像显示)。,Web的客户方(2),为了使浏览器能够正确解释和显示每一个Web页,Web页应当使用称为HTML(超文本标记语言)的标准语言书写;如果一个页不是HTML格式的,怎么显示?当服务器返回一个页的时候,同时要返回关于这个页的一些额外信息,特别是页的MIME类型;当页的MIME类型是text/html(浏览器的内置类型)时,浏览器直接显示;当页的MIME类型不是浏览器本身所支持的,浏览器查找MIME类型表,该表将每个MIME类型关联到一个阅读器上,浏览器调用相应的阅读器进行显示;阅读器可以是和浏览器运行在同一个程序空间的插件程序,也可以是一个独立的助手程序;对于本地文件,浏览器通过文件的扩展名得知文件类型。,域名解析服务DNS,DNS 是域名系统(Domain Name System)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一对一(或者一对多)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。,DNS解析过程,状态信息和cookie,Web本质上是无状态的,当服务器将浏览器请求的文件发回后,服务器上不保留有关用户的任何信息;在两次调用之间程序保存的信息称为状态信息,状态信息可以保存在浏览器或服务器上。服务器传递给浏览器保存的状态信息称为cookie:服务器完成服务请求时将需要保存的信息存于本地,同时将少量信息(cookie)返回给浏览器,cookie通常被作为这些信息的索引;Cookie是一个小文件,通常保存在浏览器的cookie目录下;当浏览器要向某个服务器发送请求时,先检查cookie目录,看是否有从那个服务器发来的cookie,如果有就把所有的cookie都包含在请求消息中,发送给服务器。,Web文档,静态文档:静态文档以文件方式保存在Web服务器上,由文档的作者决定文档的内容,对静态文档的每次请求均产生相同的响应。动态文档:动态文档是由Web服务器动态创建的。当请求到达时,Web服务器运行一个应用程序创建动态文档,并返回给浏览器,因此每次请求产生的动态文档是不同的。主动(active)文档:主动文档由一个计算机程序组成,当游览器请求一个主动文档时,服务器返回一个必须在浏览器本地运行的程序的拷贝,程序运行时可以与用户进行交互,并不断访问服务器取回新的信息,因此主动文档的内容是在不断更新的。,Web服务器方工作过程,服务器在端口80监听,与请求的客户建立TCP连接,接收服务请求;确定请求的Web页(名字扩展);(若需要)认证客户;对客户进行访问控制;对请求的页进行访问控制;检查请求的页是否在高速缓存中,有直接读取;若不在高速缓存中,从本地磁盘读取文件;确定要包含在响应中的MIME类型;将文件返回给客户,进行日志记录,释放连接。服务器设计的关键是要提高服务的响应速度,服务于更多的客户。常用的技术包括:将经常访问的文件保存在高速缓存中,服务器设计为多线程的且使用多个磁盘,建立server farm等。,HTML、XML和XHTML(1),HTML(超文本标记语言)是一种标记语言,用于描述文档的显示格式;HTML中的格式命令称为标签,标签成对出现,包含在一对标签中的文档内容,其显示格式就由该标签指定;HTML使用标签在Web页中嵌入图像,如:;HTML使用标签在Web页中加入超级链接,如:NASAs home page;也可以为图像设置超级链接,如:,HTML、XML和XHTML(2),HTML使用表单收集用户的输入信息,表单中包含需要用户提供信息的条目,每个条目都有一个唯一的名字,当用户点击提交按钮时,浏览器将所有条目及条目的值汇总,发送给服务器。HTML的缺点:将文档的内容与格式绑在一起,使得从文档中抽取信息或者改变信息的输出格式非常困难。扩展的标记语言XML和扩展的样式语言XSL将内容与格式分离,使得数据的收集、处理与输出非常灵活方便。XML以结构化的方式描述内容;XSL描述独立于内容的显示格式。可扩展的超文本标记语言XHTML是一种更规范的语言,可简化浏览器的处理,从而可以在内存及处理能力均有限的手持设备上运行浏览器程序。,表单,CGI和服务器端脚本技术(1),HTML表单的处理过程;处理动态文档的传统方法是公共网关接口CGI:CGI是一个标准接口,它允许Web服务器与一个能够处理动态文档的后台程序或脚本进行交互;CGI只规定了服务器与后台程序交互的通用规则,而允许程序员选择大多数的实现细节,如编程语言的选择;每个CGI程序被赋予一个URL,位于cgi-bin目录下,表单的ACTION参数指出了处理表单数据的CGI程序的URL,当表单数据被提交后,Web服务器调用相应的CGI程序进行处理,并接收CGI程序的输出;CGI程序通过输出的头部与服务器进行通信,比如指出生成的文档类型,也可以指出文档放在另一个不同的URL处;服务器取得CGI生成的文档,返回给浏览器。,表单的处理,CGI和服务器端脚本技术(2),CGI的缺点:每次请求CGI程序,均会产生一个完整的HTML页,即使每次产生的HTML文件内容只有几行不同。当网页只有一小部分需要改变时,可以使用服务器端脚本技术:在服务器中存储网页的模板,它包含传统的HTML和脚本信息;服务器中内置解释器,对于HTML信息解释器不做任何改变,对于脚本信息解释器用解释脚本的结果代替。几种主要的服务器端脚本技术:ASP(微软):脚本信息用VB编写,脚本解释器与微软的Internet信息服务器(Internet Informaton Server,IIS)紧密集成。JSP:网页中嵌入的脚本代码用Java语言编写,因而独立于平台。PHP:使用Perl语言,速度比ASP和JSP快,但嵌入的代码难以阅读。ColdFusion:网页中嵌入SQL数据库查询语句,解释器向数据库系统发送SQL查询,并将结果置于查询语句的位置。,Java、JavaScript和ActiveX controls,JavaJava Applet必须先被编译成字节码并存储在Web服务器上;游览器需要运行HTML解释器和Java解释器;当用户向浏览器提供一个Applet的URL,或当浏览器在HTML文档中遇到一个指向Applet的标记时,浏览器与服务器联系获得该Applet的一个拷贝,下载到本地执行;Applet使用浏览器的HTTP客户检索文档,使用浏览器的HTML解释器显示网页信息。JavaScriptJavaScript是一种脚本语言,提供有与用户交互的JavaScript函数,脚本直接嵌入HTML页中,由浏览器解释执行。ActiveX controlsActiveX controls被编译成机器语言,在硬件上执行,与微软的IE浏览器结合在一起。,超文本传输协议HTTP,HTTP协议:浏览器与Web服务器之间通信使用的协议,规定了客户方与服务器方通信所使用的命令及响应。HTTP通常运行在TCP连接之上,使用端口80。基本工作模式:浏览器向服务器发送HTTP请求,服务器返回响应,然后释放连接。服务器不保留以前的请求或会话的历史记录。持久连接:从HTTP/1.1开始使用持久连接方式,一旦客户建立了和特定服务器的TCP连接,该连接就在多个请求和响应过程中一直存在,直到某一方关闭连接。HTTP/1.1的默认方式为使用持久连接。非流水线方式:客户只能在收到前一个请求的响应后才能发送下一个请求;流水线方式:客户可以连续发送多个请求而不需要等待响应,服务器也可以进行连续响应。使用持久连接的缺点是要标识发送的每一个数据项的开头和结尾。HTTP通常使用的方法是先发送数据项的长度,然后再发送数据项。,超文本传输协议HTTP(2),内置的HTTP操作HTTP允许浏览器和服务器通过消息头部交换元信息和协商各种能力;条件请求:HTTP允许发送方有条件地请求,浏览器可以在头部说明在哪种条件下应该响应请求,如果不符合条件,服务器不返回请求的数据项。,Web优化(1),Web缓存Web缓存是将请求到的页放到缓存中,以备将来使用。使用一个代理程序来维护缓存,浏览器被配置为向代理请求网页,当缓存中有所请求的页时,代理将页返回,否则先从服务器取回,添加到缓存中,然后返回给请求页的客户。分级缓存方案:本地PC、局域网及ISP均运行代理,协同工作。确定页的缓存时间:启发式方法:根据网页的Last-Modified头来确定保存时间;条件请求:使用If-Modified-Since请求头;由服务器指示如何进行缓存。积极缓存。,Web分级缓存方案,Web优化(2),服务器镜像服务器在多个相距较远的位置上复制它们的内容;镜像站点的静态创建和动态创建。,Web优化(3),内容投递网络CDN内容投递商通过在各个ISP网络上放置自已的内容服务器,为内容提供商提供内容投递服务。如何将用户的请求重定位到最近的内容服务器上?CDN对内容提供商服务器上的每一个网页进行预处理,将网页中的所有URL替换为指向CDN服务器的URL;CDN服务器是一个伪HTTP服务器,它通过检查文件名和服务器名,确定请求的是哪个内容提供商的哪个网页;通过检查输入请求的IP地址并查找数据库,确定用户大概在什么位置;然后确定一个最合适的CDN内容服务器,向客户返回一个带有Location头的响应消息,给出该内容服务器上所请求文件的URL。通常伪HTTP服务器会将客户的请求重定向到距客户最近的CDN代理,CDN代理拥有一个很大的缓存,里面预先下载了最重要的内容。,在CDN中查找URL,1、ISO七层协议是什么?TCP/IP四层协议是什么?2、ISO模型是如何进行传输的。3、ISO七层协议各有什么作用?4、简述ISO模型与TCP/IP模型的特点。5、简述ISO模型与TCP/IP模型的关系与区别。6、TCP/IP四层协议各有什么作用?7、TCP/IP应用层服务有哪些?8、简要说明WWW服务的执行过程。9、当用户点击了某个超级链接http:/后,Web客户端与服务器端各进行哪些工作?10、Web的优化方案有哪些?如何运作的?,本章思考题,