網絡原理-TCP-IP

上一篇:網絡原理之初識

1、HTTP——超文本傳輸協議;
HTML——超文本標記語言;
Web前端中Html主負責內容結構,Css主負責樣式排版,Javacript主負責前端的邏輯(可編程,動態)。

2、客戶端是請求資源的一方,爲了標準化如何找到資源。指定了一個定位資源的標準:
URL:唯一資源標識,使得網絡上的每一個資源都有一個唯一的身份,類似於資源的身份證號,唯一不衝突。
請求資源等同於找1個人,通過URL找 等同於通過身份證找一個人。
URI中最常使用的叫做URL,錯略情況下,可認爲URL = URI。

3、協議://服務器的IP:服務進程的port/在該進程上唯一確定資源的路徑?QueryString

4、解析request的格式
請求行 \r\n 請求頭s \r\n 請求體 (可以沒有的)

  • 爲什麼使用\r\n分割——結合TCP面向字節流來連接,不用特殊分割,無法明確分割各部分
  • 請求頭s = 一組key-value
  • 請求行 (方法 路徑 協議)

5、HTTP協議:
應用層協議——基本是應用層協議上的最常用協議了
主流的HTTP協議還是TCP爲主。

6、規定了狀態,通知客戶端發生了什麼。
狀態 = 狀態碼+描述。
1XX:中間狀態的
2XX:成功相關
3XX:資源被移走的情況
4XX:由於客戶端請求不對
5XX:由於服務器處理出錯

常見狀態:
200 一切正常
301 永久移走
302 臨時移走
307 臨時重定向
400請求格式出錯了
404 請求的資源不存在
500 服務器內部錯誤

7、tomcat是一個Java寫的TCP上的服務器,綁定本地端口,默認8080(http)。HTML的常用 後綴名:html,htm。

8、GET和POST的區別:
1)GET方法不能帶Request Body
SELECT 那張表,條件
那張表——URL
條件——QueryString

2)Post方法允許帶Request Body

GET建議具備等冪性,POST不做要求
冪等性:GET某個URL多少次都不會產生副作用
SELECT一張表2000次結果不變——沒有副作用
INSERT一張表,每次提交,結果就會變化——有副作用。

9、校驗和:checksum——弱正確性校驗——哈希
Checksum 是一種hash算法;
發送方負責結算checksum,並且把結果填到header的校驗和。
接收方收到數據後計算checksum。對比計算後的checksum是否就是UDP header中填寫的checksum。如果不相等,表示數據被破壞了。
校驗和失敗,拒收即可——整個數據報就被丟掉了

10、Udp特點:不可靠性 無連接 面向報文的。

  • 沒有發送緩衝區 ;
  • 你發送了多少數據,它發送多少數據(包含header部分)——面向報文的 ;
  • Send成功,代表數據已經成功發送了;
    Send成功,不代表數據被對方收到了——UDP根本不知道對方收到沒有(不可靠性);
    有了socket,直接就可以發送——沒有連接管理。

11、什麼是TCP目標中的可靠性

  • TCP的數據會被組合或者分割成合適的大小進行發送 ;
  • 確保機制,發送的數據會盡可能的讓對方收到——確認應答+超時重傳;
  • TCP保證不會收到錯誤的數據——校驗和 ;
  • 保證按序傳遞:去重——把收到的重複數據可以辨識出來並丟棄;
  • TCP可以進行“流量控制”——可以根據一些信息,決定發送數據的速度/頻率。
  1. 盡最大努力,把數據發送給對方,數據會被重新組裝,使得更合適發送,確認應答+超時重傳,流量控制;
    2)保證數據按序到達——包括去重;
    3)保證數據不會出錯。

12、確認應答機制
如何確保你是否收到了數據?需要接收方迴應一聲(SN——ASN)。

標記位:1/0
URG:urgent 緊急 16位緊急指針 ;
ACK acknowledge 應答 ACK == 1 表示segment有應答的包的職責,ASN是有效的;
PSHpush 推送 類似於加急快遞——整份數據需要加急處理;
RST reset 重置,告訴對方有錯誤發生;
SYN:synchronized同步;
FIN final最終。

13、如果收不到應答怎麼辦?
超時重傳。
當收到ACK的時候,就把對應的重傳任務取消即可。

14、header中的SN和ASN可以達到什麼目標呢?
1)可以實現確認應答機制——超時重傳地址——盡最大努力,把數據發送給對方(可靠性);
2)接收方可以按照SN進行數據的重新排列後,再把結果給到應用層——保證數據有序傳遞(可靠性);
3)可以辨識出已經接受過的數據——數據去重(可靠性 )。

15、確認應答
SN是發送數據的第一個字節的序列
ASN是希望對方發送的下一個字節的序列

16、超時重傳
不用可以區分爲什麼沒有收到對方的ACK,只管重傳即可,如果接收方重複接收,根據SN辨識出後,直接丟棄即可。

17、結論:
TCP協議棧內部,需要維護一個數據結構,管理這個通信通道上的各種數據,需要維護髮送緩衝區和接收緩衝區,需要事先溝通ISN,這個數據結構——就是通常所講的連接——連接是因爲要保證可靠性而出現的。


在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章