• <b id="gimrh"><noscript id="gimrh"></noscript></b>
    1. <video id="gimrh"><menu id="gimrh"></menu></video>
      <tt id="gimrh"><tbody id="gimrh"></tbody></tt>

      400-650-7353
      您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】TCP/IP協議詳解

      【Python基礎知識】TCP/IP協議詳解

      • 來源:
      • 2021-08-30 16:36:31
      • 閱讀()
      • 分享
      • 手機端入口

      如今,互聯網一詞已被人們所熟知,它廣泛應用于人類生活的各個方面。但是究其歷史,互聯網是由1971年的ARPANET發展而來的。ARPANET是一個計算機網絡,它的出現比互聯網要早得多。

      網絡中的計算機為了彼此之間進行通信形成一個通信網絡,就必須首先制定網絡協議。早期的計算機網絡,根據廠商的不同有著自己規定的一套協議,Microsoft、IBM和Apple等公司都有各自的互不兼容的一套網絡協議。這就像一群人有的說中文,有的說英語,有的說德語,說同一種語言的人之間可以交流,而說不同語言的人之間就難以交流了。

      網絡協議的不兼容阻礙了互聯網的發展。而隨著網絡的發展,規模和覆蓋面越來越大,從而形成了統一的標準OSI(開放系統互連)。OSI模型從上到下具有7層結構,分別是應用層、表示層、會話層、運輸層、網絡層、數據鏈路層和物理層。其中,應用層定義了應用程序之間通信的協議,運輸層主要用來確保端到端的數據通信正常,網絡層負責在各個主機之間傳輸數據。

      在互聯網所使用的各種網絡協議中,最重要的是TCP和IP協議。如今人們常說的TCP/IP協議并不一定單指TCP和IP這兩個具體的協議,而通常是表示互聯網所使用的整個TCP/IP協議族。

      下面介紹一下TCP/IP協議。

      計算機進行通信時,類似于現實中的郵政通信,計算機通信的雙方必須知道對方的地址才行。在TCP/IP協議中,IP地址是互聯網上每臺計算機的唯一標識。目前,最廣泛采用的是IPv4版本的IP地址,如192.168.100.179。IP地址是采用點分十進制的一組數組成的。一般情況下,網絡上一臺設備只有一個IP地址,但路由器需要同時接入到兩個及以上的網絡,因此,路由器就會有兩個或多個IP地址。通常計算機中負責IP數據包發送/接收的硬件設備是網卡,一個IP地址對應一張網卡,網卡就是計算機的網絡接口。

      一臺計算機通過計算機網絡將數據發送到另一臺計算機,數據是逐層封裝的。在IP層,IP協議負責將數據從一個IP地址發送到另一個IP地址。首先數據需要按照IP協議分割成多個小數據塊,塊長度一般為1024字節,這個小數據塊稱為IP數據報。發送出去的IP包,由于整個互聯網的架構非常復雜,兩臺計算機之間經常有多條線路,因此,中間的路由器就負責轉發一個IP包。IP包的特點是按塊發送,途經多個路由,但由于路由器的承載能力有限,當大批IP包同時到達時,就會因路由器處理不過來而丟包。另外,IP包經過多個路由器的轉發,在路由器中的排隊時間也不同,因此,到達接收端的順序也不會完全按照發送時的順序。一個IP包除了包含要傳輸的數據外,還包含源IP地址和目標IP地址。

      IP協議之上的是TCP協議,TCP稱為傳輸控制協議。TCP協議在兩臺計算機之間建立的是可靠的連接,因此,TCP報文是按順序處理的。形象地說,TCP協議是通過握手建立連接的,再確保按順序收到下層的每個IP包,如果IP包丟失了,就向發送端請求重發。

      應用層上許多常用的應用都是建立在TCP協議上的,例如,萬維網瀏覽器上使用的HTTP協議,發送電子郵件的SMTP協議等。

      TCP協議中設定了端口號,用來區分主機上的不同通信進程。例如,根據IP地址找到目的主機后,IP包需要上傳到TCP層進行處理,TCP可以根據端口號來區分出當前通信的是網頁瀏覽器還是QQ應用程序,這樣就實現了進程間通信。

      對于TCP協議,要了解它的三次握手和四次揮手。

      三次握手過程如下:

      ①客戶端發送連接請求報文。

      ②服務器端接收連接請求后,回復ACK報文。

      ③客戶端接收到ACK報文后,也向服務器端發送ACK報文。

      這樣TCP連接就建立了。

      TCP連接的拆除需要發送四個包,故稱為四次揮手。

      四次揮手過程如下:

      ①客戶端發送一個FIN,用來關閉客戶端到服務器端的數據傳送。

      ②服務器端收到這個FIN,它發回一個ACK,確認序號為收到的序號加1。與SYN一樣,一個FIN將占用一個序號。

      ③服務器端關閉與客戶端的連接,發送一個FIN給客戶端。

      ④客戶端發回ACK報文確認,并將確認序號設置為收到序號加1。

      運輸層協議除了TCP外,還有UDP。UDP適用于對效率要求相對較高而對準確性要求相對較低的場合,例如,視頻在線點播、網絡語音通話等。

      了解了TCP/IP協議的基本概念后,就可以開始進行網絡編程了。

      文章“【Python基礎知識】TCP/IP協議詳解”已幫助

      更多內容

      >>本文地址:http://www.threeriversmusicproducts.com/zhuanye/2021/69824.html

      THE END  

      聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

      領取零基礎自學IT資源

      (內含學習路線+視頻教程+項目源碼)

      涉及Java、Web前端、UI設計、軟件測試、Python等多個IT熱門方向

      打開微信掃一掃即可領取哦~

      1 您的年齡

      2 您的學歷

      3 您更想做哪個方向的工作?

      獲取測試結果
      • 大前端大前端
      • 大數據大數據
      • 互聯網營銷互聯網營銷
      • JavaJava
      • Linux云計算Linux
      • Python+人工智能Python
      • 嵌入式物聯網嵌入式
      • 全域電商運營全域電商運營
      • 軟件測試軟件測試
      • 室內設計室內設計
      • 平面設計平面設計
      • 電商設計電商設計
      • 網頁設計網頁設計
      • 全鏈路UI/UE設計UI設計
      • VR/AR游戲開發VR/AR
      • 網絡安全網絡安全
      • 新媒體與短視頻運營新媒體
      • 直播帶貨直播帶貨
      • 智能機器人軟件開發智能機器人
       

      快速通道fast track

      近期開班時間TIME

      bl乱J伦高HH

    2. <b id="gimrh"><noscript id="gimrh"></noscript></b>
      1. <video id="gimrh"><menu id="gimrh"></menu></video>
        <tt id="gimrh"><tbody id="gimrh"></tbody></tt>