TCP/IP協議簡介
TCP/IP協議是一系列的網絡協議的總和,它一共分為四個部分:
應用層、傳輸層、網絡層、鏈路層
網絡層: 有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議
傳輸層: 有TCP協議與UDP協議
應用層: 有FTP、HTTP、TELNET、SMTP、DNS等協議
TCP和UDP的區別
1. TCP是面向有連接的;UDP是無連接的即發送數據之前是不需要建立連接的
2. TCP傳輸數據要通過三次握手來建立連接,在斷開的時候需要進行四次揮手,在數據傳遞的時候有重傳的機制。傳輸效率低,但傳輸的數據更為可靠
UDP因為是無連接的傳輸效率搞,但是不保證數據的到達,不可靠
3. TCP對系統資源要求比較多,UDP對系統資源要求比較少
TCP的三次握手和四次揮手
三次握手:
第一次:客戶端向服務器發送SYN(seq=x),並進入SYN-SEND狀態,等待服務器的確認
第二次:服務器接收客戶端發的SYN,知道客戶端要連接,即發送一個SYN(seq=y) 和 ACK (ACK=X+1) 返回給客戶端,此時服務器進入SYN_RCVD狀態
第三次:客戶端接收到服務器發送給自己的SYN和ACK后,向服務器返回ACK(ACK=y+1) 此時客戶端與服務器完成三次握手,建立連接
四次揮手:
第一次:客戶端主動關閉連接,發送FIN(seq=u)的報文給服務器,並進入FIN_WAIT_1的狀態
第二次:服務器收到客戶端發送的FIN報文后,回應一個ACK(ACK=u+1)報文,進入CLOSED_WAIT狀態,客戶端收到報文后,進入FIN_WAIT_2狀態
第三次:服務器再次向客戶端發送FIN(seq=v)報文,進入LAST_ACK狀態
第四次:客戶端收到FIN報文后,向服務器發送ACK(ACK=v+1)報文,進入TIME_WAIT狀態,此時客戶端與服務器斷開連接,完成四次揮手
HTTP簡介
HTTP(超文本傳輸協議)是利用TCP在兩台電腦(通常是Web服務器和客戶端)之間傳輸信息的協議
什么是socket
socket(簡稱 套接字) 是進程(就是運行中的程序)間通信的一種方式,它與其他進程間通信的一個主要不同是:
它能實現不同主機間的進程間通信,我們網絡上各種各樣的服務大多都是基於 socket 來完成通信的
例如: 我們每天瀏覽網頁、QQ 聊天、收發 email 等等
總結:
HTTP協議基於TCP 建立Socket套接字去建立一個TCP/UDP連接,然后TCP/UDP使用IP協議來實現網絡之間的連接
如果把IP協議比喻成一個高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口
TCP和UDP是高速公路上的“卡車”,它們攜帶的貨物就是像HTTP,文件傳輸協議等
