常見的網絡模型
應用層
傳輸層:TCP、UDP
網絡層:IP
數據鏈路層
物理層
問題一:TCP協議和UDP協議
TCP:1.使用TCP協議前,必須建立TCP連接,形成傳輸數據通道;2.傳輸前採用“三次握手”的方式,是可靠的;3.在連接中可以進行大數據量的傳輸;4.傳輸完畢,需要釋放連接,效率低
UDP:1.將數據、源、目的封裝成數據包,不需要建立連接;2.每個數據包不能超過64k;3.可以廣播發送,不需要確認;4.發送結束後無需釋放資源,效率高。
問題二:TCP的三次握手和四次揮手
TCP的三次握手
第一次握手:客戶端發送syn=x包到服務端,syn:同步序列編號
第二次握手:服務端接受syn包,生成確認包ack=x+1,並且發送自己的syn=y包,所以服務端發送syn+ack包,此時服務端狀態爲SYN_RECV
第三次握手:客戶端接收到syn+ack,發送確認包ack=y+1。此時連接建立成功,客戶端和服務端均爲ESTABLISHED狀態
TCP的四次揮手
第一次揮手:客戶端發送FIN,用來關閉客戶端到服務器的數據傳送,然後等待服務器的確認。其中終止標誌位FIN=1,序列號seq=u。
第二次揮手:服務器收到這個FIN,它發送一個ACK,確認ack爲收到的序號加一。
第三次揮手:服務器關閉了服務器到客戶端的連接,發送一個FIN給客戶端。
第四次揮手:客戶端收到FIN後,併發回一個ACK報文確認,並將確認序號seq設置爲收到序號加一。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。