TCPIP协议技术应用知识汇总_第1页
TCPIP协议技术应用知识汇总_第2页
TCPIP协议技术应用知识汇总_第3页
TCPIP协议技术应用知识汇总_第4页
TCPIP协议技术应用知识汇总_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、学习好资料欢迎下载TCP/IP协议技术应用知识汇总OSI网络分层参考模型网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率,每个协议 只应该注意没有被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该能够共 享特定的数据结构;同时这些协议的组合应该能处理所有可能的硬件错误以及其它异常情况。为了保证这些协议工作的协同性,应当将协议设计和开发成完整的、协作的协议系列(即

2、协议族),而不是孤立地开发每个协议。在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统 互联的七层参考模型。 一台计算机操作系统中的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部),OSI参考模型把功能分成七个分立的层次。图 2.1表示了 OSI分层模型。II应用层 I 一第七层表示层会话层传输层网络层数据链路层I物理层 I 一第一层图2.1 OSI七层参考模型OSI模型的七层分别进行以下的操作:第一层一一物理层第一层负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实 际界面组成,可定义电气信号、符号、线的

3、状态和时钟要求、数据编码和数据传输用的连接器。如最常用 的RS-232规范、10BASE-T的曼彻斯特编码以及 RJ-45就属于第一层。所有比物理层高的层都通过事 先定义好的接口而与它通话。如以太网的附属单元接口 (AUI), 一个DB-15连接器可被用来连接层一和层 一。第二层一一数据链路层数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特 征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相对应的是网络编址) 定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓 扑结构;错误校验向发生传输错误

4、的上层协议告警;数据帧序列重新整理并传输除序列以外的帧;流控可 能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。数据链路层实际上由两个独立的部分组成,介质存取控制( Media Access Control,MAC )和逻辑链路控制层 (Logical Link Control,LLC )。MAC描述在共享介质环境中如何进行站的调度、发生和接收数据。MAC确保信息跨链路的可靠传输,对数据传输进行同步,识别错误和控制数据的流向。一般地讲,MAC只在共享介质环境中才是重要的,只有在共享介质环境中多个节点才能连接到同一传输介质上。IEEE MAC规则定义了地址,以

5、标识数据链路层中的多个设备。逻辑链路控制子层管理单一网络链路上的设备间的通信,IEEE 802.2标准定义了 LLC。LLC支持无连接服务和面向连接的服务。在数据链路层的信息帧中定义了 许多域。这些域使得多种高层协议可以共享一个物理数据链路。第三层网络层网络层负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。相同MAC标准的不同网段之间的数据传输一般只涉及到数据链路层,而不同的MAC标准之间的数据传输都涉及到网络层。例如IP路由器工作在网络层,因而可以实现多种网络间的互联。第四层传输层传输层向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输

6、、虚电 路管理及差错校验和恢复。流控管理设备之间的数据传输,确保传输设备不发送比接收设备处理能力大的 数据;多路传输使得多个应用程序的数据可以传输到一个物理链路上;虚电路由传输层建立、 维护和终止;差错校验包括为检测传输错误而建立的各种不同结构;而差错恢复包括所采取的行动(如请求数据重发),以便解决发生的任何错误。传输控制协议( TCP)是提供可靠数据传输的 TCP/IP协议族中的传输层协议。第五层会话层会话层建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间 的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包括创建检查点,使通信发生中断 的时候可以

7、返回到以前的一个状态。第六层 表下层表示层提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一 个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩 模式和公用数据加密模式。公用数据表示格式就是标准的图像、声音和视频格式。通过使用这些标准格式,不同类型的计算机 系统可以相互交换数据;转化模式通过使用不同的文本和数据表示,在系统间交换信息,例如 ASCII(American Standard Code for Information Interchange,美国标准信息交换码 );标准数据压缩模式确保原始设备上被压缩的数据可以在

8、目标设备上正确的解压;加密模式确保原始设备上加密的数 据可以在目标设备上正确地解密。表示层协议一般不与特殊的协议栈关联,如QuickTime 是Applet计算机的视频和音频的标准,MPEG是ISO的视频压缩与编码标准。常见的图形图像格式PCX、GIF、 JPEG是不同的静态图像压缩和编码标准。第七层应用层应用层是最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(Application Program Interface ,应用程序接口)组成,这类应用软件程序超出了

