網絡工程知識點

了解背景

協議的產生,是為了世界各地的計算機用相同的方式有效的去進行溝通。好比不同國家的人使用英語交流。

模型分層

  • TCP/IP協議的四層劃分
  • TCP/IP協議的五層劃分
  • OSI七層劃分
劃分圖

物理層:確保原始數據可在物理媒介上傳輸。
數據鏈路層:將網絡層接收到的數據可靠的傳輸到相鄰節點的目標機網絡層。
網絡層:實現不同計算機之間數據透明傳送;路徑選擇、路由和邏輯尋址。IP協議非常簡單,僅僅提供不可靠無連接的傳輸。協議:IP協議。設備:路由器。協議:以太網協議。設備:網橋、交換機。
傳輸層:負責將上層(應用層)數據分段并提供端到端、可靠或不可靠的傳輸。以及端到端差錯控制和流量控制。協議:TCP、TUP。設備:網關。
會話層:負責進程的建立、管理、粽子進程之間的會話。
表示層:對上層信息進行數據轉化保證一個計算主機能被另外一個計算主機接受和理解。轉化方式:加密、解壓、格式轉化。
應用層:最靠近用戶的OSI層。為用戶的應用程序提供協議,將用戶的操作轉化為服務發,并匹配一個相應的服務協議送給傳輸層。

IP

用于計算機之間通信;無連接的通信協議;通過IP,將數據割分成不同的包在因特網上傳送。IP負責將沒有包路由到它的目的地。

IP地址

沒個計算機必須有IP地址才能連接因特網,每一個IP包必須有一個地址才能傳送到另外一個計算機。IP地址(網絡號+主機號)。TCP/IP使用32比特進行編碼。計算機一個字節是8比特,所以TCP/IP使用4個字節做地址,一個字節(00000000)可以有256種形式。所以我們的IP地址為0-255。255.255.255.255樣式。

TCP/IP

TCP/IP:TCP和IP共同工作。
HTTP(貨物)
TCP(貨車):負責應用軟件之間網絡軟件之間的通信。
IP(高速公路):負責計算機之間的通信。
過程:TCP把數據分割成并裝入IP包,然后在他們到達的時候重新組合它。IP負責把這個包發送到目標計算機。
TCP報文形式

TCP報文

TCP三次握手和四次揮手

三次握手和四次揮手

TCP三次握手

TCP三次握手是指發送三次包才能完成連接,同步連接雙方的序列號和確認號并交換TCP窗口大小的信息。
第一次握手:客戶端發送SIN(隨機數seq=J)給到服務器。客戶端進入SYN_SENT
第二次握手:服務器接收SIN=J。發送一個確定收到ACK=J+1和自己的SIN(隨機數seq=K)給到客戶端。服務器進入SYN_RCVD;
第三次握手:檢查ACK是否正確,如果正確發送一個ACK=K+1給到服務器。服務器確認后。兩者都進入ESTABLISHED

TCP四次揮手

第一次揮手:客戶端發送FIN(隨機seq=M)給到服務器,客戶端進入FIN_WAIT。
第二次揮手:服務器接受FIN=M,發送一個ACK=M+1給到客戶端,服務器進入LOSE_WAIT。
第三次揮手:服務器發送一個自己的FIN(隨機seq=N)給到客戶端,服務器進入LASR_ACK。
第四次揮手:客戶端接收到ACK并確定正確,當自己不需要再接受信息時自己發送一個ACK=N+1給到服務器,進入TIME_WAIT。服務器接收確認,變成CLOSE狀態。

為什么建立連接是三次握手,而關閉連接卻是四次揮手呢?

這是因為服務端在LISTEN狀態下,收到建立連接請求的SYN報文后,把ACK和SYN放在一個報文里發送給客戶端。而關閉連接時,當收到對方的FIN報文時,僅僅表示對方不再發送數據了但是還能接收數據,己方也未必全部數據都發送給對方了,所以己方可以立即close,也可以發送一些數據給對方后,再發送FIN報文給對方來表示同意現在關閉連接,因此,己方ACK和FIN一般都會分開發送

為什么TIME_WAIT狀態需要經過2MSL(最大報文段生存時間)才能返回到CLOSE狀態?

