Re: [問題] 封包處理流程

看板Network_Sim作者 (zerocool)時間13年前 (2011/06/24 02:52), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
最後我自己解決了問題!! 以下將說明我發現的一些東西,提供給有需要的人參考!! 有線網路節點並沒有實作出LL MAC PHY層(除非創建的是LanNode) 所以有線節點端是直接傳遞 而MobileNode的WiredRouting有開的話 接收從Wired 端來的Packet是直接到entry_, 然後不符合addr_demux則繼續Wireless所有layer的處理 接收從Wireless 端來的Packet是從底層上來到LL做ARP轉傳處理 而且這裡很特別的是如果是要轉傳到Wired的Packet在LL處理之後還是會丟進Queue去排隊 (等同於Wireless Packet和Wired Packet是一起排隊的) 然後就是傳送至WiredNode拉~~ 如果要像我在AP的 Routing layer產生封包要傳送給WiredNode的話要作下面設定 產生Packet後作以下設定 hdr_cmn *ch = HDR_CMN(Packet); ch->direction() = hdr_cmn::UP; // 注意是UP不是DOWN ch->addr_type = NS_AF_INET; /* 這裡是重點, 要設定成是自己這一個產生packet的Node(我這裡也就是AP),讓LL會去找ARP作轉傳*/ ch->next_hop = Address::instance().get_nodeaddr(myaddr_); target_->recv(Packet, (Handle *)0); 重要的就是上面註解的兩行 希望對需要的人有所幫助 Good luck!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.155.99

07/09 18:29, , 1F
給你一個讚
07/09 18:29, 1F
文章代碼(AID): #1E0ujX8h (Network_Sim)
文章代碼(AID): #1E0ujX8h (Network_Sim)