计算机网络协议_第1页
计算机网络协议_第2页
计算机网络协议_第3页
计算机网络协议_第4页
计算机网络协议_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络协议教案一、TCP/IP协议族的结构和协议TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。 HYPERLINK /item/TCP%2FIP/214077 t _blank TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。其中比较重要的有 HYPERLINK /item/SLIP/610740 t _blank SLIP协议、PPP协议、IP协议、ICMP协议、ARP协议、TCP协议、UDP协议、 HYPERLINK /item/FTP%E5%8D%8F%E8%AE%AE/7651119 t _blank FTP协议、 HYPERLI

2、NK /item/DNS%E5%8D%8F%E8%AE%AE/1860066 t _blank DNS协议、 HYPERLINK /item/SMTP%E5%8D%8F%E8%AE%AE/421587 t _blank SMTP协议等。 HYPERLINK /item/TCP%2FIP%E5%8D%8F%E8%AE%AE/212915 t _blank TCP/IP协议并不完全符合OSI的七层参考模型。传统的 HYPERLINK /item/%E5%BC%80%E6%94%BE%E5%BC%8F%E7%B3%BB%E7%BB%9F t _blank 开放式系统互连参考模型,是一种 HYPERL

3、INK /item/%E9%80%9A%E4%BF%A1%E5%8D%8F%E8%AE%AE t _blank 通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。(一)熟悉Internet地址结构(二)了解Internet地址的概念互联网上的每个接口必须有一个唯一的 I n t e r n e t地址(也称作I P地址)。I P地址长32 bit。I n t e r n e t地址并不采用平面形式的地址空间,如 1、2、3等。I P地址具有一定

4、的结构,五类不同的互联网地址格式如图1 - 5所示。这些3 2位的地址通常写成四个十进制的数,其中每个整数对应一个字节。这种表示方法称作“点分十进制表示法(Dotted decimal notation)”。例如,作者的系统就是一个B类地址,它表示为:1 4 0 . 2 5 2 . 1 3 . 3 3。区分各类地址的最简单方法是看它的第一个十进制整数。图1 - 6列出了各类地址的起止范围,其中第一个十进制整数用加黑字体表示。需要再次指出的是,多接口主机具有多个 I P地址,其中每个接口都对应一个I P地址。由于互联网上的每个接口必须有一个唯一的 I P地址,因此必须要有一个管理机构为接入互联网

5、的网络分配I P地址。这个管理机构就是互联网络信息中心( Internet Network Information Centre),称作I n t e r N I C。I n t e r N I C只分配网络号。主机号的分配由系统管理员来负责。有三类I P地址:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)。二、熟悉Internet协议通信原理及报文格式(一)控制报文协议ICMP协议引言I C M P经常被认为是 I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。I C M P报文通常被I P层或更高层协议( T C

6、P或U D P)使用。一些I C M P报文把差错报文返回给用户进程。I C M P报文是在I P数据报内部被传输的,如图6 - 1所示。ICMP 的正式规范参见 RFC 792 Posterl1 9 8 1 b 。I C M P报文的格式如图6 - 2所示。所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。下面我们将逐个介绍各种报文格式。类型字段可以有 1 5个不同的值,以描述特定类型的 I C M P报文。某些I C M P报文还使用代码字段的值来进一步描述不同的条件。检验和字段覆盖整个I C M P报文。使用的算法与我们在 3 . 2节中介绍的I P首部检验和算法相同。I C

7、 M P的检验和是必需的。ICMP报文的类型各种类型的I C M P报文如图6 - 3所示,不同类型由报文中的类型字段和代码字段来共同决定。图中的最后两列表明 I C M P报文是一份查询报文还是一份差错报文。因为对 I C M P差错报文有时需要作特殊处理,因此我们需要对它们进行区分。例如,在对 I C M P差错报文进行响应时,永远不会生成另一份 I C M P差错报文(如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去)。当发送一份I C M P差错报文时,报文始终包含I P的首部和产生I C M P差错报文的I P数据报的前8个字节。

8、这样,接收 I C M P差错报文的模块就会把它与某个特定的协议(根据 I P数据报首部中的协议字段来判断)和用户进程(根据包含在 I P数据报前8个字节中的T C P或U D P报文首部中的T C P或U D P端口号来判断)联系起来。下面各种情况都不会导致产生I C M P差错报文:1) ICMP差错报文(但是,I C M P查询报文可能会产生I C M P差错报文)。2) 目的地址是广播地址(见图3 - 9)或多播地址(D类地址,见图1 - 5)的I P数据报。3) 作为链路层广播的数据报。4) 不是I P分片的第一片(将在11 . 5节介绍分片)。5) 源地址不是单个主机的数据报。这就

9、是说,源地址不能为零地址、环回地址、广播地址或多播地址。这些规则是为了防止过去允许I C M P差错报文对广播分组响应所带来的广播风暴。ICMP地址掩码请求与应答I C M P地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码( 3 . 5节)。系统广播它的I C M P请求报文(这一过程与无盘系统在引导过程中用 R A R P获取I P地址是类似的)。无盘系统获取子网掩码的另一个方法是 B O O T P协议,我们将在第 1 6章中介绍。I C M P地址掩码请求和应答报文的格式如图6 - 4所示。I C M P报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。这样

10、,发送端就可以把应答与请求进行匹配。我们可以写一个简单的程序(取名为 i c m p a d d r m a s k),它发送一份I C M P地址掩码请求报文,然后打印出所有的应答。由于一般是把请求报文发往广播地址,因此这里我们也这样做。目的地址(1 4 0 . 2 5 2 . 1 3 . 6 3)是子网1 4 0 . 2 5 2 . 1 3 . 3 2的广播地址(见图3 - 1 2)。ICMP时间戳请求与应答I C M P时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间( Coordinated Universal Time, UTC)(早

11、期的参考手册认为U T C是格林尼治时间)。这种I C M P报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些 U n i x系统提供的r d a t e命令)只能提供秒级的分辨率。由于返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的一个缺陷。请求端填写发起时间戳,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。但是,实际上,大多数的实现把后面两个字段都设成相同的值(提供三个字段的原因是可以让发送方分别计算发送请求的时间和发送应答的时间)。(二)用户数据报协议UDP协议引言U D P是一个简单的面向数

12、据报的运输层协议:进程的每个输出操作都正好产生一个 U D P数据报,并组装成一份待发送的 I P数据报。这与面向流字符的协议不同,如 T C P,应用程序产生的全体数据与真正发送的单个 I P数据报可能没有什么联系。U D P数据报封装成一份 I P数据报的格式如图11 - 1所示。RFC 768 Postel 1980 是U D P的正式规范。U D P不提供可靠性:它把应用程序传给 I P层的数据发送出去,但是并不保证它们能到达目的地。由于缺乏可靠性,我们似乎觉得要避免使用 U D P而使用一种可靠协议如 T C P。我们在第1 7章讨论完T C P后将再回到这个话题,看看什么样的应用程

13、序可以使用 U D P。应用程序必须关心 I P数据报的长度。如果它超过网络的 M T U(2 . 8节),那么就要对I P数据报进行分片。如果需要,源端到目的端之间的每个网络都要进行分片,并不只是发送端主机连接第一个网络才这样做(我们在 2 . 9节中已定义了路径 M T U的概念)。在11 . 5节中,我们将讨论I P分片机制。UDP首部U D P首部的各字段如图11 - 2所示。端口号表示发送进程和接收进程。在图 1 - 8中,我们画出了T C P和U D P用目的端口号来分用来自I P层的数据的过程。由于I P层已经把I P数据报分配给T C P或U D P(根据I P首部中协议字段值

14、),因此T C P端口号由T C P来查看,而U D P端口号由U D P来查看。T C P端口号与U D P端口号是相互独立的。U D P长度字段指的是U D P首部和U D P数据的字节长度。该字段的最小值为 8字节(发送一份0字节的U D P数据报是O K)。这个U D P长度是有冗余的。 I P数据报长度指的是数据报全长(图3 - 1),因此U D P数据报长度是全长减去 I P首部的长度(该值在首部长度字段中指定,如图3 - 1所示)。UDP检验和U D P检验和覆盖U D P首部和U D P数据。回想I P首部的检验和,它只覆盖I P的首部 并不覆盖I P数据报中的任何数据。U D

15、 P和T C P在首部中都有覆盖它们首部和数据的检验和。 U D P的检验和是可选的,而T C P的检验和是必需的。尽管U D P检验和的基本计算方法与我们在 3 . 2节中描述的 I P首部检验和计算方法相类似(16 bit字的二进制反码和),但是它们之间存在不同的地方。首先, U D P数据报的长度可以为奇数字节,但是检验和算法是把若干个 16 bit字相加。解决方法是必要时在最后增加填充字节0,这只是为了检验和的计算(也就是说,可能增加的填充字节不被传送)。其次,U D P数据报和T C P段都包含一个1 2字节长的伪首部,它是为了计算检验和而设置的。伪首部包含 I P首部一些字段。其目

16、的是让 U D P两次检查数据是否已经正确到达目的地(例如,I P没有接受地址不是本主机的数据报,以及 I P没有把应传给另一高层的数据报传给U D P)。U D P数据报中的伪首部格式如图11 - 3所示。在该图中,我们特地举了一个奇数长度的数据报例子,因而在计算检验和时需要加上填充字节。注意,U D P数据报的长度在检验和计算过程中出现两次。如果检验和的计算结果为 0,则存入的值为全 1(6 5 5 3 5),这在二进制反码计算中是等效的。如果传送的检验和为0,说明发送端没有计算检验和。如果发送端没有计算检验和而接收端检测到检验和有差错,那么 U D P数据报就要被悄悄地丢弃。不产生任何差

