tcp/ip知識點的總結

知識點搜集于網絡,在加上自己的總結,還有很多不全,希望大家多提意見,共享學習!

一、TCP/IP是什么?

TCP/IP是一個協議族,而不是單獨的協議。包括arp、ip、icmp、tcp、udp、http、ftp等協議

二、TCP/IP分層

? ? ??

?從上面兩個圖表中可以看出ARP和RARP協議處于的網絡層次不同。由于IP協議使用了ARP協議,所以經常把ARP協議劃歸到網絡層,但是ARP協議的用途是為了從網絡層使用的IP地址解析出在數據鏈路層使用的硬件地址即MAC地址,所以有些地方也把ARP協議劃歸到數據鏈路層,但是一般情況下,我們還是把ARP和RARP協議劃分到網絡層,這個沒有明確的界限。

網絡接口層關鍵元素:MAC,網絡層關鍵元素:IP,傳輸層關鍵元素:端口號

三、TCP/IP數據包的封裝和分用

1、封裝過程,協議棧從上到下,如圖:

數據被送入協議棧中,然后逐個通過每一層直到被當作一串比特流送入網絡。其中每一層收到數據都要增加一些首部信息(有時候還要增加一下尾部信息),最后到達以太網,也就是數據鏈路層,這時候把這這個比特流叫做幀。

2、數據分用過程,從協議棧由下往上,如圖:

目的主機收到以太網數據幀后,首先去掉各層協議加上的報文首部,同時每層協議盒都要去檢查報文首部中的協議標識,以確定接收數據的上層協議

四、TCP協議的三次握手和四次揮手

1、三次握手

?

2、四次揮手

?3、為什么是三次握手,四次揮手?

握手3次原因:tcp中,一方接收到syn報文后,需向對方回應一個ack。三次握手中,第一個是syn報文,第二個是ack、syn報文,第三個ack報文。這樣就都回應了ack,需要3次。

揮手4次原因:tcp中,一方接收到fin報文后,需向對方回應一個ack,并且tcp可以實現半關閉。4次揮手中,第一個fin報文,第二個ack報文(它可能還要繼續傳送數據),第三個是fin報文(它已經不需要繼續傳送數據了),第四個ack報文。這樣就都回應了ack,需要4次

能否揮手3次:能。收到第一個fin報文后,它自己也不需要傳送數據了,回應fin、ack報文,對方再回應ack,總共三次,揮手完畢。實際中抓報文,有很多這樣的情況。

如果出現異常斷開情況,那么會直接發送RST報文,這種情況是兩次握手

五、TCP和UDP區別

1、TCP協議是有連接的,有連接的意思是開始傳輸實際數據之前TCP的客戶端和服務器端必須通過三次握手建立連接,會話結束之后通過四次揮手結束連接。而UDP是無連接的
2、TCP協議保證數據按序發送,按序到達,提供超時重傳來保證可靠性,但是UDP不保證按序到達,甚至不保證到達,只是努力交付,即便是按序發送的序列,也不保證按序送到
3、TCP協議所需資源多,TCP首部需20個字節(不算可選項),UDP首部字段只需8個字節
4、TCP有流量控制和擁塞控制,UDP沒有,網絡擁堵不會影響發送端的發送速率
5、TCP是一對一的連接,而UDP則可以支持一對一,多對多,一對多的通信
6、TCP面向的是字節流的服務,UDP面向的是報文的服務

六、TCP半連接狀態(半開連接,半關連接)

半開連接:

TCP的半開連接是指TCP連接的一端異常崩潰,或者在未通知對端的情況下關閉連接,這種情況下不可以正常收發數據,否則會產生RST(后面內容我們在介紹RST)。
比如一個常見的情況是TCP連接的一端異常斷電,就會導致TCP的半開連接。如果沒有數據傳輸,對端就不會知道本端的異常而一直處于ESTABLISHED狀態。
TCP半開連接是指發送了TCP連接請求,等待對方應答的狀態,此時連接并沒有完全建立起來,雙方還無法進行通信交互的狀態,此時就稱為半連接。
由于一個完整的TCP連接需要經過三次握手才能完成,這里把三次握手之前的連接都稱之為半連接。

半關閉連接:

TCP的半關連接是指TCP連接只有一方發送了FIN,另一方沒有發出FIN包,仍然可以在一個方向上正常發送數據。這種場景并不常見,一般來說Berkeley sockets API調用shutdown()接口時候就會進入半關閉狀態(調用常規的close()一般是期待完整的雙向關閉這個TCP連接),shutdown()接口相當指示程序,本端已經沒有數據待發送,所以我發送一個FIN到對端,但是我仍然想要從對端接收數據,直到對端發送一個FIN指示關閉連接為止。

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

轉載于:https://www.cnblogs.com/stupidbug/p/8325472.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252463.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252463.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252463.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搜索引擎ElasticSearchV5.4.2系列一之ES介紹

相關博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介紹 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2kibanaV5.4.2x-packV5.4.2安裝 搜索引擎ElasticSearchV5.4.2系列三之ES使用 Elasticsearch 是一個開源的搜索引擎,建立在一個全文搜索引擎…

[譯] 前端組件設計原則

原文地址:Front end component design principles 原文作者:Andrew Dinihan 文中示例代碼:傳送門 限于個人能力,如有錯漏之處,煩請不吝賜教。 前言 我在最近的工作中開始使用 Vue 進行開發,但是我在上一家公…

imu_utils標定imu問題解決

在編譯過程中遇到的一些問題可以參照這個女生的文章 https://blog.csdn.net/fang794735225/article/details/92804030 下面是imu_utils的主頁,可以下載代碼,也有使用步驟 https://github.com/gaowenliang/imu_utils 我下載了imu_utils主頁最后面提供…

術語-服務:PaaS

ylbtech-術語-服務:PaaSPaaS是Platform-as-a-Service的縮寫,意思是平臺即服務。 把服務器平臺作為一種服務提供的商業模式。通過網絡進行程序提供的服務稱之為SaaS(Software as a Service),而云計算時代相應的服務器平臺或者開發環境作為服務…

PostgreSQL安裝和簡單配置

PostgreSQL安裝與使用 目錄 依賴包的安裝源碼編譯和安裝初始化數據庫集簇簡單配置依賴包安裝 PostgreSQL源碼安裝依賴以下四個軟件包 readline zlib flex bison 在Ubuntu中可是應用以下命令直接進行安裝: sudo apt-get install libreadline6 libreadline6-dev zlib1…

1.App瘦身經驗總結

為什么apk越來越大? 1.項目不斷發展,功能越多,代碼量增加的同時,資源文件也在不斷的增多2.app支持的主流dpi越來越多,如ldpi、mdpi、hdpi、xh xxh xxxh等等,間接導致資源增多3.引入的第三方sdk或開源庫越來…

研究相機和IMU坐標系變換

剛開始錄制的數據時沒有考慮相機和IMU之間的坐標變換,但是后來發現跟蹤效果不好,去查驗imu數據時,發現,我采集保存的imu數據格式沒有和euroc數據集中的imu數據保存格式統一,所以需要研究的是在euroc用于數據采集的設備…

第五天:Swift拖動 item 重排 CollectionView

參考鏈接:https://www.jianshu.com/p/96f956f1479e 1 import UIKit2 3 enum VC: String {4 case ViewController5 case CollectionViewController6 7 func segueIdentifier() -> String {8 switch self {9 case .ViewController:10 …

MIT Kimera閱讀筆記

這兩天在調研SLAM的最新算法,找到了2019CVPR上的一篇文章,出自于MIT,因為要給其他同事講解,所以就把文章的重點內容在我個人理解的情況下翻譯了出來,有理解不到位的還請各位大佬多多批評指正。 最后附上了Delaunay Tri…

C#中的ForEach

public void ForEach(Action<T> action) 針對List<T>集合中的每個元素執行操作Action<T> action,Action<T>是只接受一個類型為T的傳入參數返回值為void的委托,對于泛型List<T>來說,Action<T>中的類型與List<T>中的類型是相同的.acti…

哈希映射

