已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北工业大学湖北工业大学 课课 程程 设设 计计 报报 告告 设计题目 设计题目 TCPTCP 数据包的发送和接收数据包的发送和接收 专专 业 计算机科学与技术业 计算机科学与技术 班班 级 级 1010 计科计科 2 2 班班 学学 号 号 姓姓 名 吕红杰名 吕红杰 指导老师 涂军指导老师 涂军 一 设计题目 发送和接收 TCP 数据包 二 设计要求 1 正确理解题意 2 具有良好的编程规范和适当的注释 3 有详细的文档 文档中应包括设计题目涉及的基础知识 设计思路 程序 流程图 程序清单 开发中遇到的问题及解决方法 设计中待解决的问题及改 进方向 三 需求分析 TCP 是一种面向连接的 可靠的传输层协议 TCP 协议工作在网络层 IP 协议 的基础上 本课程设计的目的是设计一个发送和接收 TCP 数据包的程序 其功 能是填充一个 TCP 数据包 发送给目的主机 并在目的主机接收此 TCP 数据包 将数据字段显示显示在标准输出上 四 具体设计 1 创建一个原始套接字 并设置 IP 头选项 SOCKET sock sock socket AF INET SOCK RAW IPPROTO IP 或者 sock WSASoccket AF INET SOCK RAW IPPROTO IP NULL 0 WSA FLAG O VERLAPPED 这里 设置了 SOCK RAW 标志 表示我们声明的是一个原始套接字类型 为使用发送接收超时设置 必须将标志位置位置为 WSA FLAG OVERLAPPED 在本课程设计中 发送 TCP 包时隐藏了自己的 IP 地址 因此我们要自己填充 IP 头 设置 IP 头操作选项 其中 flag 设置为 ture 并设定 IP HDRINCL 选项 表明自己来构造 IP 头 setsockopt sock IPPROTO IP IP HDRINCL char int timeout 1000 setsockopt sock SOL SOCKET SO SNDTIMEO char 在这里我们使用基本套接字 SOL SOCKET 设置 SO SNDTIMEO 表示使用发 送超时设置 超时时间设置为 1000ms 2 构造 IP 头和 TCP 头 这里 IP 头和 TCP 头以及 TCP 伪部的构造请参考下面它们的数据结构 typedef struct iphdr 定义 IP 首部 UCHAR h lenver 4 位首部长度 4 位 IP 版本号 UCHAR tos 8 位服务类型 TOS USHORT total len 16 位总长度 字节 USHORT ident 16 位标识 USHORT frag and flags 3 位标志位 UCHAR ttl 8 位生存时间 TTL UCHAR proto 8 位协议 TCP UDP 或其他 USHORT checksum 16 位 IP 首部校验和 ULONG sourceIP 32 位源 IP 地址 ULONG destIP 32 位目的 IP 地址 IP HEADER typedef struct psd hdr 定义 TCP 伪首部 ULONG saddr 源地址 ULONG daddr 目的地址 UCHAR mbz 没用 UCHAR ptcl 协议类型 USHORT tcpl TCP 长度 PSD HEADER typedef struct tcphdr 定义 TCP 首部 USHORT th sport 16 位源端口 USHORT th dport 16 位目的端口 ULONG th seq 32 位序列号 ULONG th ack 32 位确认号 UCHAR th lenres 4 位首部长度 6 位保留字 UCHAR th flag 6 位标志位 USHORT th win 16 位窗口大小 USHORT th sum 16 位校验和 USHORT th urp 16 位紧急数据偏移量 TCP HEADER 3 计算校验和的子函数 在填充数据包的过程中 需要调用计算校验和的函数 checksum 两次 分别用于 校验 IP 头和 TCP 头部 加上伪头部 其实现代码如下 USHORT checksum USHORT buffer int size unsigned long cksum 0 while size 1 cksum buffer size sizeof USHORT if size cksum UCHAR buffer cksum cksum 16 cksum cksum cksum 16 return USHORT cksum 4 流程图 I P I P TC P TC P TC P 五 实验内容 1 先用 vc 编译运行程序代码 2 用命令指示符运行 Debug 下的 sendTCP 3 输入源 ip 和端口及目的 ip 和端口 4 输入发送内容 5 发送完成 六 附代码 include include include include include include include include pragma comment lib ws2 32 lib define IPVER 4 IP 协议预定 define MAX BUFF LEN 65500 发送缓冲区最大值 typedef struct ip hdr 定义 IP 首部 UCHAR h verlen 4 位首部长度 4 位 IP 版本号 UCHAR tos 8 位服务类型 TOS USHORT total len 16 位总长度 字节 USHORT ident 16 位标识 USHORT frag and flags 3 位标志位 UCHAR ttl 8 位生存时间 TTL UCHAR proto 8 位协议 TCP UDP 或其他 USHORT checksum 16 位 IP 首部校验和 ULONG sourceIP 32 位源 IP 地址 ULONG destIP 32 位目的 IP 地址 IP HEADER typedef struct tsd hdr 定义 TCP 伪首部 ULONG saddr 源地址 ULONG daddr 目的地址 UCHAR mbz 没用 UCHAR ptcl 协议类型 USHORT tcpl TCP 长度 PSD HEADER typedef struct tcp hdr 定义 TCP 首部 USHORT th sport 16 位源端口 USHORT th dport 16 位目的端口 ULONG th seq 32 位序列号 ULONG th ack 32 位确认号 UCHAR th lenres 4 位首部长度 6 位保留字 UCHAR th flag 6 位标志位 USHORT th win 16 位窗口大小 USHORT th sum 16 位校验和 USHORT th urp 16 位紧急数据偏移量 TCP HEADER CheckSum 计算校验和的子函数 USHORT checksum USHORT buffer int size unsigned long cksum 0 while size 1 cksum buffer size sizeof USHORT if size cksum UCHAR buffer cksum cksum 16 cksum cksum cksum 16 return USHORT cksum int ReadData char str int maxlen int readlen 0 char ch NULL if str NULL maxlen 0 printf ReadData Error n return 0 failed printf Input Data End By Ctrl Z n while maxlen ch getchar if ch EOF break str readlen ch maxlen str readlen NULL return readlen int main int argc char argv WSADATA WSAData SOCKET sock IP HEADER ipHeader TCP HEADER tcpHeader PSD HEADER psdHeader char Sendto Buff MAX BUFF LEN 发送缓冲区 unsigned short check Buff MAX BUFF LEN 检验和缓冲区 char tcp send data 1000 int read data len 0 BOOL flag int rect nTimeOver if argc 5 printf Usage SendTcp soruce ip source port dest ip dest port n return false read data len ReadData tcp send data 1000 if read data len 0 return 1 if WSAStartup MAKEWORD 2 2 return false if sock WSASocket AF INET SOCK RAW IPPROTO RAW NULL 0 WSA FLAG OVERLAPPED INVALID SOCKET printf Socket Setup Error n return false flag true if setsockopt sock IPPROTO IP IP HDRINCL char return false nTimeOver 1000 if setsockopt sock SOL SOCKET SO SNDTIMEO char return false 填充 IP 首部 ipHeader h verlen IPVER 4 sizeof ipHeader sizeof unsigned long ipHeader tos UCHAR 0 ipHeader total len htons unsigned short sizeof ipHeader sizeof tcpHeader read data len ipHeader ident 0 16 位标识 ipHeader frag and flags 0 3 位标志位 ipHeader ttl 128 8 位生存时间 ipHeader proto IPPROTO TCP 协议类型 ipHeader checksum 0 检验和暂时为 0 ipHeader sourceIP inet addr argv 1 32 位源 IP 地址 ipHeader destIP inet addr argv 3 32 位目的 IP 地址 计算 IP 头部检验和 memset check Buff 0 MAX BUFF LEN memcpy check Buff ipHeader checksum checksum check Buff sizeof IP HEADER 构造 TCP 伪首部 psdHeader saddr ipHeader sourceIP psdHeader daddr ipHeader destIP psdHeader mbz 0 psdHeader ptcl ipHeader proto psdHeader tcpl htons sizeof TCP HEADER read data len 填充 TCP 首部 tcpHeader th dport htons atoi argv 4 16 位目的端口号 tcpHeader th sport htons atoi argv 2 16 位源端口号 tcpHeader th seq 0 SYN 序列号 tcpHeader th ack 0 ACK 序列号置为 0 TCP 长度和保留位 tcpHeader th lenres sizeof tcpHeader sizeof unsigned long 4 0 tcpHeader th flag 2 修改这里来实现不同的标志位探测 2 是 SYN 1 是 FIN 16 是 ACK 探测 等等 tcpHeader th win htons unsigned short 16384 窗口大小 tcpHeader th urp 0 偏移大小 tcpHeader th sum 0 检验和暂时填 为 0 计算 TCP 校验和 memset check Buff 0 MAX BUFF LEN memcpy check Buff memcpy check Buff sizeof psdHeader memcpy check Buff sizeof PSD HEADER sizeof TCP HEADER tcp send data read data len tcpHeader th sum checksum check Buff s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级数学计算题专项练习
- 民用航空器维修手册
- 工程智慧工地系统应用手册
- 叉车货物重心偏移调整安全操作工作手册
- 保险机构客户关系管理标准手册
- 农业技术与种植管理手册
- 2026四川成都市树德协进中学全国招聘教师笔试备考试题及答案详解
- 2026年购物中心招聘运营经理面试模拟题及客流提升与活动组织
- 2026云南丽江华坪县供销社社有资产管理有限公司招聘综合管理人员1人考试参考题库及答案解析
- 2026年娱乐新闻记者面试常见问题
- PAS 2050:2011-商品和服务在生命周期内的温室气体排放评价规范(英文)
- 23J916-1 住宅排气道(一)
- DL-T2078.2-2021调相机检修导则第2部分:保护及励磁系统
- 手术患者安全转运与交接
- GB/T 43924.2-2024航空航天MJ螺纹第2部分:螺栓和螺母螺纹的极限尺寸
- 农业机械设计手册上册
- 2024年广东中山市文化广电旅游局招聘笔试冲刺题
- MSA测量系统线性分析报告
- 检具的设计、制造和使用
- 手术医师技术档案年度考核表
- QC成果QC成果点评集合
评论
0/150
提交评论