http://blog.chinaunix.net/space.php?uid=21556133&do=blog&id=118215
我們想象,一旦傳輸層檢測到目的端地址是環回地址時,應該可以省略部分傳輸層和所有網絡層的邏輯操作。但是大多數的產品還是照樣完成傳輸層和網絡層的所有過程,只是當IP數據報離開網絡層時把它返回給自己。
圖2 - 4是環回接口處理IP數據報的簡單過程。
圖中需要指出的關鍵點是:
1) 傳給環回地址(一般是127.0.0.1)的任何數據均作爲I P輸入。
2) 傳給廣播地址或多播地址的數據報復制一份傳給環回接口,然後送到以太網上。這是因爲廣播傳送和多播傳送的定義(第12章)包含主機本身。
3 ) 任何傳給該主機IP地址的數據均送到環回接口。
看上去用傳輸層和IP層的方法來處理環回數據似乎效率不高,但它簡化了設計,因爲環回接口可以被看作是網絡層下面的另一個鏈路層。網絡層把一份數據報傳送給環回接口,就像傳給其他鏈路層一樣,只不過環回接口把它返回到IP的輸入隊列中。
在圖2 - 4中,另一個隱含的意思是送給主機本身IP地址的IP數據報一般不出現在相應的網絡上。例如,在一個以太網上,分組一般不被傳出去然後讀回來。某些BSD以太網的設備驅動程序的註釋說明,許多以太網接口卡不能讀回它們自己發送出去的數據。由於一臺主機必須處理髮送給自己的IP數據報,因此圖2 - 4所示的過程是最爲簡單的處理辦法。
4.4BSD系統定義了變量useloopback,並初始化爲1。但是,如果這個變量置爲0,以太網驅動程序就會把本地分組送到網絡,而不是送到環回接口上。它也許不能工作,這取決於所使用的以太網接口卡和設備驅動程序。