欢迎光临
免费的PDF电子书下载网站

TCP/IP协议分析教程与实验 PDF下载

编辑推荐

 ;  ;本书在介绍协议基本原理的基础上,利用在网络仿真环境和真实环境中捕获协议数据包的实验对协议工作过程进行深入分析学习,直观地再现协议工作机制,激发读者的学习兴趣,提高工程实践能力。 ;

内容简介

本书采用理论与实践相结合的方法介绍TCP/IP协议族各层协议。选取TCP/IP协议框架中每一层的主要协议,包括以太网和IEEE 802.3、ARP、ICMP、IP、RIP、OSPF、UDP、TCP、DNS、DHCP、SNMP、Telnet、HTTP和FTP等协议。在介绍协议基本原理的基础上,利用在网络仿真环境和真实环境中捕获协议数据包,对协议工作过程进行深入的分析。本书突出通过实验直观地再现协议工作机制,激发学生的学习兴趣,提高学生的工程实践能力。 本书可作为计算机及相关专业本科生学习TCP/IP协议原理的教材,也可作为高职院校协议分析技术的教材,还可作为计算机网络从业人员的参考书。

作者简介

暂无

TCP/IP协议分析教程与实验 PDF下载

目录

目录
第1章TCP/IP协议概述
1.1TCP/IP协议体系结构
1.1.1TCP/IP协议分层
1.1.2IP地址和端口
1.2封装与分用
1.2.1封装
1.2.2分用
1.3RFC
1.4应用编程接口
1.4.1套接字编程
1.4.2Libpcap编程
1.5小结
1.6习题
第2章协议分析和学习工具
2.1协议分析
2.1.1协议分析器的原理
2.1.2协议分析器的主要用途
2.2Cisco Packet Tracer
2.2.1Packet Tracer的工作界面
2.2.2利用Packet Tracer学习网络协议分析
2.3Wireshark
2.3.1数据包嗅探器Wireshark
2.3.2Wireshark的工作界面
2.3.3Wireshark抓包的基本操作
2.4GNS3
2.4.1GNS3安装和配置
2.4.2GNS3的使用
2.5Sniffer Pro
2.6科来网络分析系统
2.7小结
2.8习题
实验
实验21Packet Tracer 6.0的使用
实验22Wireshark的使用
实验23GNS3的安装使用
第3章链路层协议分析
3.1链路层的作用
3.2以太网的帧结构
3.2.1以太网的两种主要标准
3.2.2以太网帧的封装结构
3.3串行接口的链路层协议
3.3.1SLIP
3.3.2PPP
3.4MTU
3.5环回接口
3.6小结
3.7习题
实验
实验31DIX Ethernet V2帧格式分析
实验32IEEE 802帧格式分析
实验33PPP帧的观察
实验34环回接口
第4章ARP协议分析
4.1物理地址和网络地址的转换
4.2ARP协议的工作原理
4.2.1地址解析的例子
4.2.2ARP协议的工作过程
4.2.3ARP协议报文格式
4.3特殊的ARP
4.3.1免费ARP
4.3.2代理ARP
4.4RARP协议
4.5小结
4.6习题
实验
实验41arp命令
实验42ARP请求与应答
实验43ARP代理
实验44免费ARP
第5章ICMP协议分析
5.1ICMP的作用
5.2ICMP报文及类型
5.2.1ICMP报文格式
5.2.2ICMP报文类型
5.2.3ICMP差错报告
5.2.4ICMP控制报文
5.2.5ICMP查询报文
5.3ICMP测试和故障诊断程序
5.3.1ping程序
5.3.2traceroute程序
5.4小结
5.5习题
实验
实验51ICMP回显查询报文
实验52ping程序和IP选项
实验53ICMP重定向差错报文
实验54traceroute程序
第6章IP协议和IP选路协议
6.1IP协议
6.1.1IP层的传输特点
6.1.2IP数据报格式
6.2IP路由选择
6.2.1路由表及维护
6.2.2IP选路机制
6.3动态选路协议
6.3.1RIP协议
6.3.2OSPF协议
6.4IP分片与路径MTU发现
6.4.1IP分片
6.4.2路径MTU发现
6.5小结
6.6习题
实验
实验61route命令与静态路由
实验62ICMP主机和网络不可达差错
实验63RIP协议分析
实验64OSPF协议分析
实验65IP分片和路径MTU发现
第7章UDP及应用协议分析
7.1UDP协议
7.1.1UDP协议的特点
7.1.2UDP的报文格式
7.2DNS协议
7.2.1域名解析的有关概念
7.2.2DNS报文格式分析
7.2.3DNS报文实例
7.3DHCP协议
7.3.1DHCP的有关概念
7.3.2DHCP的报文格式
7.3.3DHCP报文实例
7.4SNMP协议
7.4.1SNMP体系结构
7.4.2管理信息结构
7.4.3管理信息库MIBⅡ
7.4.4SNMP安全机制
7.4.5SNMP报文
7.4.6SNMP操作
7.4.7SNMP报文实例
7.5小结
7.6习题
实验
实验71DNS协议分析
实验72DHCP协议分析
实验73SNMP协议分析
第8章TCP及应用协议分析
8.1传输控制协议
8.1.1TCP段格式
8.1.2TCP连接的建立和拆除
8.2Telnet远程登录
8.2.1Telnet工作机制
8.2.2Telnet报文实例
8.3HTTP协议
8.3.1HTTP协议特点和报文格式
8.3.2HTTP报文实例
8.4FTP协议
8.4.1FTP协议的工作原理
8.4.2FTP报文实例
8.5小结
8.6习题
实验
实验81Telnet程序和TCP连接分析
实验82HTTP协议分析
实验83FTP协议分析
附录ACisco常用命令
参考文献

媒体评论

评论

前沿


前言
TCP/IP原理是网络工程专业的主干专业课程内容,同时也是计算机应用相关学科专业学生深入学习计算机网络技术的主要内容。实现掌握TCP/IP协议族中协议工作原理这一学习目标的主要途径需要通过网络协议分析来达成。针对协议分析具有很强的理论性和实践性的特点,同时考虑到计算机及相关专业的本科教育多强调应用能力的培养,编者旨在将本书编写成为一种注重网络协议分析实验及操作,把TCP/IP原理的理论学习和实验相互融合的教材。本书按照 TCP/IP协议框架的层次结构对网络互连中的主要协议进行分析,采用实例分析的方法学习TCP/IP基本原理。选取TCP/IP协议框架中每一层的主要协议,包括链路层以太网和IEEE 802.3、ARP、ICMP、IP、RIP、OSPF、UDP、TCP、DNS、DHCP、SNMP、Telnet、HTTP和FTP等协议,由下而上地设计了26个实验,利用在网络仿真环境和真实环境中捕获协议数据包,将抽象的网络协议的PDU构成和工作原理通过实验直观形象地展示出来,使学生能将理论与实践结合起来,加深对网络协议的理解并掌握协议分析的基本方法。 ;本书编写上特点突出,强化了在阐述TCP/IP协议概念和原理的基础上动手实践的内容。首先是重构实验内容,把TCP/IP原理课程中对TCP/IP各个协议工作原理的学习,用当今主要的网络协议学习工具和协议分析工具进行教学内容和实验形式的重新设计,通过实验强化学生的网络工程实践能力。其次,融合了多种当今主流的网络协议分析和学习工具,综合国内外相关教程的内容,可以使学生以不同的方式,从不同的角度来理解和掌握协议原理,获得更大的学习自主性和积极性。实验既可以在真实网络设备上进行,也可以在虚拟或仿真环境中完成,使学生即使在课余时间也可以自己学习,更好地提高学习效果。第三是改变网络协议的讲解形式,采用基于协议分析工具的讲解方式,让学生在实际的网络环境中通过再现网络协议工作过程和解析网络协议,真正做到“做中学”,全面彻底改变学生死记硬背网络协议的学习方式,让网络协议的工作过程变得触手可及,大大地提高了学生的学习兴趣和学习效果,有效地提高学生的网络工程实践能力和应用能力。第四是教材中对路由器和交换机等网络设备有要求的实验都可在仿真条件下进行,因此即便实验条件不够完备,也可以完成相关的实验教学。 ;本书适合已经学习过计算机网络基础课程且已掌握计算机网络基本体系结构,需要进一步学习掌握具体的网络协议工作原理的读者使用。书中各章安排的实验按学生实验指导书的形式编写,能够直接满足教学需要,因而也适合作为高校计算机网络原理教学中协议分析实验课程的教材使用。 ;全书共8章。除第1章外,其余各章的基本结构都按照先介绍基本概念和理论,再安排实验内容的方式编排,实验内容上覆盖了各章主要的知识点。第1章为TCP/IP协议概述,介绍TCP/IP协议分层、封装与分用的概念、RFC、应用编程的套接字和Libpcap编程接口。第2章为协议分析和学习工具,介绍协议分析器的基本原理和用途、Cisco Packet Tracer、Wireshark、GNS3、Sniffer pro和科来网络分析系统的特点和用法,实验内容安排了Cisco Packet Tracer、Wireshark、GNS3的使用方法学习。第3章为链路层协议分析,介绍链路层的作用、以太网的帧结构、SLIP和PPP帧结构、MTU和环回接口,实验内容安排了DIX Ethernet V2帧、IEEE 802帧和PPP帧分析、环回接口实验。第4章为ARP协议分析,介绍地址变换的概念、ARP协议的工作过程、协议报文格式和特殊的ARP,实验内容安排了arp命令用法、ARP请求与应答、ARP代理和免费ARP实验。第5章为 ICMP协议分析,介绍ICMP的作用、ICMP报文及类型,分析ICMP差错报告、控制报文和查询报文的特点、ping程序和Traceroute程序的机制和用法,实验内容安排了ICMP回显查询报文、ping程序和IP选项、ICMP重定向差错报文和Traceroute程序实验。第6章为IP协议和IP选路协议,介绍IP协议的特点、IP数据报格式、路由表及选路基本原理、RIP协议和OSPF协议、IP分片与路径MTU发现,实验内容安排了route命令与静态路由、ICMP主机和网络不可达差错、RIP协议分析、OSPF协议分析、IP分片和路径MTU发现实验。第7章为UDP及应用协议分析,介绍UDP协议特点、UDP的报文格式,基于UDP的应用协议DNS、DHCP和SNMP的有关概念、协议工作基本原理、报文格式和报文实例解析,实验内容安排了DNS协议分析、DHCP协议分析和SNMP协议分析实验。第8章为TCP及应用协议分析,介绍TCP段格式,TCP连接建立和拆除过程,Telnet远程登录的工作机制和报文实例解析,HTTP协议的工作特点、报文格式和实例解析,FTP协议的工作原理和报文实例解析,实验内容安排了Telnet程序和TCP连接分析、HTTP协议分析、FTP协议分析实验。附录中给出了Cisco常用命令,以方便读者使用Packet Tracer时查阅。根据教学时数和不同的要求,可以在本书的范围内选择相应的实验内容,以满足不同的教学需求。如8学时的实验可采用以太网链路层帧格式分析实验、ARP协议分析实验、ICMP协议分析实验、TCP及应用协议分析实验4个实验组合; 16学时的实验可采用以太网链路层帧格式分析实验、ARP协议分析实验、ICMP协议分析实验、RIP协议分析实验、DHCP协议分析实验、SNMP协议分析实验、Telnet协议分析实验、HTTP协议分析实验8个实验组合; 其余的实验可以作为任选实验或者课后学生自主安排实验。SNMP协议涉及的相关原理内容较多一些,可视学时情况安排。如果能够在实验室以讲练结合的方式使用本书进行教学,应当能用较少的学时获得较好的学习效果。本书的所有实验全部经过在教学过程中实际上机操作,读者也可以根据自己的实验网络环境进行实验内容调整。在清华大学出版社的网站(http://www.tup.tsinghua.edu.cn)上提供了本书的多媒体课件,读者可下载使用。本书与课件使用中的相关问题请联系fuhy@tup.tsinghua.edu.cn。本书由陈年主编,各章的内容尤其是实验内容是近年来在TCP/IP原理课程教学实践中不断地进行补充完善和总结的结果。在此,对本书的编写和出版给予支持和帮助的所有老师、同学和朋友表示衷心的感谢。限于编者的水平,不当之处在所难免,敬请各位读者批评指正。任何意见、建议可以发至邮箱chennian_zg@126.com。编者2016年9月

免费在线读

第3章链路层协议分析
在TCP/IP协议族中,链路层也叫网络接口层,包含着OSI/RM模型的数据链路层和物理层。数据帧在这里转换成在网络传输媒体上传送的比特流,或将从传输媒体上接收的比特流组装成数据帧。本章将着重介绍链路层最常用的以太网协议,并详细比较DIX Ethernet V2和IEEE 802.3封装的异同,对SLIP和PPP只作简单介绍,对大多数实现都包含的环回(loopback)接口驱动程序也作了介绍。实验部分要求掌握分析链路层帧的基本方法,同时熟悉Packet Tracer和Wireshark的用法,进一步掌握协议分析学习工具的功能特点和用途。
3.1链路层的作用
为了更清楚地理解链路层的作用,需要再回顾一下TCP/IP协议的基本层次关系。TCP/IP协议的层次结构如图31所示。

图31TCP/IP协议的层次结构
在图31中,“硬件接口”即对应着链路层的主体。从图中可以看出,链路层主要有3个目的。(1) 为IP模块发送和接收IP数据报。(2) 为ARP模块发送ARP请求和接收ARP应答。(3) 为RARP模块发送RARP请求和接收RARP应答。 ;在这里可以十分明确: 链路层在各层协议中要直接打交道的就是IP、ARP和RARP 3个协议。结合第1章讲过的协议工作原理中封装和分用的过程,链路层帧中封装的数据体现为IP、ARP和RARP这3种类型的协议数据。网络在链路层所使用的硬件不同,则会采用不同的链路层协议,如以太网、令牌环网、FDDI(Fiber Distributed Data Interface,光纤分布式数据接口)及RS232串行线路等。目前TCP/IP能够支持多种不同的链路层协议。在网络技术中,局域网占有非常重要的地位。按照网络拓扑结构,局域网可以分为星形、环形、总线型和树型网络,代表性的网络主要是以太网、令牌环网和令牌总线网。经过数十年的发展,特别是近年来千兆以太网和万兆以太网的飞速发展,采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection,载波侦听多路访问/冲突检测)接入方法的以太网已经在局域网市场中占有绝对优势。以太网几乎成为局域网的同义词,因此本章将以以太网作为主要的学习内容,然后介绍SLIP(Serial Line Internet Protocol,串行线路网际协议)和PPP(Point to Point Protocol,点对点协议),对现今已经基本淘汰而较少使用的技术,如令牌总线网等就不再涉及。
3.2以太网的帧结构
目前使用最为广泛的链路层协议有以太网、串行接口链路等。3.2.1以太网的两种主要标准以太网是1982年由美国DEC、Intel和Xerox 3家公司联合制定的局域网技术标准,目前采用的是Ethernet V2标准,因此也称为DIX Ethernet Ⅱ格式。在TCP/IP标准中,由RFC 894(Hornig,1984)来说明,是目前最常用的局域网标准。IEEE 802是一个标准集,是由IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师学会)在以太网推出后不久公布的一个局域网标准。IEEE 802将数据链路层分为两个子层,即LLC(Logical Link Control,逻辑链路控制层)和MAC(Media Access Control,介质访问控制层)。IEEE 802.2规定了LLC的有关内容,而IEEE 802.3针对整个CSMA/CD网络对MAC有具体的规定。IEEE 802的MAC子层用于规定网络传输介质或网络媒体的访问,LLC子层则用于管理两个MAC层地址之间的点到点的数据传输。IEEE 802.4和802.5都是令牌网络有关的标准,现已较少使用。3.2.2以太网帧的封装结构现在采用的以太网主要有两种不同规格的标准,分别由RFC 894(Ethernet Ⅱ)、RFC 1042 (IEEE 802网络)规定了两种不同形式的封装格式,如图32所示。图中帧格式下的数字表示对应字段的字节数。从图32可以看到,两种帧格式都采用48位(6字节)的目的地址和源地址,这就是硬件地址(MAC地址)。接下来的2个字节在IEEE 802中是长度字段,是指它后续数据的字节长度,但不包括CRC检验码; Ethernet Ⅱ此处是类型字段,定义了后续数据的类型。(请思考: 系统是如何区分收到的帧该位置的2个字节是表示长度还是类型的呢?)在IEEE 802帧格式中,跟随在长度后面的是3个字节的802.2 LLC结构。其中,LLC由DSAP(Destination Service Access Point,目的服务访问点)和SSAP(Source Service Access Point,源服务访问点)及Cntl组成。DSAP和SSAP通常取值相同,用于说明通信两端采用的链路层协议。如果其中封装的是802.2 SNAP(Subnetwork Access Protocol,子网访问协议)的协议数据,则DSAP和SSAP的值都设为0xAA(IEEE对DSAP和SSAP的取值有专门的规定,需要时可以查阅相关资料),Cntl字段的值设为3。随后有5个字节的SNAP结构,包含的前3个字节为org code,都置为0。再接下来的2个字节的类型字段和以太网帧格式的一样。在图32中标示出了链路层中封装的主要3种协议的类型标识的取值。0x0800表示帧承载的是IP报文,0x0806表示帧承载的是ARP报文,而0x8035表示帧承载的是RARP报文。RFC 5342对以太网帧格式中的“类型”字段的更多取值有相应的规定,需要时可以查阅。

