計算機網絡基礎


計算機網絡基礎

  1. 什么是互聯網協議

    一系列統一的標准,這些標准稱之為互聯網協議,互聯網的本質就是一系列的協議,總稱為‘互聯網協議’(Internet Protocol Suite)。

    互聯網協議的功能:定義計算機如何接入internet,以及接入internet的計算機通信的標准。

  2. osi七層協議

    互聯網協議按照功能不同分為osi七層或tcp/ip五層或tcp/ip四層

    我們將應用層,表示層,會話層並作應用層,從tcp/ip五層協議的角度來闡述每層的由來與功能,搞清楚了每層的主要協議,就理解了整個互聯網通信的原理。

    • 物理層

      物理層的由來:孤立的計算機之間要想一起玩,就必須接入internet,言外之意就是計算機之間必須完成組網。

      物理層功能:主要是基於電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0

    • 數據鏈路層

      數據鏈路層由來:單純的電信號0和1沒有任何意義,必須規定電信號多少位一組,每組什么意思

      數據鏈路層的功能:定義了電信號的分組方式

      • 以太網協議

        早期的時候各個公司都有自己的分組方式,后來形成了統一的標准,即以太網協議ethernet

        ethernet規定:一組電信號構成一個數據包,叫做‘幀。每一數據幀分成報頭head和數據data兩部分

        head包含:① 發送者/源地址 ② 接受者/目標地址 ③ 數據類型

        data包含:數據包的具體內容

      • mac地址

        head中包含的源和目標地址由來:ethernet規定接入internet的設備都必須具備網卡,發送端和接收端的地址便是指網卡的地址,即mac地址

        mac地址:每塊網卡出廠時都被燒制上一個世界唯一的mac地址,長度為48位2進制,通常由12位16進制數表示

      • arp協議

        arp協議:通過目標IP地址獲取目標mac地址的一個協議

        arp協議由來:計算機通信基本靠吼,即廣播的方式,所有上層的包到最后都要封裝上以太網頭,然后通過以太網協議發送,而通信是基於mac的廣播方式實現,計算機在發包時,獲取自身的mac是容易的,如何獲取目標主機的mac,就需要通過arp協議

        arp協議功能:廣播的方式發送數據包,獲取目標主機的mac地址

        協議工作方式:每台主機ip都是已知的

        例如:主機172.16.10.10/24訪問172.16.10.11/24

        一:首先通過IP地址和子網掩碼區分出自己所處的子網

        ​ 將子網掩碼和IP地址進行與(&)運算即可得出IP地址所處的網段

        二:分析172.16.10.10/24與172.16.10.11/24是否處於同一網絡

        ​ 場景:同一子網 數據包地址:目標主機mac,目標主機IP

        ​ 場景:不同子網 數據包地址:網管mac,目標主機IP

        ​ (如果不是同一網絡,那么目標IP為172.16.10.11,通過arp獲取的是網關的mac)

        三:這個包會以廣播的方式在發送端所處的自網內傳輸,所有主機接收后拆開包,發現目標IP為自己的,就響應,返回自己的mac地址

      • 廣播

        有了mac地址,同一網絡內的兩台主機就可以通信了(一台主機通過arp協議獲取另外一台主機的mac地址)

        ethernet采用最原始的方式,廣播的方式進行通信,即計算機通信基本靠吼

        服務器1按照上圖的格式以廣播的方式給服務器4發送以太網包,然而服務器234都會收到服務器1發來的包,拆開后發現目標mac地址不是自己的,就會將其丟棄,若是發現目標mac是自己的,就會做出響應。

    • 網絡層

      網絡層由來:有了ethernet、mac地址、廣播的發送方式,世界上的計算機就可以彼此通信了,問題是世界范圍的互聯網是由一個個彼此隔離的小的局域網組成的,那么如果所有的通信都采用以太網的廣播方式,那么一台機器發送的包全世界都會收到,這就不僅僅是效率低的問題了,這會是一種災難。

      上圖結論:必須找出一種方法來區分哪些計算機屬於同一廣播域,哪些不是,如果是就采用廣播的方式發送,如果不是,就采用路由的方式(向不同廣播域/子網分發數據包),mac地址是無法區分的,它只跟廠商有關。

      網絡層功能:引入一套新的地址用來區分不同的廣播域/子網,這套地址即網絡地址

      • IP協議

        規定網絡地址的協議叫IP協議,它定義的地址稱之為IP地址,廣泛采用的v4版本即ipv4,它規定網絡地址由32位2進制表示,范圍0.0.0.0-255.255.255.255,一個IP地址通常寫成四段十進制數,例:192.168.1.1

      • IP地址

        IP地址分成兩部分

        1. 網絡部分:標識子網
        2. 主機部分:標識主機

        注意:單純的IP地址段只是標識了IP地址的種類,從網絡部分或主機部分都無法辨識一個IP所處的子網

        例:172.16.10.1與172.16.10.2並不能確定二者處於同一子網

      • 子網掩碼

        所謂”子網掩碼”,就是表示子網絡特征的一個參數。它在形式上等同於IP地址,也是一個32位二進制數字,它的網絡部分全部為1,主機部分全部為0。比如,IP地址172.16.10.1,如果已知網絡部分是前24位,主機部分是后8位,那么子網絡掩碼就是11111111.11111111.11111111.00000000,寫成十進制就是255.255.255.0。

        知道”子網掩碼”,我們就能判斷,任意兩個IP地址是否處在同一個子網絡。方法是將兩個IP地址與子網掩碼分別進行AND運算(兩個數位都為1,運算結果為1,否則為0),然后比較結果是否相同,如果是的話,就表明它們在同一個子網絡中,否則就不是。

    • 傳輸層

      傳輸層的由來:網絡層的IP幫我們區分子網,以太網層的mac幫我們找到主機,然后大家使用的都是應用程序,你的電腦上可能同時開啟QQ,暴風影音,等多個應用程序,

      那么我們通過IP和mac找到了一台特定的主機,如何標識這台主機上的應用程序,答案就是端口,端口即應用程序與網卡關聯的編號。

      傳輸層功能:建立端口到端口的通信

      補充:端口范圍0-65535,0-1023為系統占用端口

      • TCP協議

        可靠傳輸,TCP數據包沒有長度限制,理論上可以無限長,但是為了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。

      • UDP協議

        不可靠傳輸,”報頭”部分一共只有8個字節,總長度不超過65,535字節,正好放進一個IP數據包。

      • TCP與UDP的對比

        TCP:傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
        UDP:用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快

      • TCP的三次握手和四次揮手

        三次握手

        TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接:

        位碼即tcp標志位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重置) URG(urgent緊急)

        Sequence number(順序號碼) Acknowledge number(確認號碼)

        第一次握手:主機A發送位碼為syn=1,隨機產生seq number=1234567的數據包到服務器,主機B由SYN=1知道,A要求建立聯機;

        第二次握手:主機B收到請求后要確認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包

        第三次握手:主機A收到后檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到后確認seq值與ack=1則連接建立成功。

        完成三次握手,主機A與主機B開始傳送數據。

        一個完整的三次握手也就是 請求---應答---再次確認

        四次揮手:

        由於TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的數據發送任務后就能發送一個FIN來終止這個方向的連接。收到一個 FIN只意味着這一方向上沒有數據流動,一個TCP連接在收到一個FIN后仍能發送數據。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

        (1)客戶端A發送一個FIN,用來關閉客戶A到服務器B的數據傳送。

        (2)服務器B收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。

        (3)服務器B關閉與客戶端A的連接,發送一個FIN給客戶端A。

        (4)客戶端A發回ACK報文確認,並將確認序號設置為收到序號加1。

    • 應用層

      應用層由來:用戶使用的都是應用程序,均工作於應用層,互聯網是開放的,大家都可以開發自己的應用程序,數據多種多樣,必須規定好數據的組織形式

      應用層功能:規定應用程序的數據格式。

      例:TCP協議可以為各種各樣的程序傳遞數據,比如Email、WWW、FTP等等。那么,必須有不同協議規定電子郵件、網頁、FTP數據的格式,這些應用程序協議就構成了”應用層”。

  3. 每層運行的常見物理設備

  4. 每層運行的常見的協議

............


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM