網路中兩台主機通訊

2022-02-13 07:51:41 字數 1197 閱讀 1783

主機a和主機b通訊報文的**過程

1、主機a和主機b在同乙個二層網路中,直接走二層交換

主機a檢視自己的arp快取,檢查是否有主機b的ip到mac的對映,如果有對映,構造報文,目的ip為主機b的ip,源ip為主機a的ip,目的mac為主機b的mac,源mac為主機a的mac,將報文傳送給交換機c,交換機c進行mac位址表學習,將主機a的mac和報文入埠號記錄下來,然後交換機c檢視自己的mac**表,檢查是否有主機b的mac到埠的對映,如果有對映,獲取對應的埠,將報文從此埠**出去,報文到達主機b。如果交換機c沒有主機b的mac**表對映,採用洪氾的形式廣播報文,主機b收到報文後向主機a回覆,交換機c進行mac表學習,將主機b的mac和報文入埠號記錄下來。

如果主機a沒有主機b的arp對映,主機a需要傳送arp請求,以獲取主機b的mac,將報文發往交換機c,交換機c採用洪氾的形式廣播報文,主機b收到廣播報文後,在自己的arp快取表中寫入主機a的ip到mac的對映,將自己的mac封裝到arp回覆報文中,單播給主機a,主機a獲取到主機b的mac後,在自己的arp快取表中寫入主機b的ip到mac的對映,構造報文傳送給主機b,過程同上。

主機b向主機a回覆報文的過程類似。

2、主機a和主機b不在同乙個網路中,走三層路由

主機a檢視自己的arp快取表,檢查是否有路由器e的ip到mac的對映,如果有對映,獲取路由器e的mac,構造報文,目的ip為主機b的ip,源ip為主機a的ip,目的mac為路由器e的mac,源mac為主機a的mac,將報文通過交換機c發往路由器e,過程同上。 如果主機a沒有路由器e的ip到mac的對映,需要傳送arp請求,獲取路由器e的mac,過程同上。路由器e收到主機a的報文後,剝離報文的mac幀頭,查詢路由表,發現目標主機b所在的網路是直連的,檢視自己的arp快取表,如果有主機b的ip到mac的對映關係,獲取主機b的mac,封裝報文mac幀頭,目的mac為主機b的mac,源mac為路由器e的mac,將報文通過交換機d發往主機b,如果路由器e沒有主機b的ip到mac的對映關係,需要傳送arp請求,獲取主機b的mac,過程同上。

主機b向主機a回覆報文的過程類似。

注:路由器上的路由表一般是配置靜態路由或者通過路由協議自動學習的。

兩台WINCE的網路通訊

自己現在手頭正在除錯兩台wince6.0作業系統的機器,其中要用到其之間通過一根網線的鏈結來進行網路通訊,目前還沒有調通,但 摘要 備註 windows ce 5.0 udp 日期 2010.5.25 姓名 朱銘雷 獲取mac位址的程式如下,這個在msdn裡和網路上都可以找得到。hresult hr...

兩台主機間docker容器網路互通

伺服器1 網路172.30.0.0 16 伺服器2 網路172.31.0.0 16 伺服器1和伺服器2上的docker容器網路之間是無法互通的,如果需要互通,需要做以下配置 伺服器1上執行 iptables i docker user i br 88bd505e153f o eth0 j accep...

linux SCP 實現兩台主機copy

1 接受端 server埠 ubuntu下 ssh connect to host localhost port 22 connection refused ubuntu下測試ssh時使用ssh localhost 命令,出現錯誤提示connect to host localhost port 22...