摘要:比如旗下的簡歷,推出了物聯網通信協議,就是基于協議的。報文頭網絡傳輸層中,是面向連接可靠的字節流傳輸。位標志位作用如下標志表示緊急指針是否有效。我們稱攜帶標識的報文段為確認報文段。標志表示通知對方本端要關閉連接了。
# TCP與UDP
一,分析TCP與UDP報文
TCP與UDP都是位于OSI模型傳輸層的兩個協議
(1)UDP的報文頭:
如上圖:UDP基本組成包括16位的源端口號和目的端口號+數據
通過源端口號和目的端口號來進行傳輸;數據部分為保存的具體內容
UDP的特點:
????????????? 1,溝通簡單,不需要處理邏輯、和數據結構;
????????????? 2,不會建立連接,但是會監聽這個地方,誰的數據都接收,也會傳輸數據給別人;
????????????? 3,二愣子,傳輸完數據不管是否丟包,是否會擁塞;
基于UDP實現例子
①直播,直播對實時性的要求比較高,寧可丟包,也不要卡頓的,所以很多直播應用都基于 UDP 實現了自己的視頻傳輸協議。
②實時的游戲,游戲的特點也是實時性比較高,在這種情況下,采用自定義的可靠的 UDP 協議,自定義重傳策略,能夠把產生的延遲降到最低,減少網絡問題對游戲造成的影響。
③物聯網。一方面,物聯網領域中斷資源少,很可能知識個很小的嵌入式系統,而維護 TCP 協議的代價太大了;另一方面,物聯網對實時性的要求也特別高。比如 Google 旗下的 Nest 簡歷 Thread Group,推出了物聯網通信協議 Thread,就是基于 UDP 協議的。
(2)TCP報文頭
網絡傳輸層中,TCP是面向連接、可靠的、字節流傳輸。
TCP協議通信雙方必須先建立連接,通信雙方必須為該連接分配必要的內核資源,以管理連接的狀態和連接上數據的傳輸。TCP是全雙工的,即雙方的數據讀寫可通過一個連接進行。完成數據交換之后,通信雙方都必須斷開連接以釋放系統資源。
TCP協議的這種連接是一對一的,它的字節流服務是多對多的,所以基于廣播和多播(目標是多個主機地址)的應用程序不能使用TCP服務。而無連接的UDP則十分適合這種廣播和多播。
?
?從上往下看報文結構,分析如下:
首先,可以看到16位源端口和目標端口號。和UDP一樣
包的序號:解決亂序問題,先來后到
32位確認號(acknowledgement number):用作對另一方發送來的TCP報文段的響應。其值是收到的TCP報文段的序號值加1。
6位標志位作用如下:
URG標志:表示緊急指針(urgent pointer)是否有效。
ACK標志:表示確認號是否有效。我們稱攜帶ACK標識的TCP報文段為確認報文段。
PSH標志:提示接收端應用程序應該立即從TCP接收緩沖區中讀走數據,為接收后續數據騰出空間(如果應用程序不將接收
到的數據讀走,它們就會一直停留在TCP接收緩沖區中)。
RST標志:表示要求對方重新建立連接。我們稱攜帶RST標志的TCP報文段為復位報文段。
SYN標志:表示請求建立一個連接。我們稱攜帶SYN標志的TCP報文段為同步報文段。
FIN標志:表示通知對方本端要關閉連接了。我們稱攜帶FIN標志的TCP報文段為結束報文段。
狀態位,SYN是發起一個鏈接,ACK是回復,RST是重新連接,FIN是結束連接。
因為TCP是面向連接的,因此需要雙方維護連接的狀態,不然雙方連接狀態的變化會直接導致出錯;
窗口的大小設置,進行流量控制,標識自己當前的處理能力;它告訴對方本端的TCP接收緩沖區還能容納多少字節的數據,這樣對方就可以控制發送數據的速度。
其次,TCP 的順序問題,丟包問題,流量控制都是通過滑動窗口來解決的
擁塞控制時也是通過擁塞窗口來解決的。
延伸常談的一些問題:順序問題、擁塞控制、丟包問題、連接維護、流量控制
二,TCP 的三次握手
首先建立連接,連接后需要連接維護,同時商量如何順序發送包,也就是處理好包的序號問題
TCP 的建立連接稱為三次握手,簡單來說就是鄰居之間日常問候,①老張對老李說;吃飯了不;②老李看到老張消息,回復說:吃了沒吃飽啊,還要整點夜宵不;③老張收到老李消息:可以啊,走起。
理解來說就是,老張發送了吃飯請求也收到了老力吃了的響應,老李收到了老張請求消息并響應了老張的請求。雙方有來有回,和打太極一樣。
詳解分析具體過程
?分析圖中的具體字段意思:closed(未連接)、listen(監聽)、SYN-SENT(同步發送)、SYN-RCVD(同步收到)、ESTABLISHED(建立連接)
分析過程:
①初始狀態,客戶端和服務器都處于 CLOSED 狀態,然后這時服務端主動監聽某個端口,處于 LISTEN 狀態。
②客戶端主動發起連接 SYN(請求建立連接),之后處于 SYN-SENT 狀態,被服務器端監聽到。
③服務端接收了客戶端發起的連接,并返回 SYN(請求建立連接),并且 ACK ( 確認 ) 客戶端的 SYN,然后處于 SYN-SENT 狀態。
④客戶端接收到服務端發送的 SYN 和 ACK ,確認了服務端的請求即ACK了,進入了ESTABLISHED狀態。然后將它確認連接的消息發送給了服務器。
⑤服務器收到了客戶端的ACK,也進入ESTABLISHED狀態。至此這兩兄弟建立友誼連接;
四,TCP與UDP的區別
五,為什么說TCP可以實現可靠連接
? (1) 排好隊,一個一個來,按部就班的進行,有條不紊; TCP 報文頭里面的序號能使 TCP 的數? 據按序到達,從而使傳輸的數據無差錯的,不丟失,不重復,且按順序到達。
(2)誰遲到,誰沒來,都要明確;報文頭里面的確認序號能保證不丟包,累計確認及超時重傳機制
(3)飯量時時管控好,不然肉肉來找抱;報文頭的窗口大小,進行流量控制,標識自己當前的處理能力;它告訴對方本端的TCP接收緩沖區還能容納多少字節的數據,這樣對方就可以控制發送數據的速度。
各位道友學習之后有建議可以共同探討探討哦
一步兩步往上沖~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/118884.html
摘要:協議族的構成數據鏈路層網絡層傳輸層應用層和是網絡層的協議,但是它所工作的內容是鏈路層的。。。發送的時候,協議為每個包編號,簡稱,以便接收的一方按照順序還原。并沒有提供任何機制,表示原始文件的大小,這由應用層的協議來規定。 TCP/IP協議族的構成 * 數據鏈路層:ARP,RARP * 網絡層: IP,ICMP,IGMP * 傳輸層:TCP ,UDP,UGP * 應用層:Telnet,F...
摘要:該狀態會持續最大段生存期,指報文段在網絡中生存的時間,超時會被拋棄時間,若該時間段內沒有的重發請求的話,就進入狀態。 引言 網絡協議是每個前端工程師都必須要掌握的知識,TCP/IP 中有兩個具有代表性的傳輸層協議,分別是 TCP 和 UDP,本文將介紹下這兩者以及它們之間的區別。 想閱讀更多優質文章請猛戳GitHub博客 一、TCP/IP網絡模型 計算機與網絡設備要相互通信,雙方就必須...
摘要:該狀態會持續最大段生存期,指報文段在網絡中生存的時間,超時會被拋棄時間,若該時間段內沒有的重發請求的話,就進入狀態。 引言 網絡協議是每個前端工程師都必須要掌握的知識,TCP/IP 中有兩個具有代表性的傳輸層協議,分別是 TCP 和 UDP,本文將介紹下這兩者以及它們之間的區別。 想閱讀更多優質文章請猛戳GitHub博客 一、TCP/IP網絡模型 計算機與網絡設備要相互通信,雙方就必須...
摘要:代表傳輸控制協議網際協議,指的是一系列協議。,傳輸控制協議是面向連接的協議,也就是說,在收發數據前,必須和對方建立可靠的連接。第二是超文本傳輸協議,信息是明文傳輸,則是具有安全性的加密傳輸協議。 IP:網絡層協議; TCP和UDP:傳輸層協議; HTTP:應用層協議; SOCKET:TCP/IP網絡的API。 TCP/IP代表傳輸控制協議/網際協議,指的是一系列協議。 T...
摘要:在網絡層有協議協議協議協議和協議。而且,因為有確認機制三次握手機制,這些也導致容易被人利用,實現等攻擊。沒有的這些機制,較被攻擊者利用的漏洞就要少一些。但也是無法避免攻擊的,比如攻擊缺點不可靠,不穩定。 簡介 HTTP協議(超文本傳輸協議)和 UDP(用戶數據包協議),TCP 協議(傳輸控制協議) TCP/IP是個協議組,可分為四個層次:網絡接口層、網絡層、傳輸層和應用層。在網絡層有I...
閱讀 3280·2021-11-24 09:38
閱讀 2154·2021-11-23 09:51
閱讀 1745·2021-10-13 09:39
閱讀 2620·2021-09-23 11:53
閱讀 1405·2021-09-02 15:40
閱讀 3656·2019-08-30 15:54
閱讀 1131·2019-08-30 13:04
閱讀 2563·2019-08-30 11:01