1. 程式人生 > >網絡數據傳送原理與機制

網絡數據傳送原理與機制

輪詢 找到 tcp http byte 發出 通過 註冊 編程

初識網絡數據傳送原理與機制,做了點小小筆記,記錄每一天!

-------------------------------------------

網卡:   每一個網卡都有一個最大的傳輸速率   1: 接入互聯網數據的物理設備,註意網卡的帶寬。每秒傳送的數據;   2: 互聯網數據的最小單位是 bit,而不是 Byte;   3: 數據傳輸與網線等有關系,需要同級別網線配合;   4: 交換機最好使用一個牌子, 不要混合使用; 帶寬:   1: 局域網帶寬: 局域網鏈路內最大可以傳輸數據的速度;   2: 公網帶寬: 廣域網內最大可以傳輸的數據的速度;
端口:   80 端口 http 協議使用的, 443 端口 https 使用的   1: 網絡傳送數據的時,按照端口來進行數據包分類;     只要某端口不被使用 就能使用它,如果有在使用,會造成沖突,用不了!     1):端口的取值範圍在[1, 65535];     2):[1, 1023]系統保留端口;     3):[1024,5000] BSD 臨時端口; 用戶使用     4):[5001-65535], BSD 服務器(非特權)端口; 用戶使用   2: 哪個數據包屬於哪個端口的,根據端口分類;
    1)所以應用程序通過網絡收發數據的時候,一定會對應一個端口; (根據 IP + Port 來收發數據包) Socket 套接字:   每個 socket 都有自己的 IP 與 Port 和 對方的 IP 與 Port   1: 對於建立起的網絡連接,操作系統給一個唯一的標識這個連接的句柄----我們叫做 Socket 與 套接字   2: Socket兩種類型:     (1) TCP Socket, 每發一個數據包,收方會向發送方返回一個 ACK。這樣發方會再發下一個數據包,     如果沒有返回ACK,又沒有收到斷掉鏈接的事件,會繼續發送剛才的包,直到對方返回ACK;
      TCP 精準、可靠、速度慢       千萬不要懷疑 TCP     (2) UDP Socket 每發送一個數據包,只要發出去了,就不管,繼續發下一個,不管對方有沒有收到這個包;       UDP 不精準、不可靠、速度快       千萬不要相信 UDP TCP 與 UDP 的比較:   1: TCP 是可靠的網絡傳送協議;   2: UDP 是快速的網絡傳送協議;   3: 遊戲中一般采用 TCP。   4: UDP 可以在特殊的時候使用; 基於 TCP 的網絡數據傳輸:   建立連接:     1: 服務器會有個監聽端口     2: 客服端向服務器(IP 地址 + 端口)發送連接請求數據包;     3: 網卡會將這個連接請求的數據包,分發給這個監聽端口;     4: 根據連接請求裏面客服端的 IP 地址與端口,服務器程序會為它創建一個新的端口,     5: 端口被指定為和客服端這個 IP 地址 + 端口來進行數據通訊。     6: 連接成功後,就會把客戶端創建的 Socket 與服務器創建的 Socket 形成我們的數據通道;   收數據:     Poll 輪詢 模型;(客戶端一般用 Poll 模型)       每隔一段時間去輪詢,直到找到一個完整的包(應用層的包), 就能做相應的動作     Event 事件通知模型; (服務器 一般用 Event 模型)       在 Socket 註冊一個回調函數, 等有事件發生時調用處理   發數據:     應用層直接發送數據,協議棧底層會將我們的數據包拆分成合適的小包,然後打上 TCP 協議的     數據頭,使用 TCP 協議傳送給目的地, 對於目的地而言,它可能不是一次性的收到應用層這麽多     數據, 而是分批次的收到,(用戶編程的時候一定要特別的小心);

到此結束咯!

方便他人,亦是方便自己!

網絡數據傳送原理與機制