IPv4

IPv4 addresses assignment

為了在網(wǎng)絡(luò)上使用IPv4,首先要做的是分配IPv4地址。

任何支持IPv4的ns-3節(jié)點都至少有一個NetDevice:ns3 :: LoopbackNetDevice澳淑。 環(huán)回設(shè)備地址是127.0.0.1历等。 所有其他NetDevice將有一個(或多個)IPv4地址鲫趁。

需要注意的是炕桨,和今天一樣饭尝,ns-3沒有NAT模塊,也沒有遵循關(guān)于過濾私有地址(RFC 1918)的規(guī)則:10.0.0.0/8,172.16.0.0/12和192.168.0.0/16献宫。 這些地址被路由為任何其他地址钥平。 這種行為在未來可能會改變。

IPv4全局地址可以是:

  • 手動分配
  • 通過DHCP分配

ns-3可以同時使用這兩種方法姊途,理解這兩者的含義是相當重要的涉瘾。

Manually assigned IPv4 addresses

這是最簡單也是用的最多的。例子:

Ptr<Node> n0 = CreateObject<Node> ();
Ptr<Node> n1 = CreateObject<Node> ();
NodeContainer net (n0, n1);
CsmaHelper csma;
NetDeviceContainer ndc = csma.Install (net);

NS_LOG_INFO ("Assign IPv4 Addresses.");
Ipv4AddressHelper ipv4;
ipv4.SetBase (Ipv4Address ("192.168.1.0"), NetMask ("/24"));
Ipv4InterfaceContainer ic = ipv4.Assign (ndc);

這種方法會將兩個全局IPv4地址添加到節(jié)點捷兰。

請注意立叛,地址是按順序分配的。 因此贡茅,第一個節(jié)點/網(wǎng)絡(luò)設(shè)備將具有“192.168.1.1”秘蛇,第二個“192.168.1.2”等等。

可以重復(fù)上述操作顶考,將多個地址分配給一個節(jié)點赁还。 但是,由于Ipv4AddressHelper的單例本質(zhì)驹沿,首先應(yīng)該分配一個網(wǎng)絡(luò)的所有地址艘策,然后更改網(wǎng)絡(luò)基礎(chǔ)(SetBase),然后重新分配一個渊季。

或者朋蔫,可以將一個特定的地址分配給一個節(jié)點:

Ptr<Node> n0 = CreateObject<Node> ();
NodeContainer net (n0);
CsmaHelper csma;
NetDeviceContainer ndc = csma.Install (net);

NS_LOG_INFO ("Specifically Assign an IPv4 Address.");
Ipv4AddressHelper ipv4;
Ptr<NetDevice> device = ndc.Get (0);
Ptr<Node> node = device->GetNode ();
Ptr<Ipv4> ipv4proto = node->GetObject<Ipv4> ();
int32_t ifIndex = 0;
ifIndex = ipv4proto->GetInterfaceForDevice (device);
Ipv4InterfaceAddress ipv4Addr = Ipv4InterfaceAddress (Ipv4Address ("192.168.1.42"), NetMask ("/24"));
ipv4proto->AddAddress (ifIndex, ipv4Addr);

DHCP assigned IPv4 addresses

Tracing in the IPv4 Stack

互聯(lián)網(wǎng)堆棧在其各種協(xié)議實現(xiàn)中提供了許多跟蹤源。 這些跟蹤源可以使用自己的自定義跟蹤代碼來掛鉤却汉,或者在某些情況下可以使用我們的幫助函數(shù)來安排跟蹤啟用驯妄。

ARP提供兩個跟蹤掛鉤,一個在緩存中合砂,一個在三層協(xié)議中富玷。 緩存中的跟蹤訪問者被命名為“Drop”。當數(shù)據(jù)包通過需要ARP的接口傳輸時既穆,首先排隊等待在ARP緩存中傳輸赎懦,直到解析所需的MAC地址。 嘗試獲取地址時可能會進行多次重試幻工,如果超過最大重試次數(shù)励两,則所涉及的數(shù)據(jù)包將被ARP丟棄。 如下情況囊颅,ARP緩存中的第一個跟蹤掛鉤被調(diào)用:

  • 如果出站數(shù)據(jù)包放置在ARP高速緩存掛起地址解析中当悔,并且在最大重試次數(shù)內(nèi)不能進行解析傅瞻,則會丟棄出站數(shù)據(jù)包并觸發(fā)此跟蹤;

