网络协议实践_第1页
网络协议实践_第2页
网络协议实践_第3页
网络协议实践_第4页
网络协议实践_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、网络工程系网络工程系网络工程系网络工程系网络协议实践网络协议实践网络协议实践网络协议实践课程设计报告课程设计报告课程设计报告课程设计报告成绩(总分):成绩(总分):答辩(答辩(7070分)分)课程设计报告(课程设计报告(3030分)分)总分总分签名:签名: 目目 录录第一章第一章 tcptcp 和和 arparp 协议基础协议基础 .31.1 什么是 tcp 协议.31.2 tcp 报文类型与格式 .31.3 什么是 arp 协议.41.4 arp 报文类型和结构 .4第二章第二章 抓包验证抓包验证 tcptcp 协议和协议和 arparp 协议协议 .52.1 实验环境.52.2 实验步骤与

2、抓包结果分析.52.3 实验结论.7第三章第三章 ospfospf 路由协议验证分析路由协议验证分析 .83.1 实验环境及工具介绍 .83.2 实验步骤及抓包结果分析 .83.3 实验结论-ospf 运行过程说明.103.4 实验心得体会 .10网络协议实践网络协议实践第一章 tcp 协议基础1.11.1 什么是什么是 tcptcp 协议协议tcp 协议 tcp:transmission control protocol 传输控制协议 tcp 是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(transport layer)通信协议,由 ietf的 rfc 793 说明。在简化的计算

3、机网络 osi 模型中,它完成第四层传输层所指定的功能。transmission control protocol 传输控制协议,tcp 是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(transport layer)通信协议 。在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接 3 个过程。tcp 提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。尽管 t c p 和 u d p 都使用相同的网络层( i p) ,t c p 却向应用层提供与 u d p 完全不同的服务。t c p 提供一种面向连接的、可靠的字节流服务。面向连接意味着两

4、个使用 t c p 的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个 t c p 连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂” ,然后才说明是谁。1.2tcp1.2tcp 的头报文格式的头报文格式图 1.tcp 报头字段说明:u r g 紧急指针( u rgent pointer)有效。a c k 确认序号有效。p s h 接收方应该尽快将这个报文段交给应用层。r s t 重建连接。s y n 同步序号用来发起一个连接。这个标志和下一个标志将在第 1 8 章介绍。f i n 发端完成发送任务。1.31.3 tcptcp 连接的建立连接的建立tcp 协议通过

5、三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake) 。1) 请求端(通常称为客户)发送一个 s y n 段指明客户打算连接的服务器的端口,以及初始序号。这个 s y n 段为报文段 1。2) 服务器发回包含服务器的初始序号的 s y n 报文段(报文段 2)作为应答。同时,将确认序号设置为客户的 i s n 加 1 以对客户的 s y n 报文段进行确认。一个 s y n 将占用一个序号。3) 客户必须将确认序号设置为服务器的 i s n 加 1 以对服务器的 s y n 报文段进行确认(报文段 3) 。图 2.tcp 连接建立发送第一个 s y n 的一

6、端将执行主动打开( active open) 。接收这个 s y n 并发回下一个 s y n 的另一端执行被动打开( passive open)1.41.4 tcptcp 连接的释放连接的释放建立一个连接需要三次握手,而终止一个连接要经过 4 次握手。这由 t c p 的半关闭(h a l f -c l o s e)造成的。既然一个 t c p 连接是全双工(即数据在两个方向上能同时传递) ,因此每个方向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个 f i n 来终止这个方向连接。当一端收到一个 f i n,它必须通知应用层另一端几经终止了那个方向的数据传送。发送

7、f i n 通常是应用层进行关闭的结果。收到一个 f i n 只意味着在这一方向上没有数据流动。一个 t c p 连接在收到一个 f i n 后仍能发送数据。而这对利用半关闭的应用来说是可能的,尽管在实际应用中只有很少的 t c p 应用程序这样做。图 4.tcp 链接释放1、现在 a 的应用进程先向其 tcp 发出连接释放报文段,并停止再发送数据,主动关闭 tcp 连接。a 把连接释放报文段首部的 fin = 1,其序号 seq = u,等待 b 的确认。 2、b 发出确认,确认号 ack = u +1,而这个报文段自己的序号 seq = v。tcp 服务器进程通知高层应用进程。从 a 到

