网站大量收购独家精品文档,联系QQ:2885784924

计算机网络课程设计-编程实现简单TCP协议分析器.docVIP

计算机网络课程设计-编程实现简单TCP协议分析器.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络课程设计-编程实现简单TCP协议分析器

编程实现简单的TCP协议分析器 一、问题描述 编程实现简单的TCP协议分析器,TCP协议分析器是一种用于监督和跟踪网络活动的诊断工具1.利用原始套接字实现简单的TCP协议分析器。 2.系统功能包括: 2.1 原始套接字与网卡绑定,并接收流经网卡的所有数据包; 2.2 对数据包进行分析以获得源IP地址和目的IP地址; 2.3 对TCP Segment进行分析以获得其首部详细信息; 2.4 显示分析结果。 3 建议使用VC++。 三、设计思想 TCP协议的数据传送程序是由二个子程序组成的。也可以看成是服务器端程序和客户端程序,其中:服务器端程序的功能是侦听端口号,接收远 程主要的TCP连接申请,并接收远程主机传送来的文字数据。另外一个子程序,也就是所谓的客户端程序,主要实现向网络的远程主机提出TCP连接申请1. 把网卡置于混杂模式2. 捕获数据包3. 分析数据包Raw Socket: 原始套接字可以用它来发送和接收 IP 层以上的原始数据包, 如 ICMP TCP, UDP等。 四、系统结构 (1)Pcap_addr描述网络接口地址; (2)pcap_pkthdr用来描述每个捕获到的数据包的基本信息; (3)int_pcaplookupnet获取网络地址和网络掩码; (4)int_pcaploop循环捕获网络数据包,直到遇到错误或满足退出条件; (5)pcap_t* pcap_open_dead构造一个libpcap句柄。 五、程序流程(或模块划分) 六、源程序 #include pcap.h struct ether_header { u_int8_t ether_dhost[6]; /* 目的以太网地址 */ u_int8_t ether_shost[6]; /* 源以太网地址 */ u_int16_t ether_type; /* 以太网类型 */ }; struct arp_header { u_int16_t arp_hardware_type; /* 硬件类型 */ u_int16_t arp_protocol_type; /* 协议类型 */ u_int8_t arp_hardware_length; /* 硬件地址长度 */ u_int8_t arp_protocol_length; /* 协议地址长度 */ u_int16_t arp_operation_code; /* 操作码 */ u_int8_t arp_source_ethernet_address[6]; /* 源以太网地址 */ u_int8_t arp_source_ip_address[4]; /* 源IP地址 */ u_int8_t arp_destination_ethernet_address[6]; /* 目的以太网地址 */ u_int8_t arp_destination_ip_address[4]; /* 目的IP地址 */ }; struct ip_header { #if defined(WORDS_BIGENDIAN) u_int8_t ip_version: 4, /* 版本 */ ip_header_length: 4; /* 首部长度 */ #else u_int8_t ip_header_length: 4, ip_version: 4; #endif u_int8_t ip_tos; /* 服务质量 */ u_int16_t ip_length; /* 长度 */ u_int16_t ip_id; /* 标识 */ u_int16_t ip_off; /* 偏移 */ u_int8_t ip_ttl; /* 生存时间 */ u_int8_t ip_protocol; /* 协议类型 */ u_int16_t ip_checksum; /* 校验和 */ struct in_addr ip_souce_address; /* 源IP地址 */ struct in_addr ip_destination_address; /* 目的IP地址 */ }; struct udp_header { u_int16_t udp_source_port;

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档