第二個跟蹤掛鉤在ARP L3協(xié)議(也稱為“Drop”)中,并且可能由于多種原因而被調(diào)用:

  • 如果收到一個不等待回復(fù)的條目的ARP應(yīng)答盲憎,則ARP應(yīng)答包被丟棄嗅骄,并且這個跟蹤被觸發(fā);
  • 如果收到一個不存在的條目的ARP應(yīng)答,則ARP應(yīng)答包被丟棄饼疙,并且這個跟蹤被觸發(fā);
  • 如果ARP高速緩存條目處于DEAD狀態(tài)(超時)并收到ARP應(yīng)答數(shù)據(jù)包溺森,則回復(fù)數(shù)據(jù)包將被丟棄,并觸發(fā)此跟蹤窑眯。
  • 每個ARP高速緩存條目都有一個未決數(shù)據(jù)包的隊列屏积。 如果超出隊列的大小,則會丟棄出站數(shù)據(jù)包磅甩,并觸發(fā)此跟蹤炊林。

IPv4三層協(xié)議提供三個跟蹤掛鉤。 這些是“Tx”(ns3 :: Ipv4L3Protocol :: m_txTrace)卷要,“Rx”(ns3 :: Ipv4L3Protocol :: m_rxTrace)和“Drop”(ns3 :: Ipv4L3Protocol :: m_dropTrace)跟蹤源渣聚。

“Tx”跟蹤在許多情況下被觸發(fā),所有這些都表明給定的數(shù)據(jù)包將被發(fā)送到給定的ns3 :: Ipv4Interface:

  • 在發(fā)往廣播地址的數(shù)據(jù)包的情況下僧叉,對Ipv4InterfaceList進行迭代奕枝,并且對于每個接口處于啟用狀態(tài)并且可以對數(shù)據(jù)包進行分段或者具有足夠大的MTU來傳輸數(shù)據(jù)包的情況下,跟蹤被命中彪标。 請參閱ns3 :: Ipv4L3Protocol :: Send。
  • 在需要路由的數(shù)據(jù)包的情況下掷豺,可以在將分組發(fā)送到適合于默認網(wǎng)關(guān)的接口之前觸發(fā)“Tx”跟蹤捞烟。 請參閱ns3 :: Ipv4L3Protocol :: SendRealOut。
  • 同樣在需要路由的分組的情況下当船,“Tx”跟蹤可以在分組被發(fā)送到適合于發(fā)現(xiàn)的路由的輸出接口之前被觸發(fā)题画。 請參閱ns3 :: Ipv4L3Protocol :: SendRealOut。

當數(shù)據(jù)包從設(shè)備傳遞到ns3 :: Ipv4L3Protocol :: Receive函數(shù)時德频,將觸發(fā)“Rx”跟蹤:

  • 在接收函數(shù)中苍息,迭代Ipv4InterfaceList,如果接收設(shè)備對應(yīng)的Ipv4Interface處于UP狀態(tài)壹置,則觸發(fā)跟蹤竞思。

