计算机网络课程设计一数据包 发送和接受程序的实现
《计算机网络》课程设计
数据包发送和接受程序的实现
计算机学院 软件工程
10级⑷班
3110006379
陈泳蒸
2012年12月21日
数据包发送和接受程序的实现
一、设计题目与要求
1. 设计题目
发送TCP数据包
2. 设计要求
本设计的功能孚填充一个TCP数据包,并发送给目的主机。
1) 以命令行形式运行:SendTCP sourcejp source_port destjp dest_port, 其中SendTCP是程序名,source_ip为源端IP地址,source_port为源端口号, destjp为目的地址,dest_port为目的端口号。
2) 其他的TCP头部参数请自行设定。
3) 数据字段为 aThls is my homework of network J am happy! 4)成功发送后在屏幕上输出\。
三、详细设计
本课程设计的目标是发送一个TCP数据包,可 以利用原始套接字来完成这个工作。整个程序由 初始化原始套接字和发送TCP数据包两个部分 组成。
当应用进程需要通过TCP发送时,它就将此应 用层报文传送给执行TCP协议的传输实体。TCP 传输实体将用户数据加上TCP报头,形成TCP
数
据包,在TCP数据包上增加IP头部,形成IP包。 如图-1显示的是TCP数据包和IP包得关系。TCP 协议的数据传输单位称为报文段,其格式如图-2
所示。报文段报头的长度是20B~60B,选项部分 长度最多为40Bo TCP报文段主要包括以下字段。 端口号:端口号字段包括源端口号和目的端口 号。每个端口号的长度是16位,分别表示发送 该
TCP包的应用进程的端口号和接收该TCP包的 应
用进程的端口号。
pan 4Q nnr'n 来fr 1 卩 1 TH -HI
TH来卜曲 图-1 TCP数据包加上IP报头形成IP包 序号:长度为32位。由于TCP协议是面向数 据流的,它所传送的报文段可以视为连续的数据 流,因此需要给每一字节编号。序号字段的“序 号”指的是本报文段数据的第一个字节的序号。 确认号:该字段的长度为32位,它表示接收 端希望接收下一个TCP包的第一个字节的序号。 报文长度:该字段长度为4位。TCP报文长度 是以4B为一个单元来计算的,实际上报文长度 在20B~60B之间。因此这个字段的值在5~15之 间。