loopback interface data flow

 http://blog.chinaunix.net/space.php?uid=21556133&do=blog&id=118215

 

大多數的產品都支持環回接口(Loopback Interface),以允許運行在同一臺主機上的客戶程序和服務器程序通過TCP/IP進行通信。A類網絡號127就是爲環回接口預留的。根據慣例,大多數系統把IP地址127.0.0.1分配給這個接口,並命名爲localhost。一個傳給環回接口的IP數據報不能在任何網絡上出現。
    我們想象,一旦傳輸層檢測到目的端地址是環回地址時,應該可以省略部分傳輸層和所有網絡層的邏輯操作。但是大多數的產品還是照樣完成傳輸層和網絡層的所有過程,只是當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,以太網驅動程序就會把本地分組送到網絡,而不是送到環回接口上。它也許不能工作,這取決於所使用的以太網接口卡和設備驅動程序。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章