9、OSI模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必 须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必 须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。OSI的应用层协议包括文件的传输、访问及管理协议(FTAM),以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等。2.2 TCP/IP 分层模型TCP/IP 分层模型(TCP/IP Layening Model )被称作因特网分层模型 (Internet Layering Model) 、学习

10、好资料欢迎下载因特网参考模型(Internet Reference Model)。图2.2表示了 TCP/IP分层模型的四层。DFWFHGTISUNIHTTOERMS其第四层,应用层SNOPTPLCTEG | I P H | N P NESEEE 它RR TT第一层,网络接口 IAR P RAR P其它1第三层,传输层 111 1TCP1UDPj1 1第二层,网间层1L_11I CMPI Pj图2.2 TCP/IP四层参考模型TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必

11、须与许多其他的协议协 同工作。TCP/IP分层模型的四个协议层分别完成以下的功能:第一层一一网络接口层网络接口层包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO 数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。第二层一一网间层网间层对应于 OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing InformationProtocol ,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制

12、报文协议(Internet ControlMessage Protocol,ICMP)用来提供网络诊断信息。第三层一一传输层传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP 协议(Use Datagram Protocol)提供不可靠的用户数据报服务。第四层一一应用层应用层又应于 OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(

13、简单邮件传送 协议)、IRC(因特网中继会话)、NNTP (网络新闻传输协议)等,这也是本书将要讨论的重点。2.3 IP地址学习好资料欢迎下载前面的章节我们已经指出,由于不同网络的硬件存在不同类型的地址,TCP/IP需要有它自己的地址编码系统。IP协议规定每台主机(严格地说是每个因特网接口 )都通过一个32位全局唯一的因特网地址来 标识。通常IP地址是采用以点隔开的四个十进制数的形式来表示。每个数代表地址中的一个二位十六进制数(即八位二进制数)。例如IP地址就表示相应的四个二位十六进制值CD BB FB 02 ,2.3.1 地址基本编码格式在IPv4(IP 协议,版本

14、4)标准中,每个32位IP地址包含两个部分:网络标识符和网络内的主机编 号。没有两个网络能够分配同一个网络标识符,同一网络上的两台计算机也不可能分配同一个主机编号。IANA 负责分配网络标识符,以确保网络标识符的唯一性、因特网服务提供商(Internet ServiceProvider ,ISP)或网络管理员负责维护同一网络上主机编号的唯一性等。网络标识符和主机编号的边界由IP地址的类别来确定,不同类别的 IP地址能够满足不同规模网络的组网需要。为了满足不同的网络与主机比例的期望值,IP协议将地址编码分成三种基本类别:A类、B类、C类。D类地址是为多点广播而定义的,剩余的E类地址保留为实验使用

15、,如图 2.3所示。 01230123456789001234567890012345678901I II0网络标识符1主机编号IA类1 0网络标识符1主机编号I B类1 1 0网络标识符I 主机编号 I C类1110多点广播地址ID类11110实验保留地址I E类图2.3 IP 地址的五种类别A类网络地址第一位为“0。”前8位(07 )代表网络标识符,后 24位(831)代表本网络上的主机编号。因此这类网络存在128(27)个A类网络标识符,每个网络有 16777216(224) 台主机。例如 代表A类网 和1号主机。B类网络地址的前两位是“10;前16位(0

16、15)代表网络标识符,每个网络有 65536(216)台主机。例如 代表B类网 和1号主机。C类网络地址的前三位是“110”。前24位(023)代表网络标识符,后 8位(2431)代表网络上的主机编号。C类网络存在2097152(221)个网络标识符,每个网络有256(28)台主机。例如 代表C类网 和1号主机。可见地址的类别可以从第一个主机号辨别。可见 IP地址的类别可以由第一个十 进制数的范围辨别,如图2.4所示。I IITI类I第一个1 0进制数I 网络数目 I 主机数目A 0-12712716777214B | 1

