日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【网络】网络基础

發布時間:2024/1/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【网络】网络基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

🥁作者華丞臧.
📕????專欄:【網絡】
各位讀者老爺如果覺得博主寫的不錯,請諸位多多支持(點贊+收藏+關注)。如果有錯誤的地方,歡迎在評論區指出。
推薦一款刷題網站 👉 LeetCode刷題網站


文章目錄

  • 一、計算機網絡背景
    • 1.1 網絡發展
    • 1.2 協議
  • 二、網絡協議初識
    • 2.1 協議分層
    • 2.1 OSI七層模型
    • 2.2 TCP/IP五層(或四層)模型
  • 三、網絡傳輸基本流程
    • 3.1 網絡和操作系統
    • 3.2 網絡傳輸流程圖
    • 3.3 數據包封裝和分用
  • 四、網絡中的地址管理
    • 4.1 認識IP地址
    • 4.2 認識MAC地址


一、計算機網絡背景

1.1 網絡發展

獨立模式:在發展之初,計算機之間相互獨立。

網絡互聯:多臺計算機連接連接在一起,完成數據共享。

局域網LAN:計算機數量更多了,通過交換機和路由器連接在一起,局域網內部沒有路由器。

廣域網WAN:將遠隔千里的計算機都連在一起,局域網通過路由器連接形成廣域網。

所謂 “局域網” 和 “廣域網” 只是一個相對的概念. 比如, 我們有 “天朝特色” 的廣域網, 也可以看做一個比較大的局域網。
重新看待計算機結構,以理解計算機通過網絡互聯的可能性:根據馮諾依曼體系結構,一臺計算機由輸入輸出設備、存儲器和中央處理器構成,如下圖:

那么上圖中計算機上的硬件如何進行數據交互的呢?毫無疑問設備和設備之間一定要有線連接起來,只不過這些線比較短并且藏在計算機內部通常用戶是看不見的;那么計算機體系結構本質上也可以看做一個小型網絡。其次我們也可以使用多主機互相連通,構建宏觀的馮諾依曼體系結構,而多主機連接本質上也是通過“線”連接起來的–我們稱之為網線(也有用無限WAN連接)。

跨主機與主機內的小型網絡不同的是跨主機連接線變長了,線變長了相應地數據傳輸的可靠性、效率降低了,如何尋找對方的難度上升了,為了保證長距離傳輸的可靠性、效率,各種新的設備誕生了,如:路由器、交換機。

1.2 協議

計算機之間的傳輸媒介是光信號和電信號. 通過 “頻率” 和 “強弱” 來表示 0 和 1 這樣的信息,要想傳遞各種不同的信息,計算機之間進行通信需要約定好雙方的數據格式。在計算機當中把這種約定稱為協議,協議是一種約定。

思考:只要通信的兩臺主機約定好協議就可以了嗎?

并不是,計算機的生產廠商有很多如聯想、華碩、小米、華為等,計算機操作系統也有很多如windows、蘋果、Linux等,計算機網絡硬件設備同樣有很多,要讓這些不同的品牌的計算機實現相互順暢的通信,就必須制定一個共同的標準大家都來遵守,這就是網絡協議

二、網絡協議初識

2.1 協議分層

