- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京工业大学
计算机学院
实验报告
课程名称 TCP\IP协议分析
学 号 11070229
姓 名 王宗旭 陈尧一
网络协议分析实验
一、实验目的
通过使用协议分析软件,对通信系统的通信过程进行监控、分析,以了解通信协议的工作过程。
二、实验内容
利用协议分析软件(如:Wireshark)跟踪局域网报文(如条件允许也可跟踪多种局域网协议报文),实验内容如下:
将安装协议分析软件的PC接入以太网中,跟踪PC之间的报文,并存入文件以备重新查。
设置过滤器过滤网络报文以检测特定数据流。
利用协议分析软件的统计工具显示网络报文的各种统计信息。
三、实验步骤
1、在PC中安装协议分析软件。
2、启动Wireshark协议分析软件,选择抓包菜单项启动实时监视器,开始实时跟踪显示网络数据报文。可根据系统提示修改显示方式。
3、调出跟踪存储的历史报文,选择有代表性的ETHERNET,IEEE802.3,IP,ICMP,TCP,UDP报文,对照有关协议逐个分析报文各字段的含义及内容。
EHERNET报文格式
DSTADDR
SRCADDR
TYPE
INFO
6字节
6字节
2字节
最大长度1518字节
IEEE802.3报文格式
DSTADDR
SRCADDR
LEN
DSAP
SSAP
CONTROL
INFO
6字节
6字节
2字节
1字节
1字节
1/2字节
信息
最大长度1518字节
IP报文格式
VERSION
IHL
TOS
TOTAL LENGTN
IDENTIFICATION
FLAGS
FRAGMENT OFFSET
TTL
PROTOWT
HEADER CHECLCSUM
SOWRCE ADDRESS
DRSTINWTION ADDRESS
OPTIONS
PADDING
INFO
4、设置过滤器属性,如目的地址,源地址,协议类型等。如过滤不需要的网络报文,过滤器允许设置第二层,第三层或第四层的协议字段。
过滤器有两种工作方式:
1)捕获前过滤:协议分析软件用过滤器匹配网络上的数据报文,仅当匹配通过时才捕获报文。
2)捕获后过滤:协议分析软件捕获所有报文,但仅显示匹配符合过滤条件的报文。
选择统计菜单项可以显示网络中各种流量的统计信息,如:关于字节数,广播中报文数,出错数等。
UDP客户/服务器实验
实验目的
本实验目的是使用因特网提供的UDP传输协议,实现一个简单的UDP客户/服务器程序,以了解传输层所提供的UDP服务的特点,应用层和传输层之间的软件接口风格,熟悉socket机制和UDP客户端/服务器方式程序的结构。
实验内容
本实验为UDP客户/服务器实验。实验内容:UDP echo客户/服务器程序的设计与实现。UDP echo客户/服务器程序完成以下功能:
客户从标准输入读一行文本,写到服务器上;服务器从网络输入读取此行,并回射(echo)给客户;客户读此回射行,并将其写到标准输出。
实验步骤
总体设计
客户程序从标准输入读一行文本,写到服务器程序上;服务器程序从网络输入读取此行,并回射给客户程序;客户程序读此回射行,并将其写到标准输出。
详细设计
1)服务器main函数
2)服务器str_echo函数
3)客户main函数
4)客户str_echo函数
Serv
#include netinet/in.h
#include errno.h
#include stdio.h
#include stdlib.h
#include sys/socket.h
#define MAXLINE 4096
#define LISTENQ 1024 /* 2nd argument to listen() */
#define SERV_PORT 9877
#define SA struct sockaddr
static int sockfd;
void dg_echo(int, SA *, socklen_t);
int
main(int argc, char ** argv)
{
struct sockaddr_in servaddr, cliaddr;
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))0) {
printf(socket error.\n);
exit(1);
}
bzero(servaddr, sizeof(servaddr));
servaddr.s
文档评论(0)