图32IEEE 802.2/802.3(RFC1042)和以太网(RFC 894)的封装格式
大多数应用程序的以太网数据包都采用Ethernet Ⅱ格式的帧来封装(如HTTP、Telnet、FTP、SMTP、POP3等应用),执行STP(Spanning Tree Protocol,生成树协议)的交换机之间的BPDU(Bridge Protocol Data Unit,网桥协议数据单元)采用IEEE 802.3 SAP帧(即802.3 MAC和802.2 LLC),VLAN Trunk协议802.1Q和CDP(Cisco Discovery Protocol,Cisco发现协议)采用IEEE 802.3 SNAP帧。CRC字段用于帧内字节差错的循环冗余码检验,它也被称为FCS(Frame Check Sequence,帧检验序列)。IEEE 802标准定义的帧和Ethernet Ⅱ的帧都有最小和最大长度要求。IEEE 802标准规定帧的数据部分最少要有38字节,以太网则规定最少为46字节。如果不足最小长度,则协议要求用插入填充(pad)字节的方式来补足。最大长度要求就是通常所说的MTU(Maximum Transmission Unit,最大传输单元),IEEE 802和Ethernet Ⅱ分别是1492和1500字节。在传输媒体上实际传送的比特流中还要在如图32所示的帧序列前多出8字节的前导字节(7个字节的前同步码和1个字节的起始帧定界符),用作帧收发的同步控制。这里没有标注出来是因为只有链路层硬件接口(如网卡)正确地从网络链路上接收到能够识别处理的比特流数据且没有差错并组装成帧后,才会由链路层协议栈来处理。或者说,不能够识别的或错误的比特流都丢弃了。因而,在各种协议分析器捕获的数据中都不会看到帧前导字节,甚至是校验字节。Cisco Packet Tracer模拟方式显示的帧有时会给出前导字节。
3.3串行接口的链路层协议
在串行线路上对IP数据报进行封装的常见形式有SLIP和PPP。当然,这两个协议不只用于数据通信网络中,也可以和许多其他的串行通信协议一样用于工业控制、家用电器等微型或小型系统间的数据传输,目前在嵌入式系统中也有应用。3.3.1SLIPSLIP是一种在串行线路上对IP数据报进行封装的简单形式,在RFC 1055中有详细的描述。SLIP适合具有最常见的RS232串行口的计算机系统或高速调制解调器接入IP网络使用。SLIP帧的格式如图33所示。

