lwip浅析tp.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lwip浅析tp.doc

一 TCP结构 aw 16位源端口弓? 16AZH的端丨 32位序兮 32位确认序9 16位窗U 16位窗U人小 1FIN s Y1NI IRS T PSH IAICIK1 ulRdl 保所(6位) 16位检验和16 16位检验和 选项 数据 <图一 tcp结构〉 Tcp报文头部的代码比特位(6bit,也有文档称之为flag标志位),有6种: URG urgent pointer 紧急指针 ADK acknowledge number 确认号 PSH push推送操作 RST reset connection 复位连接 SYN synchronize sequence number 同步序列号 FIN end of data发送方字节流已发完 当建立一个新的连接吋,SYN标志才会变1.而由于发送ACK无需仟何代价,因为32bit的倘 认序列和ACK标志一样,总是TCP首部的一部分,闵此在迚立连按之这个字段(ACK 和确认序列号)总是被设置。 二TCP状态装换 3(nN,WAfrj)二 MSUi攻-ACK无(FlhLWAnj 3 (nN,WAfrj) 二 MSUi 攻- ACK 无 (FlhLWAnj 收:FI\ 王常x迁 JM遘竈:逋明二穴:hv.\K ; ?伏态交还 攻:S :月36J.TCP今义么m .殳迮 发:说明为了讲rf、4<央空汙要发浅g^rcRlt藉 CLOSED:无连接是活动的或正在进行 LISTEN s服芬器在等待进入呼叫 SYN_RECV. 一个连接潰求已经到达,罢待确认 SYN_SENT:应用已经幵始.打开一个连接 ESTABLISHED:正常数据俾输状态 FIN_WAITlt应用说它已经完成 FIN WAIT2:另一边已同意释放 ITMED_WAITS等待所有分组死神 CLOSING:两边同时尝试关闭 TIME_WAIT,另一边已初始化一个释放 Ly\ST_ACK ,等待所有分组死神 <图二tcp状态> 二TCP控制块 struct tcp_pcb { 1P_PCB;//这是一个?2,描述了连接的IP相关信息,包拈双方1P地址,TTL等信息 struct tcp.pcb *next; //TCP控制块链表指针 cnum tcp.statc state; //TCP连接状态,为状态图中的描述状态。如图二 u8 j prio; //该控制块的优先级 void *callback_arg;// ul6_t local_port; //木地端口 ul6_t remote_port; //远程端 kJ u8_t flags;//附加状态信息,如连接是快速恢复、一?个延迟的ACK是否被发送等待 #define TF_ACK_DELAY (u8_t)0x01U/* Delayed ACK. *///这些宏定义足flags字段 #define TF_ACK_NOW (u8_t)0x02U /* Immediate ACK. *///定义的掩码 #define TF_INFR (u8_t)0x04U /* In fast recovery. */ #define TF_RESET (u8_t)0x()8U /* Connection was reset. */复位连接 #define TF_CLOSED (u8_t)0x 1OU /* Connection was sucessfully closed. */连接成功关朗 #define TF_GOT_FIN (u8_t)0x20U /* Connection was closed by the remote end. V收到FINlii (连接被远端关闭) #define TF.NODELAY (u8_t)0x40U /* Disable Nagle algorithm */// 足否启川Nagle算法 u32_trcv_nxt;//期望接收的下一个字节,它向发送端ACK的序号 ul6_trcv_wnd;//接收窗口 u16_t rcv_ann_wnd; //通片窗 U 人小 u32_t tmr; //该字段记录PCB创建的时间 u8_t polltmr, poll interval; // 三个定时器 ul6_trtime;//重传定时,该值随时间增加,大于等于RTO时(重传发生,RTO=RTO*2,重 传次数nrtx达到蛣大次数是,终止定时器,重置连接) ul6_t mss;//MTU是1500字节,除去TCP+IP头的40个字节,真正的数据传输可以有1460,这就是所谓的 MSS, MSS是每一个TCP报文段屮数据字段的鉍大长度,注意:只是数据部分的字段,不乜括TCP的 头 /**#beginRTT 佔计相关的参数***********/ u32_t rttest

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档