SQLServer实用简明教程(第三版)第3章Transact-SQL语言第1页第2章协议模型与网络协议本章概述本章的学习目标主要内容SQLServer实用简明教程(第三版)第3章Transact-SQL语言第2页本章概述通信双方就像调制和解调一样互逆,实现互逆操作的是有双方的子实体对象之间完成的,也就是说发送方(N)子实体的操作,只有接收方(N)子实体才能实施逆操作,其他子实体的操作也是一样的。这主要是因为只有同一层次子实体之间采用的通信语言是相同的,即每个子实体都有自己独特的通信协议,只有对等层的子实体才能理解。本章全面研究协议模型和现实的网络协议。SQLServer实用简明教程(第三版)第3章Transact-SQL语言第3页本章的学习目标掌握协议模型的结构功能理解TCP/IP网络协议集理解IP协议格式理解IP地址格式与分类掌握其他网络协议SQLServer实用简明教程(第三版)第3章Transact-SQL语言第4页主要内容2.1协议模型2.2TCP/IP网络协议2.3IP协议2.4其他网络协议2.5本章小结SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.1协议模型由一个或多个服务对象构成的(N)服务提供者,提供(N)服务。为了服务的提供,这些对象使用(N-1)服务。如果该提供者包含一个以上的服务对象,(N-1)服务用来使它们按照已定义的、被称为协议的一组规则、数据格式和功能,进行协作。然而使用了(N-1)服务和特定的协议这一点,对这些服务对象是隐蔽的。因此对(N)服务用户也是透明的。第5页SQLServer实用简明教程(第三版)第3章Transact-SQL语言服务提供者的分解第6页N服务提供者(N)服务用户(N)服务用户(N-1)服务提供者(N+1)层(N-1)层(N)层协议(N)服务对象(N)服务对象分解SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.1.1协议行为完成协议的对象的行为通常按有限状态机模型设计。有限状态机存在着不同的变体(Holzmann,1991),从协议的功能和目标出发,使用有限状态机的定义和组成成分。一个有限状态集;一个有限的转换规则集;一个有限谓词集;一个有限外来事件集;一个有限外出事件集。第7页SQLServer实用简明教程(第三版)第3章Transact-SQL语言一个(N)服务对象的环境第8页(N-1)服务对象(N+1)服务对象(N+1)层(N-1)层(N)层协议(N)本地服务对象(N)服务对象SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.1.2协议数据协同工作的服务对象用协议数据单元(PDU)交换信息。PDU还有一些其他的常用表示法,这些表示法依赖于所处的OSI层次。一个PDU通常由头部、有效载荷和尾部(trailer)三个字段组成。所有的字段都可以用来传递协议控制信息(protocolcontrolinformation,PCI)。但服务数据单元仅能放在有效载荷字段中传输。根据PDU是否携带服务数据,我们把它们分成两种类型:数据PDU和控制PDU。第9页SQLServer实用简明教程(第三版)第3章Transact-SQL语言协作的(N)服务对象与它们的(N)服务用户第10页消费者(N+1)层(N)层发送者接收者生产者(N)-SDU数据(N)-PDU控制(N)-PDU(N)-SDUSQLServer实用简明教程(第三版)第3章Transact-SQL语言2.1.3协议功能一个协议除了行为和数据格式,也规定协同的服务对象应执行的功能。这些协议功能在调用一个对象的操作时执行,或者在一个有限状态机模型中,出现一个外来事件时执行。一个服务对象的协议功能,通常要求所有与之通信的服务对象具有协同的协议功能。第11页SQLServer实用简明教程(第三版)第3章Transact-SQL语言第12页主要内容2.1协议模型2.2TCP/IP网络协议2.3IP协议2.4其他网络协议2.5本章小结SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.2TCP/IP网络协议因特网在不同层次使用了一组不同但互补的协议,这组协议常被称为因特网协议组。虽然它包括了一百多个协议,但最流行的是网际协议(IP)和传输控制协议(TCP),而因特网协议组也被称为TCP/IP协议集。TCP/IP也是大多数中等和大型网络的协议选择。NovellNetWare、UNIX和WindowsNT网络都可以实现TCP/IP,在不断增长的网络上和使用客户机/服务器或者基于Web的应用中更是如此。第13页SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.2.1因特网概述1.因特网组织因特网技术标准化,控制TCP/IP协议族,定制新的标准以及其他类似的事情和技术,是由四个非盈利性国际团体监督、协调及演化的。因特网协会(ISOC,InternetSociety),因特网体系结构委员会(IAB,InternetArchitectureBoard),因特网研究部(IRIF,InternetResearchTaskForce),因特网工程部(IETF,InternetEngineeringTaskForce)为帮助IETF主席,又成立了Internet工程指导小组(IESG,InternetEngineeringSteeringGroup)。第14页SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.因特网协议网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。TCP/IP是因特网协议组的核心协议族,是一组不同层次多个协议的组合。一个管理机构为接入互联网的网络分配IP地址。这个管理机构就是互联网络信息中心(InternetNetworkInformationCentre),称作InterNIC。InterNIC只分配网络号,主机号的分配由系统管理员来负责。我国的IP地址和DNS域名管理,是由中国互联网络中心负责。第15页SQLServer实用简明教程(第三版)第3章Transact-SQL语言3.客户-服务器模型网络中计算机之间的通信,实质上是计算机上进程的通信,大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服务器为客户提供一些特定的服务。可以将这种服务分为两种类型:重复型或并发型。第16页SQLServer实用简明教程(第三版)第3章Transact-SQL语言重复型服务器交互步骤I1.等待一个客户请求的到来。I2.处理客户请求。I3.发送响应给发送请求的客户。I4.返回I1步。重复型服务器主要的问题发生在I2状态。在这个时候,它不能为其他客户机提供服务。第17页SQLServer实用简明教程(第三版)第3章Transact-SQL语言并发型服务器交互步骤C1.等待一个客户请求的到来。C2.启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。C3.返回C1步。第18页SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.2.2TCP/IP协议体系1.TCP/IP体系结构在20世纪60年代后期,ARPA开始着手组建ARPANET,希望能够找到一种通用的方式,使得大学、研究所和DoD的计算机能够通过WAN进行相互通信,即能够对ARPANET进行普遍的访问。ARPA启动了一个研究项目对之进行改进。他们所开发的协议实际上是两个协议的组合,即传输控制协议(TCP)和网际协议(IP)。第19页SQLServer实用简明教程(第三版)第3章Transact-SQL语言TCP/IP体系结构图第20页表示层网络层传输层会话层应用层物理层数据链路层互联网络层传输层应用层网络接口层OSITCP/IP7234561SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.网络接口层协议TCP/IP网络接口层细分为逻辑链路层和物理层接口层。逻辑链路层协议适配不同的子网特征,以便为高层提供统一的子网接口,链路层存在着一些将IP映射为特殊网络类型的适配协议还存在着一个独立于IP的专用于串行链路的适配协议,称为点到点协议(Point-to-PointProtocol,PPP)。第21页SQLServer实用简明教程(第三版)第3章Transact-SQL语言4.网络层协议互联网络层是整个体系结构的关键部分,它的功能是使主机可以把分组发往任何网络,并且是分组独立地传向目的地。网络层协议负责一个特殊的工作,实现中继、差错报告、组管理、资源预留或路由选择等功能。包括网际协议(IP)网际组管理协议(IGMP),网际控制报文协议(ICMP),资源预留协议(RSVP),网际数据流协议版本2(ST2),边界网关协议(BGP),开放最短路径优先(OSPF),路由选择信息协议(RIP)第22页SQLServer实用简明教程(第三版)第3章Transact-SQL语言5.传输层协议传输层协议通过增加功能改进端到端的网络服务,诸如差错控制提供了可靠通信,多路分解可同时支持多个应用等传输层常用协议。传输控制协议(TransmissionControlProtocol,TCP),用户数据报协议(UserDatagramProtocol,UDP),通用消息事务协议(VersatileMessageTransactionProtocol,VMTP),网络块传送(NETworkBlockTransfer,NETBLT),多点播送传输协议(MulticastTransportProtocol,MTP),可靠数据协议(ReliableDataProtocol,RDP)第23页SQLServer实用简明教程(第三版)第3章Transact-SQL语言6.应用层协议应用层协议使用适当的传输协议来支持基本的面向应用服务,例如文件传送、远程登录和电子邮件等应用层常用协议。自举协议(BOOTP),动态主机配置协议(DHCP),ECHO,DISCARD,TIME由,CHARGEN,文件传送协议(FTP),平常文件传送协议(TFTP),远程通信网络(TELNET),简单网络管理协议(SNMP),简单邮件传送协议(SMTP),域名系统(DNS)。第24页SQLServer实用简明教程(第三版)第3章Transact-SQL语言第25页主要内容2.1协议模型2.2TCP/IP网络协议2.3IP协议2.4其他网络协议2.5本章小结SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.3IP协议因特网中随处可见的IP协议有两个著名的版本。虽然从版本编号来看,两个版本的IP之间是兼容演变或扩展,但实际上两个版本是完全不同的。第26页SQLServer实用简明教程(第三版)第3章Transact-SQL语言2.3.1IP版本4IP版本4(IPv4)使用可变长的头部,但无尾部,由14个字段组成的头部结构,最小IP头部长度为20字节。如图2-11所示,IP分组头的长度为4个字节(32位)的整数倍。第27页SQLServer实用简明教程(第三版)第3章Transact-SQL语言IP分组图第28页版本号头部长度服务类型总长度标志标识符偏移量生存期协议分组头校验和源地址目的地址任选项(可变)填充(可变)40816192431SQLServer实用简明教程(第三版)第3章Transact-SQL语言1.版本号(Version)该4位段表示协议支持的IP版本号。·在处理IP分组之前,所有软件都要检查分组的版本段,以便保证分组格式与软件期待的格式一样。如果标准不同,机器将拒绝与其协