图33SLIP报文的封装结构
IP数据报以一个称为END(0xc0)的特殊字符结束,同时为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也会传一个END字符。如果IP报文中某个字符为END,那么就要连续传输2个字节的0xdb和0xdc来取代这个END。0xdb这个特殊字符被称为SLIP的ESC字符(转义字符)。如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输2个字节的0xdb和0xdd来取代它。这个方式其实就是一种字符填充的方式,在串行线路上传输的总字节数会增加。SLIP是一种简单的封装方法,虽然简便,但有以下缺陷。(1) 每一端必须知道对方的IP地址,否则不能通信。(2) 没有办法把本地IP地址通知给另一端,可以看到帧中没有专门的地址字段。(3) 没有在数据帧中加入校验和,如果SLIP传输的报文受线路噪声影响而发生错误,则只能通过上层协议来发现,这样上层协议必须提供某种形式的校验。目前SLIP已经被PPP所取代,因为PPP有许多更好的特点,并且不需要在连接建立前进行IP地址的配置。但由于SLIP有非常小的包装头,因此在微控制器中它仍是首选的封装IP包的方式。3.3.2PPPPPP是支持点到点连接的一种通信协议,既支持数据为8位和无奇偶校验的异步模式,也支持面向比特位的同步连接,提供对从局域网到广域网的数据链路封装支持。RFC 1661给出了PPP的详细规范,主要包括以下内容。(1) 支持同一链路上同时使用多种协议的封装方法。事实上,PPP支持各种主要网络协议的封装,包括IP、NetBEUI、AppleTalk、IPX、SNA以及其他更多的协议。(2) 采用一个特殊的LCP(Link Control Protocol,链路控制协议)来建立、配置、测试乃至终止链路,协商任何点到点链路的特性。(3) 针对封装的不同网络协议,采用NCP(Network Control Protocol,网络控制协议)来完成点对点通信设备之间网络层通信所需参数的配置,它通过协议域来区分数据域中净载荷的数据类型。RFC 1332和RFC 1877描述了一个用于IP的NCP,称为IP控制协议,它用于协商发送方的IP地址、DNS服务器的地址以及在可能情况下使用的压缩协议。PPP的封装和组帧技术基于ISO的HDLC(Highlevel Data Link Control,高级数据链路控制)协议,因此数据帧封装格式非常类似于HDLC。PPP帧结构如图34所示。