17、错报文(当 I P层检测到I P首部检验和有差错时也这样做)。U D P检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现U D P首部和数据在发送端到接收端之间发生的任何改动。尽管U D P检验和是可选的,但是它们应该总是在用。在 8 0年代,一些计算机产商在默认条件下关闭U D P检验和的功能,以提高使用 U D P协议的N F S(Network File System)的速度。在单个局域网中这可能是可以接受的,但是在数据报通过路由器时,通过对链路层数据帧进行循环冗余检验(如以太网或令牌环数据帧)可以检测到大多数的差错,导致传输失败。不管相信与否,路由器中也存

18、在软件和硬件差错,以致于修改数据报中的数据。如果关闭端到端的U D P检验和功能,那么这些差错在 U D P数据报中就不能被检测出来。另外,一些数据链路层协议(如S L I P)没有任何形式的数据链路检验和。IP分片(三)传输控制协议TCP协议即传输控制协议,它提供的是一种可靠的 HYPERLINK /item/%E6%95%B0%E6%8D%AE%E6%B5%81 t _blank 数据流服务。当传送受差错干扰的数据,或举出 HYPERLINK /item/%E7%BD%91%E7%BB%9C%E6%95%85%E9%9A%9C/1391028 t _blank 网络故障,或网络负荷太重而使

19、网际基本传输系统不能正常工作时,就需要通过其他的协议来保证通信的可靠。 HYPERLINK /item/TCP/33012 t _blank TCP就是这样的协议。TCP采用“带重传的肯定确认”技术来实现传输的可靠性。并使用“ HYPERLINK /item/%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3 t _blank 滑动窗口”的 HYPERLINK /item/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6 t _blank 流量控制机制来提高网络的吞吐量。TCP通信建立实现了一种“ HYPERLINK /item/%E8%99%9A

20、%E7%94%B5%E8%B7%AF/1609903 t _blank 虚电路”的概念。双方通信之前,先建立一条链接然后双方就可以在其上发送数据流。这种数据交换方式能提高效率,但事先建立连接和事后拆除连接需要开销。TCP的服务尽管T C P和U D P都使用相同的网络层(I P),T C P却向应用层提供与U D P完全不同的服务。T C P提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用 T C P的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个 T C P连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在第 1 8章我们将看到

21、一个 T C P连接是如何建立的,以及当一方通信结束后如何断开连接。在一个T C P连接中,仅有两方进行彼此通信。在第 1 2章介绍的广播和多播不能用于T C P。T C P通过下列方式来提供可靠性: 应用数据被分割成T C P认为最适合发送的数据块。这和 U D P完全不同,应用程序产生的数据报长度将保持不变。由 T C P传递给I P的信息单位称为报文段或段( s e g m e n t)(参见图1 - 7)。在1 8 . 4节我们将看到T C P如何确定报文段的长度。 当T C P发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。在

22、第 2 1章我们将了解T C P协议中自适应的超时及重传策略。 当T C P收到发自T C P连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒,这将在1 9 . 3节讨论。 T C P将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错, T C P将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。 既然T C P报文段作为I P数据报来传输,而I P数据报的到达可能会失序,因此 T C P报文段的到达也可能会失序。如果必要, T C P将对收到的数据进行重新排序,将收到的数据以正确的顺序交给

23、应用层。 既然I P数据报会发生重复,T C P的接收端必须丢弃重复的数据。 T C P还能提供流量控制。 T C P连接的每一方都有固定大小的缓冲空间。 T C P的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。两个应用程序通过T C P连接交换8 bit字节构成的字节流。T C P不在字节流中插入记录标识符。我们将这称为字节流服务(byte stream service)。如果一方的应用程序先传1 0字节,又传2 0字节,再传5 0字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分 4次接收这8 0个字节,每次接收 2 0字节。一端

24、将字节流放到 T C P连接上,同样的字节流将出现在T C P连接的另一端。另外,T C P对字节流的内容不作任何解释。 T C P不知道传输的数据字节流是二进制数据,还是A S C I I字符、E B C D I C字符或者其他类型数据。对字节流的解释由 T C P连接双方的应用层解释。TCP的首部T C P数据被封装在一个I P数据报中,如图1 7 - 1所示。每个T C P段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上I P首部中的源端I P地址和目的端I P地址唯一确定一个T C P连接。有时,一个I P地址和一个端口号也称为一个插口( s o c k e t)

