TCP/IP速記

網路協議

電腦網路的核心就是網路協議。網路協議是電腦網路中為了數據交換而建立的規則。

OSI七層模型和TCP/IP五層模型

在實際運用中,最終是TCP得到了廣泛的應用。

OSI是一種設計得非常詳細的協議,而問題就是出在詳細上;因為實際的情況往往比想像中的更加多變和靈活,所以OSI的詳細本該成為它的優勢,但卻成為了其限制。

王老師的思想遷移:不光是這種協議的發展規律,生活中很多事情都是這樣,不能等完完全全準備好了再去做,而是在做的過程中不斷改進,不斷適應,就TCP/IP一樣,雖然更加簡單,但卻能經受實際的考驗。

TCP/IP五層模型

  • 應用層(HTTP)
  • 傳輸層(TCP,UDP)
  • 網路層(IP)
  • 數據鏈路層
  • 物理層

TCP的三次握手和四次揮手

三次握手進行連接

SYN:標誌位,為1時表示請求連接

ACK:標誌位,為1時表示確認請求

第一次握手:客戶端向服務端發送SYN為1的請求報文

第二次握手:服務端向客戶端發送ACK消息確認【此時客戶端知道自己可以發送消息給服務端,而且服務端也可以發送消息給自己;但服務端只知道客戶端的消息可以傳過來,但不知道自己的消息能否傳過去】

第三次握手:客戶端向服務端發送ACK消息確認【目的:讓服務端知道自己發送的消息客戶端可以接收到】

image-20200810142925258

四次揮手斷開連接

FIN:標誌位,為1時表示請求斷開連接

第一次揮手:客戶端向服務端發送FIN=1的報文

第二次揮手:此時服務端可能會有未發出的消息,所以先給客戶端一個ACK確認消息,表示收到了客戶端的請求

第三次揮手:此時服務端已經發送了所有的消息,然後向客戶端發送一個FIN=1的報文,表示可以斷開請求了

第四次揮手:客戶端收到請求後,給服務端發送ACK確認消息

image-20200810143557466

TCP連接的特點

  • TCP是一種有連接,安全可靠的協議
  • 點對點的通訊模式
  • 在傳輸可靠上的特性:丟包重發,流量控制

TCP是如何保證安全可靠的

宏觀上來看,三次握手和四次揮手的這種有連接的機製為TCP的安全提供了基礎。

更加微觀的看

  • 校驗和(TCP頭部,數據,尾部)
  • 應答機制:不管是對於客戶端還是服務端,每發送一個消息都需要返回一個確認消息,不然就會重發
  • 超時重傳:發送一個包和接受應答包這個時間如果過長,就會重新發送
  • 擁塞控制:發出少量數據來測試網路擁堵情況,然後決定按多大的速度傳送數據

UDP連接的特點

  • UDP是一種無連接,不可靠的協議

  • 支援一對多,多對多的通訊模式

TCP和UDP的區別

  • 是否有連接

    TCP是有連接的,而UDP是無連接的。連接決定是否安全可靠。

  • 傳輸效率

    UDP首部位元組為8個,而TCP首部位元組20個。所以UDP的傳輸效率更高。

  • 通訊模式

    TCP支援點對點,UDP支援一對多,多對多

TCP和UDP首部的區別

  • UDP首部只有8個位元組:源埠,目的埠,校驗和
  • TCP超過20個位元組:源埠,目的埠,校驗和,SYN,ACK,FIN

HTTP請求的過程和原理

  • 發起一個請求後,通過DNS將URL中的域名解析為IP地址
  • 然後根據IP地址,建立與服務端的TCP連接(三次握手)
  • 斷開連接:四次揮手