網路埠本質上是不是就是乙個接受 傳送資料報的佇列?黑客攻擊就是利用這一點?

時間 2021-06-03 00:10:03

1樓:

最近在看追蹤Linux TCP/IP. 剛好, 來答一下, 如有不對, 請指正.

我覺得, 埠對應的是乙個listen_sock 的佇列, 每個元素是個監聽結構, 它又可以accept連線

我看到的是, linux 裡面有個全域性量 tcp_hashinfo, 當伺服器使用listen()的時候, 系統會根據sk得到乙個hash, 以這個hash作為索引來得到乙個listen_sock監聽佇列, 也就是:

list = &hashinfo->listening_hash[inet_sk_listen_hashfn(sk)];

然後把sk 鏈到 list. 這裡, 由於它是佇列, 所以可以有多個程序或執行緒同時監聽乙個埠

accept被呼叫的時候, 從conglisten_sock後面的request佇列中取出第乙個請求, 接下去通訊

所以, 埠是被人為分離的hash佇列

至於黑客入侵, 我覺得程式都會有漏洞, C程式尤其如此, 而C程式經久不衰的溢位漏洞也是乙個突破點. 更多的可能是應用層的邏輯錯誤, 比如SQL注入, 比較簡單也比較容易被忽略.

2樓:Dion

網路 TCP/IP 的四層結構知道吧?埠這個概念是在傳輸層的,但是在應用層被抽象化,只用當成乙個與特定處理程式對應的數字即可。

要從技術角度,說本質的話,應該這樣講:

(1)傳送方

TCP協議會在自己的資料段放一些資訊(埠、序列號、長度、確認號、校驗和、視窗、當然還有資料 ……)

這裡面的前 16 位(bit)表示資料的源埠,第 17-32 位表示目標埠。

於是,這樣的資料會被當成乙個整體,傳遞給 Internet 層再封裝。

(2)接收方

協議棧解析收到的資料,當傳遞到傳輸層時,然後讀取裡面的第 17-32 位,然後解析為乙個無符號整數。因此埠號,最大不超過 65535。作業系統會從自身維護的乙個埠表中找到對應的程式(比如 80 埠對應 httpd ),然後喚醒這個程式,將控制流程交給他處理。

這一步就是從傳輸層提交給應用層的乙個過程。

然後還有,黑客是可以攻擊網路協議棧中任意一層的。應用層其實比較容易,因為應用層的程式是大部分程式設計師所寫的,找出它們的漏洞比找出協議自身的漏洞和作業系統的漏洞要簡單的多…

3樓:tfbot

埠(Port)大致有兩種意思:一是物理意義上的埠,比如,ADSL Modem、集線器、交換機、路由器用於連線其他網路裝置的介面,如RJ-45埠、SC埠等等;二是邏輯意義上的埠,一般是指TCP/IP協議中的埠,埠號的範圍從0到65535,比如用於瀏覽網頁服務的80埠,用於FTP服務的21埠等等。

你說的是軟體上的埠,包括一些資料結構和I/O(基本輸入輸出)緩衝區(或者你說的佇列也差不多)。網路通訊都需要通過埠,黑客攻擊也需要通過埠,但並不一定都是利用埠的漏洞,雖然有一些埠的漏洞是可以被利用的(比如Brown Orifice利用8080埠)。

4樓:何波

同乙個ip要提供多個服務,就要通過埠來識別。比如80是http服務,21是ftp服務等。黑客攻擊更多是利用遠端服務本身的漏洞,因為每個服務必然對應乙個服務程式,這個服務程式特定的版本也許有特定的漏洞,比如緩衝溢位,比如sql注入等,通過了解服務程式的版本,就能嘗試通過埠來攻擊。

明日方舟本質上是乙個悲劇嗎

先說一下我理解的悲劇 主角在矛盾衝突中以悲慘的結局而告終 從舟遊目前的走向來看,作為一款手遊,悲劇的成分微乎其微黑暗風格不一定就是悲劇,乙個遊戲劇情也不能單單以悲劇二字來表達不如說悲劇這個詞用在戲劇上會更為巧妙,因為戲劇會更加突出矛盾點,而遊戲劇情只是服務於遊戲本身,並不是作為主要內容 假斯特為 是...

決定論和宿命論本質上是不是一樣?

凌語野 宿命論認為冥冥中一切都被預先注定,它指向結局,籠統且帶有神秘色彩。決定論則認為一切都由因果鏈條環環相扣而成,它指向過程,具體而精確。說某人只能活到三十歲,到他三十歲那年絕對死翹翹,至於這位不幸死翹翹的傢伙是怎麼死的,到那時自然會知道,這是宿命論。決定論則演示為 這位英年早逝者由於一系列原因,...

請問乙個人衣品好不好,潮不潮,本質上是不是這個人花錢的能力一種體現。

check查 在目前這種全民 熱 潮的情況看來,衣品很大程度是和花錢能力掛鉤的。潮牌之所以是潮牌,與其品牌文化 樣式設計 材質做工等方面有很大關係。而衣品的體現,又是乙個人對這些方面的了解程度以及各單品的搭配能力所決定的。沒有一定的購買 著裝經驗,很難在短時間內形成好的衣品。要獲得這些經驗又需要一定...