25、。这个术语出现在最早的 T C P规范(R F C 7 9 3)中,后来它也作为表示伯克利版的编程接口(参见 1 . 1 5节)。插口对(s o c k e tp a i r)(包含客户I P地址、客户端口号、服务器 I P地址和服务器端口号的四元组 )可唯一确定互联网络中每个T C P连接的双方。序号用来标识从T C P发端向T C P收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则 T C P用序号对每个字节进行计数。序号是32 bit的无符号数,序号到达2 3 2 1后又从0开始。当建立一个新的连接时, S Y N标志变1。序号

26、字段包含由这个主机选择的该连接的初始序号I S N(Initial Sequence Number)。该主机要发送数据的第一个字节序号为这个 I S N加1,因为S Y N标志消耗了一个序号(将在下章详细介绍如何建立和终止连接,届时我们将看到 F I N标志也要占用一个序号)。既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加 1。只有A C K标志(下面介绍)为 1时确认序号字段才有效。发送A C K无需任何代价,因为32 bit的确认序号字段和A C K标志一样,总是T C P首部的一部分。因此,我们看到一旦一个连

27、接建立起来,这个字段总是被设置, A C K标志也总是被设置为1。T C P为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。T C P可以表述为一个没有选择确认或否认的滑动窗口协议(滑动窗口协议用于数据传输将在2 0 . 3节介绍)。我们说T C P缺少选择确认是因为 T C P首部中的确认序号表示发方已成功收到字节,但还不包含确认序号所指的字节。当前还无法对数据流中选定的部分进行确认。例如,如果11 0 2 4字节已经成功收到,下一报文段中包含序号从 2 0 4 93 0 7 2的字节,收端并不能确认这个新的报文段。它所能做

28、的就是发回一个确认序号为 1 0 2 5的A C K。它也无法对一个报文段进行否认。例如,如果收到包含 1 0 2 52 0 4 8字节的报文段,但它的检验和错, T C P接收端所能做的就是发回一个确认序号为 1 0 2 5的A C K。在2 1 . 7节我们将看到重复的确认如何帮助确定分组已经丢失。首部长度给出首部中32 bit字的数目。需要这个值是因为任选字段的长度是可变的。这个字段占4 bit,因此T C P最多有6 0字节的首部。然而,没有任选字段,正常的长度是 2 0字节。在T C P首部中有6个标志比特。它们中的多个可同时被设置为 1。我们在这儿简单介绍它们的用法,在随后的章节中

29、有更详细的介绍。U R G 紧急指针(u rgent pointer)有效(见2 0 . 8节)。A C K 确认序号有效。P S H 接收方应该尽快将这个报文段交给应用层。R S T 重建连接。S Y N 同步序号用来发起一个连接。这个标志和下一个标志将在第 1 8章介绍。F I N 发端完成发送任务。T C P的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个 16 bit字段,因而窗口大小最大为 6 5 5 3 5字节。在2 4 . 4节我们将看到新的窗口刻度选项,它允许这个值按比例变化以提供更大

30、的窗口。检验和覆盖了整个的T C P报文段:T C P首部和T C P数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。 T C P检验和的计算和 U D P检验和的计算相似,使用如11 . 3节所述的一个伪首部。只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。 T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。我们将在2 0 . 8节介绍它。最常见的可选字段是最长报文大小,又称为 MSS (Maximum Segment Size)。每个连接方通常都在通信的第一个报文段(为建立连接而设置 S

31、 Y N标志的那个段)中指明这个选项。它指明本端所能接收的最大长度的报文段。我们将在 1 8 . 4节更详细地介绍M S S选项,T C P的其他选项中的一些将在第2 4章中介绍。从图1 7 - 2中我们注意到T C P报文段中的数据部分是可选的。我们将在 1 8章中看到在一个连接建立和一个连接终止时,双方交换的报文段仅有 T C P首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。(四)其他协议T F T P ( Trivial File Transfer Protocol)即简单文件传送协议,最初打算用于引导无盘系

32、统(通常是工作站或X终端)。和将在第2 7章介绍的使用T C P的文件传送协议(F T P)不同,为了保持简单和短小,T F T P将使用U D P。T F T P的代码(和它所需要的 U D P、I P和设备驱动程序)都能适合只读存储器。在开始工作时,T F T P的客户与服务器交换信息,客户发送一个读请求或写请求给服务器。在一个无盘系统进行系统引导的正常情况下,第一个请求是读请求( R R Q)。图1 5 - 1显示了5种T F T P报文格式(操作码为1和2的报文使用相同的格式)。T F T P报文的头两个字节表示操作码。对于读请求和写请求( W R Q),文件名字段说明客户要读或写的位

33、于服务器上的文件。这个文件字段以 0字节作为结束(见图 1 5 - 1)。模式字段是一个A S C I I码串n e t a s c i i或o c t e t(可大小写任意组合),同样以0字节结束。n e t a s c i i表示数据是以成行的A S C I I码字符组成,以两个字节 回车字符后跟换行字符(称为C R / L F)作为行结束符。这两个行结束字符在这种格式和本地主机使用的行定界符之间进行转化。o c t e t则将数据看作8 bit一组的字节流而不作任何解释。每个数据分组包含一个块编号字段,它以后要在确认分组中使用。以读一个文件作为例子,T F T P客户需要发送一个读请求说

