成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你真的懂“抓包”嗎?

安全 應用安全
在平時和其他大佬交流時,總會出現這么些話,“抓個包看看就知道哪出問題了”,“抓流量啊,payload都在里面”,“這數據流怎么這么奇怪”。這里出現的名詞,都是差不多的意思嗎?

在平時和其他大佬交流時,總會出現這么些話,“抓個包看看就知道哪出問題了”,“抓流量啊,payload都在里面”,“這數據流怎么這么奇怪”。這里出現的名詞,都是差不多的意思嗎?packet,frame,flow,session區別是什么,你真的分的清楚嗎?

平時關系還不大,這幾個名詞隨便用,大家也都知道指什么,這段時間在分析協議類型的漏洞,終于意識到基礎知識的淺薄,才知道自己根本沒分清這幾個基礎概念,看國外一些技術文檔不明所以,于是查了大量資料,寫出了本文。

區分control plane和data plane

control plane, data plane是實現網絡設備所需要理解的兩個基本的概念。data plane一般用于快速轉發,而control plane是為快速轉發準備必要的信息。control plane包括路由協議,設備管理,命令行,ARP,IGMP等;而data plane一般是轉發包。這樣的劃分,目的是把系統的主要工作和次要工作分離開,避免不同類型的處理相互干擾。在一個網絡設備里面,轉發無疑是最主要的工作,它具有***的優先級,而路由協議,由于并不需要在短時間內處理大量的包,所以可以把它放到次一級的優先級里面。data plane可以借助asic或者NP等優化,可以達到很高的速度,而control plane,則可以借助于通用的庫,或者系統,以達到更好的保護。

control plane的os和data plane的os,作用完全不同。data plane的os需要實時響應,并且需要更快速,高效的內存管理,隊列管理,定時器管理等;而control plane的os則傾向于更好的保護,更簡便的編程方式,以及快速移植等。當然,哪些任務放到control plane,哪些任務放到data plane,是需要在實踐中去選擇。舉個例子,由于arp學習和應答的時間是不確定的,而mac learning則是立即生效的。所以arp學習和應答一般放在control plane;而mac learning則放在data plane。

就data plane來說,又可分control path和data path。control path同樣是為data path準備必要的信息。有時為了更快的速度,避免control plane和data plane過多的交互,把control plane的某些工作拿到data plane上來做,比如ICMP的應答等。

區分session和flow

flow是發送方和接收方之間的數據包中的data plane stream,其共享關鍵IP報頭信息。 例如,10.1.1.1端口12398處的客戶端與用于SSH的192.168.1.1端口22處的服務器通信是specific stream,可以在關鍵字段不更改時捕獲該特定stream。

session是發送方和接收方之間的control plane通信。TCP 3次握手創建會話,在發送方的源端口和接收方的目標偵聽端口之間建立連接。TCP窗口大小,初始序列和確認值以及keepalive是作為構建session的一部分進行協商的。

簡單地說,flow代表了data plane,而session代表了control plane。

區分datagram和stream

stream是我們通常認為的通信渠道。比如遠程登錄,文件傳輸,郵件傳遞 ,這個都是使用stream。 Strean就像管道一樣。它有兩個端點。數據從一端放入,另一端出來。沒有任何數據以任何方式被復制,丟棄或重組。兩個流可以組合在一起形成全雙工連接。

datagram(通常稱為packet)本質上更具原子性。它是一小段數據,通常要求小于***長度(通常在256到2000字節范圍內)。datagram是完全自包含的,有源和目的地,但不能被稱為connection。數據報與之前或之后的任何其他數據都沒有任何關系。

很難理解嗎?

我們再打個比方。

stream就像打電話- 一方撥打電話,另一方接聽,你們互相打招呼(TCP中的SYN / ACK),然后交換信息。一旦完成,你就說再見(TCP中的FIN / ACK)。 如果一方沒有聽到再見,他們通常會打電話給另一方,因為這是一個意想不到的事件; 也就是說通常客戶端將重新連接到服務器。這樣可以保證數據不會以與我們發送的順序不同的順序到達,并且可以保證數據不會被損壞。

datagram就像在班級里傳小紙條。如果你和想要拿到小紙條的人不坐在一起,這個小紙條將在其他人之間傳遞過去。小紙條可能無法到達目的地,并且可能會在到達目的地時被修改過。另一種兩款,如果將兩個小紙條傳遞給同一個人,兩個小紙條可能不會按照我們需要的順序到達,因為小紙條們通過教室的路線可能不一樣,一個人可能不會像另一個那樣快速傳遞小紙條,等等會有很多因素影響到小紙條的傳遞。