17、 2 8 1 9 11 6 8 3 46 5 5 3 4C| 19 2- 2 2 32 0 9 7 1 5 12 5 4图2.4 IP地址的类别可以由点分十进制数地址的第一个十进制数的范围辨别2.3.2 子网掩码在因特网早期,每个组织机构的网络都很简单,通常一个组织机构也只有一个局域网,只需要网络 标识符和主机编号这两级结构就足够了。随着因特网的进一步膨胀,B类地址消耗得很快,这种两级结构 很难满足日益增长的网络的要求。到了1984年,在地址格式中又增加了第三级子网结构,子网对网络内部的地址空间进行再划分,这样就缓解了 B类地址的需求,如图 2.5所示。III网络标识符I子网 I主机I <

18、;-一主机编号一图2.5三级IP地址格式子网或子网络是A、B或C类网络的一个子集。网络掩码用来把网络信息和主机信息分开。每个 A、B或C类地址实际上都是一个自然掩码。A类地址的自然掩码 ; B类地址的自然掩码是; C类地址的自然掩码是。如果没有子网的引入,网络标识符的使用会很限。使用了掩码,网络就可以分化成子网,并把地址的网格部分延伸到主机部分。子网划分技术增加了子网的数量,减少了主机的数量。如图 2.6所示,掩码 把A类IP地址划分成一个网络部分、一个子网部分和一个主机部分。图2.6基本子

19、网划分的例子要注意的是,子网掩码的格式是有限制的。子网掩码必须是相邻接的,它们的长度也必须要大于1 ,也就是说一个掩码应该有从左开始的连续的“1”,其余部分为“0”。下面的掩码可以用来把 C类网络理论上可用的256个地址划分成多个子网。255(1111 1100)64个子网,4台主机/子网248(1111 1000)32个子网,8台主机/子网240(1111 0000)16个子网,16台主机/子网224(1110 0000) 8个子网,32台主机/子网192(1100 0000)4个子网,64台主机/子网128(1000 0000)2个子网,128台主机/子网2.3.3 特殊用途的IP地址一台

20、计算机可以分配一个主机地址,同是一个网络也可以分配一个网络地址。另外,在很多情况下 主机并不知道自己的IP地址或者对方的IP地址,比如在主机启动时就是这样的。因此IP协议定义了一套特殊地址格式,称作保留地址,保留地址从不分配给某台主机,如图 2.8所示。全01本地网上的本主机网络标识符全0 I主机编号I本地网上的主机网络标识符I主机编号全0 I网络的伯克利广播全1I本地网的有限广播网络标识符 I主机编号全11网络的直线广播rrI1 2 7任意 |本地环路图2.8特殊用途的IP地址格式IP保留主机编号为0的地址,用它来表示一个网络,例如地址 表示C类网络,该网络的网络标

21、识符是 205.187.251。当网络标识符不知道时,主机地址就可以用全0的网络标识符来代替。例如:特殊地址 表示本网络的主机,它被应用在启动协议中;特殊地址 0.X.Y.Z表示本网络的主机 X.Y.Z。这些特殊的IP地 址只能当作源地址使用。为了很方便地发送一个包的副本给同一物理网络上的所有主机,IP为每个网络定义了一个直接广播地址(directed broadcast address) 。IP保留了主机编号中所有位为全1的地址,用它来表示一个网络的直接广播地址。例如:A.255.255.255、 B.B.255.255 、 C.C.C.255就分别是 A、B、C网络的广播地

22、址。当一个包被发送到上述的一个直接广播地址时,这个包的单个副本通过因特网路由器到达特定网络,然后被传送到这个网络上的所有主机。在这里有个历史遗留问题,伯克利软件分发(Berkeley SoftwareDistribution,BSD) 的TCP/IP协议实现使用主机编号中所有位为全0而不是全1来表示直接广播地址,这种地址格式被非正式地称为伯克利广播(Berkeley Broadcast) 地址。以上这些特殊的IP地址只能当作目的地址使用。在测试网络应用程序时,还可以使用IP定义的一个特殊的本地环路地址(loopback address),发往该地址的任何分组都不会传出主机。它实际上是一个本地环

23、路网络标符,IP保留A类网络127用作本地环路。任何具有127.X.Y .Z形式的地址都被当作本地环路地址,是最普遍的本地环路地址,也可以用localhost 来表示。另外,IANA还为某些特殊分组保留了一系列多点广播地址。例如:用来表示本地子网上的所有系统;用来表示本地子网的所有路由器。2.4 网络数据的传输次序在PC机中,低位存储地址包含数据的低位字节,这种存储顺序被称作为Little Endial 。而在因特网传输中,TCP/IP协议规定采用低位存储地址包含数据高位字节的Big Endial存储顺序,并把这种存储次序称作网络标准字节顺

24、序,如图2.9所示。实际网络传输时,数据按每32位二进制数为一组进行传输。图中把每个32位二进制数按照书写方式分成4个八位二进制数,并且标明了实际的字节传输顺序。在传输每个八位二进制时,按照从左到右、从最高的符号位到最低位依次进行传输。为了使通信的双方都能理解数据分组所携带的源地址、目的地址以及分组的长度等二进制信息,主 机和路由器在发送一个分组之前,必须把二进制信息项从本地表示转换成网络标准字节顺序,并且当分组 到达目的网络时又把它们从网络字节顺序换成特定的主机顺序。至于分组中用户数据区的数据,则可以选 择任何数据格式,他们不会被转换成网络标准字顺序,而是由具体通信的双方负责解释。2.5 网

25、间协议(IP)因特网的核心层是网间层和传输层。IP协议是建立TCP/IP 网络的最基本协议,它定义了在整个TCP/IP网络上传输数据所用的基本单元。网间层协议为上层协调提供了无连接的、不可靠的数据报传送服务,其他协议作为IP数据报的数据被承载。它只是尽力地、最快地传递数据,同时提供差错校验和路由选 择,但产不对数据的到达与否、数据到达的连续性和顺序性作任何保证,也不提供任何纠错功能。RFC791中定义了 IPv4(网间协议,版本4),读者可参考RFC 791文件。2.5.1 IP 数据报格式TCP/IP协议使用的IP数据报(IP datagram)和物理网络上传输数据单元用的硬件帧有相同的格式

26、,它包含一个数据报报头和一个数据区,如图2.10所示。学习好资料欢迎下载IIII P报头 I I P数据区 I I P数据报r 1帧头部I帧数据I硬件帧0 12 3 4 56 7图2.10 IP 数据报的一般格式IP数据报头包含有源、目的信息,在穿越因特网时作寻径用, 并且指明承载负载的协议类型, 如TCP、 ICMP、UDP、等。数据报所携带的数据量不固定,发送方根据特定的用途选择合适的数据量。在 IPv4版 本中,一个数据报的数据量可以小到一个字节,而如果包括报头大小的话, 数据报则可以大到64K个字节。图2.11给出了 IP数据报更详细的格式。图2.11 IP 数据报格式为了方便编程,这

27、里同时给出了IP数据报的C语言结构。注意,它并没有包括可选项和填充域。/* The IP header for VC+ */ typedef struct tagIPHEADER unsigned char h_len:4:/* length of tht header */unsigned char version,;/* version of IP */ unsigned char tos;/* type of service */ unsigned short total_len;/* total length of the packet */ unsigned short ident;

28、/* unique identifier */ unsigned short frag_and_flags;/*flags & frag offset */ unsigned char ttl;/* TTL(Time To Live) unsigned char proto;/* protocol(TCP,UDP etc) */unsigned short checksum;/* IP head checksum */ unsigned int sourceIP;/*source IP Address */ unsigned int destIP;/*destination IP Ad

29、dress */ IPHEADER;下面我们将分别讨论IP数据报报头中各域的详细含义。2.5.2 版本协议号IP数据报中的第一个域是 4比特长的版本域(version )。版本号规定了数据报的格式,同的 IP协 议版本其数据报格式有所不同。因此ip协议软件在处理数据报之前,首先必须检查版本号,对不能正确识别的数据报版本应该予以拒绝。当前的 IP协议版本号为4,常常称作IPv4 ;下一个将要发展的IP协议, 它的版本号是6 ,也就是我们常说的IPv6 o2.5.3 数据报长度和填充域紧接着版本域的是4比特长的报头长度域(h_len )。它指出了按32比特长标定的报头长度,报头 的长度实际上是h_