34、明要读的文件名和文件模式 ( m o d e )。如果这个文件能被这个客户读取,T F T P服务器就返回一个块编号为 1的数据分组。T F T P客户又发送一个块编号为1的A C K。T F T P服务器随后发送块编号为2的数据。T F T P客户发回块编号为2的A C K。重复这个过程直到这个文件传送完。除了最后一个数据分组可含有不足 5 1 2字节的数据,其他每个数据分组均含有5 1 2字节的数据。当T F T P客户收到一个不足5 1 2字节的数据分组,就知道它收到最后一个数据分组。在写请求的情况下,TFTP 客户发送W R Q指明文件名和模式。如果该文件能被 该客户写,TFTP 服务

35、器就返回块编号为 0的A C K包。该客户就将文件的头 5 1 2字节以块编号为1发出。服务器则返回块编号为1的A C K。这种类型的数据传输称为停止等待协议。它只用在一些简单的协议如 T F T P中。在2 0 . 3节中将看到T C P提供了不同形式的确认,能提供更高的系统吞吐量。 T F T P的优点在于实现的简单而不是高的系统吞吐量。最后一种T F T P报文类型是差错报文,它的操作码为 5。它用于服务器不能处理读请求或写请求的情况。在文件传输过程中的读和写差错也会导致传送这种报文,接着停止传输。差错编号字段给出一个数字的差错码,跟着是一个 A S C I I表示的差错报文字段,可能包

36、含额外的操作系统说明的信息。既然T F T P使用不可靠的U D P,T F T P就必须处理分组丢失和分组重复。分组丢失可通过发送方的超时与重传机制解决(注意存在一种称为“魔术新手综合症 ( s o r c e r e rs apprentices y n d r o m e )”的潜在问题,如果双方都超时与重传,就可能出现这个问题。 12.2 节 S t e v e n s1990 介绍了这个问题是如何发生的 )。和许多U D P应用程序一样,T F T P报文中没有检验和,它假定任何数据差错都将被U D P的检验和检测到(参见11 . 3节)。RARP:逆地址解析协议引言具有本地磁盘的系

37、统引导时,一般是从磁盘上的配置文件中读取 I P地址。但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得 I P地址。网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的R A R P实现过程是从接口卡上读取唯一的硬件地址,然后发送一份 R A R P请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的 I P地址(在R A R P应答中)。在概念上这个过程是很简单的,但是实现起来常常比 A R P要困难,其原因在本章后面介绍。R A R P的正式规范是RFC 903 Finlayson et al. 1984。RARP的分组格式R A R P分组的格

38、式与A R P分组基本一致(见图 4 - 3)。它们之间主要的差别是 R A R P请求或应答的帧类型代码为0 x 8 0 3 5,而且R A R P请求的操作代码为3,应答操作代码为4。对应于A R P,R A R P请求以广播方式传送,而R A R P应答一般是单播( u n i c a s t )传送的。三、了解Internet安全协议知识(一)可扩展身份认证协议可扩展认证协议(Extensible authentication protocol, HYPERLINK /item/EAP t _blank EAP)是一个第二层处理,允许网络对无线客户端进行认证的协议。简介如今Intern

39、et用户都需要连接到ISP以取得网络服务,同时也有许多个人需要将家中的个人计算机互联起来,他们一般都有拨号电话线路或租用的电话专用线路。然而这些线路都只是提供了点到点之间的一条物理链路,要在物理链路上进行通信必须借助于某种通信协议来对链路进行控制。因此出现了两种协议: SLIP和PPP。其中SLIP有以下一些缺陷:只支持IP;不允许IP地址的动态分配;不支持用户认证。而PPP却为点到点数据链路上传输多协议数据报提供了一种通用方法。为了在点到点物理链路上建立通信,在链路建立阶段, PPP通信链路的每一端都必须首先发送LCP数据包来对该数据链路进行配置协商。在链路已经建立起来后,在进入网络层协议进

40、行实际的数据通信之前,PPP提供了一个可选的认证阶段。缺省时,认证并不是必需的。如果想要对通信链路进行认证,具体实现时必须在链路建立阶段指定认证协议配置选项来说明要进行认证。起初PPP上支持的认证方式主要是PAP和CHAP,然而它们都不能扩展。对此,PPP协议现在增加了一种新的可扩展认证协议(EAP),它是PPP , 认证的一个通用认证协议 在它上面可以支持多种认证机制,也就是说它提供了在PPP上进行多种认证的底层框架其它各种具体的认证机制都是建立在它之上的。 ,具体来讲, EAP在链路建立阶段并没有选定某一种特定的认证机制,只需说明要使用EAP , 认证即可 而把具体认证过程推迟到后面一个独

