- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ADSL接入及共享技术的实现(二)论文.doc
ADSL接入及共享技术的实现(二)论文
EncapLength、EncapData 针对 RFC1483Bridged、RFC1483Routed、ATMARP 等协议的规定进行相应初始化及数据填充,供底层驱动在封装、解封装时直接作为依据。
PCookie 是 muxBind 底层设备驱动后返回的设备索引号,以便系统卸载网络服务子层时可解除该绑定。
Ifp 是网络服务子层 Attach至协议栈时返回的子网接口索引号,以便系统卸载该 Service 时可解除绑定。
6.2.3 Service 协议数据收发流程
Service 正确绑定至协议栈后,就可以接收SAR END驱动层传入的该协议类型数据报文并对其处理,根据处理的结果选择转发或丢弃;对于协议栈下发的报文,也可以方便地进行相应协议封装,再交给 END驱动发送。其收发流程框图如图 6-1 所示。
图6-1 Service 收发流程示意图
接收流程(虚线箭头所示):
1)SAR 模块收到报文.freeluxSend 之前,会先调用 endAddressForm 函数进行二层数据封装,我们在这个函数里实现IP 报文到Ether类型报文的数据封装。SarEndSend函数里会调用 ATMSRV_Encap 进行 Ether 报文到 AAL5 相应协议类型的封装。
6.3.3 RFC1483 报文解封装处理
在中断接收处理函数里,会调用 ATMSRV_Decap 解除ATM协议封装,同时将二层协议类型存于 mBlkPktHdr.reserved 中,由 endPacketDataGet通知 MUX。
7增加 NAT 支持
目前已经有很多for vxbers are in host UCHAR order: */
union
{
/* For TCP _and_ UDP: */
struct { UINT16 src_port, dst_port, nep; //identification
} U;
enum nat_session_state state; //连接状态
unsigned long timestamp; //时间戳
NAT_ALG *alg; //应用层网关函数指针
int alg_use; //标志,是否需要应用层网关
NAT_SESSION *parent; //ftp中指向控制连接session的指针
NAT_SESSION *next_hash; //Hash表下一表项
};
2)nat_interface接口结构
struct nat_interface
{
NAT_INTERFACE *next; //指向下一个接口结构
struct in_addr ipaddress; //接口地址(转换地址)
/* Pointer to table of session structures, and hash table: */
NAT_SESSION *sessions; //指向session结构表
NAT_SESSION **hashtable; //指向hash结构表
int next_session;
/* Pointer to table of fragment structures */
NAT_FRAGMENT *fragments; //指向fragment结构表
int frag_queued; //记录保存有多少个分片队列
/* Stats - counts of sessions */ //各种计数器
UINT32 tcp_out, udp_out;
UINT32 icmp_q_out,.freelp_err_out, icmp_err_in;
UINT32 discard_in, discard_out, refused_in, del_early;
};
7.2.2 NAT 收发处理函数的绑定 仔细分析 vxbuf **m, /* 数据报文地址 */
struct ip **ip, /* IP 头部地址 */
int hlen /* IP 头的长度 */
)
返回值: 为 FALSE时表示报文处理正常,协议栈可继续转发或处理
为TRUE 时指示系统丢弃该报文
由于无法找到协议栈输出报文的钩子,我们打算把输出报文 NAT 转换放在 _ipFilterHook 的 LAN 口钩子中处理,即在 LAN口报文进入协议栈之前就更改源IP和端口地址。但这样做的缺点是:此时系统还没有检索过该报文的路由目的接口,需要人为增加查找路由表算法,当发现是发往指定 P报文处理、应用层网关处理等功能。 此外,在实际测试中,感觉 NAT 地址转换Hash 表的算法还不够理想:在新建一个节点时
您可能关注的文档
- 4大营销战略病症,折磨民企赢利模式 .doc
- 4种最常见有效的保险营销策略 .doc
- 4种非典型抗精神病药物对精神分裂症患者脂代谢的影响论文.doc
- 4乙酰氨基3(3戊氧基)苯甲酸的合成论文.doc
- 5 用户分析.doc
- 5.12地震灾区基层干部心理健康状况分析与对策论文.doc
- 500 kV惠汕输电系统内过电压的研究结果和分析论文.doc
- 500kV固定串联补偿装置技术特点分析论文.doc
- 500kV电抗器振动和过热降低论文.doc
- 50年来现代化理论的演进论文.doc
- ADVIA2120全自动血细胞分析仪测定网织红细胞的评价论文.doc
- AD和MCI病人前额叶注意功能区fMRI检测论文.doc
- AFP、CA199、CA125水平与慢性肝炎的关系研究论文.doc
- AGE及葡萄糖对THP1巨噬细胞CXCL16 mRNA表达的影响论文.doc
- Alport综合征29例临床与病理分析.doc
- Alzheimer病与细胞凋亡论文.doc
- Alzheimer病与胰岛素增敏剂治疗进展论文.doc
- Amicoumacin B对MG63细胞bmp2转录及蛋白表达作用的研究论文.doc
- AML-1-ETO基因相关的AML-M2型白血病免疫表型分析论文.doc
- AngleⅡ1治疗牙弓改变在模型和头颅侧位片的相关性论文.doc
文档评论(0)