1. 程式人生 > >第二章、常見的協議和標準

第二章、常見的協議和標準

mage png 數據信息 信息 不能 沒有 表示 正常的 nbsp

1. DNS協議

  DNS協議的作用就是將域名解析為IP。

2.TCP/IP協議和Socket

  TCP在傳輸前會有三次握手,傳完數據端口需要四次揮手。理解過程需要先理解TCP中的兩個序號和三個標誌位的含義。

     seq :sequence number,表示所傳輸數據的序號。TCP傳輸時每一個字節都有一個序號。發送數據時會將數據的第一個序號發送給對方,接收方會按序號檢查是否接受完整。

     ack:ackonledgement number,確認號。接收端用它來給發送端反饋已經成功接受到數據信息,它的值為希望接受的下一個數據包起始序號,也就時ack值所代表的序號前面的數據已經成功接受了。

     ACK:確認位。只有ACK=1的時候ack才起作用。正常通信時ACK=1,第一次發起請求時因為沒有需要確認接受的數據所以ACK為0;

     SYN:同步位,用於在建立連接時同步序號。剛開始建立連接時並沒有歷史接受的數據,所以ack也就沒有辦法設置,這時按照正常的機制就無法運行了,SYN的作用就時解決這個問題的,當接受端接受到SYN=1的報文時就會直接將ack設置為接受到的seq+1的值。SYN會在兩次握手時都為1,因為通信雙方的ack都需要設置一個初始值。

     FIN:終止位,用來在傳輸數據完畢後釋放連接。

    

技術分享圖片

    TCP/IP協議只是一套規則,並不能具體工作,就像是程序中的接口一樣,而Socket是TCP/IP協議的一個具體的實現。

3.HTTP協議

  HTTP協議是應用層的協議,在TCP/IP協議接受到數據之後需要通過HTTP協議來解析才可以使用。電報中的編碼和解碼就相當於網絡傳輸中的HTTP協議。

  HTTP報文:請求報文,響應報文。都包含三部分:首行、頭部、主體。

  技術分享圖片

4.Servlet與java web開發

  Servlet 是java web開發的標準。通過TCP/IP協議、HTTP協議已經可以得到數據了,servlet的作用就是對接受到的數據進行處理並生成要返回給客戶端的結果。標準和協議一樣不能真正幹活,要想使用servlet需要有常見的servlet容器才行,例如Tomcat。

第二章、常見的協議和標準