8、b 这个方向的连接就释放了,tcp 连接处于半关闭状态。b 若发送数据,a 仍要接收.3、若 b 已经没有要向 a 发送的数据,其应用进程就通知 tcp 释放连接, 4、a 收到连接释放报文段后,必须发出确认。在确认报文段中 ack = 1,确认号 ack = w +1,自己的序号 seq = u + 1。 tcp 连接必须经过时间 2msl 后才真正释放掉1.51.5 抓包验证抓包验证 tcptcp 协议协议1.5.11.5.1 实验环境实验环境 一台装有 gns3、wireshark 软件的 pc 机。1.5.21.5.2 实验步骤与抓包结果分析实验步骤与抓包结果分析为了方便抓包且更利于分

9、析,本次综合实验采用如下拓扑: 图 5 实验拓扑 两台路由器简要配置如下:r1(config)#int fa0/1r1(config-if)#ip add 192.168.1.1 255.255.255.0r1(config-if)#no shr2(config)#int fa0/0r2(config-if)#ip add 192.168.1.2 255.255.255.0r2(config-if)#no shr2(config)#line vty 0 4r2(config-line)#password cisco在 r1 上 telnet r2,并用 wireshark 抓包,抓取 tcp

10、的建立连接三次握手和释放连接4 次握手包:启动 wireshark,抓取经过 r1 f0/1 接口的数据包。在 r2 上设置 telnet 密码为 cisco,在 r1 上 telnet r2,连上去以后释放连接:r1#telnet 192.168.1.2trying 192.168.1.2 . openuser access verificationpassword: r2exitconnection to 192.168.1.2 closed by foreign host然后我们在 wireshark 里面观察抓取的报文: 图 6 tcp 建立连接的三次握手很明显,序号为 5、6、7 的

11、数据包为 tcp 的三次握手建立的过程。r1 发送 syn 包给r2,请求连接,然后 r2 发送 ack 和 syn 标志位都为 1 的包给 r1,表示回应 r1 请求并且向 r1 请求连接,最后 r1 发送 ack 包响应 r2 的连接请求,至此连接建立。 图 7 tcp 释放连接的 4 次挥手图 7 是 tcp 四次挥手释放连接的数据包。r1 发送 fin 包给 r2,请求释放连接,r2 回复一个 ack 包给 r1,序列号是 fin 的序列号+1,之后 r2 发送 fin 包给 r1,请求释放链接,然后 r1 回复 ack 包,至此连接释放。第二章第二章 arparp 协议协议2.12.

12、1 什么是什么是 arparp 协议协议arp 是 address resolution protocol(rfc826)的缩写。中文译做“地址解析协议” ,本质是完成网络地址到物理地址的映射,具体到以太网,它使用的是动态绑定转换的方法。在 tcp/ip 协议中,每一个网络结点是用 ip 地址标识的,ip 地址是一个逻辑地址。而在以太网中数据包是靠 48 位 mac 地址(物理地址)寻址的。因此,必须建立 ip 地址与mac 地址之间的对应(映射)关系,arp 协议就是为完成这个工作而设计的。其作用为通过 ip 地址寻找主机的 mac 地址。2.22.2 arparp 欺骗欺骗arp 协议是建

13、立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标 mac 是自己的 arp reply 包或 arp 广播包(包括 arp request 和 arp reply) ,都会接受并缓存。这就为 arp 欺骗提供了可能,恶意节点可以发布虚假的 arp 报文从而影响网内结点的通信,甚至可以做“中间人” 。当局域网中的某台机器 b 向 a 发送一个自己伪造的 arp 应答,而如果这个应答是 b冒充 c 伪造来的,即 ip 地址为 c 的 ip,而 mac 地址是伪造的,则当 a 接收到 b 伪造

14、的arp 应答后,就会更新本地的 arp 缓存,这样在 a 看来 c 的 ip 地址没有变,而它的mac 地址已经不是原来那个了。在 a 上 c 的 mac 地址被改变成一个不存在的 mac 地址,这样就会造成网络不通,导致 a 不能 ping 通 c,这就是一个简单的 arp 欺骗。 arp 欺骗方式:伪装成被攻击主机广播 arp 请求伪装成被攻击者进行 arp 应答伪装成网关进行 arp 应答2.32.3 arparp 的分组格式的分组格式图 8.arp 分组格式字段说明:两个字节长的以太网帧类型表示后面数据的类型。对于 a r p 请求或应答来说,该字段的值为 0 x 0 8 0 6。硬