图34PPP数据帧结构
每个PPP数据包的开始和结束都有一个0x7E的数据标志。在开始标志后,紧跟两个HDLC常量: 地址常量0xFF和控制常量0x03。接下来是协议字段,长度通常为2字节,表示信息字段中包含的是哪种协议以及它的处理信息。正如图34中标示的一样,0x0021表示信息字段是一个IP数据报,0xC021表示信息字段是LCP的内容,0x8021则表示信息字段是NCP的内容。信息字段的长度最多为1500字节。然后是一个长度为2个字节的循环冗余检验码,以检测数据帧中的错误。由于标志字符的值是0x7E,因此当该字符出现在信息字段中时,类似于SLIP的字符填充,PPP也需要对它进行转义。具体实现过程如下。(1) 当遇到字符0x7E时,需连续传送两个字符: 0x7D和0x5E,以实现标志字符的转义。(2) 当遇到转义字符0x7D时,需连续传送两个字符: 0x7D和0x5D,以实现转义字符的转义。(3) 默认情况下,如果字符的值小于0x20(如ASCII控制字符),一般都要进行转义。例如,遇到字符0x01时需连续传送0x7D和0x21字符(这时第6个比特位取补码后变为1,而前面两种情况均把它变为0)。这样做是防止它们出现在双方主机的串行接口驱动程序或调制解调器中,因为它们有时会把这些控制字符解释成特殊的含义。另一种可能是用LCP来指定是否需要对这32个字符中的某些值进行转义。默认情况下是对所有的32个字符都进行转义。当PPP用于同步通信时,如综合业务数字网(ISDN)、同步光纤网(SONET)的链路,则使用了一种更快速、更有效的比特填充技术,而不是字符填充。这时任何连续的6个1序列(考查用作标志的0x7E)都可以通过在5个1之后插入1个0来进行转义。该方法支持这种链路类型中潜在非法值的更有效编码,因而使PPP成为TCP/IP中最流行的点到点协议。PPP还支持多链路实现,即将多个相同宽度的数据通道合并。PPP在工作时为建立点对点链路上的通信连接,发送端首先发送LCP帧,以配置和测试数据链路。在LCP建立好数据链路并协调好所选设备后,发送端发送NCP帧,以选择和配置一个或多个网络层协议。当所选的网络层协议配置好后,便可以将各网络层协议的数据包发送到数据链路上。配置好的链路将一直处于通信状态,直到LCP帧或NCP帧明确提示关闭链路,或有其他的外部事件发生。在链路建立和数据传输的过程中,信息字段的内容还可以分出代码(code)、标识符(ID)和长度(length)等字段,以满足不同协议的工作要求。这里不再深入阐述,更具体的内容请参考有关资料。要指出的是,在点到点链路上因为只有两方参与通信,并不需要寻址。PPP提供了一种管理两点间会话的有效方法,同时不同于广域网上使用的X.25、frame relay(帧中继)等数据链路层协议,PPP提供了两种可选的身份认证方法: PAP(Password Authentication Protocol,口令验证协议)和CHAP(Challenge Handshake Authentication Protocol,挑战握手验证协议),从而更好地保证了网络通信的安全性。总的来看,PPP相比SLIP具有显著的优点: PPP支持在单根串行线路上运行多种协议,而不只是IP; 每一帧都有循环冗余校验; 通信双方可以进行IP地址的动态协商; LCP可以对多个数据链路选项进行设置; 提供安全支持。同时,PPP仍然保持了成本低、传输稳定等特点。
3.4MTU
链路层数据帧的最大长度就是MTU。注意,MTU是指帧的净载荷部分,不包括帧的头部、尾部及控制用字段。前面已经指出以太网和IEEE 802.3的数据帧的长度限制,其MTU分别是1500和1492字节,如图32所示。不同类型的网络数据帧的长度都有一个上限。如果IP层有一个数据包要传送,而且IP PDU的长度比链路层的MTU要大,那么IP层就需要进行分片,即把数据报分成若干片,使得每一片都小于MTU,这样才能通过链路层来封装传送。IP分片的过程将在以后的章节中讨论。表31所示列出了一些典型的MTU值,表的内容来自于RFC 1191。其中,“点到点(低时延)”是指SLIP和PPP在低时延情况下的逻辑链路限制,这时减少每一帧的字节数可以降低应用程序的交互时延,从而为交互应用提供足够快的响应时间。

表31几种常见的MTU

网 络 类 型MTU字节