一、保證TCP協議的全雙工連接能夠可靠關閉
二、保證這次連接的重復數據段從網絡中消失
先說第一點,如果Client直接CLOSED了,那么由于IP協議的不可靠性或者是其它網絡原因,導致Server沒有收到Client最后回復的ACK。那么Server就會在超時之后繼續發送FIN,此時由于Client已經CLOSED了,就找不到與重發的FIN對應的連接,最后Server就會收到RST而不是ACK,Server就會以為是連接錯誤把問題報告給高層。這樣的情況雖然不會造成數據丟失,但是卻導致TCP協議不符合可靠連接的要求。所以,Client不是直接進入CLOSED,而是要保持TIME_WAIT,當再次收到FIN的時候,能夠保證對方收到ACK,最后正確的關閉連接。
再說第二點,如果Client直接CLOSED,然后又再向Server發起一個新連接,我們不能保證這個新連接與剛關閉的連接的端口號是不同的。也就是說有可能新連接和老連接的端口號是相同的。一般來說不會發生什么問題,但是還是有特殊情況出現:假設新連接和已經關閉的老連接端口號是一樣的,如果前一次連接的某些數據仍然滯留在網絡中,這些延遲數據在建立新連接之后才到達Server,由于新連接和老連接的端口號是一樣的,又因為TCP協議判斷不同連接的依據是socket pair,于是,TCP協議就認為那個延遲的數據是屬于新連接的,這樣就和真正的新連接的數據包發生混淆了。所以TCP連接還要在TIME_WAIT狀態等待2倍MSL,這樣可以保證本次連接的所有數據都從網絡中消失。

SYN攻擊

在三次握手過程中,Server發送SYN-ACK之后,收到Client的ACK之前的TCP連接稱為半連接(half-open connect),此時Server處于SYN_RCVD狀態,當收到ACK后,Server轉入ESTABLISHED狀態。SYN攻擊就是Client在短時間內偽造大量不存在的IP地址,并向Server不斷地發送SYN包,Server回復確認包,并等待Client的確認,由于源地址是不存在的,因此,Server需要不斷重發直至超時,這些偽造的SYN包將產時間占用未連接隊列,導致正常的SYN請求因為隊列滿而被丟棄,從而引起網絡堵塞甚至系統癱瘓。SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態且源IP地址是隨機的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現行:

TCP和DUP的區別

  • TCP面向連接(如打電話需要先鏈接了才能通話);UDP不需要連接就可以發送信息,發數據前不需要建立連接。
  • TCP提供可靠服務,信息無差錯、不丟失、無重復、且按序到達;UDP是不可靠傳輸,不確定信息是否送到。
  • TCP面象字節流,把數據看成無結構的字節流;DUP面象報文,沒有做阻塞控制,不會影響源主機的發送頻率(在一些應用上顯得很重要,如IP電話、實時會議等)
  • TCP首部開銷20字節;UDP首部開銷8字節,相對來說開銷小。
  • TCP是一對一點對點;UDP可以一對多、多對一、一對一。
  • TCP是全雙工可靠通道;UDP是不可靠通道。

TCP可靠性

  • 校驗和
  • 確認應答與序列號
  • 超時重傳
  • 連接管理
  • 流量控制
  • 擁塞控制(慢啟動,擁塞避免,快重傳,快恢復)
    參考文章

如何針對App弱網情況優化

參考文章

HTTPS和HTTP有什么區別,HTTPS加密過程是什么樣的,對稱加密和非對稱解密各有什么優缺點?

HTTPS是擁有SSL/TLS加密的HTTP網絡協議。加密傳輸、身份認證,是比HTTP安全的網絡協議。
作用 提供安全的傳輸通道;確認網站的真實性。
參考文章

Socket和Http通信原理

Socket是對TCP/IP協議的封裝,Socket本身并不是協議,而是一個調用接口(API),通過Socket,我們才能使用TCP/IP協議,主要利用三元組【ip地址,協議,端口】。
HTTP協議即超文本傳輸協議,是Web聯網的基礎,也是手機聯網常用的協議之一,http協議是建立在TCP協議之上的一種應用。

Socket和HTTP區別

socket連接:socket連接即是所謂的長連接,理論上客戶端和服務端一旦建立連接,則不會主動斷掉;
Http連接:http連接就是所謂的短連接,及客戶端向服務器發送一次請求,服務器端相應后連接即會斷掉。

參考文章

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容