成都信息工程学院网络工程系《网络协议实践》课程设计报告签名:目录第一章 TCP和ARP协议基础............................................................................... 错误!未定义书签。
1.1什么是TCP协议........................................ 错误!未定义书签。
1.2TCP报文类型与格式 .................................... 错误!未定义书签。
1.3什么是ARP协议........................................ 错误!未定义书签。
1.4ARP报文类型和结构 .................................... 错误!未定义书签。
第二章抓包验证TCP协议和ARP协议.............................................................. 错误!未定义书签。
2.1实验环境.............................................. 错误!未定义书签。
2.2实验步骤与抓包结果分析................................ 错误!未定义书签。
2.3实验结论.............................................. 错误!未定义书签。
第三章 OSPF路由协议验证分析.. (3)3.1实验环境及工具介绍 (9)3.2实验步骤及抓包结果分析 (10)3.3实验结论--OSPF运行过程说明 (12)3.4实验心得体会 (12)网络协议实践第一章 TCP协议基础1.1 什么是TCP协议TCP协议TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明。
在简化的计算机网络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提供一种面向连接的、可靠的字节流服务。
面向连接意味着两个使用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 同步序号用来发起一个连接。
这个标志和下一个标志将在第1 8章介绍。
F I N 发端完成发送任务。
1.3 TCP连接的建立TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-wayhandshake) 。
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的一端将执行主动打开( 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 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 连接处于半关闭状态。
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)#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上TELNET R2,连上去以后释放连接:R1#telnet 192.168.1.2Trying 192.168.1.2 ... OpenUser Access VerificationPassword:R2>exit[Connection 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的连接请求,至此连接建立。
图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地址是一个逻辑地址。
而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。
因此,必须建立IP地址与MAC 地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。
其作用为通过IP地址寻找主机的MAC地址。
2.2 ARP欺骗ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。
它是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP request和ARP reply),都会接受并缓存。
这就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。
当局域网中的某台机器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请求或应答来说,该字段的值为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 实验步骤与抓包结果分析为了方便抓包且更利于分析,本次综合实验采用如下拓扑:在R1 telnet R2刚开始时,R1会发送ARP报文请求R2的MAC地址。