至诚论文网

至诚论文网全面提供代写文科论文,代写文学论文,代写法律论文,代写法学论文,代写历史论文,多年论文代写代发经验,100%原创,专业团队操作,值得信赖,至诚论文网,诚信第一

« 打算机网络在经济建设中的作用刍议合并报表的局限性(1) »

ADSL接入及共享技能的实现(二)

        struct { UINT16 src_port, dst_port, new_port; } tcp;  //端口

  Service 正确绑定至协议栈后,就能够接受SAR END驱动层传入的该协议类型数据报文并对其处理,依据处置的结果决定转发或摈弃;对协议栈下发的报文,也可以方便地进行相应协定封装,再交给 END驱动发送。其收发流程框图如图 6-1 所示。

图7-1  NAT 主处理流程示用意

    } U;

ISO PDU (up to 2^16 - 4 octets)

  7.2.1   NAT 数据结构初始化

6)Service 解封装后,调用 do_protocol_with_type将报文提交给协议栈

OUI  0x00-80-C2

3)MUX层询问该报文的协议类型

  对桥接协议报文,在 LLC 封装的 SNAP 信头中应标识出桥接媒体的类型。与非 ISO 路由协议的封装一样,LLC信头编码值 0xAA-AA-03 表现存在 SNAP 信头, SNAP 信头中的OUI值是 802.1组织编码 0x00-80-C2,桥接媒体的实际类型由2字节的 PID 来标识。此外, PID还标识是否在封装的桥接 PDU 中保留源帧校验序列(FCS)。以最常见的以太网/802.3为例,用于封装 802.3 PDU的AAL5 CPCS-PDU净荷帧格式如下

    struct in_addr ipaddress;                  //接口地址(转换地址)

  重要包括LAN口和WAN口的IP地址转换代写文科论文。如图 7-1 所示。

  7.1  NAT 模块主处理流程

struct nat_session

0xAA-AA-03

帧校验(假如 PID是 00-01)

  上层协议在调用 muxSend 之前,会先调用 endAddressForm 函数进行二层数据封装,咱们在这个函数里实现IP 报文到Ethernet类型报文的数据封装。SarEndSend函数里会调用 ATMSRV_Encap 进行 Ethernet 报文到 AAL5 相应协议类型的封装。

    UINT32 discard_in, discard_out, refused_in, del_early;

LLC  0xFE-FE-03

5)SAR 模块相应的 PVC 接口发送该报文。

2)MUX 层将报文传给预先绑定的 Service

  6.3  RFC1483协议报文处理

};

  对于 ISO 路由协议PDU,其AAL5 CPCS-PDU 净荷字段的格式为

        struct { UINT16 src_ident, new_ident; } icmp;      //identification

    NAT_SESSION *sessions;                //指向session结构表

    UINT32 tcp_out, udp_out;

CTRL


 

PID  0x00-01 or 0x00-07

  1)  nat_session结构,记载每一连接的连接信息:

    NAT_SESSION **hashtable;              //指向hash结构表

    NAT_SESSION  *parent;                //ftp中指向操纵衔接session的指针

1)协议栈通过MUX层发送报文

        /* For ICMP: */

  (其中代写法学论文,如果是 IP 报文的话,Ethernet Type 值为 0x0800)

  对于非 ISO 路由PDU (如 IP 协议),其封装格式为


 

  6.3.3  RFC1483 报文解封装处理

  6.3.2  RFC1483 报文的封装处理

    /* Pointer to table of fragment structures */

  在 LLC 封装中,路由协议通过在 PDU 前加一个IEEE802.2 LLC 信头来进行标识, IEEE802.2 LLC 信头后接 IEEE802.1a 子网络附属点(SNAP)信头。在 LLC 类型 1 的操作中,LLC 信头包括 3 个字节,如下:

DSAP

};

    enum nat_session_state state;               //连接状态

MAC 帧其它内容

吸收流程(虚线箭头所示):

    /* Stats - counts of sessions */              //各种计数器

3)Service 对数据进行封装后,return False,将数据返回 MUX 层

    unsigned long         timestamp;         //时间戳

    int frag_queued;                         //记录保存有多少个分片队列

  目前已经有很多for vxworks 的第三方 NAT 协议产品, 而且 windriver 公司本人也推出了Tornado 开发平台下的 NAT 组件, 但价位切实太高。 由于该协议本身实现的难度不大,而且有 linux 或 BSD 的相关模块可供 参考 和移植,所以我们决议自己实现这个协议。难点主要在于NAT收发处理函数的绑定, NAT 端口地址转换hash表的建立及查找算法的实现。