盡管大多數網絡通信都使用stream,但所有Internet傳輸都采用datagram的形式,實際上是通過TCP協議使用datagram來模擬Internet stream。而為了診斷因特網故障,可以使用諸如TCPdump這類packet decoder來查看各個packet。

區別Packet和frame

為了簡化問題,我們將frame和packet想象為將要從一個人發送到另一個人的信息的信封。 frame和packet之間的關鍵區別在于它們如何封裝信息,而這取決于信息在哪兒被發送。

想象一下,一家公司有跨部門郵件,一個人可以將文檔發送給其本地組織中的另一個人。內容放在內部信封中,發送者在“發件人”字段中寫下他們的姓名和部門,然后在“收件人”字段中寫下收件人的姓名和部門。發送信封時,郵件室識別內部使用信封,讀取目的地名稱和部門,使用目錄將該信息轉換為物理位置(辦公室)并將其傳遞給收件人。信封永遠不會離開本地組織,信封的所有傳遞行為都由本地處理。

部門間信封不能發送到公司外部,因為信封上沒有郵寄地址。要將內容發送到本地以外的辦公室,需要將辦公室間信封放在郵政信封內,并貼上適當的郵政地址標簽。

Frame以類似的方式工作。 它是具有源和目標地址的數據的容器,用于在同一網絡上的兩個位置之間傳遞稱為payload的信息。Frame的源和目標地址不是名稱和部門,而是計算機,平板電腦,IP電話,物聯網設備等的MAC地址,這是每個以太網設備在這個世界上唯一的ID號。

frame由網絡接口設備在TCP/IP協議棧的第2層生成,payload大小取決于傳輸的數據類型。frame被發送到網絡上,以太網交換機根據其存儲器中的MAC表檢查frame的目的地址。MAC表告訴交換機哪個物理端口(RJ45端口)與設備相關聯,該設備的MAC地址與幀的目的地址相匹配。

交換機將frame轉發到由MAC表確定的物理端口。如果電纜直接連接到目的設備,傳輸就完成了。如果電纜連接到另一臺交換機,下一臺交換機將重復查找和轉發過程,直到frame到達預期目的地。

這一切都發生在LAN中的第2層交換機上。與部門間郵件一樣,frame不能在本地/專用網絡之外發送到因特網上,因為它沒有正確的地址。要將數據發送到不同網絡或互聯網服務器上的設備,必須在packet中構建一個frame。

很像部門間信封需要放在郵政信封內發送到不同的辦公室的例子,Ethernet frame用附加信息封裝,以創建一個IPpacket。

雖然網絡設備的MAC地址是唯一,***的,但IP地址通常會臨時分配給網絡設備,并隨著設備連接到不同的網絡而改變。例如,平板電腦每次連接到不同的無線網絡時,其IP地址都會發生變化。packet在網絡的第3層創建,允許不同局域網之間交換信息,通常是通過路由器。路由器將小型網絡互連在一起,允許使用IP地址而不是MAC地址進行更大規模的信息交換。

第3層packet允許路由器使用標識網絡的IP地址和網絡上設備的臨時地址來提供網絡間的數據傳輸(互聯網)。一旦進入網絡,網絡內(局域網)數據轉發由二層交換機處理,它讀取frame的MAC地址,并將其轉發到目的設備,在那里以太網控制器提取payload,完成不同網絡上設備之間的信息傳輸過程。

區分packet capture和flow capture(抓包和抓流量)

Packet capture可以讓我們在網絡數據包通過網絡時拿到鏡像。而flow data通常包含在網絡上設置的連接的摘要。它們都是非常有用的故障排除技術,可以找出網絡上發生的故障。那么這兩種技術有什么區別呢?

Flow capture:在OSI模型的第3層運行的大多數路由器和交換機都具有flow導出選項。有許多flow標準,包括NetFlow,sFlow和IPFIX。 只需安裝一個flow連接器,它可以處理網絡設備使用的任何flow標準。基于flow的分析可以很好地找出網絡中某些部分的通信狀況。它的優點是:

  • 易于在第3層設備上設置操作;
  • 不需要布線;終端用戶系統不需要軟件客戶端或代理。

