http tcp udp ip 間的關系


首先,我自己梳理一下,其實除了應對以后的筆試,還有需要應對的是自己在編程中對於api的選擇,我在滿足需求時采取哪種方案更好。

 

首先,我需要了解的是tcp/ip是一個協議組,有三大層:

ip 對應於網絡層

 tcp 和 udp 對應於傳輸層

http 對應於應用層 

 socket 屬於api ,是對tcp/ip的封裝。

其中,應用層存在的意義是使tcp/ip傳輸過來的數據內容能夠識別出來。

通過socket 我們才能使用tcp/ip協議

 

CSDN上有個比較形象的描述:HTTP是轎車,提供了封裝或者顯示數據的具體形式;Socket是發動機,提供了網絡通信的能力。

 

(從百度摘錄)

問題1:tcp 有哪三次握手?然后結束時需要握手不?

第一次:客戶端向服務的發送SYN包,等待服務端確認;

第二次:服務端收到客戶端的SYN包,確認客戶端的syn(ack=j+1),向客戶端發送確認包ACK(ack=k),即syn+ack包,發送完畢后,服務端進入SYN_RECV狀態

第三次:客戶端收到服務端的syn+ack包,向服務端發送確認包ack(ack=k+1),發送完畢后,雙方進入establish狀態,完成三次握手。

 

 

問題2:利用socket建立的網絡連接步驟

socket 鏈接至少需要一套套接字,其中客戶端的是client socket ,服務端的是server socket 。

套接字之間連接過程,三個步驟:服務器監聽,客戶端請求,連接確認。

1.服務器監聽:服務端套接字處於等待連接狀態,實時監控網絡,等待客戶端發送請求。

2.客戶端請求:客戶端套接字提出請求,要連接服務端的套接字。客戶端套接字需要指出服務端套接字的ip和端口,向服務端發出請求。

3.連接確認:當服務端套接字接收到客戶端套接字,響應客戶端套接字的要求,建立一個線程,把服務端套接字的描述發送給客戶端。一旦客戶端確認此描述,雙方建立連接。

 

 

 

問題3:http鏈接的特點

http 是超文本傳輸協議,最顯著特點是客戶端發送的每次請求都需要服務器回送響應,在請求結束后,主動釋放連接。

 

問題4:tcp和udp的區別?

tcp是面向鏈接,三次握手是為了保持連接性。

udp是非面相鏈接,就是發送時不需要和對方建立連接,也不需要理會對方是否接收。

udp發送的數據內容,用戶是可以進行驗證的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM