計算機tcp/ip網絡通信過程

目錄

(1)同一網段兩臺計算機通信過程

(2)不同網段的兩臺計算機通信過程

(3)目的主機收到數據包后的解包過程


(1)同一網段兩臺計算機通信過程

如果兩臺計算機在同一個局域網中的同一網段中,它們之間的通信鏈路大致如下:

1.源主機

  • 應用層生成數據。
  • 傳輸層將數據封裝成段(TCP)或數據報(UDP)。
  • 網絡層將段或數據報封裝成IP數據包,并設置目標IP地址(即目標主機的IP地址)。
  • 數據鏈路層將IP數據包封裝成幀,并添加MAC地址信息(源MAC地址和目標MAC地址)。

2.本地網絡

  • 源主機將幀發送到本地網絡。圖中以太網驅動程序在鏈路層,以太網驅動程序是軟件,它使操作系統能夠與網卡進行通信和控制。網卡是硬件,它提供了與網絡連接的物理接口。當操作系統需要發送數據時,它會將數據發送給以太網驅動程序,驅動程序再將數據封裝成幀傳遞給網卡進行傳輸。同樣地,當網卡接收到數據時,它會將數據傳遞給驅動程序,驅動程序再將數據傳遞給操作系統進行處理。以太網驅動程序與網卡之間通過特定的接口和協議進行通信,以確保數據的正確傳輸和接收。
  • 如果有交換機的話(一般路由器會兼有交換機的功能),網卡將幀發送到交換機中后,交換機會根據幀中的目標MAC地址查找對應的端口,并將幀轉發到該端口。如果交換機不知道目標MAC地址在哪個端口,它可能會發送ARP請求來查詢目標MAC地址。
  • 在沒有交換機的情況下,如果局域網是一個簡單的點對點或總線型網絡(這在現代網絡中很少見,但在某些老舊的網絡架構或特定應用中可能仍然存在):
    • 點對點連接:如果局域網中只有兩個主機,并且它們之間是通過點對點連接(如直接連接的兩根網線或一個點對點設備)進行通信的,那么源主機發送的幀將直接到達目的主機,無需經過任何中間設備。
    • 在總線型網絡中,所有的主機都連接在同一條通信電纜(稱為總線)上。源主機將幀發送到本地網絡后,這個幀就會在整個本地網絡上進行傳播。總線上的所有主機都會接收到這個幀,但是只有目標MAC地址與幀中指定的目標MAC地址相匹配的主機才會處理這個幀。其他主機則會忽略這個幀。

3.目標主機

  • 當幀到達目標主機時,數據鏈路層會解封裝幀,提取IP數據包,并將其傳遞給網絡層。
  • 網絡層解封裝IP數據包,提取傳輸層的數據段或數據報,并將其傳遞給傳輸層。
  • 傳輸層解封裝數據段或數據報,提取應用層的數據,并將其傳遞給應用層。

在同一網段時,兩臺主機通信不需要經過路由器,直接網卡到網卡。因為當兩臺主機在同一網段時,它們之間的通信是直接的,它們之間的通信通常不會經過路由器(Router)。路由器主要用于連接不同的網絡,如局域網與廣域網(WAN)或兩個不同的局域網,并基于IP地址中的網絡部分(網絡號或子網號)來決定數據包的轉發路徑。

(2)不同網段的兩臺計算機通信過程

如果兩臺計算機在不同的網段中,那么數據從一臺計算機到另一臺計算機傳輸過程中要經過一個或多個路由器,如下圖所示:

  • 鏈路層有以太網、令牌環網等標準,鏈路層負責網卡設備的驅動、幀同步(即從網線上檢測到什么信號算作新幀的開始)、沖突檢測(如果檢測到沖突就自動重發)、數據差錯校驗等工作。交換機是工作在鏈路層的網絡設備,可以在不同的鏈路層網絡之間轉發數據幀(比如十兆以太網和百兆以太網之間、以太網和令牌環網之間),由于不同鏈路層的幀格式不同,交換機要將進來的數據包拆掉鏈路層首部重新封裝之后再轉發。
  • 網絡層的IP協議是構成Internet的基礎。Internet上的主機通過IP地址來標識,Internet上有大量路由器負責根據IP地址選擇合適的路徑轉發數據包,數據包從Internet上的源主機到目的主機往往要經過十多個路由器。路由器是工作在第三層(網絡層)的網絡設備,同時兼有交換機的功能,可以在不同的鏈路層接口之間轉發數據包,因此路由器需要將進來的數據包拆掉鏈路層和網絡層兩層首部并重新封裝。IP協議不保證傳輸的可靠性,數據包在傳輸過程中可能丟失,可靠性可以在上層協議或應用程序中提供支持。
  • 數據包通常是通過網卡先發送到交換機,再從交換機發送路由器(通常路由器一般具備交換機的功能,所以很多也是直接發送到路由器),然后路由器根據路由表決定下一個發送的路由。
  • 網絡層負責點到點(ptop,point-to-point)的傳輸(這里的“點”指路由器,不過在同一網段時兩臺主機不需要經過路由器,直接網卡到網卡),而傳輸層負責端到端(etoe,end-to-end)的傳輸(這里的“端”通常指的是源主機上的應用進程和目的主機上的應用進程),傳輸層可選擇TCP或UDP協議。

