计算机网络课程设计(2)

2019-03-03 16:08

Source port: http (80) 源端口名称(端口号) Destination port: 52449 (52449) 目的端口名

Sequence number: 1 (relative sequence number) 序列号(相对序列号) Header length: 20 bytes 头部长度

Flags: 0x14(RST,ACK) TCP标记字段(本字段是RST,ACK,置位表示复位TCP连接,置位表

示确认号字段有效)

Window size: 0 流量控制的窗口大小

Checksum: 0xd47e[validation disabled] TCP数据段的校验和

以下为数据链路层IEEE802.3报文格式

注意:IEEE802.3是有线以太网的协议,所以要想得到IEEE802.3的报文就必须要叉网线。 DSTADDR 6字节 SRCADDR 6字节 LEN DSAP SSAP 2字1字1字节 节 节 最大长度1518字节 CONTROL 1/2字节 INFO 信息

6

Destination: Spanning-tree-(for-bridges)_00 (01:80:c2:00:00:00) 目的:厂名_序号(网卡地址) Source: Hangzhou_07:f2:e0(00:0f:e2: 07:f2:e0) 源:厂名_序号(网卡地址) Length:132 长度

1.4 总结

Wireshark是一款基于winpcap的抓包软件,它的界面是友好的,功能是强大的,上手是容易的,掌握是困难的。通过短暂的学习研究,我发现Wireshark之于我么学生的主要功能便是帮助我们更好地学习和理解协议。正如你知道西瓜是甜的,但只有当你吃过了西瓜,你才能体会到西瓜特有的味道。而Wirkshark就给我们提供了吃西瓜所需的西瓜刀。

Wireshark是一款网络嗅探器,它以明文的方式显示捕获的包信息,这对于分析协议格式和内容是非常有帮助的。而且Wireshark的显示比较人性化。过滤器方式可以是捕获前过滤也可以是捕获后过滤,可以根据自己的需要自行选择。

本次实验,让我深刻地去了解了网络各协议栈的协议,以及对应的包头格式及内容,尤其是对IP包头和ICMP包头的了解又更上一层楼了,这对于理解网络通信的原理特别有帮助,理解了各协议栈的任务以及基本原理。

7

实验二 网络层实验—Ping程序的设计与实现

一、实验内容和要求

本实验为ICMP实验。实验内容:Ping命令实现的扩充,在给定的Ping程序的基础上做如下功能扩充:

? -h 显示帮助信息

? -b 允许ping一个广播地址,只用于IPv4 ? -t 设置ttl值,只用于IPv4

? -q 安静模式。不显示每个收到的包的分析结果,只在结束时,显示汇总结果 Ping命令的基本描述

Ping的操作是向某些IP地址发送一个ICMP Echo消息,接着该节点返回一个ICMP Echo reply消息。ICMP消息使用IP头作为基本控制。IP头的格式如下

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version=4

IHL Internet头长 Type of Service = 0

Total Length IP包的总长度

Identification, Flags, Fragment Offset 用于IP包分段 Time to Live IP包的存活时长 Protocol ICMP = 1

Addresses 发送Echo消息的源地址是发送Echo reply消息的目的地址,相反,发送Echo 消息的目的地址是发送Echo reply消息的源地址。

Ping实际上是使用ICMP中的ECHO报文来实现的。Echo 或 Echo Reply 消息格式如下: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+-

8

Type

echo消息的类型为8

echo reply 的消息类型为0。 Code=0

Checksum 为从TYPE开始到IP包结束的校验和 Identifier

如果 code = 0, identifier用来匹配echo和echo reply消息 Sequence Number

如果 code = 0, identifier用来匹配echo和echo reply消息 功能描述:

收到echo 消息必须回应 echo reply 消息。

identifier 和 sequence number 可能被发送echo的主机用来匹配返回的 echo reply消息。例如: identifier 可能用于类似于TCP或UDP的 port 用来标示一个会话, 而sequence number 会在每次发送echo请求后递增。 收到echo的主机或路由器返回同一个值与之匹配

1、 数据结构的描述

1) IP包格式 struct ip {

BYTE Ver_ihl; //版本号与包头长度 BYTE TOS; //服务类型 WORD Leng; //IP包长度

WORD Id; //IP包标示,用于辅助IP包的拆装,本实验不用,置零 WORD Flg_offset; //偏移量,也是用于IP包的拆装,本实验不用,置零 BYTE TTL; //IP包的存活时间

BYTE Protocol; //上一层协议,本实验置ICMP

WORD Checksum; //包头校验和,最初置零,等所有包头都填写正确后,计算并替换。 BYTE Saddr[4]; //源端IP地址 BYTE Daddr[4]; //目的端IP地址 BYTE Data[1]; //IP包数据

};

2)ICMP包格式 struct icmp {

BYTE Type; //ICMP类型,本实验用 8: ECHO 0:ECHO REPLY BYTE Code; //本实验置零

WORD Checksum; //ICMP包校验和,从TYPE开始,直到最后一位用户数据,如果为

字节数为奇数则补充一位

WORD ID; //用于匹配ECHO和ECHO REPLY包 WORD Seq; //用于标记ECHO报文顺序 BYTE Data[1]; //用户数据

};

二、实验环境

Windows平台 +Linux平台

9

三、 程序的需求分析与逻辑框图 需求分析

允许ping广播地址 打印要获取包的数量 显示使用帮组信息 设置时间间隔

设置安静模式,不显示每个收到的包的分析结果,只在结束时,显示汇总结果 设置数据的长度

设置ttl(生存时间)值

除了打印ECHO-RESPONSE数据包之外,还打印其它所有返回的ICMP数据包 逻辑框图

main为SIGALARM 建立信号处理程序sig_alarmreadloopsendrecvfrom无限接收循环proc每秒发送一个Echo消息ping程序函数概貌

1)main函数

10


计算机网络课程设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:我国房产税制度设计与探讨

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: