资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,3,章,TCP/IP,协议分析实验,主要内容,TCP/IP,体系结构,局域网协议栈,网间网层协议,传输层协议,应用层协议,协议分析实验,第一节,TCP/IP,体系结构,TCP/IP,体系结构,应用层,传输层,网间网层,网络,接口层,TCP/IP Model,Application,Presentation,Session,Transport,Network,Datalink,Physical,OSI Ref Model,FTP,TCP,IP,Ethernet,Telnet,HTTP,UDP,X.25,PPP,TCP/IP Protocols,TCP/IP,的主要协议,FTP,telnet,HTTP,SMTP,SNMP,DNS,其,他,TCP,UDP,IP,ARP/RARP ICMP,Ethernet,Token Ring,FDDI,ATM,其他,数据封装,一台计算机要发送数据到另一台计算机,数据首先必须打包,打包的过程称为,封装,。,封装就是在数据前面加上特定的协议头部。,数 据,协议头,发送邮件的例子:信装入写有源地址和目的地址的信封中发送,还要写明用航空或挂号,。,数 据,数据多层封装,数据,段头,数据,段头,数据,网络头,帧头,段头,数据,网络头,帧尾,数据,段,数据包,帧,比特,电脉冲,011101000011000010100101111010110,封装,拆封,实际例子:,TCP/IP,协议的封装,TCP,头,应用层数据,应用层数据,TCP,头,应用层数据,IP,头,帧头,TCP,头,应用层数据,IP,头,帧尾,应用层,传输层,网际层,数链层,实际例子:,TCP/IP,协议的封装,WWW,Data,WWW,Header,TCP Data,TCPHeader,IP Data,IPHeader,Ethernet Data,EthernetHeader,EthernetTrailer,网卡地址,IP,地址,应用地址,(,80,),网络,1,网络,2,A,R,B,路由器,R,IP,数据链路,物理层,TCP/UDP,应用程序,IP,数据链路,物理层,TCP/UDP,应用程序,IP,数据链路,物理层,数据链路,物理层,主机,A,主机,B,网络,1,网络,2,Data,生成一个数据包,A - B,Data,传输层封装,T-H,+,Data,1.,IP,层封装,T-H,IP-H,+,目的,IP,地址,= B,2.,确定传送的下一站,下一站,IP,地址,= R,Data,计算,R,的物理地址,PR,数据链路帧封装,T-H,IP-H,+,目的物理地址,= PR,F-H,解除数据链路帧的封装,F-H,Data,T-H,IP-H,Data,IP,选路,T-H,1.,取出目的,IP,地址 目的地址,= B,2.,确定传送的下一站 下一站,= B,IP-H,Data,计算,B,的物理地址,PB,数据链路帧封装,T-H,IP-H,+,目的物理地址,= PB,F-H,解除数据链路帧的封装,F-H,Data,T-H,IP-H,解除,IP,包的封装,Data,T-H,IP-H,解除传输层的封装,Data,T-H,数据包到达,对端的应用,Data,实际例子:,TCP/IP,协议的封装,第二节,局域网协议栈,局域网产生与发展,背景,ARPANET,为网络技术研究提供了宝贵经验,短距离内各种资源,(,软件,硬件,),共享的需求,局域网出现,以太网,(局域网的代表技术),1973,年,Xerox,公司建立了,Ethernet,(以太网),,1980,年,Xerox,和,DEC,Intel,联合发布了,10Mbps,的以太网标准。,环型网(,IBM Token Ring,),令牌总线网(,ARCNET,),距离:地理范围有限,一般在几公里以内,通常为同一个单位所有。,技术:传统局域网共享传输介质,必须解决共享介质访问控制问题。,传输速率:高,误码率低,低时延,局域网特点,?,局域网拓扑结构,环型,总线型,星型,局域网实例,局域网标准,为了,解决局域网的标准化问题,,美国电气和电子工程师学会(,IEEE,)设立了专门的研究课题和研究组织,即,IEEE802,课题组和相应的委员会,,经过几年的研究和反复修订,在,1984,年公布了,IEEE802,标准最初的几项标准文本,,形成了,局域网的体系结构,。随着时间的推移,更多的标准被制定出来了。,IEEE802,标准已经被,ISO,所接受,包括在,ISO 802,系列文本中。,局域网标准,IEEE802,是局域网参考模型,其参考模型主要包含,物理层和数据链路层,。,针对局域网的共享介质的特殊情况,局域网参考模型又将数据链路层分称,介质访问控制子层(,MAC,)和逻辑链路子层(,LLC,),。,MAC,子层主要解决网络内各节点对共享介质的争用问题。,LLC,子层主要提供差错控制、流量控制、向高层提供面向连接和无连接服务等功能。,局域网标准,局域网标准,每一个,方块,代表一个,标准文件,802.3,到,802.6,方块中的水平虚线表示介质访问控制子层和物理层的分界,802.1,是倒,L,型的,它的,垂直部分涉及所有层,802.3,是带冲突检测的载波监听多路访问(,CSMA/CD,),802.4,是令牌总线(,Token Bus,),802.5,是令牌环(,Token Ring,),802.6,是城域网(,MAN,),还有别的介质访问控制方法和相应的物理层,局域网之上运行多种高层协议栈,TCP/IP,协议,以实现接入,Internet,的目的。,Netware,的,SPX/IPX,协议栈,NetBIOS,协议栈,IEEE802.3,帧结构,LLC,子层,:,使用,IEEE802.2,的格式,LLC,帧或,LLC,协议数据单元(,LLC PDU,)。,LLC,帧再封装到相应的,MAC,帧中。,MAC PDU,中的,DA,,,SA,:源和目的站,硬件,地址,,,把数据送往各个局域网,中,不同的,主机,。,LLC,PDU,中的,DSAP,,,SSAP,:,源和目的服务访问点,主要用来表示高层的协议类型,把数据送往不同的用户。,IEEE802.3,帧结构,Ethernet V2,帧结构,通常所称的“以太网”是,Ethernet,的中译名,而,Ethernet,的标准,DIX Ethernet v2,与,IEEE802.3,标准略有不同,在,DIX Ethernet v2,标准中,,IEEE802.3MAC,帧的,数据长度(,L,)字段,被,类型(,T,)字段,代替,其它字段完全相同。,在不涉及到网络协议细节时,可以将,802.3,局域网简称为以太网。,Ethernet V2,帧结构,网络层,DATA,IEEE802.3,帧实例,IEEE802.3 MAC,帧首部(,14,字节),LLC PDU,首部(,3,字节),DA,(6,字节,),SA,(6,字节,),L,(长度),(2,字节,),DSAP,(1,字节,),SSAP,(1,字节,),C,(1,字节,),ffffffffffff,00b05c800e13,0054,e0(IPX),e0(IPX),03,注:包含,14,个字节的,IEEE802.3 MAC,帧首部,之后又,3,个字节的,LLC PDU,首部,,,目的地址,DA,为一个广播地址,广播包,,,且,LLC,上层为一个,Netware IPX,数据包。,Ethernet V2 MAC,帧首部(,14,字节),DA,(6,字节,),SA,(6,字节,),T(,类型,),(2,字节,),00e016938d83,00500100f6f7,0800,注:,Ethernet V2,帧的,T(,类型,),字段为,0800,,表示其后数据段为,IP,包,注意,,Ethernet V2,帧之上无,LLC,子层。,Ethernet V2,帧实例,第三节,网间网层协议,网际层协议,-IP,TCP/IP,协议栈中重要的网际层协议,向高层提供无连接的服务,网际层传输的数据单元是分组(,packet,),一般称为,IP,数据报(,Datagram,),主要功能是从源端经互连网到目的端尽最大努力传输数据报,IP,数据报格式,IP,数据报主要字段含义,版本(,Version,):指出该数据报是按哪一个版本的,IP,协议定义的。,4,代表,IPv4,。,头部长度(,IHL,):指明头部长度,以,32,比特(,4,字节)为单位。,总长(,Total Length,):数据报中的头部和数据的长度。,DF,(,Dont Fragment,),:,为,1,时,代表不要分段,。,IP,数据报主要字段含义,MF,(,More Fragment,),:,标志原数据报的所有分段是否都已到达为,1,时,代表还有分段。除了最后一个分段外,所有其它分段都应设置,为,1,。,分段偏移(,Fragment Offset,),:,说明分段处在原数据报的什么位置。,生命期(,Time To Live,):用于限制分组生命周期的计数器。,IP,数据报主要字段含义,协议(,protocol,):说明数据报中封装的是何种协议数据单元(,ICMP,,,TCP,,,UDP,,路由协议等)。,源地址(,Souree Address,):源,IP,地址,目的地址(,Destination Address,):目的,IP,地址,IP,数据报实例,IHL,字段为,5,,,IP,数据报的首部长度为,20,个字节。,DF,、,MF,、分段偏移占,16,位为,0x0000,,表示数据报可以分段、此分段为最后一个分段、此分段,偏移,为,0,(亦即此数据报的第一个分段,也是最后一个分段)。,协议字段为,0x06,,,IP,的数据字段为一个,TCP,数据报。,源,IP,地址为,0xca73411f,,即,202.115.65.31,。,目的地址为,oxca6cfaf9,,即,202.108.250.249,。,ICMP,协议,(,因特网控制报文协议,),IP,协议本身提供面向无连接的服务,不包括流量控制与差错控制功能。,启用因特网控制消息协议,ICMP,来检测网络,状态,(路由、拥塞、服务质量等问题)。,ICMP,提供多种形式的报文,每个,ICMP,消息报文都被封装于,IP,分组中。,PING,是一个典型的基于,ICMP,协议的实用程序,。,ICMP,报文分为三大类,a),差错报告,(用于网关主机信息传输),信宿(网络、主机、协议、端口)不可达报告,超时报告,(TTL,值为,0),参数差错报告,IP,校验和错误,重组失败,b),控制报文,(网关主机),源抑制报文,重定向报文,c),请求,/,应答报文,(用于主机主机信息传输),ECHO,请求,/,应答,时间戳请求,/,应答,地址掩码请求,/,应答,ICMP,报文格式,Contents depends on type,8-bit,type,8-bit,code,16-bit checksum,ICMP,报文格式,类型,代码,校验和,数据区,1234,CHECKSUM,:,整个,ICMP,报文的校验和,算法与,IP,分组头的校验和算法相同,CODE,:,提供报文类型的详细信息,TYPE,:,指出,ICMP,报文的类型,3,:目的不可达 ,11,:分组超时,12,:分组参数错,4,:源抑制 ,5,:路由重定向,8,:回应请求 ,0,:回应应答,13,:时间戳请求 ,14,:时间戳应答,17,:地址掩码请求 ,18,:地址掩码应答,ICMP,报文格式,ICMP,报文的类型,类型码,ICMP,报文类型,0,ECHO,应答,3,信宿不可达,4,源抑制(,Source Quench,),5,重定向,8,ECHO,请求,9,路由广播,10,路由请求,11,数据报超时,12,数据报参数错,13,时戳请求,14,时戳应答,15,信息请求消息,16,信息响应消息,17,地址掩码请求,18,地址掩码应答,各类,ICMP,报文头部格式,A,B,B,可以到,达吗?,ICMP,回声请求,可以,,我在这里。,ICMP,回声应答,用,PING,命令产生的回声及其应答示意图,ICMP,回声请求,/,应答,ARP,ARP,:地址解析协议,把,IP,地址转换成数据链路层,MAC,地址,X,Y,A,B,ARP,请求,IP=192.1.0.2,PA=?,IP= 192.1.0.1,PA= XXX,IP=192.1.0.2,PA=YYY,IP=192.1.0.3,PA=AAA,IP=192.1.0.4,PA=BBB,ARP,应答,PA=YYY,ARP,工作过程,1.,主机,X,(,192.1.0.1,)要获得主机,Y,(,192.1.0.2,)的物理地址,2.,主机,X,首先向网络中广播,ARP,请求,要求解析,IP,地址,192.1.0.2,3.IP= 192.1.0.2,的主机,Y,向发起请求的主机,X,发送,ARP,应答,其中包含了解析后的物理地址,YYY,。,每个主机都有一个,ARP,缓存,一旦收到,ARP,应答,主机就将获得的,IP,地址和物理地址存入缓存。欲发送报文时,首先去缓存中查找相应项,若找不到,再利用,ARP,进行地址解析。,在,ARP,请求中填上自己的,IP,地址和硬件地址,以避免其它主机过后再发,ARP,请求。,当广播,ARP,请求时,网上所有的计算机都能收到该报文,此时各站应更新,A,的,IP,地址到物理地址之间的映射,当网上出现一个新的计算机时,该新的计算机尽可能主动广播它的,IP,地址和物理地址,以避免其它站都运行,ARP,。,ARP,工作过程,ARP,报文格式,硬件类型(,2,字节):指示硬件接口类型,,0x0001,表示,Ethernet,。,协议类型(,2,字节):所使用的网络层协议类型,,0x0800,标示,IP,协议(与,Ethernet V2,帧中类型(,T,)字段相同)。,物理地址长度(,1,字节):,Ethernet,网物理地址长度,0x06,字节(,48Bit,)。,协议地址长度(,1,字节):此处为网络层,IP,长度,0x4,字节(,32Bit,)。,操作(,2,字节):指示,ARP,分组的类型,其中,0x0001,表示,ARP,请求分组,0x0002,表示,ARP,响应分组,,0x0003,表示,RARP,请求分组,,0x0004,表示,RARP,响应分组。,ARP,报文格式,发送节点物理地址,发送此,ARP,分组的主机的物理地址。,发送节点协议地址,发送此,ARP,分组的主机的,IP,地址。,目的节点物理地址,真正接收此,ARP,分组的主机的物理地址。对,ARP,请求分组,由于发送节点此时不知道目的节点的物理地址。故填入全,0,。,目的节点协议地址,接收此,ARP,分组的主机的协议地址。对,RARP,请求分组,由于发送节点此时不知道目的节点的协议地址。故填入全,0,。,ARP,报文格式,ARP,请求分组实例,第四节,传输层协议,传输层协议,传输层协议是网络层之上的协议,传输层要完成差错控制、流量控制、检查分组是否丢失、故障恢复等功能。,在,Internet,中为两用户建立了一条端到端通信链路,TCP/IP,协议栈的传输层协议有两个:面向连接的、提供可靠的按序传输的,TCP,协议;面向无连接的、无可靠性保证的的,UDP,协议。,TCP,报文格式,TCP,报文格式,源端口,(16 bits):,标识源用户进程,20 = FTP, 23 = Telnet, 53 = DNS, 80 = HTTP, .,目的端口,(16 bits) :,标识目的用户进程,序列号,/,确认,/,通报窗口,:用于基于流控的滑动窗口,序列号,(32 bits):,报文段中第一个字节的序号,.,当,SYN,出现,序列号实际上是初始序列号(,ISN,),而第一个数据字节是,ISN+1 .,确认号,(32 bits):,准备接收的分组的序列号 (在此之前的所有数据已经接收妥),窗口,:接收方准备接收的数据量,TCP,报文格式,序列号,:,报文段中第一个字节的序号,确认号,:,另一方准备接收的分组的序列号,累计确认,packet 8,packet 9,packet 10,13450,14950,16050,17550,TCP,报文格式,Host A,Host B,Seq=42, ACK=79, data = C,User,types,C,Seq=43, ACK=80,host ACKs,receipt,of echoed,C,Seq=79, ACK=43, data = C,host ACKs,receipt of,C, echoes,back C,simple telnet scenario,(简单,TELNET,情形),TCP,报文格式,标志,:,SYN, FIN ,建立,/,终止 一个,TCP,连接,ACK ,该,TCP,报文是确认报文,设置该位确认号有效,RST ,复位,(,异常中断连接,),PSH ,快速发送,URG ,紧急数据,紧急指针,指向紧急数据结束点的指针,数据偏移,TCP,的头长度,TCP,报文格式,校验和,下列内容累加求反:,TCP,报头,TCP,数据,伪头,(,从,IP,数据报头部中提取,),源,IP,地址,目的,IP,地址,TCP,段长,0,协议,(TCP:23),TCP,报文格式,选项,(说明如下),选项结束,空操作,最大段长,窗口大小,时间戳,TCP,选项域,TCP,选项域,选项,:,选项结束,NOP,把,TCP,头填充成,4,字节的整数倍,报文段长度的最大值,MMS,窗口大小选项,增大,TCP,窗口从,16,位到,32,位,即,窗口大小是可变的,这一选项仅仅用于连接建立时的,SYN,段,(,第一段,),时间戳选项,用于计量往返时间,TCP,连接管理,建立 一个,TCP,连接,关闭一个,TCP,连接,TCP,连接建立,通过,三次握手,建立一个,TCP,连接,目的,:,协商一些参数,如,:,双方的初始序列号、分段大小等,客户机,(,发起者,),服务器,SYN, SeqNum = x,SYN and ACK, SeqNum = y and Ack = x + 1,ACK, Ack = y + 1,发送者,接收者,FIN,FIN-ACK,FIN,FIN-ACK,发送数据,Data ack,TCP,连接释放,UDP,(用户数据报协议),UDP,在主机之间提供不可靠的数据传输。,UDP,的特性,:,面向无连接,connectionless,不提供对数据的检测,(,不可靠,unreliable),以用户数据报形式传送信息,在目标端不需要重组数据。,不提供确认与流量控制,UDP,报文格式,32 bits,源端口,#,目的端口,#,数据,(,信息,),报文长度,校验和,包括,UDP,首,部和报文段,校验和,UDP,伪头部,校验和,-,下列内容求和、取反:,UDP,报头,UDP,数据,伪头部,(,从,IP,数据报头部中提取,),源,IP,地址,目的,IP,地址,UDP,段长,0,协议,(UDP:17),通过将,IP,地址包含在校验和计算结果中,伪头部就能保证,UDP,数据报能够传送到正确的目的网络和主机处。,第五节,应用层协议,DNS,DNS,提供域名到主机,IP,地址的映射,其核心是,分级,的基于域的命名机制以及为了实现该命名机制的分布式数据库系统,域名服务的三大要素:,域(,Domain,)和域名,(Domain name),:,域指由地理位置或业务类型而联系在一起的一组计算机构成。,主机:由域名来标识。域名是由字符和(或)数字组成的名称,用于替代主机的数字化地址(,IP,地址)。,域名服务器:提供域名解析服务的主机,通常由其,IP,地址标识。,域的层次结构,DNS,的分级结构类似于邮政系统中的分级地址结构。,因特网被分为几百个顶级(,top-level),域,每个域包括多个主机。每个域被分为子域,树叶代表没有子域的域。一个树叶域可以包含一台机器,或代表一个企业或公司中的多台主机。,顶级域分为两大类,:,一般的和国家的。,每个域都对分配其下面的域存在控制权。要创建一个新的域,必须征得其所属的域的同意。,域的层次结构,每个域由往上到根的路径命名(注:根是未命名的),并由圆点“,.”,分割(念作点)。路径全名不能超过,255,个字符。,每个域中的主机标识由其在域中的成员名加上上述域的路径组成。成员名至多为,63,个字符。,域名对大小写不敏感。,注意命名遵循的是组织界限,而不是物理网络。仅次于同一物理网络内的主机可以有不同的域,而同一域内的主机也可属于不同的物理网络。,域的层次结构图,net,edu,gov,com,org,us,cn,uk,ca,yale,harvard,cs,mg,wzu,zju,ibm,sina,ibm,sun,edu,gov,com,cise,cm,通用的,国家的,常见域名缩写的含义,edu - educational sites,com - commercial sites,gov - government sites,org - non-profit sites,net - network service,us - United States,uk - United Kingdom,cn - P.R.China,ca Canada,ch - Chile,DNS,的查找过程,DNS,消息格式,DNS,消息格式由下面,5,个部分组成:,Header,包含关于消息性质方面的信息。,Question,包含目的服务器请求访问的信息。,Answer,包含用于提供,Question,部分所要求的信息的资源记录。,Authority,包含指向,Question,部分所要求信息的权威服务器资源记录。,Additional,包含用于回答,Question,部分的其他信息。,每个,DNS,消息都有一个,Header,部分,只有当,DNS,消息包含数据时,,DNS,消息才包含其他,4,个部分。,Header,部分的格式,Transaction ID,QR,OPCODE,AA,TC,RD,RA,Z,RCODE,QDCOUNT,ANCOUNT,NSCOUNT,ARCOUNT,选项,功能,Transaction ID,它包含将查询与应答关联起来时使用的标识符值,QR,用于设定消息是个查询消息还是应答消息,OPCODE,用于设定生成的消息查询类型,AA,应答消息由作为请求访问查询名字所在域权威服务器应答,TC,用于表示消息已经被截尾,RD,在查询中,表示目的服务器应该将该消息视为递归查询。如果没有该标志,则表示该查询是个迭代查询。,RA,用于设定服务器是否被配置成能够处理递归查询,Z,未用,RCODE,用于设定应答消息性质,表示何时出现了错误和错误的类型,QDCOUNT,用于设定消息的,Question,部分中的项目的数量,ANCOUNT,用于设定消息的,Answer,部分中的项目的数量,NSCOUNT,用于设定消息的,Authority,部分中的项目的数量,ARCOUNT,用于设定消息的,Additional,部分中的项目的数量,Question,部分的格式,DNS,消息的,Question,部分包含首标的,QDCOUNT,字段中设定的项目的数量。大多数情况下,该部分中只有一个选项。,选项,功能,QNAME,它包含请求访问的信息所涉及的,DNS,名字、域名或区域名字,QTYPE,用于设定要求访问的资源记录的类型,QCLASS,用于设定要求访问的资源记录的种类,DNS,消息的,Answer,、,Authority,和,Additional,部分的选项及其功能,选项,功能,NAME,它包含提供的信息所涉及的,DNS,名字、域名或区域的名字,TYPE,它包含一个代码,用于设定项目包含的资源记录的类型,CLASS,它包含一个代码,用于设定资源记录的种类,TTL,用于设定提供的资源记录应该在服务器缓存中存放的时间,RDLENGTH,用于设定,RDATA,字段的长,RDATA,用于设定资源记录的数据,数据的性质取决于,TYPE,和,CLASS,字段值,HTTP,(,Hypertext Transfer Protocol,),基于客户,/,服务器模式。客户发送请求,服务器执行请求。,客户机的操作有:,GET-,检索,URL (,用得最多,),HEAD-,只检索响应头,POST-,向服务器发送数据,PUT-,puts page on server,(在服务器上放页面),DELETE-,从服务器上删除页面,两种,http,报文,:,请求,响应,客户机发送请求,:,GET HTTP/1.0,服务器发送响应,:,HTTP-Version: HTTP/1.0 200 OK,Content-Length: 3012,Content-Type: text/html,HTTP,操作,Http,请求报文,:,ASCII (,可读格式,),GET /somedir/page.html HTTP/1.0,User-agent: Mozilla/4.0,Accept: text/html, image/gif,image/jpeg,Accept-language:fr,(extra carriage return, line feed),request line,(GET, POST,HEAD commands),header,lines,回车,换行,表示报文的结束,Http,报文格式,:,请求,http,请求报文,:,一般格式,HTTP/1.0 200 OK,Date: Thu, 06 Aug 1998 12:00:15 GMT,Server: Apache/1.3.0 (Unix),Last-Modified: Mon, 22 Jun 1998 .,Content-Length: 6821,Content-Type: text/html,data data data data data .,状态行,(,协议状态码,,状态短语,),头部行,数据,例如,请求的,html,文件,http,报文格式,:,响应,200 OK,请求成功,被请求对象在这条报文的后面,301 Moved Permanently,请求对象移动,新的位置在这条报文的后面指定,400 Bad Request,请求报文不能被服务器理解,404 Not Found,在服务器上没有找到请求的文档,505 HTTP Version Not Supported,在服务器,-,客户响应报文的,第一行,.,主要响应状态代码如下,:,http,响应状态代码,第六节,协议分析实验,实验目的,加深对协议、协议封装及协议数据单元格式的理解;,实验内容,安装,Winpcap,和,Ethereal,应用软件;,运行,Ethereal,应用程序,抓取网络上的数据包。,分析各种协议的数据报,完成实验报告。,实验设备,一台接入,Internet,的计算机,实验步骤,1.,安装与启动,Ethereal,2.,启动抓包过程,3.,协议分析,实验报告,
展开阅读全文