哈希來源問題&#xff1a;關于統計一個字符串集合中&#xff0c;求出現次數最多的字符串思路&#xff1a;建立一個哈希映射&#xff08;HashMap&#xff09;&#xff0c;其鍵為"字符串"&#xff0c;值為"字符串出現次數"&#xff0c;然后遍歷字符串集合&am…

1月28日云棲精選夜讀 | 終于等到你!阿里正式向 Apache Flink 貢獻 Blink 源碼

如同我們去年12月在 Flink Forward China 峰會所約&#xff0c;阿里巴巴內部 Flink 版本 Blink 將于 2019 年 1 月底正式開源。今天&#xff0c;我們終于等到了這一刻。 熱點熱議 終于等到你&#xff01;阿里正式向 Apache Flink 貢獻 Blink 源碼 作者&#xff1a;技術小能手 發…

ZOJ-3537

題目大意&#xff1a;給你一個n (n<300) 邊形&#xff0c;給出它所有的頂點坐標&#xff0c;讓你把它劃分成n-2個三角形的花費最小值&#xff0c;頂點 a 和 b 相連的花費為 abs(a.xb.x)*abs(a.yb.y)。 如果是凹多邊形輸出無解。 思路&#xff1a;先跑個凸包判斷是不是凸多邊…

你會等待還是離開(大理)---寫的一個推文

你會等待還是離開 -----出發和遇見大理 上關花鬧 下關風薰 蒼山雪寂 洱海月遲 但聞肆季弦雀起 才吹小雨又需晴 現實很調皮&#xff0c;很容易就讓人沒有力氣&#xff0c;就像變與不變&#xff0c;并不復雜&#xff0c;也不遙遠&#xff0c;一個寒假的距離&#xff0c;一句話的力…

sudo rosdep init ERROR: cannot download default sources list from: https://raw.githubusercontent.com

安裝上ros無法進行rosdep init.解決方法如下&#xff1a;https://zhuanlan.zhihu.com/p/77483614 因此&#xff0c;在/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py中頂部直接插入兩行代碼取消SSL驗證 import ssl ssl._create_default_https_context ssl._crea…

YodaOS: 一個屬于 Node.js 社區的操作系統

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; >>> 大家好&#xff0c;很開心在這里宣布 YodaOS開源了。他將承載 Rokid 4年以來對于人工智能和語音交互領域的沉淀&#xff0c;并選擇 Node.js 作為操作系統的一等開發公民&#xff0…

Android頂部粘至視圖具體解釋

不知從某某時間開始&#xff0c;這樣的效果開始在UI設計中流行起來了。讓我們先來看看效果&#xff1a;大家在支付寶、美團等非常多App中都有使用。要實現這個效果&#xff0c;我們能夠來分析下思路&#xff1a;我們肯定要用2個一樣的布局來顯示我們的粘至布局。一個是正常的、…

在實際項目開發中keil的調試方法

轉載2015-06-14 20:23:04 一.在keilc的調試狀態下&#xff0c;如何觀察各個片內外設的運行狀態&#xff1f;如何修改它們的設置&#xff1f;? 在調試狀態下&#xff0c;點擊Peripherals菜單下的不同外設選項命令&#xff0c;就會顯示或隱藏對應外設的觀察窗口。 在程序運行時&…

slam 常用數據集的幀率

1. kitti數據集的幀率約約為10fps,圖像分辨率為1241x376 2. Euroc數據集的幀率約為20fps,圖像分辨率為752x480 3.TUM數據集的幀率約為30fps, 圖像分辨率為640x360 zed相機獲取的HD圖像的分辨率為1280x720p,獲取的VGA圖像分辨率為672x376,mynt相機獲取的VGA圖像的分辨率為640x…

小李飛刀:用python刷題ing....

叨逼叨 默認每天都要刷兩道題。今天目標已完成。 第一題 26. 刪除排序數組中的重復項難度&#xff1a;簡單類型&#xff1a;數組 給定一個排序數組&#xff0c;你需要在原地刪除重復出現的元素&#xff0c;使得每個元素只出現一次&#xff0c;返回移除后數組的新長度。不要使用…