30、len<<2。如果报头长度不是 32比特的整数倍,则由填充域添0补齐。另外,报头中还有一个16比特长的数据报总长域(total_len )。它以字节为单位标定整个IP数据报的长度,并没有要按32比特长为单位对齐的要求。由于总长域占有16比特,所以数据报最长可达到216-1 字节。2.5.4 服务类型和优先权8比特长的服务类型城(tos )规定本数据报的处理方式,并分成五个子域,其子域结构如图2.12所示。学习好资料欢迎下载r 传输类型优先级I-D T R C图2.12组成服务类型域的五个子域3比特的优先级(PRECEDENCE )子域指明本数据报的优先级,允许发送方表示本数据报的重

31、要程 度。优先级的取值从 0到7, 0表示普通优先级,即表示网络控制优先级。优先级是由用户指定的,大多 数主机和路由器软件对此都不予理睬,但这种思想却是十分重要的,因为它毕竟提供了一种手段,允许控 制信息享受比一般数据更高的优先级。比如说,如果主机和路由器都服从优先级的话,则可以给拥塞控制 信息赋予更高的优先级,从而实现不受拥塞影响的拥塞控制算法。D、T、R、C位表示本数据报所期望的传输类型。当这些比特位取值为1时,D代表低时延(Delay )T代表高吞吐量(Throughput ) R代表高可靠性(Reliability ), C代表低开销。当然,上述三位只是用 户的请求,因特网并不能保证提

32、供所要求的传输,只是把它们作为路由选择时的参考。另外要注意的是, 每种物理网络技术的时延、吞吐量、可靠性性能之间往往是此强彼弱的,用户应只指定它们中的一个,同 时指定多个没有任何意义。2.5.5 标识符、标志和分片偏移量网络数据最终都是通过物理网络帧传输,IP数据报也不例外。在理想的情况下,整个数据报被封装在一个物理帧中传输时网络效率最高。但是,不同的物理网络技术上所采用的最大帧长是相异的,这个帧尺寸称作最大传输单元 (Maximum Transfer Unit , MTU)。例如:10Mb/s 以太网每帧最多可承载 1500 个字节,而在100Mb/s 的FDDI环上承载就可以大到 4470

33、个字节。当数据报分组从一个 MTU较大的网络经路由器中继到一个MTU较小的网络上时,由于分组过长,路由器就会要么拒绝中继,要么将数据报分片后再传送。分片通常在路由器中完成,而数据报重组由主机 的IP协议软件完成。IP报头中的标识符(ident )、标志和分片偏移量(frag_and_flags )三个域用作分 片和重组控制。标识符标识数据报发送时的先后顺序,每产生一个新数据报标识符增一,目的机用它来重 编分片数据报。同一 IP数据报分片后,标识符域不变。分片偏移量指在完整的数据报内该分片的偏移量, 偏移量按8个字节为单位计算。标志域由 3个比特位组成,第一位保留为0,如图2.l3所示。012I

34、 I I I0 D F MF图2.13 标志中的各位DF位表示分组禁止被分片。如果 DF位置1 ,路由器就会不加考虑地废弃超长分组,同时还会发送 一个ICMP错误信息给这个分组的源站点。MF位表示分组片未完。如果 MF位清0,此分片是IP数据报分组的最后一片。2.5.6 存活时间存活时间(ttl)设置了该数据报在因特网中允许存在的最大生存时间,该时间以秒为单位。每当产 生一新的数据报时,就为它设置一个最大的生存时间。当数据报通过的主机和路由器对该数据报进行处理 时,又减去消耗的时间。一旦时间小于等于0,便将该数据报从因特网中删除,并向信源机发回出错信息。路由器通常不知道物理网络上的传送时间,存

