网络协议实践.doc

上传人:仙人指路1688 文档编号:2401146 上传时间:2023-02-17 格式:DOC 页数:12 大小:619KB
返回 下载 相关 举报
网络协议实践.doc_第1页
第1页 / 共12页
网络协议实践.doc_第2页
第2页 / 共12页
网络协议实践.doc_第3页
第3页 / 共12页
网络协议实践.doc_第4页
第4页 / 共12页
网络协议实践.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《网络协议实践.doc》由会员分享,可在线阅读,更多相关《网络协议实践.doc(12页珍藏版)》请在三一办公上搜索。

1、网络工程系网络协议实践课程设计报告成绩(总分):答辩(70分)课程设计报告(30分)总分签名: 目 录第一章 TCP和ARP协议基础31.1 什么是TCP协议31.2 TCP报文类型与格式31.3 什么是ARP协议41.4 ARP报文类型和结构4第二章 抓包验证TCP协议和ARP协议52.1 实验环境52.2 实验步骤与抓包结果分析52.3 实验结论7第三章 OSPF路由协议验证分析83.1实验环境及工具介绍83.2实验步骤及抓包结果分析83.3实验结论-OSPF运行过程说明103.4实验心得体会10网络协议实践第一章 TCP协议基础1.1 什么是TCP协议TCP协议TCP:Transmiss

2、ion Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。Transmission Control Protocol 传输控制协议,TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议 。在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。

3、尽管T C P和U D P都使用相同的网络层( I P),T C P却向应用层提供与U D P完全不同的服务。T C P提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用T C P的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个T C P连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。1.2TCP的头报文格式图1.TCP报头字段说明:U R G 紧急指针( u rgent pointer)有效。A C K 确认序号有效。P S H 接收方应该尽快将这个报文段交给应用层。R S T 重建连接。S Y N 同步序号用来发起一个连接。这个

4、标志和下一个标志将在第1 8章介绍。F I N 发端完成发送任务。1.3 TCP连接的建立TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(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

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

6、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 到 B 这个方向的连接就释放了,TCP 连接处于

7、半关闭状态。B 若发送数据,A 仍要接收.3、若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接, 4、A 收到连接释放报文段后,必须发出确认。在确认报文段中 ACK = 1,确认号 ack = w +1,自己的序号 seq = u + 1。 TCP 连接必须经过时间 2MSL 后才真正释放掉1.5抓包验证TCP协议1.5.1实验环境 一台装有GNS3、Wireshark软件的PC机。1.5.2实验步骤与抓包结果分析为了方便抓包且更利于分析,本次综合实验采用如下拓扑: 图5 实验拓扑 两台路由器简要配置如下:R1(config)#int fa0/1R1(config-if

8、)#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的建立连接三次握手和释放连接4次握手包:启动wireshark,抓取经过R1 f0/1接口的数据包。在R2上设置TELNET密码为cisco,在R1上T

9、ELNET 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的数据包为TCP的三次握手建立的过程。R1发送SYN包给R2,请求连接,然后R2发送ACK和SYN标志位都为1的包给R1,表示回应R1请求并且向R1请求连接,最后R1发送ACK包响应R2的连

10、接请求,至此连接建立。 图7 TCP释放连接的4次挥手图7是TCP四次挥手释放连接的数据包。R1发送FIN包给R2,请求释放连接,R2回复一个ACK包给R1,序列号是FIN的序列号+1,之后R2发送FIN包给R1,请求释放链接,然后R1回复ACK包,至此连接释放。第二章ARP协议2.1 什么是ARP协议ARP是Address Resolution Protocol(RFC826)的缩写。中文译做“地址解析协议”,本质是完成网络地址到物理地址的映射,具体到以太网,它使用的是动态绑定转换的方法。在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠4

11、8位MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。其作用为通过IP地址寻找主机的MAC地址。2.2 ARP欺骗ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。当局域网中的某台机

12、器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。在A上C的MAC地址被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C,这就是一个简单的ARP欺骗。 ARP欺骗方式:伪装成被攻击主机广播ARP请求伪装成被攻击者进行ARP应答伪装成网关进行ARP应答2.3 ARP的分组格式图8.ARP分组格式字段说明:两个字节长的以太网帧类型表示后面数据的类型。对于A R P请求或应答来说,该

13、字段的值为0 x 0 8 0 6。硬件类型字段表示硬件地址的类型。它的值为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.4 抓包验证ARP协议2.4.1 实验环境XPSP3下用wireshark抓得ARP请求及应答报文2.4.2 实验步骤与抓包结果分析为了方便抓包且更利于分析,本次综合实验采用如下拓扑:在

14、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个字节是发送数据包的源地址,0x0806表示协议类型为ARP,0x0001表示硬件类型为ethernet,下一个0x0800表示协议类型为IP,后面的6、4分别表示硬件地址长度和协议地址长度。后面的0x0001表示报文类型为请求包。之后的48个字节表示