图6-1 Service 收发流程示用意

  RFC1483 标准描述了ATM网络上承载无连接网络互连业务(即路由跟桥接的协议数据单元)的两种不同措施。第一种办法允许在一条 ATM 虚电路上复用多个协议,这是需要在所传递的 PDU 前加上 IEEE802.2 逻辑链路控制信头,以此来表示所传递的 PDU 的协议,这种方法称为 LLC 封装; 第二种方式是一个高层协议由一条ATM虚电路来承载,这种方法成为基于 VC 的复用。

  在中断接收处理函数里,会调用 ATMSRV_Decap 解除ATM协议封装,同时将二层协议类型存于 mBlkPktHdr.reserved 中,由 endPacketDataGet告知 MUX。

    NAT_FRAGMENT *fragments;             //指向fragment结构表

  在用于路由协议的LLC 封装中,LLC信头编码有两种格式:一种为 0xFE-FE-03, 用于阐明后接的是 ISO 路由协议的 PDU;另一种为 0xAA-AA-03,用于说明后接的是非 ISO 路由协议。控制字段编码为 0x03,用于说明后接的是无编号信息的命令 PDU。

2)nat_interface接口构造

  路由协议的 PDU 在 AAL5 CPCS-PDU 的净荷中直接承载。

  6.3.1  RFC1483 报文封装格局

4)SAR驱动层将 reserved 中的类型返回给MUX层

4)MUX 层将数据发送到 SAR 模块相应的 PVC 接口

    union

  6.2.3   Service 协议数据收发流程

    int next_session;

5)MUX层根据协议类型将报文提交给相应的 Service.

Ethernet Type(2字节)


  7.2   NAT 模块初始化

非ISO PDU (up to 2^16 - 4 octets)

  7增加 NAT 支持

1)SAR 模块收到报文,产生中断,进入接收中止处理例程

{

MAC 帧其它内容

LLC  0xFE-FE-03

    /* Port numbers are in host UCHAR order: */

PAD  0x00-00

    NAT_INTERFACE *next;                //指向下一个接口结构

MAC 目的地址

MAC 源地址

OUI

LLC

SSAP

帧校验(由VC 连接特点决定)

  6.3.1.1  LLC 封装

  6.3.1.1  基于VC 的复用

00-00-00

  因为 RFC1483数据报文的封装格式比较简单,咱们将该类型报文的封装、解封装例程放在 END 驱动中实现,以提高系统对该类型报文的处理效率。

  桥接协议的 PDU 跟LLC封装格式描写相同,但仅包含 PID 字段后的内容代写历史论文。其 AAL5 CPCS-PDU 净荷字段格式如下所示:

    {

MAC 目的地址

发送流程(实线箭头所示):

    UINT32 icmp_q_out, icmp_err_out, icmp_err_in;

    /* Pointer to table of session structures代写文学论文, and hash table: */

{

    int          alg_use;                   //标志,是否须要应用层网关

    struct in_addr src_addr, dst_addr, new_addr;  //源地址代写法律论文,目标地址,转换后地址

        /* For TCP _and_ UDP: */

    NAT_SESSION  *next_hash;             //Hash表下一表项

    NAT_ALG      *alg;                   //应用层网关函数指针

    UCHAR ip_proto;                       //协议类型

  在基于 VC 的复用中,不同的协议报文可能通过不同的 VC 通道传递,因此在 AAL5的CPCP-PDU 净荷上就不再包含清楚标识所承载协议的信息了,使得处理开销最小。

MAC 源地址


 

2)调用END_RCV_RTN_CALL将报文返回给协议栈(reserved 中存放协议类型)

struct nat_interface

PAD  0x00-00

  • 相关文章:

网站介绍

    本站云集全国知名高校优秀硕士、博士以及高校讲师等论文代写专家,集论文代写、论文发表,翻译于一身 ,以诚信第一,楷模服务的理念为您提供优质的论文服务。独具特色的五星级服务,多层次,高水平的专业队伍,满足您个性化的需求。

最近发表

所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文代写网会立即进行改正或删除有关内容!
代写职称论文|论文代写|代写论文|代写毕业论文