1 / 12
文档名称:

TCP协议实验.docx

格式:docx   大小:28KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

TCP协议实验.docx

上传人:漫山花海 2019/11/13 文件大小:28 KB

下载得到文件列表

TCP协议实验.docx

文档介绍

文档介绍:--------------------------校验:_____________-----------------------日期:_____________TCP协议实验网络课第四次上机实验报告------TCP协议实验实验内容实验内容主要包括:设计保存TCP连接相关信息的数据结构(TCB);TCP协议的接收处理和封装发送;TCP协议提供的Socket函数接口。实验过程设计保存TCP连接相关信息的数据结构(TCB)用数据结构TCB为每一个TCP连接维护socketfd,srcAddr,dstAddr,srcPort,dstPort,seq,ack,windowSize,state这些状态信息。以链表形式组织多个连接,nextTcb指向下一个连接的数据结构。TCP分组接收函数stud_tcp_input()首先,检查校验和;然后通过字节序转换获取相应的信息,检查序列号。如果序列号不正确,则调用tcp_DiscardPkt;最后将报文交由输入有限状态机处理,有限状态机对报文进行处理,转换状态。根据当前的状态并调用stud_tcp_output函数完成tcp建连、数据传递时返回ACK、tcp断连等工作TCP分组发送函数stud_tcp_output()判断需要发送的报文类型,根据报的类型对包中的相应字段进行设置,判断是否可以发送(发送窗口不为0)。构造TCP数据报文并发送。填写TCP报文各字段的内容和数据,转换字节序,计算校验和,然后调用发送流程的下层接口函数sendIpPkt()发送。stud_tcp_socket()函数分配相应的socketfd并且新建TCB表项,并对成员变量进行初始化stud_tcp_connect()函数设定目的IPv4地址和端口,源IPv4地址和端口;初始化TCB结构中的相关变量;设定TCB中的输入状态为SYN-SENT,及其它相关变量,准备发送SYN报文;调用发送流程的下层接口函数stud_tcp_output()发送SYN报文(发送类型为PACKET_TYPE_SYN);等待“三次握手”完成后返回,建立连接成功;或者出错返回。stud_tcp_send()函数判断是否处于ESTABLISHED状态;将应用层协议的数据拷贝到TCB的输入缓冲区;调用stud_tcp_output()发送TCP的数据报文(发送类型为PACKET_TYPE_DATA);同时等待ACK以实现停等式协议stud_tcp_recv()函数判断是否处于ESTABLISHED状态;从TCB的输入缓冲区读出数据;将数据交给应用层协议。stud_tcp_close()函数在正常情况下(ESTABLISHED状态),进行相应状态转换,非正常情况下(SYN-SENT状态),直接删除TCB结构后退出;调用发送流程下层接口函数stud_tcp_output()发送FIN报文(发送类型为PACKET_TYPE_FIN);等待回应的ACK报文,收到后成功返回,或者出错返回;删除相应的TCB表项。实验总结通过本次实验,加深了对TCP协议的原理和设计实现的机制的了解,对TCP协议有了更具体的认识,对概论课的学****有很大的帮助!附:上机代码(注释)externvoidtcp_DiscardPkt(char*pBuffer,inttype);externvoidtcp_sendReport(inttype);externvoidtcp_sendIpPkt(unsignedchar*pData,UINT16len,unsignedintsrcAddr,unsignedintdstAddr,UINT8 ttl);externintwaitIpPacket(char*pBuffer,inttimeout);externunsignedintgetIpv4Address();externunsignedintgetServerIpv4Address();#defineBUFFER_SIZE1024#IMEOUT5enumstatus{CLOSED,SYN_SENT,ESTABLISHED,FIN_WAIT_1,FIN_WAIT_2,TIME_WAIT};//状态intgSrcPort=2007;intgDstPort=2006;intgSeqNum=1;intgAckNum=0;structTCB{ intsocketfd; UINT32srcAddr; UINT32dstAddr; UINT16srcPort; UINT16dstPort; UINT32seq; UINT32ack; UINT16windowSize; UINT8state; TCB*nextTcb; TCB(){//用于TCP报文接收发送流程 socketfd=0; srcAddr=getI

最近更新

秋天的演讲稿 11页

贵州省遵义市2021届中考历史模拟试题(含答案).. 6页

钢混叠合梁钢结构钢结构桥梁施工组织设计 37页

高中化学一轮复习课时规范练13 氮及其重要化合.. 7页

2024年阴极铜项目资金筹措计划书代可行性研究.. 56页

2024年阳光私募项目资金筹措计划书代可行性研.. 69页

2024年信息系统安全产品项目资金需求报告代可.. 62页

2024年线缆用高分子材料项目资金需求报告代可.. 65页

卷2-备战2022年高考英语全真模拟卷(原卷版) 11页

股骨颈置换术护理查房ppt 19页

妇科腹腔镜并发症的护理PPT 26页

大学生护理口腔创业计划书ppt 43页

中消化道出血护理ppt课件最新 26页

《家装公司公司卖点》课件 30页

《小儿压疮预防》课件 23页

小儿心脏外科护理查房ppt课件 23页

《模板国宝大熊猫》课件 23页

危重症病人的护理ppt课件 27页

小学二年级数学教案1500字6篇 25页

新概念英语第一册单词汇总打印版(已排版) 12页

3d跨度计算 1页

护理实验实训室耗材采购清单 8页

毕业设计(论文)-旋耕机传动部分设计 27页

(转贴)丹道法诀第十二讲(最完全版本)12(3 13页

特殊人群的糖尿病管理 42页

护理疑难病例讨论制度 2页

烟草专卖局市场营销论文:以客户细分为基础,.. 8页

史记 伯夷列传-课件(PPT·精·选) 9页

国际花都(新城花苑)二期工程普通剪力墙结构.. 26页