(3)目的主機收到數據包后的解包過程

目的主機收到數據包后,如何經過各層協議棧最后到達應用程序呢?其過程如下:

  1. 以太網驅動程序首先根據以太網首部中的“上層協議”字段確定該數據幀的有效載荷(payload,指除去協議首部之外實際傳輸的數據)是IP、ARP還是RARP協議的數據報,然后交給相應的協議處理。
  2. 假如是IP數據報,IP協議再根據IP首部中的“上層協議”字段確定該數據報的有效載荷是TCP、UDP、ICMP還是IGMP,然后交給相應的協議處理。
  3. 假如是TCP段或UDP段,TCP或UDP協議再根據TCP首部或UDP首部的“端口號”字段確定應該將應用層數據交給哪個用戶進程。IP地址是標識網絡中不同主機的地址,而端口號就是同一臺主機上標識不同進程的地址,IP地址和端口號合起來標識網絡中唯一的進程。

雖然IP、ARP和RARP數據報都需要以太網驅動程序來封裝成幀,但是從功能上劃分,ARP和RARP屬于鏈路層,IP屬于網絡層。雖然ICMP、IGMP、TCP、UDP的數據都需要IP協議來封裝成數據報,但是從功能上劃分,ICMP、IGMP與IP同屬于網絡層,TCP和UDP屬于傳輸層。


end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19545.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19545.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19545.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法(九)希爾排序

文章目錄 希爾排序簡介代碼實現 希爾排序簡介 希爾排序(shell sort)選定一個小于N(數列長度)的整數gap作為第一增量,然后將所有距離為gap的元素分成一組,然后對每一組的元素進行插入排序。然后再取一個比前…

(1+X)Java程序設計高級(一)

Throwable:異常的基類,所有異常都繼承自 java.lang.Throwable 類,Throwable 類有兩個直接子類:Error 類和 Exception 類。Error:是 Java 應用程序本身無法恢復的嚴重錯誤,應用程序不需要捕獲、處理這些嚴重…

7.1 Go 錯誤的概念

💝💝💝歡迎蒞臨我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

【SQL每日一練】查詢二進制樹節點

文章目錄 題目一、題析二、題解1.MySQL/SqlServer2.Oracle 題目 有一個表BST,其中包含兩列:N和P,其中N表示二進制樹中節點的值,P是N的父級。 編寫一個查詢,以查找按節點值排序的二進制樹的節點類型。為每個節點輸出以…

迅狐跨境電商系統源碼:技術棧與多端集成

隨著全球化貿易的不斷深入,跨境電商系統源碼成為了連接不同國家和地區消費者與商家的重要橋梁。本文將探討跨境電商系統源碼的技術棧以及如何通過多端集成來提升用戶體驗。 技術棧概覽 跨境電商系統源碼的技術棧是構建高效、穩定平臺的基礎。以下是構建跨境電商系…

IP65 IP45 IP68等等數字防護等級

第一個數字的代表意義 : 0 表示無防護 ,對外界的人或物無特殊之防護 1. 表示防止大于50mm的固體物體侵入 ,防止人體(如手掌)因意外而接觸,內部之零件。防止較大尺寸(直徑大于50mm)的…

Oracle數據塊如何存儲真實數據

上周休假了幾天,頹廢了,沒有輸出。今天寫一點內容。 先拋出一個問題。表中的數據在Oracle數據塊中是如何存儲的呢?今天簡單說一下這個問題。通常數據庫中的表會存儲字符,數字,日期 這3種常見的數據類型。下面的例子就用這3種數據類型作說明 首先,Oracle數據塊底層存儲這…