15、件类型字段表示硬件地址的类型。它的值为 1 即表示以太网地址。接下来的两个 1 字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上 i p 地址的 a r p 请求或应答来说,它们的值分别为 6 和 4。操作字段指出四种操作类型,它们是 a r p 请求(值为 1) 、a r p 应答(值为 2) 、r a r p 请求(值为 3)和 r a r p 应答(值为 4) 。2.42.4 抓包验证抓包验证 arparp 协议协议2.4.12.4.1 实验环境实验环境xpsp3 下用 wireshark 抓得 arp 请求及应答报文2.4.22.4.2

16、 实验步骤与抓包结果分析实验步骤与抓包结果分析为了方便抓包且更利于分析,本次综合实验采用如下拓扑:在 r1 telnet r2 刚开始时,r1 会发送 arp 报文请求 r2 的 mac 地址。下图为抓取到的 arp 报文 图 10 抓包之 arp 数据包图 10 中,序号为 3 的包是 arp 请求包,以广播方式发送出去,寻求 ip 地址为192.168.1.2 的 mac 地址。以下为报文内容:图 11 arp 请求包的结构观察报文内容,前 48 个字节的 12 个 f 为目的地址,代表此为广播包,后 48 个字节是发送数据包的源地址,0 x0806 表示协议类型为 arp,0 x0001

17、 表示硬件类型为 ethernet,下一个 0 x0800 表示协议类型为 ip,后面的 6、4 分别表示硬件地址长度和协议地址长度。后面的 0 x0001 表示报文类型为请求包。之后的 48 个字节表示发送者的 mac 地址,后面的 32个字节的表示发送者的 ip 地址。再下面的 00 00 00 00 00 00 表示目标 mac 地址,即为需要解析得到的目标 mac 地址。最后的为 arp 目标的 ip 是 10.0.0.2。序号为 4 的包为 arp 应答包。它的结构如下: 图 12 arp 应答包的结构这个包和 arp 请求包不同的地方是:源地址是 arp 发送方的 mac 地址,而

18、目标地址是响应请求回复的地址。另外还有不同的地方就是图中高亮显示的地方:操作类型(回复) 。2.4.32.4.3 arparp 欺骗欺骗实验拓扑:图 13.arp 欺骗拓扑其中 c1 为虚拟机里的 xp 系统,c2 为系统里的虚拟网卡。利用免费 arp 来实现 arp 欺骗。首先 c1 与 r1fa0/1 连接,相互 ping 通后。r1 上的 arp 表:图 14.欺骗之前 arp 表将 c2 与 r1 相连后,将 c2 的 ip 改为与 c1 相同,此时会发送免费 arp 包,达到 arp 欺骗的效果。使用 arp 欺骗之后的 arp 表:图 15.arp 欺骗之后 arp 表现在不能 p

19、ing 通:图 16.欺骗后不能相互通信第三章 ospf 路由协议验证分析3.13.1 实验环境及工具介绍实验环境及工具介绍实验环境仍然是上次实验用的环境,一台装有 gns3、wireshark 和 sniffer 软件的 pc机。拓扑图依旧不变。 图 17 实验拓扑3.23.2 实验步骤及抓包结果分析实验步骤及抓包结果分析用 wireshark 观察 r1 的 f0/1 接口,配置好 ospf 协议以后,将端口 no shut。观察抓包: 图 18 ospf 报文在图 18 中我们发现了 ospf5 种类型的报文,他们分别是:hello 包:形成邻居关系,并保活。数据库描述报文 dd ;描述

20、自身的数据库条目。 (只包含 lsa 头部)lsa 请求报文 lsr:用于向邻居请求自己缺省的 lsa 条目(只包含 lsa 头部,缺省的条目通过比较 dd 报文获得。 )lsa 更新报文 lsu:对请求报文的应答,包含了完整的 lsa 条目。同时还具有确认作用。lsa 确认报文:显示的确认自己收到了 lsa 更新报文。r1 上 debug ip ospf events输出:*mar 1 00:25:14.819: ospf: send hello to 224.0.0.5 area 0 on fastethernet0/1 from 192.168.1.1*mar 1 00:25:14.83

