(论文 页数:19 字数:3846 带程序)1设计要求 本设计的目的是填充一个TCP数据包,并发送给目的主机。 (1)以命令行形式运行:SendTCP source_ip source_port dest_ip dest_port 其中SendTCP为程序名,source_ip、source_port、dest_ip和dest_port分别为源IP地址、目的IP地址、源端口和目的端口。 (2)其他的TCP头部参数请自行设定。 (3)数据字段为“This is my homework of network,I am very happy!”。 (4)成功发送后在屏幕上输出“send OK”。
2 TCP段格式 当应用进程有报文需要通过TCP发送时,它就将此应用层报文传送给执行TCP协议的传输实体。TCP传输实体将用户数据加上TCP报头,形成TCP数据包,在TCP数据包上增加IP头部,形成IP包。图2.1显示的是TCP数据包和IP包的关系。 TCP协议的数据传输单元称为报文段,其格式如图2.2所示。报文段报头的长度为20B~60B。其中固定长度是20B,选项部分长度最多为40B。TCP报文段主要包括以下字段。 端口号:端口号字段包括源端口号和目的端口号。每个端口号的长度是16位,分别表示发送该TCP包的应用进程的端口号和接收该TCP包的应用进程的端口号。 序号:长度为32位。由于TCP协议是面向数据流的,它所传送的报文段可以视为连续的数据流,因此需要给每一个字节编号。序号字段的“序号”指的是本报文段数据的第一个字节的顺序号。
目 录
1设计要求 1 2 TCP段格式 1 3发送TCP数据包设计原理 3 3.1使用原始套接字 3 3.2定义IP头部、TCP头部和伪头部的数据结构 4 3.3填充数据包 5 3.4发送数据包 8 3.5程序流程 9 4总程序 9 5调试过程及结果 17 6心得体会 18 参考文献 18
|