Github 2024-05-31開源項目日報 Top10

根據Github Trendings的統計,今日(2024-05-31統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量Python項目4TypeScript項目3Jupyter Notebook項目2Vue項目1Cuda項目1Elixir項目1簡單、純凈的C/CUDA中的LLM培訓 創建周期:3 天開發語言:Cuda…

OpenCV中的圓形標靶檢測——背景概述

圓形標靶 如下圖所示,相機標定中我們使用帶有固定間距圖案陣列的平板,來得到高精度的標靶像素坐標,進而計算得到相機的內參、畸變系數,相機之間的變換關系,和相機與世界坐標系的變換關系(即外參)。 不過標靶的形式多樣,從圖案類型來看常見的有棋盤格、圓形標靶…

自然語言處理(NLP)神經網絡的數據預處理步驟

1. 文本清理(Text Cleaning) 目的:去除文本中的噪音和無關內容,確保輸入數據的質量和一致性。 方法: 去除標點符號:刪除文本中的標點符號(視任務需求,某些標點符號可能保留&#…

音視頻開發13 FFmpeg 音頻 相關格式分析 -- AAC ADTS格式分析

這一節,我們學習常用的音頻的格式 AAC,重點是掌握 AAC的傳輸格式 ADTS 頭部的信息,目的是 : 當音頻數據有問題的時候,如果是AAC的編碼,在分析 頭部信息的時候能夠根據頭部信息 判斷問題是否出現在 頭部。 A…

今天來講講,抖音小店商品的上架流程以及優化細節~

大家好,我是噴火龍。 做抖音小店選品選好之后,優化上架商品也是很重要的,也有很多需要注意的細節,今天就來給大家講講。 首先,軟件采集,大致分為七步。 1. 以抖精靈為例,注冊賬號登錄&#x…

到無窮大和更遠,用分形更好

文章目錄 一、說明二、分形到底是什么?三、更多更深刻的四、引進無窮小會產生什么樣的怪事?五、希爾伯特曲線六、還有什么有趣的要補充的嗎? 一、說明 ???????數學領域有太多有趣的領域,領域我特別感興趣。這是一個奇妙的…

orm 查詢

問題 rayon,city 地區和市 地區不會空 市可能會空 job_name 工作名稱 可能會空 envalid_date 有效期間 一天 一個星期 一個月 不限 四種 offset 分頁的每次獲取20條數據 在ORM(對象關系映射)查詢中,您需要根據提…

代碼隨想錄算法訓練營day41 | 509. 斐波那契數、70. 爬樓梯、746. 使用最小花費爬樓梯

理論基礎 動態規劃中每一個狀態一定是由上一個狀態推導出來的,這一點就區分于貪心,貪心沒有狀態推導,而是從局部直接選最優的 動態規劃的解題步驟 確定dp數組(dp table)以及下標的含義確定遞推公式dp數組如何初始化確定…

怎么看自己電腦的配置?提升電腦的使用效率

了解自己電腦的配置是非常重要的,它可以幫助您了解電腦的性能水平,從而更好地選擇適合的軟件和游戲,或者進行系統升級和維護。然而,許多用戶可能不知道怎么看自己電腦的配置信息。本文將介紹三種簡單的方法,幫助您輕松…

android studio修改字體大小

android studio修改菜單欄、工具欄字體大小 android studio修改編輯框字體大小

常見制氮機的規格的及其特點介紹

制氮機根據其產氣量、應用領域和設計特點,可以分為多種規格,滿足不同行業的具體需求。以下是一些常見制氮機的規格的及其特點介紹: 制氮機的規格通常以其每小時制氮量進行分類。常見的規格有10L制氮機、50L制氮機、100L制氮機、500L制氮機以及…

復習leetcode第二題:兩數相加

本文會給出筆者自己的解答(代碼較為冗余,其實就是屎山代碼)以及優秀代碼的解析 下圖是題目 解法1(筆者所使用的辦法): 解題思路: 以下思路是基于示例1(上圖)思考的 步驟…

2024年終端安全管理系統最新排名(2024終端安全管理軟件TOP5)

在2024年,隨著企業數字化轉型的加速和網絡安全威脅的日益嚴峻,終端安全管理系統的重要性愈發凸顯。終端作為企業數據交互的關鍵節點,其安全性直接關系到企業的運營和數據的完整性。因此,各大終端安全管理系統廠商紛紛推出新的產品…