35、活时间也只是一个数量级的概念,并不要求精确。因 为精确的记时首先需要因特网中所有节点的时钟精确同步,这是很难做到的。有一些办法可以简化处理数 据报且不需要同步时钟:第一,路由上的每个路由器处理报头时,从存活时间中减去一;第二,如果数据 报在路由器中因等待服务被延迟,则从存活时间中减去等待的时间。为IP数据报设置存活时间的思想,保证了即使路由表不可靠而选择了一个循环路由,数据报都不会在因特网中无休止地流动。 RFC建议存活时间的缺省设置值为64 ,而Windows 98 和 Windows NT 4.0的用户使用的存活时间缺省值为128。2.5.7 协议序列号协议域表示IP数据报中数据的协议类型

36、,如 TCP、UDP、ICMP等。表2-1列出了 IANA已分配的 常见协议序列号。表2-11十进制编号11关键字1协议名称1101十11保留111十ICMP因特网控制报文协议112十1 I GMP)因特网组管理协议13十1 GGP|网关-网关协议14十I I P| IP 里的 IP115十1 STI数据流16十TCP传输控制协议18十1EGPI外部网关协议11 7十1UDPI用户数据报协议12 9十I S O-T P 4 I S 0传输协议类41141-60|十1未分配17 0十VISAVISA 协议18 0十I SO I PISO 网间协议(CLNP)118 8十1 I GRP)内部网关协

37、议18 9十1 0 S P F)开放式最短路径优先协议199-254| 十1未分配12 5 51十保留12.5.8 报头校验和报头中的任何一个域发生传输错误都会产生很多无法预料的结果。比如:如果发送地址错误,就可能无法删除一个已经过期的分组以及重编不属于同一报文的分片。报头校验和(Checksum)就可以保护IP数据报不产生这类错误,确保报头的完整性。IP报头校验和的计算是先将校验和域置0,把报头看成一个16位的整数予列,对每个整数分别计算其二进制反码,相加后再对结果计算一次二进制反码而求得的,它常被简称为反码和的反码。2.5.9 源地址和目的地址源IP地址(sourcelP )和目的IP地址

38、(destIP )域包含了数据报的原始发送方和最终接收方的32位的IP地址。数据包可能经过许多中间路由器,但是这两个地址域始终不变。2.5.10 IP 选项目的IP地址后面的IP选项域是任选域,它的主要目的是用来装载特定的功能以便于网络测试和调 试。在IP数据报中,选项是连续出现的,中间没有任何分隔符。每个选项包含一个选项码字节,后面可能 跟有一个长度字节和该选项的一组字节数据。如图2.14所示,选项代码字节分成三个域。0 12 3 45 6 7I IrC选项类)选项号图2.14 选项代码字节中的三个域路由器在对IP数据报分片时,如果拷贝标志位(C)置1 ,说明该选项应被拷贝到所有片中去;如

39、果置0,则仅把该选项拷贝到第一个分片中。选项类和选项号指明选项的一般类型,并且给定了该类中的一个特殊选择。现在已经定义的有两个选项组:0是控制选项,2是调试和测量选项。在同一选项类里面,用选项号来标识选项。表 2-2列出了 RFC 791中已经定义的8种选项,并给出了它们的选项类和选项号,可以看出大多数选项都是用于控制目的。表2.2 选项类I选项号I长度I描述-I选项列表结束。该选项只占一个字节没有长度字节 - I无操作。该选项只占一个字节,没有长度字节。1 1安全和处理限制(用于军事目的)可变I自由源路由。用来在一个指定路径为数据报选路 可变I记录路由。用来跟踪 IP数据报所采用的路由4 数

40、据流标识符。已过时可变I严格源路由。用来在指定路径上为数据报选路。可变I因特网时戳。用来记录路由上的时间戳2.6 校验和差错检验现在的通信系统实际上很少在传输错误。例如微小通信信道的误码率通常能达到每传输10兆字节少于1个字节的错误(10-7),光纤信道的误码率通常是低于10-9 o但不管怎么说,传输差错总是存在,必须采取相应的措施检测差错确保数据的正确。为了检测差错,网络系统通常随数据发送一小部分附加信息。发送方从数据中计算附加信息,并且接收方进行同样的计算来核对结果。有一些比较常用的方法能有效地检测差错,比如奇偶校验(parity chedk)、累加和、循环冗余校验,TCP/IP协议中则采