軟件是可以分層的:在學習編程之初,比如學習C語言時,起初我們編寫代碼都是放在一個.c文件中;隨著學習的深入,我們知道可以將函數的聲明和定義分離,并且在主函數文件中包含聲明文件即可使用自己編寫好的函數,這就是在軟件上的分層:main函數是一層,聲明定義是第二層。
為什么要分層?

  • 軟件在分層的同時,也把問題歸類了,方便排查問題;
  • 分層可以讓代碼邏輯更加簡單;
  • 分層的本質:軟件上對代碼進行解耦;
  • 便于工程師進行軟件維護;
  • 網絡本身的代碼就是層狀結構,層狀結構是軟件中非常重要的結構,幾乎任何軟件都離不開層狀結構。
  • 層狀結構下的網絡協議,我們認為:同層協議都可以認為自己在和對方直接通行,忽略底層細節;因此同層之間,一定都要有自己的協議。

    2.1 OSI七層模型

    • OSI(Open System Interconnection,開放系統互連)七層網絡模型稱為開放式系統互聯參考模型,是一個邏輯上的定義和規范;
    • 把網絡從邏輯上分為了7層. 每一層都有相關、相對應的物理設備,比如路由器,交換機;
    • OSI 七層模型是一種框架性的設計方法,其最主要的功能使就是幫助不同類型的主機實現數據傳輸;
    • 它的最大優點是將服務、接口和協議這三個概念明確地區分開來,概念清楚,理論也比較完整. 通過七
      個層次化的結構模型使不同的系統不同的網絡之間實現可靠的通訊;
    • 但是, 它既復雜又不實用。
    分層名稱功能
    7應用層針對特定應用的協議
    6表示層設備固有數據格式和網絡標準數據格式的轉換
    5會話層通信管理,負者建立和斷開通信連接(數據流動的邏輯通路)。管理傳輸層以下的分層
    4傳輸層管理兩個節點之間的數據傳輸。負者可靠傳輸(確保三個月后又被可靠地傳送到目標地址)
    3網絡層地址管理與路由選擇
    2數據鏈路層互連設備之間傳送和識別數據幀
    1物理層以“0”、“1”代表電壓的高低。燈光的閃滅。界定連接器和網線的規格。

    2.2 TCP/IP五層(或四層)模型

    TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇.。
    TCP/IP通訊協議采用了5層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。

    • 物理層: 負責光/電信號的傳遞方式. 比如現在以太網通用的網線(雙絞 線)、早期以太網采用的的同軸電纜
      (現在主要用于有線電視)、光纖, 現在的wifi無線網使用電磁波等都屬于物理層的概念。物理層的能力決
      定了最大傳輸速率、傳輸距離、抗干擾性等. 集線器(Hub)工作在物理層.
    • 數據鏈路層: 負責設備之間的數據幀的傳送和識別. 例如網卡設備的驅動、幀同步(就是說從網線上檢測
      到什么信號算作新幀的開始)、沖突檢測(如果檢測到沖突就自動重發)、數據差錯校驗等工作. 有以太
      網、令牌環網, 無線LAN等標準. 交換機(Switch)工作在數據鏈路層.
    • 網絡層: 負責地址管理和路由選擇. 例如在IP協議中, 通過IP地址來標識一臺主機, 并通過路由表的方式規
      劃出兩臺主機之間的數據傳輸的線路(路由). 路由器(Router)工作在網路層.
    • 傳輸層: 負責兩臺主機之間的數據傳輸. 如傳輸控制協議 (TCP), 能夠確保數據可靠的從源主機發送到目標
      主機.
    • 應用層: 負責應用程序間溝通,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網絡遠程訪問
      協議(Telnet)等. 我們的網絡編程主要就是針對應用層.


    物理層考慮的比較少,因此很多時候也可以稱為 TCP/IP四層模型,一般而言:

    • 對于一臺主機, 它的操作系統內核實現了從傳輸層到物理層的內容;
    • 對于一臺路由器, 它實現了從網絡層到物理層;
    • 對于一臺交換機, 它實現了從數據鏈路層到物理層;
    • 對于集線器, 它只實現了物理層;

    三、網絡傳輸基本流程

    3.1 網絡和操作系統

    體系結構直接決定:數據包在主機內進行流動的時候,一定要進行自頂向下或者自底向上進行流動的。

    計算機發數據需要底層硬件轉發,用戶層數據無法直接抵達硬件必須貫穿操作系統,而網絡協議棧隸屬于操作系統,因此必須自頂向下交付給硬件;發數據一般是用戶發給用戶,底層硬件沒辦法直接將數據發給用戶,必須貫穿操作系統和協議棧才能將數據交給用戶。,因此需要自底向上。

    3.2 網絡傳輸流程圖

    • 重談協議:計算機視角看待協議,體現在代碼邏輯上,計算機通過協議完成對數據包的轉發;體現在數據上,計算機為了維護協議在傳輸的數據上一定新增其他的協議數據。
    • 報頭:每一層在要交付給下一層的數據上添加上本層的協議數據拼接在原始數據的開頭,其中添加的協議數據稱為報頭。

    如果兩臺局域網處于同一個局域網,這兩臺主機是可以直接通信的(以太網,最常見的一種局域網標準)。站在系統的角度,以太網就是臨界資源。

    局域網通信的原理

  • 每一臺主機都要有唯一的標識,該主機對應的MAC地址,MAC地址主要工作在局域網中用來標識主機的唯一性;
  • 在同一碰撞域中,各個主機發送的信息會發生碰撞,無法準確的接收對應的信息;每一臺主機都能夠識別域中發生了碰撞,每臺主機都會檢測域中有無碰撞(碰撞避免),檢測到無碰撞發生時再發送信息。
    • 碰撞域:在一局域網中,任何一臺主機,在任何時候,都可以隨時發消息。
  • 在LInux上查看機器的MAC地址:

    跨網段的主機的文件傳輸. 數據從一臺計算機到另一臺計算機傳輸過程中要經過一個或多個路由器。

    在上圖的過程中,MAC地址用于在局域網中標定主機的唯一性;而IP地址用來在廣域網(公網)標定主機的唯一性。在遠距離傳輸中,數據傳輸會經過多個局域網,在數據通過不同的局域網時MAC地址是在不斷變化的,因為數據需要通過不同路由器傳輸,路由器用于連接兩個不同的局域網,而數據中的IP地址是不變的。從上圖可以得出結論,IP網絡屏蔽了底層網絡的差異,所有的IP層向上的協議發送和接收主機看到的數據是一模一樣的。

    例子:假如張三在長沙讀大學,放假了張三要回家,所以張三買了去武漢的高鐵票,那么張三的起點就是長沙,目的地就是武漢;在上了高鐵之后,高鐵會經過一個一個的站,直到到了武漢張三才會下高鐵。那么在這個過程中,源IP地址就是起點長沙目的IP地址就是武漢源MAC地址是高鐵在中途停留的某個高鐵站,而目的MAC地址就是高鐵下一個將要停留的高鐵站

    3.3 數據包封裝和分用

    • 不同的協議層對數據包有不同的稱謂,在傳輸層叫做段(segment),在網絡層叫做數據報 (datagram),在鏈路層叫做幀(frame)。
    • 應用層數據通過協議棧發到網絡上時,每層協議都要加上一個數據首部(header),稱為封裝(Encapsulation).。
    • 首部信息中包含了一些類似于首部有多長, 載荷(payload)有多長, 上層協議是什么等信息。
    • 數據封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部, 根據首部中的 “上層協議字段” 將數據交給對應的上層協議處理。

    下圖為數據封裝的過程

    • 有效載荷:本層需要傳遞的數據,注意是沒有添加本層報頭的數據稱為有效載荷。

    下圖為數據分用的過程

    • 首先需要注意,每一層都有多種協議,因此數據包在添加報頭的時候,也要考慮未來解包的時候將自己的有效載荷交付給上一層的哪一個協議。
    • 將有效載荷交付給上層的協議稱為有效載荷的分用過程。

    通過數據封裝和分用的過程可以得出以下兩個結論:

  • 一般而言,任何報頭屬性里面一定要存在一些字段用來支持封裝和解包;
  • 一般而言,任何報頭屬性里面一定要存在一些字段用來支持進行分用;
  • 四、網絡中的地址管理

    4.1 認識IP地址

    IP協議有兩個版本, IPv4和IPv6。目前一般的使用的都是IPV4。

    • IP地址是在IP協議中, 用來標識網絡中不同主機的地址;
    • 對于IPv4來說, IP地址是一個4字節, 32位的整數;
    • 我們通常也使用 “點分十進制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用點分割的每一個數字表示一個字節, 范圍是 0 - 255。

    4.2 認識MAC地址

    • MAC地址用來識別數據鏈路層中相連的節點;
    • 長度為48位, 及6個字節. 一般用16進制數字加上冒號的形式來表示(例如: 08:00:27:03:fb:19);
    • 在網卡出廠時就確定了, 不能修改. mac地址通常是唯一的(虛擬機中的mac地址不是真實的mac地址, 可能會沖突; 也有些網卡支持用戶配置mac地址)。

    總結

    以上是生活随笔為你收集整理的【网络】网络基础的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。