21、1: ospf: rcv hello from 2.2.2.2 area 0 from fastethernet0/1 192.168.1.2*mar 1 00:25:14.835: ospf: 2 way communication to 2.2.2.2 on fastethernet0/1, state 2way*mar 1 00:25:14.835: ospf: backup seen event before wait timer on fastethernet0/1*mar 1 00:25:14.835: ospf: dr/bdr election on fastethernet0/

22、1 *mar 1 00:25:14.835: ospf: elect bdr 1.1.1.1*mar 1 00:25:14.835: ospf: elect dr 2.2.2.2*mar 1 00:25:14.835: ospf: elect bdr 1.1.1.1*mar 1 00:25:14.839: ospf: elect dr 2.2.2.2*mar 1 00:25:14.839: dr: 2.2.2.2 (id) bdr: 1.1.1.1 (id)*mar 1 00:25:14.839: ospf: send dbd to 2.2.2.2 on fastethernet0/1 seq

23、 0 xd5b opt 0 x52 flag 0 x7 len 32*mar 1 00:25:14.839: ospf: send immediate hello to nbr 2.2.2.2, src address 192.168.1.2, on fastethernet0/1*mar 1 00:25:14.843: ospf: send hello r1#to 192.168.1.2 area 0 on fastethernet0/1 from 192.168.1.1*mar 1 00:25:14.843: ospf: end of hello processing*mar 1 00:2

24、5:15.107: %sys-5-config_i: configured from console by consoler1#*mar 1 00:25:16.803: %link-3-updown: interface fastethernet0/1, changed state to up*mar 1 00:25:17.803: %lineproto-5-updown: line protocol on interface fastethernet0/1, changed state to upr1#*mar 1 00:25:19.839: ospf: send dbd to 2.2.2.

25、2 on fastethernet0/1 seq 0 xd5b opt 0 x52 flag 0 x7 len 32*mar 1 00:25:19.839: ospf: retransmitting dbd to 2.2.2.2 on fastethernet0/1 1*mar 1 00:25:19.895: ospf: rcv dbd from 2.2.2.2 on fastethernet0/1 seq 0 xae1 opt 0 x52 flag 0 x7 len 32 mtu 1500 state exstart*mar 1 00:25:19.895: ospf: nbr negotia

26、tion done. we are the slave*mar 1 00:25:19.899: ospf: send dbd to 2.2.2.2 on fastethernet0/1 seq 0 xae1 opt 0 x52 flag 0 x2 len 52*mar 1 00:25:19.963: ospf: rcv dbd from 2.2.2.2 on fastethernet0/1 seq 0 xae2 opt 0 x52 flag 0 x3 len 52 mtu 1500 state exchange*mar 1 00:25:19.963: ospf: send dbd to 2.2

27、.2.2 on fastethernet0/1 seq 0 xae2 opt 0 x52 flag 0 x0 len 32*mar 1 00:25:19.995: ospf: rcv dbd from 2.2.2.2 on fastethernet0/1 seq 0 xae3 opt 0 x52 flag 0 x1 len 32 mtu 1500 state exchange*mar 1 00:25:19.995: ospf: exchange done with 2.2.2.2 on fastethernet0/1*mar 1 00:25:19.995: ospf: send ls req

28、to 2.2.2.2 length 12 lsa count 1*mar1#r 1 00:25:19.999: ospf: send dbd to 2.2.2.2 on fastethernet0/1 seq 0 xae3 opt 0 x52 flag 0 x0 len 32*mar 1 00:25:20.035: ospf: rcv ls req from 2.2.2.2 on fastethernet0/1 length 36 lsa count 1*mar 1 00:25:20.035: ospf: send upd to 192.168.1.2 on fastethernet0/1 l

29、ength 40 lsa count 1*mar 1 00:25:20.051: ospf: rcv ls upd from 2.2.2.2 on fastethernet0/1 length 64 lsa count 1*mar 1 00:25:20.051: ospf: synchronized with 2.2.2.2 on fastethernet0/1, state full*mar 1 00:25:20.051: %ospf-5-adjchg: process 1, nbr 2.2.2.2 on fastethernet0/1 from loading to full, loading done*mar 1 00:25:20.067: ospf: rcv ls upd from 2.2.2.2 on fastethernet0/1 length 64 lsa count 1*mar 1 00:25:20.555: ospf: rcv ls upd from 2.2.2.2 on fastethernet0/1 length 64 lsa count 1*mar 1 00:25:20.559: ospf: rcv ls upd fro

温馨提示

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

评论

0/150

提交评论