兩台計算機通訊過程

2022-06-21 23:03:14 字數 1557 閱讀 8485

鏈路層有乙太網、令牌環網等標準,鏈路層負責網絡卡裝置的驅動、幀同步(即從網線上檢測到什麼訊號算作新幀的開始)、衝突檢測(如果檢測到衝突就自動重發)、資料差錯校驗等工作。交換機是工作在鏈路層的網路裝置,可以在不同的鏈路層網路之間**資料幀(比如十兆乙太網和百兆乙太網之間、乙太網和令牌環網之間),由於不同鏈路層的幀格式不同,交換機要將進來的資料報拆掉鏈路層首部重新封裝之後再**。

網路層的ip協議是構成internet的基礎。internet上的主機通過ip位址來標識,inter-net上有大量路由器負責根據ip位址選擇合適的路徑**資料報,資料報從internet上的源主機到目的主機往往要經過十多個路由器。路由器是工作在第三層的網路裝置,同時兼有交換機的功能,可以在不同的鏈路層介面之間**資料報,因此路由器需要將進來的資料報拆掉網路層和鏈路層兩層首部並重新封裝。ip協議不保證傳輸的可靠性,資料報在傳輸過程中可能丟失,可靠性可以在上層協議或應用程式中提供支援。

網路層負責點到點(ptop,point-to-point)的傳輸(這裡的「點」指主機或路由器),而傳輸層負責端到端(etoe,end-to-end)的傳輸(這裡的「端」指源主機和目的主機)。傳輸層可選擇tcp或udp協議。

tcp是一種面向連線的、可靠的協議,有點像打**,雙方拿起**互通身份之後就建立了連線,然後說話就行了,這邊說的話那邊保證聽得到,並且是按說話的順序聽到的,說完話掛機斷開連線。也就是說tcp傳輸的雙方需要首先建立連線,之後由tcp協議保證資料收發的可靠性,丟失的資料報自動重發,上層應用程式收到的總是可靠的資料流,通訊之後關閉連線。

udp是無連線的傳輸協議,不保證可靠性,有點像寄信,信寫好放到郵筒裡,既不能保證信件在郵遞過程中不會丟失,也不能保證信件寄送順序。使用udp協議的應用程式需要自己完成丟包重發、訊息排序等工作。

目的主機收到資料報後,如何經過各層協議棧最後到達應用程式呢?其過程如下圖所示:

乙太網驅動程式首先根據乙太網首部中的「上層協議」字段確定該資料幀的有效載荷(payload,指除去協議首部之外實際傳輸的資料)是ip、arp還是rarp協議的資料報,然後交給相應的協議處理。假如是ip資料報,ip協議再根據ip首部中的「上層協議」字段確定該資料報的有效載荷是tcp、udp、icmp還是igmp,然後交給相應的協議處理。假如是tcp段或udp段,tcp或udp協議再根據tcp首部或udp首部的「埠號」字段確定應該將應用層資料交給哪個使用者程序。ip位址是標識網路中不同主機的位址,而埠號就是同一臺主機上標識不同程序的位址,ip位址和埠號合起來標識網路中唯一的程序。

雖然ip、arp和rarp資料報都需要乙太網驅動程式來封裝成幀,但是從功能上劃分,arp和rarp屬於鏈路層,ip屬於網路層。雖然icmp、igmp、tcp、udp的資料都需要ip協議來封裝成資料報,但是從功能上劃分,icmp、igmp與ip同屬於網路層,tcp和udp屬於傳輸層。

網路中兩台主機通訊

主機a和主機b通訊報文的 過程 1 主機a和主機b在同乙個二層網路中,直接走二層交換 主機a檢視自己的arp快取,檢查是否有主機b的ip到mac的對映,如果有對映,構造報文,目的ip為主機b的ip,源ip為主機a的ip,目的mac為主機b的mac,源mac為主機a的mac,將報文傳送給交換機c,交換...

判斷兩台計算機IP位址是同一子網路

子網掩碼是用來判斷任意兩台計算機的ip位址是否屬於同一子網路的根據。利用sscanf s函式進行格式化輸入,很方便得到各個數字,下面進行與運算就ok了 include include oj.h 功能 判斷兩台計算機ip位址是同一子網路。原型 int issamesubnetwork char pci...

兩台WINCE的網路通訊

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