超通道655354Mb/s令牌环(IEEE 802.5)4464FDDI4352以太网1500IEEE 802.3/802.21492X.25576点对点(低时延)296
在RFC 1055中,SLIP的MTU是1006个字节。在Windows 2000的实现中,SLIP的MTU设置为1500个字节,以满足和以太网的互联。目前PPP默认的MTU是1500个字节,这个长度对于基于以太网的互联十分理想。其实,通过LCP在对等实体之间协商,PPP可以在通信中使用更大或更小的MTU,依据是它们所连接的网络的类型不同。此时PPP能够处理更大的帧,如9216字节。可以用netstat命令查看并打印出网络接口的MTU。和MTU直接相关的另一个重要概念是路径MTU。如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。这时重要的并不是两台主机各自所在网络的MTU,而是连接两台主机的所有网络中的最小MTU,称为路径MTU,即两台主机的通信路径上最小的MTU。这个数值直接影响着在整个通信过程中数据包是否需要分片。路径MTU不一定是常数,它取决于通信时选择的路由。由于路径的选择不一定是对称的,因此路径MTU在通信的两个方向上不一定是一致的。RFC 1191描述了路径MTU的发现机制,即确定路径MTU的方法。在后面的章节中将采用这种发现方法来完成确定路径MTU的实验。
3.5环回接口
环回接口(loopback interface)是一种特殊的逻辑网络接口。绝大多数产品都支持这种形式的逻辑接口,以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP通信。A类网络号127就是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost,这个地址也称为回送地址。回送地址主要用于网络软件测试及本机进程间通信。例如,“ping 127.0.0.1”用来测试本机中的TCP/IP协议是否正常工作。其另一个作用是某些C/S模式的应用程序在运行时需调用服务器上的资源,一般要指定服务器的IP地址,但当该程序要在同一台机器上运行而没有别的服务器时,就可以把服务器的资源装在本机,服务器的IP地址设为127.0.0.1,同样也可以运行。对于大多数习惯用localhost来指代服务器的表示来说,实质上就是指向127.0.0.1这个本地IP地址。在Windows系统中,它成了127.0.0.1的别名。对于网站建设者,经常用localhost指向一个表示自己的特殊DNS主机名。环回接口对路由器来讲是一个逻辑的虚拟接口,方便用于测试目的,因为该接口总是开启的,可作为一台路由器的管理地址,作为动态路由协议OSPF、BGP的Router Id。
图35所示是环回接口处理IP数据报的简单过程。从中可以看到一个传给环回接口的IP数据报不能在任何网络上出现。无论什么程序,一旦使用环回地址发送数据,环回驱动程序会立即把数据返回给协议栈中的IP输入函数,而不进行任何网络传输。

图35环回接口处理IP数据报的过程
图35中需要指出的要点如下。(1) 传给环回地址的任何数据均作为IP输入。(2) 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的对象也包括主机本身。(3) 任何传给该主机IP地址的数据均送到环回接口。在图35中,另一个隐含的意思是送给主机本身IP地址的IP数据报一般不出现在相应的网络上。因为借助环回地址,主机保证了处理发送给自己的IP数据报。
3.6小结
(1)  ;TCP/IP协议族中和链路层协议有直接联系的协议有3个,即IP、ARP和RARP,这体现在链路层的功能描述中。(2)  ;目前链路层使用最多的局域网协议是以太网,包括Ethernet V2和IEEE 802两种。Ethernet V2标准规定的链路层帧结构和IEEE 802标准规定的链路层帧结构既有相同的地方,也有不同之处。相同之处主要是MAC地址形式,不同之处主要体现在IEEE 802.2对LLC的规定中。(3)  ;SLIP和PPP协议是串行链路中的重要协议,其帧结构为适应串行通信有特别的设计,如帧内容的字节填充方式。(4)  ;不同类型的链路层对MTU有不同的规定,Ethernet V2标准规定的MTU是1500字节,IEEE 802是1492字节。(5)  ;大多数实现都提供环回接口,传送给环回接口的数据不会出现在网络上。访问这个接口可以通过特殊的环回地址。 ;
3.7习题
1. 除了图32所示给出的3种以太网帧类型,是否还有其他帧类型?从什么地方可以查阅到以太网帧格式中的“类型”字段是怎样分配的?2. 如果读者的主机是通过ADSL的PPPoE拨号上网的,请尝试在系统上网时捕获拨号连接通信的PPPoE帧并进行分析。 ;3. 如果读者的主机系统有netstat命令,如何用它来确定系统上的接口及其MTU?4. 主机中的环回地址通常为127.0.0.1,能够采用其他地址来表示环回地址么?
实验
实验31DIX Ethernet V2帧格式分析1. 实验说明

分别通过在Packet Tracer和Wireshark中查看分析链路层的以太网帧,进一步学习捕获查看网络通信信息的方法。同时通过对DIX Ethernet V2帧的分析,进一步巩固对链路层帧结构的理解和掌握。2. 实验环境Windows操作系统及联网环境(主机有以太网网卡并连接局域网或Internet),安装有Packet Tracer 6.0和Wireshark 1.10。3. 实验步骤(1) 在Wireshark中捕获分析以太网帧。步骤1启动Wireshark。在Windows中启动Wireshark,选定本地网络接口并启动抓包。步骤2构造网络通信信息。启动浏览器浏览网页或运行网络应用程序(如运行QQ或ping命令等),在本机网络接口中产生网络通信信息。步骤3分析捕获的帧。在Wireshark中查看捕获的以太网帧,并结合3.2节的内容分析以太网帧结构。图36所示为在Windows主机浏览器中访问Internet网站时捕获的以太网帧示例,实验时请依据实际捕获的帧进行分析。注意,分析帧中的每一个域以及取值,观察帧的长度和MAC地址的构成,如48位MAC地址中LG和IG比特的含义、Type字段的取值。