15、发送者的MAC地址,后面的32个字节的表示发送者的IP地址。再下面的00 00 00 00 00 00表示目标MAC地址,即为需要解析得到的目标MAC地址。最后的为ARP目标的IP是10.0.0.2。序号为4的包为ARP应答包。它的结构如下: 图12 ARP应答包的结构这个包和ARP请求包不同的地方是:源地址是ARP发送方的MAC地址,而目标地址是响应请求回复的地址。另外还有不同的地方就是图中高亮显示的地方:操作类型(回复)。2.4.3 ARP欺骗实验拓扑:图13.ARP欺骗拓扑其中C1为虚拟机里的XP系统,C2为系统里的虚拟网卡。利用免费ARP来实现ARP欺骗。首先C1与R1fa0/1连接,

16、相互ping通后。R1上的ARP表:图14.欺骗之前ARP表将C2与R1相连后,将C2的IP改为与C1相同,此时会发送免费ARP包,达到ARP欺骗的效果。使用ARP欺骗之后的ARP表:图15.ARP欺骗之后ARP表现在不能PING通:图16.欺骗后不能相互通信第三章 OSPF路由协议验证分析3.1实验环境及工具介绍实验环境仍然是上次实验用的环境,一台装有GNS3、Wireshark和sniffer软件的PC机。拓扑图依旧不变。 图17 实验拓扑3.2实验步骤及抓包结果分析用wireshark观察R1的F0/1接口,配置好OSPF协议以后,将端口no shut。观察抓包: 图18 OSPF报文在

17、图18中我们发现了OSPF5种类型的报文,他们分别是:HELLO 包:形成邻居关系,并保活。数据库描述报文DD ;描述自身的数据库条目。(只包含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 Fas

18、tEthernet0/1 from 192.168.1.1*Mar 1 00:25:14.831: 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:

19、14.835: OSPF: DR/BDR election on FastEthernet0/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: O

20、SPF: Send DBD to 2.2.2.2 on FastEthernet0/1 seq 0xD5B opt 0x52 flag 0x7 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.8

21、43: OSPF: End of hello processing*Mar 1 00:25: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#*

22、Mar 1 00:25:19.839: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/1 seq 0xD5B opt 0x52 flag 0x7 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 0xAE1 opt 0x52 flag 0x7 len 32 mtu 1500 state EXSTART

23、*Mar 1 00:25:19.895: OSPF: NBR Negotiation Done. We are the SLAVE*Mar 1 00:25:19.899: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/1 seq 0xAE1 opt 0x52 flag 0x2 len 52*Mar 1 00:25:19.963: OSPF: Rcv DBD from 2.2.2.2 on FastEthernet0/1 seq 0xAE2 opt 0x52 flag 0x3 len 52 mtu 1500 state EXCHANGE*Mar 1 00:

24、25:19.963: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/1 seq 0xAE2 opt 0x52 flag 0x0 len 32*Mar 1 00:25:19.995: OSPF: Rcv DBD from 2.2.2.2 on FastEthernet0/1 seq 0xAE3 opt 0x52 flag 0x1 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:

25、19.995: OSPF: Send LS REQ 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 0xAE3 opt 0x52 flag 0x0 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

26、.2 on FastEthernet0/1 length 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

27、 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 from 2.2.2.2 on FastEthernet0/1 length 60 LSA coun

28、t 1*Mar 1 00:25:20.559: OSPF: Rcv LS UPD from 2.2.2.2 on FastEthernet0/1 length 64 LSA count 1R1#*Mar 1 00:25:21.755: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/1 192.168.1.2*Mar 1 00:25:21.755: OSPF: Neighbor change Event on interface FastEthernet0/1*Mar 1 00:25:21.755: OSPF: DR/BDR ele

29、ction on FastEthernet0/1 *Mar 1 00:25:21.759: OSPF: Elect BDR 1.1.1.1*Mar 1 00:25:21.759: OSPF: Elect DR 2.2.2.2*Mar 1 00:25:21.759: DR: 2.2.2.2 (Id) BDR: 1.1.1.1 (Id)*Mar 1 00:25:21.759: OSPF: End of hello processing3.3实验结论-OSPF运行过程说明 图19 OSPF运行过程通过比较图18和图19,发现首先是双方路由器向组播地址224.0.0.5互发hello包,形成邻居关系并保活。然后就是数据库描述报文DBD,用来描述自身数据库条目。双方相互发LSR包,用于向邻居请求自己缺省的LSA 条目。之后相互发LSU包,这是对对方LSR请求报文的应答,同时还具有确认作用。它们互发LSU包以后,又向组播地址224.0.0.5发送了LSU包,用来向其他邻居发送更新状态。最后相互发送LSA 确认报文,表示确认自己收到了LSA 更新报文。3.4实验心得体会通过本次实践,对TCP协议、ARP协议以及OSPF有了更深入的理解。能够熟练掌握TCP建立链接和释放链接的过程,能够熟练掌握ARP的过程及ARP欺骗的产生,熟练掌握了OSPF邻居的建立过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号