41、立的认证阶段。在这一阶段进行认证方式的协商和具体认证过程,并由认证成功与失败的结果来决定是否进入网络层以使网络层数据能够在链路上进行传输1。可扩展认证协议(Extensible authentication protocol, HYPERLINK /item/EAP t _blank EAP)是一个第二层处理过程,允许网络对无线客户端进行认证。有两种EAP:一种用于无线网路,另一种用于LAN HYPERLINK /item/%E8%BF%9E%E6%8E%A5/70199 t _blank 连接,通常称为 EAP over LAN(EAPoL)。无线环境中的一个问题是要允许WLAN设备与AP

42、后面的设备进行通信。有3个标准定义了此过程:EAP,802.1x和远程认证拨入用户服务(Remote authentication dial in user service, RADIUS )。EAP定义了标准的认证信息封装方法,如AP用于对用户进行认证的用户名和密码和数字证书。EAP本质上是点对点协议(PPP)的扩展,第一种EAP是EAP-MD5,它使用挑战握手认证协议(challenge handshake authentication protocol, CHAP)进行认证,下面是一些EAP扩展(介绍其中EAP-MD5和EAP-TLS)。EAP设计思想设计思想:PPP主要作用于两层,数据

43、链路层和物理层。PPP根据双方的选项协商、认证协商等来控制串行网络设备数据链路是否允许某些特定的网络层数据是否可以通过。网络层是建立在数据链路层之上的,当数据链路层有来自物理层的数据时,它将处理得到的数据,即根据数据帧协议域的不同而对网络协议数据进行分流,将不同协议的数据分别发往相应的上层网络协议输入队列,并相应地给它们发一个软中断,以通知上层对输入队列进行处理。只需通过检测认证过程的成功与否来决定是否将链路交给相应的上层网络使用,具体如图所示。下面是具体的设计与实现:首先设计一个用于EAP认证配置信息文件,PPP用此文件来获得EAP认证的客户与服务器的认证选项信息。有PPP一个从文件中获取各

44、种认证选项信息的通用子程序,通过它可把与EAP认证有关的选项参数加入到的PPPLCP配置选项列表中。如果真的要进行EAP认证,则在LCP发送LCP配置包时,对方将知道要进行EAP认证。同时将EAP的通信认证过程设计为一个有限状态自动机。有限自动机的信息结构主要内容如下:123456typedefstructeap_stateintes_unit;通信接口structeap_authclient;客户认证信息structeap_authserver;服务器认证信息eap_state;其中认证信息主要包括通信双方的名字、认证请求类型、请求序列号、超时值等参数。它们是控制EAP有限自动机通信协商过程

45、的依据。EAP认证流程机制如下:首先在用PPP,向远程端点进行连接时在链路建立阶段表明要使用EAP认证之后当进行到认证阶段时就进,行EAP认证过程:认证一方向另一方首先发送一个身份请求并等待对方发来,相应的响应。对方在接到身份请求要求时,它应发送一个身份响应包,它们的ID必须相同。ID认证方检查包类型是否是身份响应包,且是否与发送请求时一致,如不一致则看是否到达了最大次数,如果没到则重发身份认证请求同时可选择性地发送一,个notification来传递一些通知信息,如这样的例子:包括带一个超时设定能(expiration)的口令,OTP0序列整数(接近),认证失败警告等。在大多数情况下,not

46、ification不是必要的。在接到身份响应时,认证方根据身份,检查通信实体数据库,以查找对应的认证方式如找到则开始发送相应的认证请求。对方在接到认证请求时,首先检查它自己是否支持认证者所要求的认证请求如不支,持,则要发送一个NAK,否认包携带自己允许的认证类型。如支持则发送认证响应。NAK认证者检查响应包,如是否认包,则重发对方允许的认证请求。如是上一次的认证请求的响应,则检查它是否是它所期待的响应以决定认证成功与失败,从而决定链路的打开与关闭。如上一步成功,向对方发送认证确认包,以使对方把链路打开,通知上层网络控制协议进行网络通信协议参数的协商,随着各个网络控制协议打开之后,PPP就把数据

47、链路交给通信网络协议,这时双方才可以进行实际的通信。PPP当所有的上层协议都不再需要使用此数据链路时,将发送中止链路请求包来结束数据链路。EAP-MD5支持使用CHAP和静态密码进行认证;EAP-TLS支持使用x.509v3数字证书进行认证;802.1x和 RADIUS 定义了如何打包EAP信息,从而在网络上传输这些信息。 下图中显示了所使用的3中标准。802.1x描述了客户端(通常称为请求者)如何将EAP信息传输到网络访问设备(认证者)。网络访问设备可以是AP,交换机,路由器,VPN网关等。认证者使用RADIUS 协议将这些信息传输到认证服务器,改服务器会确认此请求者是否可以访问网络。注意,

