单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,TCP/IP,协议簇,(,第,4,版,),Behrouz A. Forouzan,著,由NordriDesign提供,,,各章小结汇总,第,1,章 引言,网络是一组互相连接的通信设备互联网是指两个或更多的可以彼此通信的网络最著名的互联网就是因特网,它由成千上万个互连的网络所组成网络互连的历史可追溯到,20,世纪,60,年代中期出现的,ARPA,因特网的诞生与,Cerf,和,Kahn,的研究工作以及网络连接所使用的网关设备的出现有密切联系1977,年,国防通信署(,DCA,)开始对,ARPANET,负责,并使用了,TCP,和,IP,这两个协议来处理各个网络彼此之间的数据报路由选择MILNET,、,CSNET,、,NSFNET,和,ANSNET,都是从,ARPANET,演化出来的今日的因特网是由许多广域网和局域网通过一些连接设备和交换站连接起来的在今天,绝大多数需要因特网连接的端用户都是使用因特网服务提供者(,ISP,)所提供的服务分别有主干,ISP,、地区,ISP,和本地,ISP,协议是管理数据通信的一组规则;协议的要素是语法、语义和时序。
在计算机网络中,通信发生在不同系统上的实体之间要进行通信,这两个实体必须达成一种协议协议定义了要通信的是什么,怎样进行通信,以及何时进行通信在建立和维护一个开放与竞争市场的过程中,标准必不可少这些标准给制造商、供应商、政府机关以及其他的服务提供者提供了指导,以便在今天的市场中和在国际范围的通信中保证必要的连通性数据通信的标准分为两类:事实上的标准与法律上的标准因特网标准是经过充分测试的规约,只要是与因特网打交道,就会用到它,并要服从于它因特网草案是正在加工的文档(正在进行的工作),没有被官方正式承认,其生存期为,6,个月一旦被因特网管理机构推荐,该草案就可以作为,RFC,(,Request for Comment,)发布每一个,RFC,都是经过编辑整理的,并分配有一个,RFC,编号,任何感兴趣的组织都可以得到它这些,RFC,要经历几个成熟度,并且会根据它们的需求级别进行分类因特网的管理体系是跟随因特网一起发展起来的ISOC,推动了与因特网有关的各项研究和学术活动IAB,是,ISOC,的技术顾问IETF,是专门负责业务问题的那些工作组的论坛IRTF,是关注长期研究课题的工作组的论坛ICANN,负责管理因特网的域名和地址。
NIC,负责收集和分发关于,TCP/IP,协议的信息第,2,章,OSI,模型和,TCP/IP,协议簇,国际标准化组织(,ISO,)创建了一个称为开放系统互连(,OSI,)的模型,它使得不同系统之间可以互相通信七层,OSI,模型为开发普遍兼容的连网协议提供了指导物理层、数据链路层和网络层是网络支撑层会话层、表示层和应用层是用户支撑层,运输层把网络支撑层和用户支撑层链接起来物理层协调在物理媒体上传送比特流所需的各种功能数据链路层负责把数据单元无差错地从一个站交付到下一个站网络层负责跨越多个网络链路的从源点到终点的分组交付运输层负责从进程到进程的完整报文交付会话层用于建立、维持并同步正在通信的系统之间的交互表示层通过把数据转换为双方同意的格式,确保相互通信的设备之间的互操作性应用层使用户能够接入网络TCP/IP,是在,OSI,模型之前开发的具有分层体系结构的五层协议簇TCP/IP,的应用层相当于,OSI,模型的会话层、表示层及应用层的合体使用,TCP/IP,协议的系统需要四种类型的地址:物理地址、网际协议地址(,IP,地址)、端口地址和特定应用地址物理地址又称为链路地址,是由结点所在的局域网或广域网为该结点指定的地址。
IP,地址唯一地定义了因特网上的一台主机端口地址指明主机上的进程特定应用地址被某些应用程序用来提供用户友好式接入第,3,章 底层技术,局域网(,LAN,)就是设计在有限地理范围内使用的计算机网络在局域网的市场上出现过多种技术,如以太网、令牌环、,FDDI,和,ATM,局域网等等其中有些技术也存在过一段时间,但以太网才是占有绝对优势的技术以太网经过了长期的发展过程目前占绝大多数的以太网版本是吉比特以太网和,10G,以太网无线局域网的一个最重要的标准是,IEEE 802.11,定义的标准,有时也被称为无线以太网另一种比较流行的技术是蓝牙,它是一种设计用于连接具有不同功能的设备(如、笔记本、台式计算机、照相机、打印机、煮咖啡壶等等)的无线局域网技术点到点广域网技术提供了通过常规线路和传统调制解调器、,DSL,线路、电缆调制解调器、,T,线或,SONET,网络对因特网的直接连接点到点协议(,PPP,)是为需要用可靠地点到点接入因特网的用户而设计的PPP,工作在,OSI,模型的物理层和数据链路层交换广域网技术提供因特网中的主干连接异步传递方式(,ATM,)是信元中继的协议,用来支持数据、话音和视像在高速率数据传输媒体(如光纤)上的传输。
连接设备可以把网络的几个网段相互连接起来,也可以把几个网络连接起来形成一个互联网共有三种类型的连接设备:转发器(和集线器)、网桥(和两层交换机)、路由器(和三层交换机)转发器在物理层对信号进行再生集线器是多端口转发器网桥可以访问站的地址,并在网络中转发或过滤分组,它们工作在物理层和数据链路层两层交换机是一种复杂的路由器第,4,章 网络层简介,从概念上看,我们可以认为全球因特网是一个暗箱网络但是因特网并不是单一的网络,它是由许多网络(或者说链路)通过连接设备互相连接在一起形成的在因特网中,像路由器这样的连接设备起到了交换机的作用人们在组网时通常会使用两种类型的交换方式:电路交换和分组交换网络层被设计为一个分组交换网分组交换网可以提供无连接的服务或者是面向连接的服务当网络层提供无连接服务时,每个穿行在因特网中的分组都是一个独立的实体,属于同一个报文的分组之间没有任何联系在面向连接的服务中,属于同一个报文的所有分组存在一条虚连接无连接服务根据分组的目的地址将其转发到下一跳面向连接的服务根据分组中的标号将其转发到下一跳在面向连接的网络中,通信过程分为三个阶段:建链、数据传送和拆链在连接建立后,发送方和接收方之间就建立了一条虚电路,属于同一个报文的所有分组都要通过这条虚电路发送。
我们讨论了在因特网的网络中已经存在的服务,包括寻址、由源计算机提供的服务、由目的计算机提供的服务以及由各路由器提供的服务我们也讨论了一些与网络层相关的问题,它们是一些通常在讨论网络层时会被讨论的服务,但它们或者只是在网络层部分地实现了,或者就根本没有实现其中有一些服务,如路由选择和安全性,在因特网上是通过其他协议提供的第,5,章,IPv4,地址,在,TCP/IP,协议簇的,IP,层使用的标识符称为因特网地址或,IP,地址IPv4,地址是一个,32,位的地址地址空间就是协议所使用的地址的总数量IPv4,的地址空间为,2,32,或,4,294,967,296,在分类编址中,,IPv4,地址空间共分为五类:,A,、,B,、,C,、,D,和,E,一个机构组织可以被授权使用,A,、,B,或,C,这三种类型中的一种地址块D,类和,E,类为特殊用途而保留A,类、,B,类和,C,类的,IP,地址可以被分为网络标识和主机标识两部分在分类编址中,地址块的首地址称为网络地址它指明了该地址所属的网络网络地址用来为分组选择路由,使其能够到达目的网络分类地址中的网络掩码或默认掩码是一个,32,位的数,这个数的左边,n,位全部置,1,,而右边,32-n,位全部置,0,。
路由器通过它就可以从一个分组的目的地址中求出其网络地址将一个网络划分为若干个较小的子网络概念称为子网划分与网络掩码一样,子网掩码用于在给定一个,IP,目的地址的情况下找出其子网地址在构造超网时,某个组织可以将若干个,C,类地址块合并起来,以创建一个较大的地址段1996,年,因特网管理机构宣布了一种新的体系结构称为无分类编址或,CIDR,,它使得一个组织能够拥有任意长度的地址块,只要这个长度是,2,的乘方无分类编址的地址也被划分为两部分:前缀和后缀前缀的作用与网络标识一样,而后缀的作用与主机标识一致一个地址块中的所有地址都具有相同的前缀,且每个地址的后缀各不相同在,IPv4,中有些地址块是为特殊用途而保留的另外,一个地址块中的某些地址通常被用作特殊地址这些地址不会指派给任何主机为了改善地址分发的问题,人们创建了,NAT,技术以便将一个网络中的专用地址与它在因特网上的全球地址分隔开通过一张地址转换表,来自具有此功能的专用网络就可以被转换为全球地址这张转换表不仅把,IP,地址,同时还要把端口号从专用的映射成为全球的地址,反之亦然第,6,章,IP,分组的交付和转发,网络层监视底层各物理网络对分组的处理过程,我们把这种处理定义为分组的交付。
如果分组的交付者(主机或路由器)与终点连接在同一个网络上,则分组的交付就称为直接的如果分组的交付者(主机或路由器)与终点连接在不同的网络上,则分组的交付就称为间接的转发是指将分组交付到下一跳有两种类型的转发:基于,IP,数据报目的地址的转发和基于附加在,IP,数据报上的标记的转发第一种类型为了转发分组必须搜索路由表,而第二种类型在转发分组时会把标记当做交换表的索引我们讨论了几种基于目的地址的转发方法,包括特定主机方法、下一跳方法、特定网络方法和默认方法在基于目的地址的转发中,分类编码时的路由表可以只有三列,而分类编址时的路由表则至少需要四列地址聚合简化了无分类编址时的转发过程,并且在无分类编址时要求用最长掩码匹配基于标记的转发使用的是交换表而不是路由表多协议标记交换(,MPLS,)是经过,IETF,批准的标准,它把,IP,分组封装到,MPLS,分组中,从而给,TCP/IP,协议簇增加了一个伪层路由器通常由四个构件组成:输入端口、输出端口、路由选择处理器和交换结构第,7,章 网际协议版本,4,(,IPv4,),IP,是不可靠的无连接协议,负责源点到终点的交付在,IP,层的分组称为数据报MTU,是数据链路协议能够封装的最大字节数。
MTU,随着协议的不同而不同分片就是把一个数据报划分为若干个更小的单元,以便能够适应数据链路层协议的,MTU,IP,数据报首部包括,20,字节的固定部分和最大长度为,40,字节的可变的选项部分IP,首部中的选项部分用于网络测试和排错六个,IP,选项各有其特定功能IP,使用的差错检测方法是检验和但是这个检验和只覆盖分组的首部,而不管数据部分检验和使用反码算术运算把,IP,首部的相同长度的各段相加相加结果取反码后存储在检验和字段中接收端也使用反码算术运算来检查首部IP,在,ATM,上运行使用了,ATM,网络的,AAL5,层ATM,网络在进入点路由器和离去点路由器之间建立一条路由通过,ATMARP,,,IP,分组的下一跳地址能够被映射为离去点路由器的物理地址IP,软件包由以下一些构件组成:首部添加模块、处理模块、转发模块、分片模块、重装模块、路由表、,MTU,表以及重装表,第,8,章 地址解析协议(,ARP,),把分组交付给主机或路由器需要有两级地址:逻辑地址和物理地址逻辑地址在网络级标记每一台主机或路由器TCP/IP,称这种逻辑地址为,IP,地址物理地址在物理级标记每一台主机或路由器逻辑地址到物理地址的映射可以是静态的,也可以是动态的。
静态映射涉及到一张映射逻辑地址与物理地址的列表,维护这种表需要很大的开销地址解析协议(,ARP,)是一种动态映射方法,它为给定的逻辑地址找出对应的物理地址ARP,请求用广播方式发送给网络上的所有设备ARP,回答用单播方式发送给请求映射的主机使用代理,ARP,时,路由器代表了一组主机当,ARP,请求寻找该组中任意主机的物理地址时,这个路由器就把自己的物理地址发送过去这样做可以产生子网划分的效果ATMARP,是在,ATM,网络上使用的协议,它用来把物理地址和,IP,地址进行绑定构建,ATMARP,服务器的映射表需要使用反向请求报文和反向回答报文一个,ATM,网络可以划分为若干个逻辑子网,以便于,ATMARP,和其他协议的操作ARP,软件包由五个构件组成:高速缓存表、队列、输出模块、输入模块以及高速缓存控制模块高速缓存表由一个表项数组,由,ARP,报文使用和更新在一个队列中包含的是要发送到相同终点去的分组输出模块从,IP,层得到分组,然后或者把它发送到数据链路层,或者发送到队列中输入模块使用,ARP,分组来更新高速缓存表输入模块也可以发送,ARP,回答高速缓存控制模块通过更新表项字段来维护高速缓存表。
第,9,章 网际控制报文协议(,ICMP,),网际控制报文协议(,ICMP,)支持不可靠的和无连接的网际协议(,IP,)ICMP,被封装在,IP,数据报中ICMP,报文由两种类型:差错报告报文和查询报文差错报告报文报告了路由器或主机(终点)在处理,IP,数据报时可能遇到的问题查询报文总是成对出现的,它帮助主机或网络管理员从某个路由器或对方主机那里获取特定的信息计算,ICMP,的检验和要用到,ICMP,报文的首部及其数据字段在因特网中用于排错的工具有多种我们能够查出某个主机或路由器是否已加电并正在运行其中的两个工具是,ping,和,traceroute,一个简单的,ICMP,设计由输入模块和输出模块组成,输入模块处理到来的,ICMP,分组,而输出模块处理对,ICMP,服务的要求第,10,章 移动,IP,为移动通信而设计的移动,IP,是网际协议(,IP,)的增强版本移动主机有一个归属地址和一个转交地址,归属地址是它在归属网络上的地址,而转交地址是它在外地网络上的地址当移动主机连接到外地网络上时,归属代理把给移动主机的报文转发给外地代理外地代理再把转发过来的报文发送给移动主机移动主机在它的归属网络上要通过称为代理发现的过程掌握归属代理的地址。
移动主机在外地网络上时要通过代理发现或代理询问来掌握外地代理的地址当移动主机连接到外地网络上时,必须向归属代理和外地代理登记自己从远程主机发往移动主机的报文要先从远程主机到归属代理,再到外地代理,然后到移动主机移动通信可能是低效率的,因为报文需要走一段额外的距离两次穿越和三角路由选择是低效率路由选择的两个例子第,11,章 单播路由选择协议(,RIP,、,OSPF,和,BGP,),度量是对分组途径的网络通路指派的一个代价路由器通过咨询其路由表来,为,分组决定一条最佳路径自治系统(,AS,)是在一个管理机构管辖之下的一组网络和路由器RIP,和,OSPF,都是流行的域内路由选择协议(也称为内部路由选择协议),用来在自治系统内部更新路由表RIP,基于距离向量路由选择,即为每一个路由器定期与它的邻站共享关于整个自治系统的知识OSPF,基于链路状态路由选择,即为每一个路由器向区域内的其他所有路由器发送其邻站的状态BGP,是用来更新路由表的域间路由选择协议(也称为外部路由选择协议)BGP,所基于的路由选择方法称为路径向量路由选择在这个协议中,分组必须经过的一些自治系统应当显式列出路径向量路由选择没有距离向量路由选择的不稳定性,也没有环路问题。
共有四种类型的,BGP,报文,:打开、更新、保活以及通知第,12,章,多,播和多播路由选择协议,多播就是向多个接收者同时发送相同的报文多播有很多应用,包括分布式数据库、信息发布、电视会议和远程学习在无分类编址中,地址块,224.0.0.0/4,被用作多播地址这个地址块有时也称为多播地址空间,并且根据不同的用途被划分为几个小地址块在收集本地的组成员状态信息时要设计到因特网组管理协议(,IGMP,)IGMP,最新的版本是,IGMPv3,,它使用了两种类型的报文:查询和报告在使用源点基准树方式进行多播路由选择时,源点和组一起决定了这个树RPF,、,RPB,和,RPM,是对源点基准树效率的不断提高MOSPF/DVMRP,和,PIM-DM,是使用源点基准树方式进行多播的两种协议在使用组共享方式进行多播时,一个汇集路由器专门负责把多播报文分发到它们的终点CBT,和,PIM-SM,是组共享树协议的例子为了在两个非邻接的多播路由器之间进行多播,我们构造了多播主干网(,MBONE,)以便使用隧道技术第,13,章 运输层简介,运输层协议的主要任务是提供进程到进程的通信要定义进程,我们就需要端口号客户端进程用一个临时端口号来定义自己。
服务器进程用一个熟知端口号来定义自己为了把报文从一个进程发送到另一个进程,运输层协议要对报文进行封装和解封封装发生在发送端,解封发生在接收端源点的运输层执行报文的复用,就是从多个进程那里收集报文并传输终点的运输层执行分用,就是把报文交付给不同的进程流量控制用于平衡生产者和消耗者之间数据的交换在运输层,当消耗者尚未准备好接收分组时,我们就用缓存来保存这些分组运输层的可靠性通过加入差错控制来实现,包括检测损坏的分组,重传丢失的以及损坏的分组,丢弃重复的分组,并为失序到达的分组重新排序要管理流量控制和差错控制,我们使用了序号来为分组编号,并使用确认号指向编号的分组运输层能够提供两种类型的拥塞控制:开环的和闭环的在开环拥塞控制中,协议试图避免拥塞的发生在闭环拥塞控制中,协议试图在拥塞发生之后检测并解除拥塞运输层协议能够提供两种类型的服务:无连接的和面向连接的在无连接的服务中,发送方不用建立任何连接就可以向接收方发送分组在面向连接的服务中,客户端和服务器首先要在它们之间建立一条连接只有在连接建立后才能交换数据而当数据交换完毕后,连接需要被拆除本章我们讨论了几种通用的运输层协议简单无连接协议既不提供流量控制,也不提供差错控制。
面向连接的停止等待协议提供了流量控制和差错控制,但是效率很低返回,N,协议是停止等待协议的效率较高的一个版本,它利用了流水线方式选择重传协议是对返回,N,协议的改进,它在处理分组丢失上更具优势所有这些协议都能通过捎带技术实现双向传输第,14,章 用户数据包协议(,UDP,),UDP,是运输层协议,它建立进程到进程的通信UDP,(基本上)是一个不可靠的无连接协议,它只需要很少的额外开销,并且能够很快地交付UDP,分组称为用户数据报UDP,在差错控制方面仅有的尝试就是检验和在计算检验和时包括一个伪首部可以检查出源,IP,地址和目的,IP,地址的差错UDP,没有流量控制机制用户数据报封装在,IP,数据报的数据字段中入队列和出队列存放着要进入,UDP,的和来自于,UDP,的报文UDP,利用复用技术处理来自一台主机上的多个进程的用户数据报的发送UDP,利用分用技术处理要交给一台主机上的多个不同进程的入口用户数据报UDP,软件包由五个构件组成:一个控制块表、一个控制块模块、若干个输入队列、一个输入模块和一个输出模块输入队列存放入口用户数据报控制块模块负责维护控制块表中的表项输入模块创建输入队列输出模块把用户数据报文发送出去。
第,15,章 传输控制协议(,TCP,),传输控制协议(,TCP,)是,TCP/IP,协议簇中的一个运输层协议TCP,提供进程到进程的、全双工的和面向连接的服务两个设备之间使用,TCP,软件传送的数据单元称为报文段,它有,20~60,字节的首部,首部后面是来自应用程序的数据TCP,的连接通常包括三个阶段:连接建立、数据传送和连接终止连接建立需要三向握手;连接终止需要三向或者四向握手TCP,通常是被当作一个有限状态机(,FSM,)实现的TCP,应用流量控制来避免接收方因数据过多而超载,它的流量控制是以滑动窗口机制实现的TCP,的窗口大小由接收方通告的窗口值(,rwnd,)或拥塞窗口值(,cwnd,)来决定,取其中较小的一个值窗口可以被接收方打开或关闭,但不能收缩每一条连接中传送的数据字节都被,TCP,编了号编号从一个随机产生的数开始TCP,应用差错控制来提供可靠的服务差错控制利用检验和、确认和超时来处理受损伤的和丢失的报文段最终都会被重传,重复的报文段要丢弃数据可能不按序到达,接收,TCP,会把它们暂时存储下来,但,TCP,保证交付给进程的报文段都是按序的在比较新的实现中,如果重传计时器到期或者有三个重复的,ACK,报文段到达,就要进行重传。
第,15,章 传输控制协议(,TCP,),TCP,应用拥塞控制来避免和检测网络中的拥塞拥塞控制使用了慢启动(指数增大)、拥塞避免(加法增大)和拥塞检测(乘法减小)等策略在慢启动算法中,拥塞窗口大小先按指数规律增长,直到它到达门限在拥塞避免算法中,拥塞窗口大小按加法规律增长,直到检测出拥塞不同的实现对拥塞检测的反应不同如果是通过超时检测到拥塞,就开始新的慢启动阶段;如果是通过三个,ACK,检测出拥塞,就开始新的拥塞避免阶段TCP,在运行中使用了四个计时器(重传计时器、持续计时器、保活计时器和时间等待计时器,)在,TCP,中,任何时刻只能有一个,RTT,测量正在进行在计算,RTO,时,,TCP,不考虑重传报文段的,RTT,TCP,使用了若干个选项以提供更多的服务最大报文段长度选项在连接建立时用于定义最大容许的,TCP,报文段长度MSS,的值在连接建立阶段确定,而在连接期间不能改变窗口扩大因子是用来扩大窗口大小的一个乘数时间戳选项用于指出数据从发送方到接收方共花费了多少时间时间戳选项的一个应用是计算往返时间(,RTT,)另一个应用是用于,PAWS,TCP,最新的实现还使用另外两个选项:允许,SACK,选项和,SACK,选项。
这两个选项允许接收方选择确认所收到的报文段第,16,章 流控制传输协议(,SCTP,),SCTP,是面向报文的可靠的协议,它结合了,UDP,和,TCP,的优点SCTP,还提供了,UDP,或,TCP,没有提供的更多服务,例如多重流服务和多归属服务SCTP,是面向连接的协议SCTP,的连接称为关联SCTP,提供流量控制、差错控制和拥塞控制为了区分不同的流,,SCTP,使用流标识符(,SI,)为了区分属于同一个流中的不同数据块,,SCTP,使用流序号(,SSN,)一个数据块由三个标识符来标识:,TSN,、,SI,和,SSN,SCTP,的确认号仅仅用来确认数据块控制块不使用确认,如有必要则使用另一个控制块SCTP,在状态转换图中有许多状态SCTP,所定义的状态包括:,CLOSED,、,COOKIE-WAIT,、,COOKIE-ECHOED,、,ESTABLISHED,、,SHUTDOWN-PENDING,、,SHUTDOWN-SENT,、,SHUTDOWN-RECEIVED,和,SHUTDOWN-ACK-SENT,一个,DATA,块,不能携带属于多个报文的数据,但一个报文可以被划分为几个块(分片)。
SCTP,关联的建立通常需要四个分组(四向握手)SCTP,关联的终止通常需要三个分组(三向握手)SCTP,关联使用,Cookie,防止盲目洪泛攻击,使用验证标志避免插入攻击SCTP,的确认,SACK,报告了累积的,TSN,(即按序收到的最后一个数据块的,TSN,)以及对收到的分组的选择,TSN,第,17,章 应用层简介,在因特网中的绝大多数应用程序都被设计为使用客户端,-,服务器模式,其中有一个应用程序称为服务器,它提供服务,而另外一个应用程序称为客户端,它接收服务服务器程序是一个无限的程序当它启动后就一直运行下去,除非出现故障它等待来自客户端的请求客户端程序是有限的,也就是说它由用户启动,并在服务完成后终止客户端和服务器都可以运行于并发模式客户端可以在一台主机上顺序地或者并发地运行顺序服务器一,次只处理,一个请求相反地,并发服务器能够同时处理多个请求客户端,-,服务器,模式基于一,组预先定义的称为接口的函数在本章,我们讨论了一些最常用的接口,称为套接字接口套接字接口就是一个指令集合,它位于操作系统和应用程序之间套接字是模拟了我们在生活中常见的硬件插口的软件抽象要想使用通信信道,应用程序(客户端或服务器)必须请求操作系统创建一个套接字。
进程和操作系统之间的交互是通过一系列预先定义的函数完成的在本章,我们介绍了这些函数中的一个子集,具体地说,有,socket,、,bind,、,connect,、,listen,、,accept,、,fork,、,send,、,recv,、,sendto,、,recvfrom,和,close,我们还介绍了一些字节顺序函数和几个内存管理函数一个服务器程序可以被设计为使用,UDP,服务的无连接的顺序程序,也可以是使用,TCP,或,SCTP,服务的面向连接的并发程序虽然目前在因特网中,客户端,-,服务器模式是最常见的,但是另外一种称为,P2P,的模式也有不少商业应用第,18,章 主机配置:,DHCP,每个连接到,TCP/IP,互联网的计算机都必须知道自己的,IP,地址、一个路由器的,IP,地址、一个名字服务器的,IP,地址以及自己的子网编码动态主机配置协议(,DHCP,)是客户端,-,服务器应用程序,用来把重要的网络信息传递给无盘计算机或首次引导时的计算机客户端请求和服务器响应使用相同的,DHCP,分组格式DHCP,服务器被动地等待客户端的请求服务器的响应可以采用广播或单播DHCP,的请求或响应都被封装在,UDP,用户数据报里。
当,DHCP,客户端与服务器分别位于不同网络上时,需要使用中继代理,它把来自客户端的本地,DHCP,请求发送给远程服务器当,DHCP,作为静态配置协议时,它利用表格把,IP,地址映射为物理地址而当,DHCP,作为动态配置协议时,它把,IP,地址租给请求的客户端使用DHCP,客户端被设计为使用了六个主要状态和三个计时器的状态机,它使得主机能够在一段指定的时间内租用,IP,地址第,19,章 域名系统(,DNS,),域名系统(,DNS,)是一个客户端,-,服务器应用程序,它用唯一的、用户友好的名字来标识因特网上的每一个主机DNS,把名字空间组织成分级的结构以使涉及到命名的各种责任分散化DNS,可以被描绘成倒过来的分级的树结构,它的根在最上面,最多可以有,128,级树上的每一个结点都有一个域名域被定义为域名空间中的任何一个子树名字空间的信息分布在不同的,DNS,服务器上每一个服务器对它的区有管辖权根服务器的区就是整个的,DNS,树主服务器要创建、维护和更新它所管辖的区的信息次服务器从主服务器上获取自己的信息域名空间划分为三大部分:类属域、国家域和反向域类属域一共有,14,个,每一个域指明一个组织类型。
每一个国家域指明一个国家反向域是根据已知的,IP,地址来查找相应的域名,这称为地址到名字的解析运行,DNS,服务器程序的计算机成为名字服务器,它们以分级的方式组织DNS,客户端称为解析程序,它把名字映射为地址或把地址映射为名字在递归解析过程中,客户端把它的请求发送给服务器,服务器会返回最终的响应在迭代解析过程中,客户端在得到回答之前,可能要把它的请求发送给多个服务器高速缓存是一种把查询得到的回答存放在存储器中(存放有限的时间),以便为今后的请求使用的方式完整域名(,FQDN,)是标号从主机开始一直向回走,通过每一个结点,直至,到达根结点的一种域名不完整域名(,PQDN,)是没有完全包括从主机到根结点之间所有级的一种域名DNS,报文有两种类型:查询报文和响应报文DNS,记录也有两种类型:问题记录和资源记录DNS,为报文中重复出现的域名信息使用了偏移指针动态,DNS,(,DDNS,)自动地更新,DNS,主文件DNS,对小于,512,字节的报文使用,UDP,服务,否则,就使用,TCP,为了保护,DNS,,,IETF,已经设计出一种称为,DNS,安全性(,DNSSEC,)的技术,它利用称为数字签名的安全服务来提供报文的原始鉴别和维护报文的完整性。
第,20,章 远程登录:,TELNET,与,SSH,TELNET,是客户端,-,服务器应用程序,它使用户能够登录到远程机器上,让用户能够接入远程系统当用户通过,TELNET,进程接入到远程系统时,就相当于分时的环境终端驱动程序可以正确地解释在本地的终端或终端仿真程序上的键盘输入但是远程终端驱动程序可能并不能正确解释本地终端的键盘输入TELNET,使用网络虚拟终端(,NVT,)系统对本地系统上的字符进行编码在服务器所在的远程机器上,,NVT,再把这些字符编码为该机器可接受的形式NVT,有一组用于数据的字符集和一组用于远程控制的字符集选项用于增强,TELNET,进程功能的一些特性TELNET,在使用服务之前或期间都可以用协商的方法,在客户端和服务器之间设置传送条件某些选项仅能被服务器允许使用,另一些仅能被客户端允许使用,还有一些则可以被服务器或客户端允许使用一个选项是允许使用还是禁止使用都要通过提供或请求的方式完成需要附加信息的选项可使用子选项字符TELNET,的实现可以工作在默认方式、字符方式和行方式在默认方式中,客户端向服务器一次发送一行,并在可以接受来自用户的新行之前,需要等待前进(,GA,)字符。
在字符方式中,客户端向服务器一次发送一个字符在行方式中,客户端向服务器一次发送一行,一行接一行地发送,而不需要,GA,字符介入另一个较流行的登录应用程序是安全外壳(,SSH,),它比,TELNET,更安全,并且提供了更多的服务SSH,有两个版本,我们只讨论了,SSH-2,SSH,由四个组件构成:,SSH,应用,,SSH-CONN,,,SSH-AUTH,和,SSH-TRANS,把以上四个组件结合起来就可以提供一个安全的远程登录,并被用于替代,TELNET,在,SSH,协议所提供的众多具有吸引力的服务之中有一项是端口转发我们可以利用,SSH,中空闲的安全信道来介入那些不提供安全服务的应用程序第,21,章 文件传送:,FTP,和,TFTP,文件传送协议(,FTP,)是客户端,-,服务器应用程序,用来把文件从一个主机复制到另一个主机FTP,需要两条连接用于数据传送:一条控制连接和一条数据连接FTP,在两个不相同的系统之间的通信使用,NVT ASCII,在真正传送文件之前,客户端要通过控制连接定义文件类型、数据结构和传输方式客户端发送的用来与服务器建立通信的命令共有,6,类:接入命令,文件管理命令,数据格式化命令,端口定义命令,文件传送命令,杂项命令。
文件传送的类型共有,3,种:从服务器把文件复制到客户端,从客户端把文件复制到服务器,从服务器向客户端发送目录或文件名列表使用,FTP,传送文件并不安全一种解决方法是在,FTP,应用层和,TCP,层之间加入安全套接字层(,SSL,)另一种方法是使用一个完全独立的文件传送应用程序,sftp,s,ftp,是,SSH,协议的一种应用简单文件传送协议(,TFTP,)是简单的文件传送协议,它没有,FTP,那样的复杂和完善客户端使用,TFTP,的服务来读取文件的副本,或把文件的副本发送到服务器TFTP,报文的类型共有,5,种:,RRQ,,,WRQ,,,DATA,,,ACK,和,ERROR,TFTP,可以和,DHCP,一起使用,以便下载配置文件对设备进行初始化在,TFTP,中,有,4,种情况下需要使用差错控制:报文受损伤、报文丢失、确认丢失和报文重复巫师徒弟的错误是由,TFTP,的流量控制和差错控制机制引起的确认报文和数据报文的重复第,22,章 万维网和,HTTP,万维网(,WWW,)是遍及全世界且相互连接起来的信息储藏所超文本和超媒体文档通过指针相互链接万维网的体系结构是由客户端和服务器组成的客户端或浏览器解释和显示,Web,文档。
浏览器包括控制程序、客户端程序和解释程序服务器储存,Web,网页Web,文档可以分为静态的、动态的或活动的静态文档是内容固定且存储在服务器上的文档动态,Web,文档仅在浏览器请求时才在服务器创建活动文档是被客户端读取并在客户端运行的程序副本超文本传送协议(,HTTP,)是访问万维网(,WWW,)上的数据所使用的主要协议HTTP,使用,TCP,连接来传送文件HTTP,事务由请求和响应报文组成HTTP,有两种模式:持续连接和非持续连接非持续连接对每一个事务都要建立一个新的,TCP,连接持续连接只使用一个连接持续连接是新版本,HTTP,的默认连接方式HTTP,可使用,Cookie,来保存事务的状态服务器发送,Cookie,,,Cookie,储存在客户端以供服务器以后读取Web,缓存使用代理服务器来提高,HTTP,的效率代理服务器安装在客户端站点HTTPS,是,HTTP,的安全版本它使用安全套接字(,SSL,)协议来提供保密性,客户端和服务器鉴别以及数据完整性第,23,章 电子邮件:,SMTP,、,POP,、,IMAP,和,MIME,电子邮件是互联网上最常见的一种应用电子邮件体系结构包括很多部分,例如用户代理(,UA,)、报文传送代理(,MTA,)和报文读取代理(,MAA,),。
UA,准备报文、创建信封,并把报文放入信封邮件地址包括两部分:本地部分(用户邮箱)和域名,其形式是,localpart@domainname,别名允许使用发件清单MTA,在互联网上、局域网上或广域网上传送邮件实现,MTA,的协议称为简单邮件传送协议(,SMTP,)SMTP,使用命令和响应在,MTA,客户端和,MTA,服务器之间传送报文传送邮件报文的步骤是:连接建立、报文传送和连接终止实现,MAA,使用了两种协议:邮局协议版本,3,(,POP3,)和互联网邮件读取协议版本,4,(,IMAP4,)它们都是用来从邮件服务器拉取报文的协议多用途和互联网邮件扩充(,MIME,)允许传送多媒体报文MIME,将多媒体字符转换成可以通过电子邮件系统传送的,ASCII,字符基于万维网的电子邮件变得越来越普及,这些系统通过网站为用户提供免费电子邮件服务在基于万维网的电子邮件系统中,部分数据传送使用,SMTP,完成,部分则通过,HTTP,协议完成安全电子邮件可以通过两种技术实现:相当好的保密(,PGP,)和安全,MIME,(,SMIME,)第,24,章 网络管理(,SNMP,),简单网络管理协议(,SNMP,)是用,TCP/IP,协议簇对互联网中的设备进行管理的框架。
管理器(通常是一个主机)控制和监视一组代理(通常是路由器)管理器是运行,SNMP,客户端程序的主机代理是运行,SNMP,服务器程序的路由器或主机SNMP,使管理任务与被管设备的物理特性和下层的组网技术无关SNMP,需要使用另外两个协议提供的服务:管理信息结构(,SMI,)和管理信息库(,MIB,)SMI,为对象命名,定义可存储在对象中的数据类型,并对数据进行编码SMI,的对象按照分层次的树结构来命名SMI,的数据类型按照抽象语法记忆,1,(,ASN.1,)来定义SMI,使用基本编码规则(,BER,)对数据进行编码MIB,是能够被,SNMP,管理的对象组的集合MIB,使用字典式排序管理它的变量SNMP,的功能有三种实现方法:管理器可以读取代理定义的对象值管理器可以把一个值存储在代理定义的对象中代理可以向管理器发送告警报文SNMP,定义了八种类型的报文:,GetRequest,、,GetNextRequest,、,SetRequest,、,GetBulkRequest,、,Trap,、,InformRequest,、,Response,和,Report,SNMP,在两个熟知端口,161,和,162,上使用,UDP,的服务。
SNMPv3,与之前的版本相比,具有增强的安全特性第三,版的,SNMP,在之前版本上又增加了两个新特性:不同级别的安全和远程管理第,25,章 多媒体,音频,/,视频文件可以下载以后使用(用做音频,/,视频流式存储)或在因特网上广播给客户端(流式直播音频,/,视频)因特网还可用做直播音频,/,视频交互音频和视频在发送到因特网之前必须进行数字化音频文件可通过预测编码或感知编码进行压缩配合图像专家组(,J,PEG,)是一种压缩图像和图形的方法活动图像专家组(,MPEG,)是一种压缩视频的方法我们可以使用万维网服务器、具有元文件的万维网服务器、媒体服务器和,RSTP,来下载流式音频,/,视频文件在分组交换网上的实时数据需要保留一个会话中的各分组之间的时间关系在接收方,连续的分组之间的间隙产生了称为抖动的现象通过使用时间戳和正确选择重放时间可以控制抖动实时的多媒体通信量既需要,UDP,,也需要实时运输协议(,RTP,)RTP,处理打时间戳、编序号和混合实时运输控制协议(,RTCP,)提供了流量控制,、,数据质量控制和到源点的反馈IP,话音是一种实时交互式的音频,/,视频应用会话发起协议(,SIP,)是应用层协议,用来建立、管理和终止多媒体会话。
H.323,是一个,ITU,标准,它允许连接在公用网上的可以和连接在因特网上的计算机之间进行通话一个流可以以它的可靠性、延迟、抖动和带宽为特征调度、通信量整形、资源预留和许可控制是提高服务质量(,QoS,)的技术综合服务是为,IP,设计的基于流的,QoS,模型资源预留协议(,RSVP,)是一个信令协议,它可以帮助,IP,创建流并进行资源预留区分服务是为,IP,设计的基于类别的,QoS,模型第,26,章,IPv6,编制,IPv6,是网际协议的最新版本,它有,128,位的地址空间IPv6,使用十六进制冒号记法,对其还可使用简写有三种类型的地址:单播、任播和组播变长的类型前缀字段定义了地址的类型或作用为了使地址的可读性更好,,IPv6,地址协议指明了十六进制冒号记法在这种记法中,,128,位被划分为八个区,每个区的长度为,2,字节(四个十六进制数字)为了简写地址,一个区的开头几个零可以忽略,还可以使用零压缩IPv6,也允许,CIDR,记法在,IPv6,中,一个目的地址可以属于以下三种类型之一:单播的、任播的和多播的单播地址定义了一个接口任播地址定义了一组计算机,但是分组只有一个副本被发送到这个组中的某一台计算机上。
多播地址也定义了一组计算机,这个组的每一个成员都会收到该分组的一个副本IPv6,的地址空间被划分为若干个大小不同的地址块,并为每种特定的任务分配一个地址块这些地址块中的绝大部分尚未被指派,留作将来使用有些地址块用于保留的地址最重要的地址块是前缀为,001,的块,它用于全球单播地址(类似于,IPv4,中的,A,类、,B,类和,C,类地址)在,IPv6,编址中,有两个很有意思的特色是自动配置和重新编号在,IPv6,中,除了使用,DHCP,外,主机还能自动地对自己进行配置重新编号则允许一个站点把自己的连接更换到另一个提供者,并自动地接收一个新的前缀第,27,章,IPv6,协议,IPv6,数据报由基本首部和有效载荷组成40,字节的基本首部包括版本、通信量类别、流标号、有效载荷长度、下一个首部、跳数限制、源地址以及目的地址等字段通信量类别字段用来衡量数据报的重要性流标号标志了分组序列的特殊处理的需求有效载荷包括可选的扩展首部以及从上层传来的数据扩展首部为,IPv6,数据报增加了更多的功能逐跳选项用来把信息传递给路径上的所有路由器源路由选择扩展用在源点希望指明传输路径时分片扩展用于有效载荷是报文的一个分片时。
鉴别扩展证实了报文的发送方,并保护数据不受黑客篡改加密的安全有效载荷扩展为发送方和接收方之间提供了保密性重点扩展专门把信息从源点传递到终点从版本,4,过渡到版本,6,使用的三个策略分别是双协议栈、隧道技术和首部转换第,28,章,ICMPv6,ICMPv6,和,ICMPv4,一样,是一个面向报文的协议它用于报告差错,获取信息,探测邻站或管理多播通信但是在,ICMPv6,中还增加了几个定义报文的功能及含义的其他协议我们把,ICMPv6,中的所有报文划分为四大类:差错报文、信息报文、邻站发现报文和组成员关系报文一共讨论了四种类型的差错报文:终点不可达、分组太大、超时和参数问题一共讨论了两种类型的信息报文:回送请求报文和回送回答报文我们讨论其中类型的邻站发现报文前五种报文(路由器询问、路由器通告、邻站询问、邻站通告和改变路由)都在,ND,协议的控制下后两种报文(反向邻站询问和反向邻站通告)是在,IND,协议的控制之下我们讨论了两种组成员关系报文:成员关系查询和成员关系报告它们都在,MLDv2,协议的控制下第,29,章 加密术和网络安全,信息是具有价值的财产,需要安全保护信息需要对未授权的访问来说是隐蔽的(保密性);对未授权的修改来说是被保护的(完整性);而对授权的实体来说,只要需要就能得到(有效性)。
我们的三个安全目标可能会受到安全攻击的威胁人们已设计出两种用以保护信息不受攻击的技术:加密术和隐密术传统加密方法称为对称密钥加密方法,因为加密和解密时使用了相同的密钥,并且这个密钥可用于双向通信我们可以把传统的对称密钥加密方法划分为两大类:替代加密方法和转换加密方法替代加密方法就是用另一个字符来替代一个字符转换加密方法就是对字符重新排序现代加密方法是面向比特的加密方法现代加密方法可以是块加密方法,也可以是流加密方法现代块加密方法使用了多次由替代、转换、,XOR,以及其他混合块位操作构成的组合目前最常用的一种块加密方法是,DES,现代流加密方法一次一比特地对比特流进行加密和解密不对称密钥加密方法使用了两个独立的密钥:私钥和公钥不对称密钥加密术意味着,Bob,和,Alice,不能把一套密钥用于双向通信Bob,只需要,一个私,钥就能接收来自团体内任何人传来的讯息,但是,Alice,则需要,n,个公钥才能与团体中的,n,个,实体进行通信保持文档完整性的一种办法就是通过使用报文摘要报文通过一个称为加密散列函数的算法的处理这个函数产生报文的一个压缩的印记,称为摘要,可以像使用手印一样使用它为了确保报文的完整性以及数据来源的鉴别,我们需要创建报文鉴别码(,MAC,),就是通过散列函数来介入,Alice,和,Bob,之间的密钥。
另一种提供了报文完整性和报文鉴别的方法是使用数字签名MAC,用密钥来保护摘要,而数字签名则使用了,一对私钥,-,公钥来做同样地事实体鉴别是为了让一方证实另一方的身份而设计的一种技术实体可以是人、进程、客户端程序或服务器程序需要被证实其身份的实体称为申请者,而试图证实申请者身份的实体称为验证者为了使用对称密钥和不对称密钥加密术,我们需要管理密钥在对称密钥加密术中,我们可以使用,KDC,的服务来产生两个实体之间的会话密钥在不对称密钥加密术中,我们可以使用认证管理机构(,CA,)的服务来发布经认证的公钥第,30,章 因特网安全,IP,安全(,IPSec,)是,IETF,设计的一组协议,用来为网络层的分组提供安全IPSec,的操作有运输方式和隧道方式两种IPSec,定义了两个协议:鉴别首部(,AH,)协议和封装安全有效载荷(,ESP,)协议,它们为,IP,级的分组提供鉴别和加密虚拟专用网是,IPSec,的一种实现,它为具有多个站点的组织提供了保密性运输层安全协议为使用了可靠运输层协议(如,TCP,)的应用程序提供端到端的安全服务目前主要有两个协议在运输层提供安全服务:安全套接层(,SSL,)和运输层安全(,TLS,)。
SSL,(或,TLS,)为接收自应用层的数据提供诸如分片、压缩、报文完整性、保密性以及组帧的服务由,Phil Zimmermann,研发的相当好的保密(,PGP,)为电子邮件提供保密性、完整性和鉴别另一种为电子邮件而设计的安全服务是安全,/,多用途因特网邮件扩充(,S/MIME,)这个协议是多用途因特网邮件扩充(,MIME,)协议的增强版防火墙是安装在组织内部网络和外部因特网之间的一个设备(通常是路由器或计算机)它的设计是为了转发某些分组,而过滤掉其他的分组防火墙通常可分为分组过滤防火墙和代理防火墙两大类分组过滤防火墙依据分组的网络层和运输层首部中的信息来阻拦或转发该分组代理防火墙基于应用层的信息来阻拦或转发分组欢迎阅读本书,,。