缺點是:

  • 某些交換機上沒有flow選項;
  • 想要解決問題時缺少詳細信息;
  • 當應用程序依賴其他協議時,不適合在網絡邊緣進行監控

Packet capture: 抓包能夠捕獲在網絡中傳輸的網絡數據包的鏡像。大多數交換機允許在不影響網絡性能的情況下設置鏡像端口。通常,深度數據包檢測(DPI)應用程序連接到鏡像端口,并從數據包中提取某些信息,以便我們可以發現網絡上發生了什么。優點是:

  • 更好地分析應用程序和用戶行為,非常適合監控重要應用程序,服務器或至關重要的Internet連接;
  • 會得到更多的信息,如應用程序,文件,網站和主機名;
  • 終端用戶系統上不需要軟件客戶端或代理。

缺點是:

  • 需要在鏡像端口和DPI應用程序之間連接物理線路;
  • 需要確保鏡像端口在繁忙的網絡上不會過載。

在不清楚區別之前,我們可能會將兩者混為一談,現在應該已經明確區別了。那我們應該使用哪種技術?在一般情況下,兩者都需要用到。如果有大量的WAN鏈接并且需要一種簡單的方法來獲得***程度的可見性,抓流量可能更好。而抓包可以為我們提供網絡上某些節點的更多詳細信息。兩者的結合意味著我們可以更輕松地檢測諸如帶寬占用,以及查看正在使用的應用程序等情況。

結語

需要區分的點都很多,我在文中已經比較好的安排,一步步引出來,從control plane,data plane的區別開始討論,因為這是區分0×03 flow和session的基礎,在0×03中提到了stream的概念,于是在0×04中討論stream和datagram的區別,在0×04***提到了用于解碼分析packet的tcpdump,引出了packet,于是自然在0×05中討論packet和frame。以上基礎概念和去都明確之后,***討論了抓包(packet capture)和抓流量(flow capture)的區別及各自優缺點。

大部分做安全的小伙伴應該都不是網絡工程出身,所以本文或多或少還是有些參考價值的。希望各位師傅能從中獲益。

責任編輯:趙寧寧 來源: Freebuf
相關推薦

2021-01-22 07:48:07

JavaScript 高階函數閉包

2019-10-18 09:50:47

網絡分層模型網絡協議

2019-09-15 10:38:28

網絡分層模型

2023-11-29 08:03:05

2021-08-30 15:41:13

Kafka運維數據

2017-11-07 12:35:53

比特幣區塊鏈虛擬貨幣

2020-03-29 08:27:05

Promise異步編程前端

2021-09-06 10:42:18

Linux命令服務器

2021-04-07 19:44:27

JavaStringHashMap

2018-07-17 16:26:17

大數據營銷消費者

2016-01-07 11:18:50

用戶畫像

2017-05-31 08:45:03

2017-06-27 13:50:37

數據分析Session

2021-07-21 10:10:14

require前端代碼

2017-08-07 08:32:58

泄密網盤存儲

2021-11-08 10:00:19

require前端模塊

2024-10-16 17:10:41

2016-06-01 15:42:58

Hadoop數據管理分布式

2020-04-17 14:25:22

Kubernetes應用程序軟件開發

2022-07-26 00:00:22

HTAP系統數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本粉嫩一区二区三区视频 | 自拍视频一区二区三区 | 久久99精品久久久久久国产越南 | 欧美福利 | 黄a在线播放 | www.日韩 | 久久久久久一区 | 亚洲国产免费 | 国产成人精品网站 | 久久精品国产a三级三级三级 | h视频免费观看 | 国产精品亚洲精品 | 亚洲欧美国产精品一区二区 | 羞羞的视频免费观看 | 亚州毛片 | 亚洲欧洲一区 | 在线免费观看黄a | 天天干夜夜操 | 欧美日产国产成人免费图片 | 欧美6一10sex性hd | 精品乱子伦一区二区三区 | 一区二区三区精品视频 | 色站综合| 久久久黄色 | 日本网站免费在线观看 | 国产精品99精品久久免费 | 少妇一级淫片免费放播放 | 91av在线视频观看 | 日韩三级 | 免费一级黄色电影 | 亚洲精品电影在线观看 | 夜夜夜久久| 麻豆av片 | 亚洲成人精品在线 | 久草免费在线视频 | 中文字幕在线一区二区三区 | 亚洲综合无码一区二区 | 日日夜夜免费精品 | 国产一级黄色网 | 国产精品久久精品 | 国产日韩电影 |