48、认证者处通常没有本地定义的用户凭据,它通常在认证服务器上查找此内容。(二)ip安全协议1 IP Sec协议概述IPSec是一系列基于IP网络(包括Intranet、Extranet和Internet)的,由IETF正式定制的开放性IP安全标准,是虚拟专网的基础,已经相当成熟可靠。 IPSec可以保证局域网、专用或公用的广域网及Internet上信息传输的安全。 保证Internet上各分支办公点的安全连接:公司可以借助Internet或公用的广域网搭建安全的虚拟专用网络。这使得公司可以不必耗巨资去建立自己的专用网络,而只需依托Internet即可以获得同样的效果。 保证Internet上远程访

49、问的安全:在计算机上装有IPSec的终端用户可以通过拨入所在地的ISP的方式获得对公司网络的安全访问权。这一做法降低了流动办公雇员及远距离工作者的长途电话费用。 通过外部网或内部网建立与合作伙伴的联系:IPSec通过认证和钥匙交换机制确保企业与其它组织的信息往来的安全性与机密性。 提高了电子商务的安全性:尽管在电子商务的许多应用中已嵌入了一些安全协议,IPSec的使用仍可以使其安全级别在原有的基础上更进一步,因为所有由网络管理员指定的通信都是经过加密和认证的。 IPSec的主要特征在于它可以对所有IP级的通信进行加密和认证,正是这一点才使IPSec可以确保包括远程登录、客户/服务器、电子邮件、

50、文件传输及Web访问在内多种应用程序的安全。 IPSec在传输层之下,对于应用程序来说是透明的。当在路由器或防火墙上安装IPSec时,无需更改用户或服务器系统中的软件设置。即使在终端系统中执行IPSec,应用程序一类的上层软件也不会被影响。 IPSec对终端用户来说是透明的,因此不必对用户进行安全机制的培训。 如果需要的话,IPSec可以为个体用户提供安全保障,这样做就可以保护企业内部的敏感信息。 IPSec正向Internet靠拢。已经有一些机构部分或全部执行了IPSec。IAB的前任总裁Christian Huitema认为,关于如何保证Internet安全的讨论是他所见过的最激烈的讨论之

51、一。讨论的话题之一就是安全是否在恰当的协议层上被使用。想要提供IP级的安全,IPSec必须成为配置在所有相关平台(包括Windows NT,Unix和Macintosh系统)的网络代码中的一部分。 实际上,现在发行的许多Internet应用软件中已包含了安全特征。例如,Netscape Navigator和Microsoft Internet Explorer支持保护互联网通信的安全套层协议(SSL),还有一部分产品支持保护Internet上信用卡交易的安全电子交易协议(SET)。然而,VPN需要的是网络级的功能,这也正是IPSec所提供的。 2 IPSec VPN工作原理 当IPSec用于路

52、由器时,就可以建立虚拟专用网。在路由器的连内部网的一端,是一个受保护的网络,另一端则是不安全的公共网络。两个这样的路由器建立起一个安全通道,通信就可以通过这个通道从一个本地的保护子网发送到一个远程的保护子网,这就形成了一个VPN。4.2.1 隧道建立方式IPsec VPN隧道的建立过程可以分为二个阶段: 第一阶段有二种模式: 主模式或主动模式和第二阶段:快速模式 。第一阶段有三个任务必须完成: 协商一系列算法和参数(这些算法和参数用于保护隧道建立过程中的数据)。 必须计算出二边使用的加密KEY值,例如,二边使用3DES算法密,3DES算法则需要一个密码,这个密码两端端必须一样,但又不能在链路上

53、传递。 对等体的验证,如何才能知道对端就是我要与之通信的对端.这里验证有三种方法:预共享,数字签名,加密临时值。 这一系列过程都是IKE这个协议来实现。第一阶段三个任务,分别用6个消息来完成,每二个为一组。第一个消息由隧道的发起者发起,携带了如这样一些参数,如加密机制-DES,散列机制-MD5-HMAC,Diffie-Hellman组-2,认证机制-预共享。第二个消息由响应者回应,内容基本一样,主要与发起者比较,是否与发起者匹配,不匹配就进行下一组的比较.如果最终都找不到匹配,隧道就停止建立。第三个消息由发起者发出,但是在发出这个消息之前,有个过程必须先完成,就是Diffie-Hellman算