图36以太网帧结构分析示例

步骤4任意访问一个网站,在捕获的输入帧中查看有没有帧长度刚好为60字节的帧,能否看到Padding字段,分析其成因。如果没有,则可以反复多次捕获帧以获取,也可以用ping 1限定帧长来构造短帧。有时捕获的帧中会有小于最小帧长的帧出现,这是为什么呢?
图37所示是在连通测试时捕获到有Padding字段及帧长为54字节的数据包示例,请分析其成因。

图37有Padding字段的以太网帧示例

(2) 在Packet Tracer中查看以太网帧。步骤1启动Packet Tracer,按图38所示建立一个简单的网络并相应做好IP地址配置,也可以打开以前建立的网络拓扑来进行实验。
图38中,PC0、PC1和PC2的默认网关分别设置为指向路由器对应接口,路由器可以只配置静态路由。配置方法请参考2.2节。

图38Packet Tracer链路层实验

步骤2运行ping命令,查看链路层数据。先在Packet Tracer工作窗口中单击Simulation mode,切换到模拟模式,然后在网络拓扑中单击PC0图标,打开PC0的Desktop选项卡,单击Command Prompt,打开命令行窗口,输入以下命令。
PC〉ping 192.168.1.3
按Enter键后,马上就可以在Event List对话框中看到出现了对应的网络事件。步骤3单击Capture/Forward按钮,会产生下一个事件,这样不断单击就可以看到ping程序运行中数据包传送的全部情况。步骤4单击第一个事件的Info字段,打开PDU Information对话框中的Outbound PDU Details选项卡,可以看到PC0发出的第一个ICMP数据包在链路层的封装情况,得到类似图39所示的数据。认真分析每一个数据域的内容。

图39Packet Tracer下查看以太网帧结构示例

4. 实验报告记录自己的实验过程和实验结果,分析实验结果,比较说明用Wireshark和Packet Tracer捕获的以太网帧的异同,理解和掌握以太网帧结构。5. 思考(1) 图36所示示例中捕获的以太网帧类型为0x0800,要怎样做才能捕获一个0x0806类型的帧?(2) 图39所示显示的帧结构中的内容和实际网络中的数据有区别吗?实验32IEEE 802帧格式分析1. 实验说明

分别通过在Packet Tracer和Wireshark中查看分析链路层的IEEE 802帧,学习了解不同的链路层帧格式。 ;实验中提到的STP在IEEE 802.1D文档中给出了其定义。STP协议按照树的结构来构造网络拓扑,消除网络中的环路,避免广播风暴。CDP是Cisco公司设计的专用协议,被Cisco公司的网络设备用来获取相邻设备的协议地址及发现这些设备的平台。本实验的主要目的是观察IEEE 802帧不同于Ethernet V2的封装结构,对STP和CDP的具体工作原理和协议结构不作要求,需要时请参考有关书籍或资料。2. 实验环境Windows操作系统及联网环境(主机有以太网网卡并连接局域网或Internet),安装有Packet Tracer 6.0、Wireshark 1.10和GNS3(已配置好IOS)。3. 实验步骤(1) 在Packet Tracer中捕获分析IEEE 802帧。步骤1启动Packet Tracer,建立如图38所示的实验网络。切换到模拟模式,直接单击Capture/Forward按钮,这时会看到从交换机Switch0发出的STP包。步骤2任意选择一个STP协议包事件并单击其Info字段,会弹出PDU Information对话框,单击Outbound PDU Details选项卡,可以看到类似图310所示的PDU Formats。

图310IEEE 802帧结构示例

步骤3依据实验中PDU Formats实际显示的内容,对照图32认真分析帧的每一个字段。要特别注意802.2 LLC结构中DSAP和SSAP的取值。STP的配置往往和VLAN的配置相关联,图38所示实验拓扑中的Cisco 2950交换机有默认VLAN1(尽管没有配置),因此能够捕获STP包。和VLAN有关的具体操作请参考有关书籍或资料。步骤4继续单击Capture/Forward按钮,直到看到交换机发出的CDP包。单击CDP协议包事件的Info字段,在打开的对话框中查看其Outbound PDU Details选项卡。步骤5依据实验中PDU Formats实际显示的内容,对照图32认真分析帧的每一个字段。图311所示是CDP使用的IEEE 802帧的局部信息示例。

图311CDP使用的IEEE 802帧的基本格式

注意观察,由于有SNAP帧的存在,LLC的DSAP和SSAP值为0xAA。(2) 用Wireshark捕获分析IEEE 802帧(选做)。利用GNS3按图38所示构建高仿真的网络环境,用Wireshark捕获完全和真实网络环境中一样的STP或CDP帧。这部分实验内容作为课后自学,这里不给出详细的实验过程,请参考Packet Tracer的实验内容和第2章关于GNS3的内容。4. 实验报告记录自己的实验过程和实验结果,分析实验结果,比较说明IEEE 802帧和DIX Ethernet V2帧的异同。实验33PPP帧的观察1. 实验说明

