- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.底层技术摘要
网络接口层数据结构 long ni_iucast; long ni_inucast; long ni_idiscard; long ni_ierrors; long ni_iunkproto; long ni_ooctets; long ni_oucast; long ni_onucast; long ni_odiscard; long ni_oerrors; long ni_oqlen; long ni_maxreasm; }; #define NI_LOCAL 0 #define NI_PRIMARY 1 extern struct netif nif[]; int ni_in(struct netif *pni, struct ep *pep, unsigned len) int netwrite(struct netif *, struct ep *, unsigned); 网络接口处理流程 netstart函数 netstart函数会调用调用一些初始函数完成模块初始化工作,如arpinit完成ARP模块的初始化,ipfinit完成IP分片模块的初始化,inithost初始主机的网络接口,hginit初始化多播表。 netstart还创建了很多进程,如slowtimer进程负责ARP、IP等模块中的定时器处理,ipproc进程负责IP数据包的处理,tcptimer进程负责TCP模块中的定时器,tcpinp进程负责TCP模块的输入处理,tcpout进程负责TCP模块的输出处理,rip进程负责RIP报文的处理。 网络接口层的多路分解ni_in函数 24:记录该以太帧来自的网络接口号信息。 ip_in函数,用于IP数据包的处理。 rarp_in函数,用于RARP数据包处理。 arp_in函数,用于ARP数据包处理。 ni_in函数 01: /* ni_in.h 文件*/ 03: #include conf.h 04: #include kernel.h 05: #include network.h 06: #include ospf.h 07: 08: int arp_in(struct netif *, struct ep *); 09: int rarp_in(struct netif *, struct ep *); 10: int ip_in(struct netif *, struct ep *); 12: /* 13: * ni_in – 网络接口输入函数 14: * struct netif *pni: 15: * struct ep *pep: 16: * unsigned len: 17: * 返回值: 18: **/ 20: int ni_in(struct netif *pni, struct ep *pep, unsigned len) 21: { 22: int rv; 24: pep-ep_ifn = pni - nif[0]; 26: pni-ni_ioctets += len; 26~34:修改网络接口的统计信息,增加接收到的字节数,根据目标地址判断单播还是非单播帧,统计相应的帧个数。 35~50:根据帧中的类型字段,进行多路分解。如果类型为EPT_ARP,交由arp_in处理;如果类型为EPT_RARP,交由rarp_in处理;如果类型为EPT_IP,交由ip_in处理;其它则丢弃处理,并统计丢弃帧个数。 ni_in函数 27: if (!blkcmp(pni-ni_hwa.ha_addr, pep-eh-ep_dst, EP_ALEN)) 28: { 29: pni-ni_iucast++; 30: } 31: else 32: { 33: pni-ni_inucast++; 34; } 35: switch (pep-ep_type) 36; { 37: case EPT_ARP: 38: rv = arp_in(pni, pep); 39: break; 40: case EPT_RARP: 41; rv = rarp_in(pni, pep); 42: break; 43: case EPT_IP: 44: rv = ip_in(pni, pep); 45: break; 46: default: 47: pni-ni_iunkproto++; 48:
您可能关注的文档
- 【优化方案】高考地理二轮复习第一部分专题突破篇九区域可持续发展第5讲区际联系与区域协调发展课件报告.ppt
- 【优化方案】(浙江专用)高考生物二轮复习专题一细胞的分子组成和结构第2讲细胞的结构课件报告.ppt
- 山东省枣庄市滕州市2015-2016学年八年级(上)期中地理试卷(解析版)分解.doc
- 【优化设计】(江西专用)2016中考化学总复习专题6物质的检验、分离、推断与除杂课件报告.ppt
- 【优化设计】(江西专用)2016中考化学总复习第十单元酸和碱第1讲常见的酸和碱课件报告.ppt
- 【优化设计】2015-2016学年高中物理第七章分子动理论1物体是由大量分子组成的课件新人教版选修3-3报告.ppt
- 【优化设计】2015-2016学年高中物理第八章气体1气体的等温变化课件新人教版选修3-3报告.ppt
- 【优化设计】2015-2016学年高中物理第七章分子动理论5内能课件新人教版选修3-3报告.ppt
- 【优化方案】高考地理二轮复习专题突破篇六自然环境和人类活动第1讲自然环境对人类活动的影响课件报告.ppt
- 【优化设计】2015-2016学年高中物理第七章分子动理论4温度和温标课件新人教版选修3-3报告.ppt
- 【创新设计】2016届高考(四川专用)物理(课件+练习)复习专题提升突破:专题五机械振动和机械波光12讲报告.ppt
- 【创新设计】2017版高考化学一轮复习课时跟踪训练第五章物质结构、元素周期律基础课时1原子结构报告.doc
- 【全程中考】陕西省2016中考物理总复习第一部分教材同步复习第5章物体的运动课件报告.ppt
- 【全程中考】陕西省2016中考物理总复习第二部分专题综合强化专题一电路故障判断和动态电路分析课件报告.ppt
- 【创新设计】2017版高考化学一轮复习第二章化学物质及其变化章末知能回探课件新人教版报告.ppt
- 2016氨制冷系统事故应急预案详解.doc
- 2016案例真题版详解.doc
- 2.张晓丽老师两天学员版PPT摘要.ppt
- 【助力中考】2014届九年级化学(科学广东版)单元复习精品课件:第六章金属报告.ppt
- 【劳动关系】《劳动合同法》解析及员工关系管理实操报告.ppt
最近下载
- 2021年11月湖北省浠水县教师乡镇选调招聘考试《教育基础知识》真题试卷及标准答案.pdf VIP
- 树师德扬师风师德师风警示教育课件.pptx VIP
- 浙江省温州市“摇篮杯”2022-2023学年高一下学期化学竞赛试卷 含解析.docx VIP
- 徕卡TS30全站仪操作培训.pdf VIP
- 宜居宜业和美乡村建设项目可行性研究报告.docx
- 教育测量与评价第三版全套完整教学课件.pptx VIP
- 牦牛标准化育肥场布局及圈舍建设规范.docx VIP
- 锅炉烟气和空气焓及各成分(自动计算).xlsx VIP
- GB_T 42611-2023 非公路用旅游观光车辆制动性能试验方法.pdf VIP
- 犬伤暴露规范处理.pptx VIP
文档评论(0)