丟棄數(shù)據(jù)包的任何情況下(發(fā)送和接收路徑)都會觸發(fā)“Drop”跟蹤:

  • 在ns3 :: Ipv4Interface :: Receive函數(shù)中,如果接收設(shè)備對應(yīng)的接口處于DOWN狀態(tài)钞护,則丟棄數(shù)據(jù)包并觸發(fā)丟棄跟蹤盖喷。
  • 同樣在ns3 :: Ipv4Interface :: Receive函數(shù)中,如果發(fā)現(xiàn)校驗和不正確难咕,則數(shù)據(jù)包將被丟棄并觸發(fā)放置軌跡课梳。
  • 在ns3 :: Ipv4L3Protocol :: Send中距辆,為廣播地址綁定的傳出數(shù)據(jù)包將被丟棄,如果設(shè)置了“不分段”位并且分段可用且需要暮刃,則會觸發(fā)“丟棄”跟蹤跨算。
  • 同樣在ns3 :: Ipv4L3Protocol :: Send中,如果分段不可用并且是必需的(MTU <分組大型职谩)诸蚕,則丟棄以廣播地址為目的地的傳出分組并且“丟棄”跟蹤被命中。
  • 在廣播地址的情況下灾搏,為每個輸出接口克隆輸出數(shù)據(jù)包挫望。如果任何接口處于DOWN狀態(tài),則“Drop”跟蹤事件將引用復(fù)制的數(shù)據(jù)包狂窑。
  • 在需要路由的數(shù)據(jù)包的情況下媳板,如果沒有找到到遠程主機的路由,則丟棄外出數(shù)據(jù)包泉哈,并且觸發(fā)“丟棄”跟蹤事件蛉幸。
  • 在ns3 :: Ipv4L3Protocol :: SendRealOut中,丟棄正在路由的傳出數(shù)據(jù)包丛晦,如果設(shè)置了“不分段”位并且分段可用且需要奕纫,則會觸發(fā)“丟棄”跟蹤。
  • 在ns3 :: Ipv4L3Protocol :: SendRealOut中烫沙,如果分段不可用并且是必需的(MTU <分組大衅ゲ恪),則將丟棄正在路由的傳出分組锌蓄,并且命中“丟棄”跟蹤升筏。
  • 如果所需的Ipv4Interface處于DOWN狀態(tài),將丟棄正在路由的傳出數(shù)據(jù)包瘸爽,并觸發(fā)“Drop”跟蹤事件您访。
  • 如果數(shù)據(jù)包正在被轉(zhuǎn)發(fā),并且超過了TTL(請參閱ns3 :: Ipv4L3Protocol :: DoForward)剪决,則數(shù)據(jù)包將被丟棄灵汪,并觸發(fā)“Drop”跟蹤事件。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柑潦,一起剝皮案震驚了整個濱河市享言,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渗鬼,老刑警劉巖担锤,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異乍钻,居然都是意外死亡肛循,警方通過查閱死者的電腦和手機铭腕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來多糠,“玉大人累舷,你說我怎么就攤上這事〖锌祝” “怎么了被盈?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長搭伤。 經(jīng)常有香客問我只怎,道長,這世上最難降的妖魔是什么怜俐? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任身堡,我火速辦了婚禮,結(jié)果婚禮上拍鲤,老公的妹妹穿的比我還像新娘贴谎。我一直安慰自己,他們只是感情好季稳,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布擅这。 她就那樣靜靜地躺著,像睡著了一般景鼠。 火紅的嫁衣襯著肌膚如雪仲翎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天铛漓,我揣著相機與錄音溯香,去河邊找鬼。 笑死票渠,一個胖子當著我的面吹牛逐哈,可吹牛的內(nèi)容都是我干的芬迄。 我是一名探鬼主播问顷,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼禀梳!你這毒婦竟也來了杜窄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤算途,失蹤者是張志新(化名)和其女友劉穎塞耕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘴瓤,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡扫外,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年莉钙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筛谚。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡磁玉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驾讲,到底是詐尸還是另有隱情蚊伞,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布吮铭,位于F島的核電站时迫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谓晌。R本人自食惡果不足惜掠拳,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扎谎。 院中可真熱鬧碳想,春花似錦、人聲如沸毁靶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽预吆。三九已至龙填,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拐叉,已是汗流浹背岩遗。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凤瘦,地道東北人宿礁。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像蔬芥,于是被迫代替她去往敵國和親梆靖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 簡介 用簡單的話來定義tcpdump笔诵,就是:dump the traffic on a network返吻,根據(jù)使用者...
    保川閱讀 5,941評論 1 13
  • 由硬件交換的幀需要使用正確的硬件地址定位到正確的接口;否則,無法傳輸數(shù)據(jù)。一個傳統(tǒng)IPv4網(wǎng)絡(luò)需要使用自已的地址:...
    Myth52125閱讀 1,037評論 0 0
  • 《Tcp/Ip協(xié)議族》筆記 網(wǎng)際協(xié)議版本4(IPv4) IP分組由一個基本首部和一些選項構(gòu)成乎婿,這些選項有時用于促進...
    Zhang21閱讀 3,391評論 1 0
  • IP地址 IP地址是什么沐旨? IP是英文Internet Protocol的縮寫,意思是“網(wǎng)絡(luò)之間互連的協(xié)議”...
    nice_o閱讀 18,163評論 0 23
  • 在黑暗中堅持最后的掙扎 靠的是責任和信念
    A君明日閱讀 55評論 0 0