<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Advanced 彙整 - 碼蟻創研工坊 - CODEANT STUDIOS</title>
	<atom:link href="http://codeant.cc/archives/tag/advanced/feed" rel="self" type="application/rss+xml" />
	<link>http://codeant.cc/archives/tag/advanced</link>
	<description></description>
	<lastBuildDate>Sat, 13 Jul 2013 00:50:56 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>

<image>
	<url>http://codeant.cc/wp-content/uploads/2020/10/cropped-Code-Ant-Logo-2-32x32.png</url>
	<title>Advanced 彙整 - 碼蟻創研工坊 - CODEANT STUDIOS</title>
	<link>http://codeant.cc/archives/tag/advanced</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>BATMAN-Advanced 之 MTU 與封包分割</title>
		<link>http://codeant.cc/archives/42</link>
		
		<dc:creator><![CDATA[codeant]]></dc:creator>
		<pubDate>Sat, 13 Jul 2013 00:50:56 +0000</pubDate>
				<category><![CDATA[Netowrk]]></category>
		<category><![CDATA[Advanced]]></category>
		<category><![CDATA[BATMANA]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[MTU]]></category>
		<guid isPermaLink="false">http://codeant.cc/2013/07/13/batman-advanced-mtu/</guid>

					<description><![CDATA[<p>BATMAN Advanced在處理封包的過程中，必須加上自定義的表頭來進行資料傳遞，在處理的過程中會有Max [&#8230;]</p>
<p>這篇文章 <a href="http://codeant.cc/archives/42">BATMAN-Advanced 之 MTU 與封包分割</a> 最早出現於 <a href="http://codeant.cc">碼蟻創研工坊 - CODEANT STUDIOS</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-indent: 24pt; line-height: 150%; text-align: left;"><span style="font-size: 16px; line-height: 26px;">BATMAN Advanced在處理封包的過程中，必須加上自定義的表頭來進行資料傳遞，在處理的過程中會有Maximum Transmission Unit（MTU）值太大的問題；</span></p>
<p>  <span id="more-42"></span>  </p>
<p style="font-size: 16px; line-height: 26px; text-align: left; text-indent: 24pt;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">因為Ethernet的MTU值為1500 Bytes，此一數值也普遍被一般的網路裝置做為預設值，而BATMAN Advanced也以此值作為其預設的MTU值，因此再加上BATMAN Advanced的自定義表頭的長度後，就會超出MTU值，為了解決此一問題，BATMAN Advanced會進行封包分割（Packet Fragmentation）的動作，這部分被實作在unicast.c檔案中；要解決因MTU值過大而造成封包分割的問題，有下列二個方法：</span></p>
<p style="font-size: 16px; line-height: 26px; text-align: left; text-indent: 24pt;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">1. &nbsp; &nbsp;<span style="line-height: normal;"></span>加大負責實際傳輸的網路裝置的MTU值，這個方法可以用在802.11或其他可允許MTU超過1524 Bytes（BATMAN Advanced的建議值）的裝置上使用，但在Ethernet裝置上並不適用。</span></p>
<p style="font-size: 16px; line-height: 26px; text-align: left; text-indent: 24pt;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">2. &nbsp; &nbsp;<span style="line-height: normal;"></span>縮小BATMAN Advanced本身的MTU值，將MTU調整至1476 Bytes（BATMAN Advanced的建議值）以下，此方法可用於Ethernet裝置上。</span></p>
<p style="font-size: 16px; line-height: 26px; text-align: left; text-indent: 24pt;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">如果來源端進行了封包分割的動作，目的端就必須進行封包聚合（Packet Aggregation）的動作，這樣的行為會加重系統的負擔；以封包分割來說，必須先分配記憶體（Memory Allocate），然後進行將資料複製到新分配的記憶體空間（Memory Copy），這些動作都會需要額外的作業時間（Operating Time）來完成；而BATMAN Advanced自定義的表頭長度不一，廣播封包的表頭長度為14 Bytes，單點直播封包的表頭長度為10 Bytes，一但進行封包分割，就會改用分割封包的表頭，其長度為20 Bytes，表頭耗損（Header Consumption）會加大，由10-14 Bytes變成40 Bytes，傳輸的封包總數也會大幅增加。</span></p>
<p style="font-size: 16px; line-height: 26px; text-align: left; text-indent: 24pt;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">下圖說明為何BATMAN Advanced會遇上MTU值太大的問題：</span></p>
<p style="text-indent: 24pt; line-height: 150%; text-align: center;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;"><img fetchpriority="high" decoding="async" class=" size-full wp-image-41" src="http://codeant.cc/wp-content/uploads/2013/07/images_phocagallery_Network_batman-adv-mtu.jpg" alt="batman-adv-mtu" width="575" height="343" srcset="http://codeant.cc/wp-content/uploads/2013/07/images_phocagallery_Network_batman-adv-mtu.jpg 575w, http://codeant.cc/wp-content/uploads/2013/07/images_phocagallery_Network_batman-adv-mtu-300x179.jpg 300w" sizes="(max-width: 575px) 100vw, 575px" /></span></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F42&amp;linkname=BATMAN-Advanced%20%E4%B9%8B%20MTU%20%E8%88%87%E5%B0%81%E5%8C%85%E5%88%86%E5%89%B2" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F42&amp;linkname=BATMAN-Advanced%20%E4%B9%8B%20MTU%20%E8%88%87%E5%B0%81%E5%8C%85%E5%88%86%E5%89%B2" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_wechat" href="https://www.addtoany.com/add_to/wechat?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F42&amp;linkname=BATMAN-Advanced%20%E4%B9%8B%20MTU%20%E8%88%87%E5%B0%81%E5%8C%85%E5%88%86%E5%89%B2" title="WeChat" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_sina_weibo" href="https://www.addtoany.com/add_to/sina_weibo?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F42&amp;linkname=BATMAN-Advanced%20%E4%B9%8B%20MTU%20%E8%88%87%E5%B0%81%E5%8C%85%E5%88%86%E5%89%B2" title="Sina Weibo" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_qzone" href="https://www.addtoany.com/add_to/qzone?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F42&amp;linkname=BATMAN-Advanced%20%E4%B9%8B%20MTU%20%E8%88%87%E5%B0%81%E5%8C%85%E5%88%86%E5%89%B2" title="Qzone" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F42&amp;linkname=BATMAN-Advanced%20%E4%B9%8B%20MTU%20%E8%88%87%E5%B0%81%E5%8C%85%E5%88%86%E5%89%B2" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fcodeant.cc%2Farchives%2F42&#038;title=BATMAN-Advanced%20%E4%B9%8B%20MTU%20%E8%88%87%E5%B0%81%E5%8C%85%E5%88%86%E5%89%B2" data-a2a-url="http://codeant.cc/archives/42" data-a2a-title="BATMAN-Advanced 之 MTU 與封包分割"></a></p><p>這篇文章 <a href="http://codeant.cc/archives/42">BATMAN-Advanced 之 MTU 與封包分割</a> 最早出現於 <a href="http://codeant.cc">碼蟻創研工坊 - CODEANT STUDIOS</a>。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>網狀路由協議 &#8211; BATMAN-Advanced 之 OGM 封包</title>
		<link>http://codeant.cc/archives/40</link>
		
		<dc:creator><![CDATA[codeant]]></dc:creator>
		<pubDate>Sat, 13 Jul 2013 00:21:49 +0000</pubDate>
				<category><![CDATA[Netowrk]]></category>
		<category><![CDATA[Advanced]]></category>
		<category><![CDATA[BATMAN]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[OGM]]></category>
		<guid isPermaLink="false">http://codeant.cc/2013/07/13/batman-adv-ogm/</guid>

					<description><![CDATA[<p>目前BATMAN Advanced在新版本（2.6.38以後）的Linux內核已成為一個標準模組，BATMAN [&#8230;]</p>
<p>這篇文章 <a href="http://codeant.cc/archives/40">網狀路由協議 &#8211; BATMAN-Advanced 之 OGM 封包</a> 最早出現於 <a href="http://codeant.cc">碼蟻創研工坊 - CODEANT STUDIOS</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-indent: 24pt; line-height: 150%; text-align: left;"><span style="font-size: 16px; line-height: 26px;">目前BATMAN Advanced在新版本（2.6.38以後）的Linux內核已成為一個標準模組，BATMAN的設計目標是為了可以建置一個大型的網路，為了減少路由訊息封包所帶來的負擔，它只使用了一個名為Originator Messages（OGMs）的封包來進行路由資訊的建立。</span></p>
<p>  <span id="more-40"></span>  </p>
<p style="text-indent: 24pt; line-height: 150%; text-align: left;"><span style="font-size: 16px; line-height: 26px;">透過廣播與再廣播OGMs的方式交換路由資訊，以傳輸品質（Transmission Quality，簡稱TQ）做為路徑選擇的依據，TQ值的計算必須先取得接收品質（Receive Quality，簡稱RQ）與回聲品質（Echo Quality，簡稱EQ）這二個參考數值。我們先假設一情境，即Node A與Node B互為彼此的Best Hop，而步驟1與步驟3可同時進行，步驟2與步驟4可同時進行，則其路由資訊的建立步驟如下圖：</span></p>
<p style="text-indent: 24pt; line-height: 150%; text-align: center;">&nbsp;<img decoding="async" class=" size-full wp-image-39" src="http://codeant.cc/wp-content/uploads/2013/07/images_phocagallery_Network_batman-adv-ogm.jpg" alt="batman-adv-ogm" width="544" height="245" srcset="http://codeant.cc/wp-content/uploads/2013/07/images_phocagallery_Network_batman-adv-ogm.jpg 544w, http://codeant.cc/wp-content/uploads/2013/07/images_phocagallery_Network_batman-adv-ogm-300x135.jpg 300w" sizes="(max-width: 544px) 100vw, 544px" /></p>
<p style="font-size: 16px; line-height: 26px; text-align: left;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">1. &nbsp; &nbsp;各網路節點以廣播的方式定期發送路由訊息封包即OGMs封包，其內容包含發送端位址，轉發節點位址，存活時間（Time To Live，簡稱TTL）值和序列號（Sequence Number），附近的鄰近節點計算已收到的OGMs封包數量作為RQ值，如圖的步驟1及步驟3。</span></p>
<p style="font-size: 16px; line-height: 26px; text-align: left;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">2. &nbsp;&nbsp;<span style="line-height: normal;"></span>檢查每個路由的資訊，選擇最好的單跳節點（Best Hop Neighbor）。</span></p>
<p style="font-size: 16px; line-height: 26px; text-align: left;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">3. &nbsp; &nbsp;<span style="line-height: normal;"></span>將最好的單跳節點傳送過來的OGMs封包進行再廣播，原始的OGMs封包發送節點透過接收到的再廣播OGMs數量可以得到EQ，如圖的步驟2及步驟4。</span></p>
<p style="font-size: 16px; line-height: 26px; text-align: left;"><span style="font-family: 'comic sans ms', sans-serif; font-size: 12pt;">4. &nbsp; &nbsp;<span style="line-height: normal;"></span>如果EQ值大於RQ，則TQ = max（TQ）；如果RQ值大於EQ，則TQ = max（TQ）&times; EQ &divide; RQ。</span></p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F40&amp;linkname=%E7%B6%B2%E7%8B%80%E8%B7%AF%E7%94%B1%E5%8D%94%E8%AD%B0%20%E2%80%93%20BATMAN-Advanced%20%E4%B9%8B%20OGM%20%E5%B0%81%E5%8C%85" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F40&amp;linkname=%E7%B6%B2%E7%8B%80%E8%B7%AF%E7%94%B1%E5%8D%94%E8%AD%B0%20%E2%80%93%20BATMAN-Advanced%20%E4%B9%8B%20OGM%20%E5%B0%81%E5%8C%85" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_wechat" href="https://www.addtoany.com/add_to/wechat?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F40&amp;linkname=%E7%B6%B2%E7%8B%80%E8%B7%AF%E7%94%B1%E5%8D%94%E8%AD%B0%20%E2%80%93%20BATMAN-Advanced%20%E4%B9%8B%20OGM%20%E5%B0%81%E5%8C%85" title="WeChat" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_sina_weibo" href="https://www.addtoany.com/add_to/sina_weibo?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F40&amp;linkname=%E7%B6%B2%E7%8B%80%E8%B7%AF%E7%94%B1%E5%8D%94%E8%AD%B0%20%E2%80%93%20BATMAN-Advanced%20%E4%B9%8B%20OGM%20%E5%B0%81%E5%8C%85" title="Sina Weibo" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_qzone" href="https://www.addtoany.com/add_to/qzone?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F40&amp;linkname=%E7%B6%B2%E7%8B%80%E8%B7%AF%E7%94%B1%E5%8D%94%E8%AD%B0%20%E2%80%93%20BATMAN-Advanced%20%E4%B9%8B%20OGM%20%E5%B0%81%E5%8C%85" title="Qzone" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fcodeant.cc%2Farchives%2F40&amp;linkname=%E7%B6%B2%E7%8B%80%E8%B7%AF%E7%94%B1%E5%8D%94%E8%AD%B0%20%E2%80%93%20BATMAN-Advanced%20%E4%B9%8B%20OGM%20%E5%B0%81%E5%8C%85" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fcodeant.cc%2Farchives%2F40&#038;title=%E7%B6%B2%E7%8B%80%E8%B7%AF%E7%94%B1%E5%8D%94%E8%AD%B0%20%E2%80%93%20BATMAN-Advanced%20%E4%B9%8B%20OGM%20%E5%B0%81%E5%8C%85" data-a2a-url="http://codeant.cc/archives/40" data-a2a-title="網狀路由協議 – BATMAN-Advanced 之 OGM 封包"></a></p><p>這篇文章 <a href="http://codeant.cc/archives/40">網狀路由協議 &#8211; BATMAN-Advanced 之 OGM 封包</a> 最早出現於 <a href="http://codeant.cc">碼蟻創研工坊 - CODEANT STUDIOS</a>。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