54、法过程。该过程的目的是什么呢?刚刚第一二条消息中所协商的算法它们必须需要一个KEY,这个KEY在二个对等体上必须一样,但同时这个KEY不能在链路中传递,因为传递KEY是一个不安全的手段.所以,该过程的目的是分别在二个对等间独立地生成一个DH公共值,该公共值有什么用呢?因为二个对等体上都生成该DH公共值后,它们会在接下来的第三第四消息中传送给对方,打个比方,就是A收到了B的DH公共值,B收到了A的DH公共值.当A,B都收到了对方的该公共值后,问题就好解决了.因为有一个公式在数学中被论证成立,那么现在借助该公式,就可以在二个对等上生成一个只有他们二个对等体知道的相同的KEY,该公式为 发起者密秘=

55、(Xb)amod p=(Xa)bmod p=响应者密秘 注意,这个密秘不是最终算法中使用的KEY,但二个对等体通过该KEY材料来生成另个三个密钥,分别是: SKEYID_d-此密钥被用于计算后续IPsec密钥资源。SKEYID_a-此密钥被用于提供后续IKE消息的数据完整性以及认证。 SKEYID_e-此密钥被用于对后续IKE消息进行加密。所以由发起者发起的第三条消息主要是向对等体发送自己的DH公共值 。第四条消息由响应者向发起者发送,主要是向发送者发送自己的DH公共值.由于第一二条消息的算法,第三四条消息生成的KEY,所以在后续的第五六条消息就能被加密传送. 第五条消息由发起者向响应者发送,

56、主要是为了验证对端自己就是自己想要与之通信的对端.这可以通过预共享,数字签名,加密临时值来实现.。第六条消息由响应者向发起者发送,主要目的和第五条一样。第二阶段只有一任务必须完成:在二个对等体间协商产生IPsec联盟的属性,安全联盟可以加密二个对等体间的数据,这才是真正的需要加密的用户数据,至此,隧道才真正建立起来。 在第一阶段的六条消息过后,就进入了第二阶段:快速模式,快速模式使用二条消息来实现:发起者会在第一条消息中发送IPsec SA的转换属性,如:封装-ESP,完整性检验-SHA-HMAC,DH组-2,模式-隧道,响应者向发起者发送第二条消息,同意第一条消息中的属性,同时也能起到确认收

57、到对端消息的作用。这一步一旦完成,隧道就建立起来了,用户的数据就能被放入隧道中传送。IPSec隧道建立过程类似于TCP三次握手,如下图所示:连接请求确认SYN,ACK,SEQ=Y,ACK=X+1被动打开SYN,SEQ=X确认SYN,SEQ=X+1,ACK=Y+1服务器客户端 图1 “三次”握手隧道的建立过程1)客户端向服务器端发送一个SYN置位的TCP报文;2)服务器端接收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包括确认号为x+1和服务器的初始序列号y;3)客户端收到服务器返回的SYN+ACK报文后,向服务器返回一个确认号为y+1序列号为x+1的A

58、CK报文。2.2 数据保护方式IPSec提供三种不同的形式来保护通过公有或私有IP网络来传送的私有数据: 认证:可以确定所接受的数据与所发送的数据是一致的,同时可以确定申请发送者在实际上是真实发送者,而不是伪装的。 数据完整:保证数据从原发地到目的地的传送过程中没有任何不可检测的数据丢失与改变。 机密性:使相应的接收者能获取发送的真正内容,而无意获取数据的接收者无法获知数据的真正内容。 在IPSec由三个基本要素来提供以上三种保护形式:认证协议头(AH)、安全加载封装(ESP)和互联网密钥管理协议(IKMP)。认证协议头和安全加载封装可以通过分开或组合使用来达到所希望的保护等级。 对于VPN来

59、说,认证和加密都是必需的,因为只有双重安全措施才能确保未经授权的用户不能进入VPN,同时,Internet上的窃听者无法读取VPN上传输的信息。大部分的应用实例中都采用了ESP而不是AH。密钥交换功能允许手工或自动交换密钥。 当前的IPSec支持数据加密标准(DES),但也可以使用其它多种加密算法。因为人们对DES的安全性有所怀疑,所以用户会选择使用Triple-DES(即三次DES加密)。至于认证技术,将会推出一个叫作HMAC(MAC 即信息认证代码Message Authentication Code)的新概念。2.3 IPSEC 协议体系结构IPSec将几种安全技术结合形成一个完整的安全

60、体系,它包括安全协议部分和密匙协商部分。这些协议之间的相互关系如图2所示:图2 IPSec 协议体系 安全关联和安全策略:安全关联(Security Association,SA)是构成IPSec的基础,是两个通信实体经协商建立起来的一种协定,它们决定了用来保护数据包安全的安全协议(AH协或者ESP协议) 、转码方式、密匙及密匙的有效存在时间等等。 IPSec协议的运行模式:IPSec协议的运行模式有两种,IPSec隧道模式及IPSec传输模式。隧道模式的特点是数据包最终的目的地不是安全的终点。通常情况下,只有IPSec双方有一方是安全网关或路由器,就必须使用隧道模式。传输模式下,IPSec主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论