Tcp,http ,SOCKET 複習
阿新 • • 發佈:2018-12-13
TCP:
第一次握手:客戶端發個syn =j包給伺服器,進入syn_send 狀態 傳送狀態
第二次握手 伺服器收到syn 發syn=k和ack=j+1的包給客戶端進入SYN_RECV 接收狀態
第三次握手 客戶端收到伺服器的包,想伺服器發ack=k+1,伺服器和客戶端都進入ESTABLISHED狀態
這之間包中不會包含資料,握手完之後正式傳遞資料
在雙方不進行斷開操作的情況下都不會斷開連線
HTTP
客戶端發請求,請求結束後,自動釋放連線, 從建立連線到關閉稱為一次連線。
socket
支援TCP/IP協議的基本操作單元,包含 連線使用的協議,本地主機的ip,本地程序的協議埠
,遠端主機的ip地址,遠地程序的ip地址
建立Socket連線至少需要一對套接字,一個運行於客戶端,稱為ClientSocket ,另一個運行於伺服器端,稱為ServerSocket
1.伺服器監聽:伺服器處於等待連線的狀態,等客戶端請求
2.客戶端請求:客戶端拿著自己的套接字,去請求伺服器端的套接字
3.確認連線:伺服器端套接字接收到客戶端的套接字請求,就建立連線,併發伺服器端套接字給客戶端。
客戶端接到伺服器端的套接字並確認之後,雙方建立連線。
tcp與udp:
tcp建立連線要3次握手,連線更可靠。
udp不需要,資料發出之後不管對方能不能收到。udp網路開銷小,傳輸速率快。雖然不安全,但是可以對udp進行改造,進行傳輸資料校驗。