计算机网络课程设计报告--TCP数据包的发送与接收.docx
《计算机网络课程设计报告--TCP数据包的发送与接收.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告--TCP数据包的发送与接收.docx(11页珍藏版)》请在第一文库网上搜索。
1、计算机网络课程设计报告题目TCP数据包的发送与接收一、问题描述TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。TCP协议在网络层IP协议的基础上,向应用层用户进程提供可靠的、全双工的数据流传输。本课程设计的目的就是设计一个发送TCP数据包的程序,并根据本设计说明TCP数据包的结构以及TCP协议以及IP协议的关系,使我们对TCP协议的工作原理有更深入的认识。二、概要设计1设计原理互联网络层是TCP/IP协议参考模型中的关键部分。当多信息的传输要求比较高时,我们才用TCP来实现数据的传输。本程序是在windows环境下实现了发送TCP数据包的功能。主要包括定义IP头部、TCP头部、和伪头
2、部的数据结构,填充IP头部,计算IP头部校验和,构造TCP伪头部,填充TCP头部,计算TCP头部校验和,发送TCP数据报。接着是对客户端程序的开发,程序结构与服务端程序类似,也包括定义IP头部、TCP头部、和伪头部的数据结构。当应用进程需要通过TCP发送时,它就将此应用层报文传送给执行TCP协议的传输实体。TCP传输实体将用户数据加上TCP报头,形成TCP数据包,在TCP数据包上增加IP头部,形成IP包。TCP协议的数据传输单位称为报文段,报文段报头的长度是20B-60B,选项部分长度最多为40B。TCP报文段主要包括:(1)端口号:端口号字段包括源端口号和目的端口号。每个端口号的长度是16位
3、,分别表示发送该TCP包的应用进程的端口号和接收该TCP数据包的应用进程端口号。(2)序号:长度为32位。由于TCP协议是面向数据流的,它所传送的报文段可以视为连续的数据流,因此需要给每一个字节编号。序号字段的“序号”指的是本报文段数据的第一个字节的序号。(3)报文长度:该字段长度为4位。TCP报文长度是以4B为一个单元来计算的,实际上报文长度在20B-60B之间,因此这个字段的值在5-15之间。(4) TCP头部数据:包括源端口号、序号、确认号、报文长度、保留URG、ACK.PSH,数据包头部的格式RST、SYN目的端口号。(5)FIN:紧急指针,保留长度16位,留作以后使用,目前全部置0。
4、保留控制:这个字段定义了6种不同的标识,每一个标志占一位或多位。URG位为1时,表明应尽快把数据传送给应用程序,否则表明允许数据在缓存中存放一段时间。RST位为1时,表明要强制切断连接。SYN位1时,表明有确立连接的请求,这时,把序号字段的初始值作为序号字段的值,以便开始通信。F1N位为1时,表明发送方已经没有数据发送了,长度为16位,指向必须紧急处理的位置,只有当标志URG=I时紧急指针才生效。从TCP报头后面的报文数据开始,到紧急指针所指出长度的数据,就是必须紧急处理的数据。(5) FIN:紧急指针,保留长度16位,留作以后使用,目前全部置0。保留控制:这个字段定义了6种不同的标识,每一个
5、标志占一位或多位。URG位为1时,表明应尽快把数据传送给应用程序,否则表明允许数据在缓存中存放一段时间。RST位为1时,表明要强制切断连接。SYN位1时,表明有确立连接的请求,这时,把序号字段的初始值作为序号字段的值,以便开始通信。F1N位为1时,表明发送方已经没有数据发送了,长度为16位,指向必须紧急处理的位置,只有当标志URG=I时紧急指针才生效。从TCP报头后面的报文数据开始,到紧急指针所指出长度的数据,就是必须紧急处理的数据。2.IP头部、TCP头部、和伪头部的数据结构图示:(1) TCP数据包和IP的关系图:TCP报头TCP数据IP报头IP数据(2) TCP协议的传输单元称为报文段格
6、式:TCP头部数据162431源端口号目的端口号序号确认号报文长度保留URGACKPSHRSTSYNFIN窗口大小校验和紧急指针选项及填充源IP地址目的IP地址00000000协议号(6)TCP长度三、详细设计1程序流程图:23 .计算校验和为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每个16bit进行二进制反码求和(整个首部看成是由一串16bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样对首部中每个16bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果
7、应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。校验和(CheCkSUm),在数据处理和数据通信领域中,用于校验目的的一组数据项的和。这些数据项可以是数字或在计算检验的过程中看作数字的其它字符串。4 .源代码服务器端:importjava.awt.Grid1ayout;importjava.awt.event.ActionEvent;importjava.awt.event.Action1istener;importjava.io.*;.*;importjavax.swing.*;pub1icc1assMySer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 课程设计 报告 TCP 数据包 发送 接收