摘要:通信工程師互聯網技術報文信源地址的確定:所有系統(tǒng)必須對ICMP報文選定信源IP地址。在一般情況下,這些地址可以很容易作出決定(當系統(tǒng)只有對應一個接口的一個IP地址時)。
4.6.2 報文信源地址的確定
所有系統(tǒng)必須對ICMP報文選定信源IP地址。在一般情況下,這些地址可以很容易作出決定(當系統(tǒng)只有對應一個接口的一個IP地址時)。但在許多情況下系統(tǒng)中存在多種可能的選擇,從中選取合適的IP地址總是十分重要的。如一個網絡節(jié)點擁有多個單播地址時,情況就變得復雜了。在ICMP標準中給出了四種選取信源地址的規(guī)則。
前二個規(guī)則是針對ICMP應答報文制定的。如果ICMPv6報文是對發(fā)送到屬于該節(jié)點的某個Unicast地址的報文進行應答,應答報文信源地址必須是原報文中的信宿地址。但如果原報文是Multicast group或Anycast group報文,應答報文必須將收到該請求的接口的IP單播地址作為信源地址。
第三個規(guī)則適用于ICMP差錯報文。在許多情況下生成差錯報文的系統(tǒng)并非是出差錯的數據報中最后的信宿地址標記的系統(tǒng)。因此,差錯報文不能將原報文中的信宿地址作為ICMP差錯報文的信源地址使用,而應將報告出錯信息的系統(tǒng)的地址作為信源地址。例如,當ICMP報文是分組過大差錯報文時,該信源地址應是不能收容原數據報的接口的IP地址。
第四個規(guī)則適用于主動發(fā)送的ICMP報文及不適用上述規(guī)則的ICMP報文。也就是說,發(fā)送這些報文的信源地址是發(fā)送此ICMP報文的鏈路的IP地址。
在鄰機發(fā)現(Neighbor Discovery)中也確定了ICMPv6報文的信宿地址。該信宿地址應是鏈路局域地址(如信宿是Multicast,則組播地址應是鏈路局域范圍的地址)。這一限制將鄰機發(fā)現的范圍限制在局域鏈路,以防鄰近發(fā)現偶然(或有計劃)地超出預定范圍被泄漏出去。
ICMPv6報文處理的規(guī)范
當一個節(jié)點接收到某個ICMPv6報文信息,該節(jié)點必須根據這個ICMPv6報文的消息類型進行相應的應答。
一般來說,節(jié)點對待ICMPv6報文信息,應遵循以下基本規(guī)范:
對于無法判別其類型的ICMPv6差錯報文,直接轉送高層協議處理。
對于無法判別其類型的ICMPv6信息報文,直接丟棄并不發(fā)任何消息。
在不得超過最小的IPv6MTU的前提下,ICMPv6差錯報文應包含盡可能容量大的差錯數據報文。
當網絡層將ICMPv6差錯報文轉送到上層協議的進程時,原始數據報文中的上層協議類型字段(在ICMPv6差錯報文中)會被取出,由適當的上層協議相關進程來處理差錯。當原始數據報文中包含很多擴展報頭時,上層協議類型字段很有可能未被包含在ICMPv6差錯報文中。因為必須符合IPv6MTU的長度限制,原始數據報文在分段過程中被分離了。這種狀況下,ICMPv6差錯報文只是在IPv6層處理后就被丟棄且不發(fā)任何消息。在網絡節(jié)點接收到以下這些報文情況時,節(jié)點將不會發(fā)送ICMPv6差錯報文。
接收的是一個ICMPv6差錯報文。
接收的是一個發(fā)送到組播地址的數據報文。但這種情況下有兩種例外:路徑MTU發(fā)現無法為IPv6組播下作,數據報文過大;報告一個無法標識的IPv6選項的參數錯誤。
接收的是一個作為鏈路層組播的數據報文。兩種例外情況同上。
接收的是一個作為鏈路層廣播的數據報文。兩種例外情況同上。
接收的是一個無法標示單一信源地址的數據報文。比如,一個還未標明的IPv6地址,一個IPv6的組播地址丨一個ICMPv6報文發(fā)送者已知道的IPv6的Anycast任播地址。
為節(jié)約網絡帶寬,ICMPv6并不針對每一個錯誤都發(fā)送錯誤消息,而是采用一種被稱為“比率限制”的機制來限制錯誤消息發(fā)送頻率。比率限制可基于時間或基于網絡帶寬.如每隔1000毫秒發(fā)送一錯誤消息或發(fā)送給每個接口的錯誤消息控制在占鏈路帶寬的2%左右等,下面舉兩種常用的限制方式:
基于定時器。例如,對于某個指定的信源或者對任何信源,限制其發(fā)送ICMPv6差錯報文的頻率,比如,可以設定為每了奄秒最多發(fā)送一次。
基于帶寬。限制從某個特定接口發(fā)出的ICMPv6差錯報文的比率,只能利用相連接的帶寬中的倍來發(fā)送,節(jié)點上的臨界參數(比如以上所提的了和F)必須是根據具體的節(jié)點來配置的是可以配置和改動的且每個參數都有默認值(比如:T=1;F=2%)
編輯推薦
通信工程師備考資料免費領取
去領取