PPP协议是当今网络上使用最广泛的串行链路协议。PPPoE(Point to Point Protocol over Ethernet,以太网上的点到点协议)则是一种设计用于串行通信并为以太网进行了改造的PPP。通过在标准PPP报文的前面加上以太网的报头,使得PPPoE提供通过简单桥接接入设备连接远端接入设备,并可以利用以太网的共享性连接多个用户主机。PPPoE广泛用于用户通过拨号或专线方式接入ISP时建立点对点连接的收发数据。更多有关PPPoE的通信过程请查阅相关资料。本实验通过在Packet Tracer中查看分析网络设备互联的PPP帧结构,学习了解串行链路中使用的帧格式; 通过在真实上网时捕获ADSL Modem拨号连接时系统收发的数据包,了解链路层PPPoE帧格式。 ;2. 实验环境Windows操作系统及联网环境(主机有以太网网卡并连接局域网和Internet),安装有Packet Tracer 6.0、Wireshark 1.10; ADSL Modem拨号上网设备。3. 实验步骤(1) 在Packet Tracer中观察分析PPP帧结构。步骤1启动Packet Tracer,建立如图312所示的实验网络。先在两台路由器中添加WIC1T串行接口模块,然后从Router0处选用串口线DCE连接两台路由器,配置好IP地址。

图312PPP帧查看实验

步骤2将鼠标停留在Router0的接口处即会显示出时钟图标,表明Router0是DCE,需要设置DCE的时钟频率。输入以下命令进行配置。
Router#show controllers s0/0/0 #可查看路由器是否为DCE
Router#conf t
Router(config)#int s0/0/0
Router(config-if)#clock rate 9600 #设置串口同步时钟频率为9600b/s
Router1的串口为DTE,不用配置时钟。实验中没有设置带宽,采用默认的128kb/s。步骤3继续配置PPP,运行命令启用PPP。
Router(config-if)#encapsulation ppp  ; #设置串行通信的封装方式为PPP
Router(config-if)#^z #保存
Router#show int s0/0/0 #查看设置参数
步骤4切换Packet Tracer到模拟模式,直接单击Capture/Forward按钮,这时会看到从Router0发出的CDP包。任意选择一个CDP协议包事件并单击其Info字段,查看Outbound PDU Details选项卡,可以看到类似图313所示的PDU Formats。

图313Packet Tracer中CDP的PPP帧封装

对照3.3.2节的内容,分析PPP帧的结构。(2) 观察分析ADSL拨号上网的PPPoE帧。步骤1确认实验需要的ADSL宽带设备及拨号上网可用,Windows中已配置有拨号上网快捷方式。步骤2先在Windows中启动Wireshark,选定本地网络接口并启动抓包,随即启动宽带连接拨号,输入用户名和口令,这时可以看到捕获的拨号连接数据包。步骤3在Wireshark的显示过滤器中输入“pppoed”,可以查看PPPoE帧信息,如图314所示。在PPPoE的Discovery阶段,以太网帧的Type域都设置为0x8863。

图314拨号上网的PPPoE帧结构示例

步骤4结合PPPoE的相关工作原理,分析自己捕获的PPPoE帧结构。步骤5观察能否捕获PPP会话阶段(以太网帧的Type域都设置为0x8864)的帧。PPPoE的payload部分包含0个或多个TAG。一个TAG是一个TLV(typelengthvalue)结构,TAG_TYPE域为16位值(网络字节序),请了解TAG取值的情况。4. 实验报告记录自己的实验过程和实验结果,分析实验结果,说明PPP帧的结构。5. 思考通过连接路由器之间的WAN口来观察PPP帧可以得到更多的内容,请思考应该如何实验。实验34环回接口1. 实验说明

本实验通过在Packet Tracer中配置路由器上的环回接口,查看了解其工作特点。2. 实验环境Windows操作系统,安装有Packet Tracer 6.0。3. 实验步骤步骤1启动Packet Tracer,建立如图315所示的拓扑。步骤2在Router0上配置网络接口地址,分别为10.1.1.1/24和20.1.1.1/24,类似地在Router1、Router2和PC1、PC2上配置相应的IP地址。在Router0上配置环回接口地址,命令如下。
Router0(config)#interface loopback 0 ;
Router0(config-if)#ip address 17.17.1.1 255.255.255.255 ;
然后配置OSPF,命令如下。
Router0(config)#router ospf 1
Router0(config-router)#network 10.1.1.0 0.0.0.255 area 0
Router0(config-router)#network 20.1.1.0 0.0.0.255 area 0

图315环回接口实验拓扑

步骤3配置好后,在Router0上执行命令“show ip protocol”,可以看到如图316所示的输出。

图316环回接口地址作为路由器的Router ID

在图316中可以看到,Router0上设置的环回接口地址17.17.1.1被当作了路由器的Router ID。步骤4在Router0上执行以下命令。
Router0#ping 17.17.1.1
在Packet Tracer中采用模拟方式可以看到ping发出的数据包只在Router0上收发,并收发成功。4. 实验报告记录自己的实验过程和实验结果,分析实验结果,说明环回接口的特点。5. 思考(1) 路由器使用环回接口地址作为该路由器产生的所有IP包的源地址,从而提高数据的过滤效率,请参考路由器配置的有关资料了解其工作原理和特点。(2) 在Windows主机上用Wireshark能不能抓到对127.0.0.1进行ping的数据包呢?如果抓不到,原因是什么?

TCP/IP协议分析教程与实验 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:TCP/IP协议分析教程与实验