41、用反码和的反码”的校验和方法。奇偶校验机制要求对每个发送的字符附加一个奇偶校 验位(parity bit),使得这个字符中1的个数为偶数或奇数,这被分别称作偶校验或奇检验。累加和是对所有的数据按字节、字或双字对齐求字节、字或双字和,并且不记进位。循环冗余校验和反码和的校验相对 来说要复杂些,下面分别给出了对应的代码。/*用于计算CRC-16的查找表*/static short crctab= 0x0000,0xC0C1,0xC181,0x0140,0xC301,0x03C0,0x0280,0xC241,0xC601,0x06C0,0x0780,0xC741,0x0500,0xC5C1,0xC4

42、81,0x0440, 0xCC01,0x0CC0,0x0D80,0xCD41,0x0F00,0xCFC1,0xCE81,0x0E40, 0x0A00,0xCAC1,0xCB81,0x0B40,0xC901,0x09C0,0x0880,0xC841, 0xD801,0x18C0,0x1980,0xD941,0x1B00,0xDBC1,0xDA81,0x1A40, 0x1E00,0xDEC1,0xDF81,0x1F40,0xDD01,0x1DC0,0x1C80,0xDC41, 0x1400,0xD4C1,0xD581,0x1540,0xD701,0x17C0,0x1680,0xD641, 0xD2

43、01,0x12C0,0x1380,0xD341,0x1100,0xD1C1,0xD081,0x1040, 0xF001,0x30C0,0x3180,0xF141,0x3300,0xF3C1,0xF281,0x3240, 0x3600,0xF6C1,0xF781,0x3740,0xF501,0x35C0,0x3480,0xF441, 0x3C00,0xFCC1,0xFD81,0x3D40,0xFF01,0x3FC0,0x3E80,0xFE41, 0xFA01,0x3AC0,0x3B80,0xFB41,0x3900,0xF9C1,0xF881,0x3840, 0x2800,0xE8C1,0xE98

44、1,0x2940,0xEB01,0x2BC0,0x2A80,0xEA41, 0xEE01,0x2EC0,0x2F80,0xEF41,0x2D00,0xEDC1,0xEC81,0x2C40, 0xE401,0x24C0,0x2580,0xE541,0x2700,0xE7C1,0xE681,0x2640, 0x2200,0xE2C1,0xE381,0x2340,0xE101,0x21C0,0x2080,0xE041, 0xA001,0x60C0,0x6180,0xA141,0x6300,0xA3C1,0xA281,0x6240, 0x6600,0xA6C1,0xA781,0x6740,0xA501

45、,0x65C0,0x6480,DxA441, 0x6C00,0xACC1,0xAD81,0x6D40,0xAF01,0x6FC0,0x6E80,0xAE41, 0xAA01,0x6AC0,0x6B80,0xAB41,0x6900,0xA9C1,0xA881,0x6840, 0x7800,0xB8C1,0xB981,0x7940,0xBB01,0x7BC0,0x7A80,0xBA41, 0xBE01,0x7EC0,0x7F80,0xBF41,0x7D00,0xBDC1,0xBC81,0x7C40, 0xB401,0x74C0,0x7580,0xB541,0x7700,0xB7C1,0xB681,

46、0x7640, 0x7200,0xB2C1,0xB381,0x7340,0xB101,0x71C0,0x7080,0xB041, 0x5000,0x90C1,0x9181,0x5140,0x9301,0x53C0,0x5280,0x9241, 0x9601,0x56C0,0x5780,0x9741,0x5500,0x95C1,0x9481,0x5440, 0x9C01,0x5CC0,0x5D80,0x9D41,0x5F00,0x9FC1,0x9E81,0x5E40, 0x5A00,0x9AC1,0x9B81,0x5B40,0x9901,0x59C0,0x5880,0x9841, 0x8801,

温馨提示

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

评论

0/150

提交评论