- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
经典--IP包的接收过程
IP包的接收过程IP包的接收过程
1) IP包由包头和数据区组成, 包头由IP头(iphdr)和IP选项区组成, IP头的开始4位为版本号, 下4位为包头32比特字数, 因此IP包头最大长度为64字节, 最小长度为IP头长度(20字节), 数据区起始于32位边界上. 当包头长度大于IP头长度时, 从IP头开始的区域为IP选项区. 2) IP包接收器(ip_rcv)接收帧类型为ETH_P_IP(0x0800)的包, 它首先检查包的正确性, 再将输入包过滤器进行过滤, 再将过滤包绑定到输出路由, 分析其选项区,最后从路由目的入口输出, 根据不同的路由类型, 输入到IP转发器(ip_forward)或IP本地分发器(ip_local_deliver)以及IP同播转发器(ip_mc_output)中.3) 如果系统允许接收带有信源路由选项(IPOPT_LSRR或IPOPT_SSRR)的IP包, 如果是本地包, 则将包重新绑定到信源路由表第1项地址所指定的路由上, 如果该地址是本地地址, 则用它替换IP头的目的地址并分析下一信源路由地址.; net/ipv4/ip_output.c:static struct packet_type ip_packet_type ={__constant_htons(ETH_P_IP),NULL, /* All devices */ip_rcv,(void*)1,NULL,};void __init ip_init(void){dev_add_pack(ip_packet_type);ip_rt_init();inet_initpeers();#ifdef CONFIG_IP_MULTICASTproc_net_create(igmp, 0, ip_mc_procinfo);#endif}; net/ipv4/ip_input.c:/** Main IP Receive routine.*/ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt){struct iphdr *iph = skb-nh.iph;/* When the interface is in promisc. mode, drop all the crap* that it receives, do not try to analyse it.*/if (skb-pkt_type == PACKET_OTHERHOST)goto drop;IP_INC_STATS_BH(IpInReceives);if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL)goto out;/** RFC1122: 3.1.2.2 MUST silently discard any IP frame that fails the checksum.** Is the datagram acceptable?** 1. Length at least the size of an ip header* 2. Version of 4* 3. Checksums correctly. [Speed optimisation for later, skip loopback checksums]* 4. Doesnt have a bogus length*/if (skb-len sizeof(struct iphdr) || skb-len (iph-ihl2))goto inhdr_error; if (iph-ihl 5 || iph-version != 4 || ip_fast_csum((u8 *)iph, iph-ihl) != 0)goto inhdr_error; {__u32 len = ntohs(iph-tot_len); if (skb-len len || len (iph-ihl2))goto inhdr_error;/* Our transport medium may have padded the buffer out. Now we know it* is IP we can trim to the true length of the frame.* Note this now means skb-len holds ntohs(iph-tot_len).*/__skb_trim(skb, len)
您可能关注的文档
- 细铜丝直径测定-设计性实验.doc
- 细辛2010版药典.doc
- 细说餐饮业成本核算.doc
- 织婴儿贝壳鞋(详细图解).doc
- 织布厂制度(松劳厂).doc
- 织梦模板分享篇(52气模网)之首页index.doc
- 织梦DedeCMS首页调用随机文章定时自动更新.doc
- 织梦DedeCMS调用二级子栏目或者循环调用多级栏目.doc
- 织梦采集侠27破解版教程.doc
- 织梦采集侠27破解版安装详细教程.doc
- 新课预习-12空间向量基本定理(学生版)-新高二暑假衔接.docx
- 浮力的利用课件.ppt
- 附属初级中学18—19学年八年级3月学业质量测试英语试题(附答案).pdf
- 基于主成分分析的南阳市城市宜居性评价研究.pdf
- 2019年9月21日河北省廊坊市教育局、生态环境局所属事业单位招聘考试《职业能力测验》笔试试题.docx
- 基于新媒体技术的传统文化的普及与传播——以《国家宝藏》为例.pdf
- 基于热管强化的数据中心芯片浸没式冷却系统性能研究.pdf
- 2018年武汉事业单位社会科学专技b类《职业能力倾向测验》试题.docx
- 2017年湖南省长沙市长沙县辅警招聘《综合知识》精选题.docx
- 地壳变动与地表形态.ppt
最近下载
- 养瘦:能吃能睡又能瘦.pdf VIP
- 2024-2030全球按摩理疗机器人行业调研及趋势分析报告.docx
- 部编版六年级语文上册各单元知识点考点汇总.pdf VIP
- 2025年武汉东湖新技术开发区第二批公开招聘社区干事281人笔试参考题库附答案解析.docx VIP
- 通信行业英伟达GTC+2025硬件技术拆解(GenAl系列深度之52暨AI硬件深度之2):工程优化思维下,重点关注PCB、硅光、液冷等产业机会!-250326-申万宏源-20页.pdf VIP
- (完整版)循环伏安法.ppt VIP
- 第5课 推动高质量发展 课件(共33张PPT+1个内嵌视屏)2023-2024学年中职高教版(2023)中国特色社会主义.ppt.pptx VIP
- 2025-2030中国电线电缆行业市场深度调研及发展前景与发展策略研究报告.docx VIP
- JIS B 1044-2001 紧固件.电镀覆层(日语版).pdf VIP
- 呼吸学科病种大数据库的建设与管理.pptx VIP
文档评论(0)