IP报文分段和重组模拟实现要点.pptVIP

  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文档。上传文档
查看更多
分层协议示例-IP报文分段和重组模拟 Host功能描述-1 业务逻辑层的功能 登录 维护当前所有已登录Host的信息 退出登录 传输文件 Host功能描述-2 消息分段重组层的功能 消息分段 根据当前配置的消息所限定的最大长度,对所有消息进行分段 消息分段重组 对收到的消息分段进行重组,恢复原始消息 Host功能描述-3 消息发送与接收层的功能 消息的错序 模拟IP网络可能发生的错序现象 消息的丢失 模拟IP网络可能发生的分组丢失现象 消息的发送和接收 Forwarder功能描述-2 消息分段重组层功能 消息的再分段 余同Host Forwarder功能描述-3 消息发送与接收层功能 消息转发 根据消息中的源Host和目的Host的地址,进行文件传输消息转发 消息的错序 消息的丢失 消息的发送和接收 分层协议栈 协议栈数据封装 分层协议定义-分段重组层消息 分层协议定义-业务逻辑层消息 业务逻辑层消息-登录 业务逻辑层消息-登录转发 业务逻辑层消息-退出登录 业务逻辑层消息-文件传输 业务逻辑层消息-文件传输结束 业务逻辑层消息-允许文件传输 业务逻辑层消息-文件块 IP报文分段和重组模拟程序 模拟程序的文件构成 host.c forwarder.c msg.h list.h apptimer.c apptimer.h msg.conf Makefile msg.conf Host文件发送工作流程 Host文件接收工作流程 文件传输完整过程 分段重组层消息 消息分段示例 Host程序功能模块 Host程序多线程框架 Host程序流程 登录处理 登录者构造并发出登录消息LOGIN_MSG login-make_login_msg 转发器处理并转发登录消息FWD_LOGIN_MSG app_do_login-make_fwd_login_msg app_do_login-map_username 转发器向登录者返回登录应答消息REPLY_MSG app_do_login-make_reply_msg 在线用户处理登录转发消息FWD_LOGIN_MSG app_do_fwd_login-map_username 登录者处理登录应答消息REPLY_MSG app_do_reply-map_username make_login_msg app_do_reply Forwarder登录处理流程 Forwarder转发处理流程 Host消息处理模块 消息处理模块的核心功能就是从网络上接收Forwarder发来的各种消息,并由分段重组层进行消息分段的重组,然后将重组完毕的消息交给业务逻辑层进行业务处理。此外消息处理还负责业务消息的发送 Host消息接收流程 Host对收到消息的进一步处理 Forwarder程序功能模块 关键数据结构-1 关键数据结构-2 关键数据结构-3 关键数据结构-3 关键数据结构-4 关键数据结构-4 关键数据结构-5 关键数据结构-5 关键数据结构-6 业务逻辑层消息定义-1 业务逻辑层消息定义-2 业务逻辑层消息定义-3 IP报文分段和重组模拟场景 模拟程序的编译 Forwarder的启动 登录Forwarder-1 登录Forwarder-2 文件传输 多个文件传输场景 Forwarder 登录与退出 用户列表维护 登录转发处理 消息分段与再分段 消息重组 消息接收 消息发送 业务逻辑模块 消息处理模块 消息转发 Forwarder再分段-1 开 始 计算剩余分段大小 拷贝分段数据 加入分段队列frag_queue 再分段完毕? Y N 获得再分段前该收到消息的M_OFFSET字段的高2bit位 计算再分段前该消息的起始偏移量 1 Forwarder再分段-2 设置标志not_last_frag 从分段队列frag_queue 中取下一消息 重新设置该分段的分 段重组层头部MF位 及其他有关字段 计算该消息的相 对分段偏移值 处理完毕? Y N 结 束 1 Forwarder登录应答 开 始 获得登录Host的用户名、IP和端口 创建登录应答消息 转发完毕? Y N 更新该Host的IP和端口 Host已存在? 建立新Host 从已登录Host表 中取下一个Host 向该Host发送登录转发消息 向该新登录Host发送登录应答消息 结 束 Y N 消息错序和丢失模拟 开 始 产生一个小于当前待发送分段数的随机序号数N 待处理分段数减1 完毕? 将该N序号分段加入到shuffled_frag_queue队列尾部 Y N 从frag_queue分段消息队列中移除第N号分段 结 束 struct msg_buff{ /* 消息定义 */ u8

文档评论(0)

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

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

1亿VIP精品文档

相关文档