日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP/IP协议-概念、应用、开发、Hack

發布時間:2025/4/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP/IP协议-概念、应用、开发、Hack 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TCP/IP協議


一 協議概述

<一> 概念

1 基本概念
? ? Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協議/因特網互聯協議,又名網絡通訊協議,是Internet最基本的協議、Internet國際互聯網絡的基礎,由網絡層的IP協議和傳輸層的TCP協議組成。
? ? TCP/IP 定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給因特網的每一臺聯網設備規定一個地址。
? ??
? ? 數據幀:幀頭+IP數據包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)
? ? IP數據包:IP頭部+TCP數據信息(IP頭包括源和目標主機IP地址、類型、生存期等)
? ? TCP數據信息:TCP頭部+實際數據 (TCP頭包括源和目標主機端口號、順序號、確認號、校驗字等)


2 IP地址
? ? 在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現,我們稱它為主機。為了實現各主機間的通信,每臺主機都必須有一個唯一的網絡地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現混亂。
? ? Internet的網絡地址是指連入Internet網絡的計算機的地址編號。所以,在Internet網絡中,網絡地址唯一地標識一臺計算機。
? ? 我們都已經知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認網絡上的每一臺計算機,靠的就是能唯一標識該計算機的網絡地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協議語言表示的地址。
? ? 在Internet里,IP地址是一個32位的二進制地址,為了便于記憶,將它們分為4組,每組8位,由小數點分開,用四個字節來表示,而且,用點分開的每個字節的數值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數表示法。


3 OSI參考模型
? ? OSI參考模型是ISO的建議,它是為了使各層上的協議國際標準化而發展起來的。OSI參考模型全稱是開放系統互連參考模型(Open System Interconnection Reference Model)。這一參考模型共分為七層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層;


? ? 物理層(Physical Layer)主要是處理機械的、電氣的和過程的接口,以及物理層下的物理傳輸介質等。
? ? 數據鏈路層(Data Link Layer)的任務是加強物理層的功能,使其對網絡層顯示為一條無錯的線路。
? ? 網絡層(Network Layer)確定分組從源端到目的端的路由選擇。路由可以選用網絡中固定的靜態路由表,也可以在每一次會話時決定,還可以根據當前的網絡負載狀況,靈活地為每一個分組分別決定。
? ? 傳輸層(Transport Layer)從會話層接收數據,并傳輸給網絡層,同時確保到達目的端的各段信息正確無誤,而且使會話層不受硬件變化的影響。通常,會話層每請求建立一個傳輸連接,傳輸層就會為其創建一個獨立的網絡連接。但如果傳輸連接需要一個較高的吞吐量,傳輸層也可以為其創建多個網絡連接,讓數據在這些網絡連接上分流,以提高吞吐量。而另一方面,如果創建或維持一個獨立的網絡連接不合算,傳輸層也可將幾個傳輸連接復用到同一個網絡連接上,以降低費用。除了多路復用,傳輸層還需要解決跨網絡連接的建立和拆除,并具有流量控制機制。
? ? 會話層(Session Layer)允許不同機器上的用戶之間建立會話關系,既可以進行類似傳輸層的普通數據傳輸,也可以被用于遠程登錄到分時系統或在兩臺機器間傳遞文件。
? ? 表示層(Presentation Layer)用于完成一些特定的功能,這些功能由于經常被請求,因此人們希望有通用的解決辦法,而不是由每個用戶各自實現。
? ? 應用層(Application Layer)中包含了大量人們普遍需要的協議。不同的文件系統有不同的文件命名原則和不同的文本行表示方法等,不同的系統之間傳輸文件還有各種不兼容問題,這些都將由應用層來處理。此外,應用層還有虛擬終端、電子郵件和新聞組等各種通用和專用的功能。


二 應用



1 協議測試
全面的測試應包括局域網和互聯網兩個方面,因此應從局域網和互聯網兩個方面測試,以下是在實際工作中利用命令行測試TCP/IP配置步驟:
1). 單擊“開始”/“運行”,輸入CMD按回車,打開命令提示符窗口。
2).首先檢查IP地址、子網掩碼、默認網關、DNS服務器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網絡配置,觀查是否正確。
3).輸入ping 127.0.0.1,觀查網卡是否能轉發數據,如果出現“Request timed out”(請求超時),表明配置出錯或網絡有問題。
4).Ping一個互聯網地址,看是否有數據包傳回,以驗證與互聯網的連接性。
5). Ping 一個局域網地址,觀查與它的連通性。
6).用nslookup測試DNS解析是否正確,輸入如nslookup ,查看是否能解析。
如果你的計算機通過了全部測試,則說明網絡正常,否則網絡可能有不同程度的問題。在此不展開詳述。不過,要注意,在使用 ping命令時,有些公司會在其主機設置丟棄ICMP數據包,造成你的ping命令無法正常返回數據包,不防換個網站試試。


2 協議重置
如果需要重新安裝 TCP/IP 以使TCP/IP 堆棧恢復為原始狀態??梢允褂肗etShell 實用程序重置TCP/IP 堆棧,使其恢復到初次安裝操作系統時的狀態。具體操作如下:
1).單擊 開始--> 運行,輸入"CMD" 后單擊"確定";
2).在命令行模式輸入命令
netsh int ip reset C:\resetlog.txt
(其中,Resetlog.txt記錄命令結果的日志文件,一定要指定,這里指定了Resetlog.txt 日志文件及完整路徑。)
運行結果可以查看C:\resetlog.txt
運行此命令的結果與刪除并重新安裝TCP/IP 協議的效果相同。


注意
本操作具有一定的風險性,請在操作前備份重要數據,并根據操作熟練度酌情使用。


三 單個的名詞含義

1 SYN
? ? SYN(synchronous)是TCP/IP建立連接時使用的握手信號。在客戶機和服務器之間建立正常的TCP網絡連接時,客戶機首先發出一個SYN消息,服務器使用SYN+ACK應答表示接收到了這個消息,最后客戶機再以ACK消息響應。這樣在客戶機和服務器之間才能建立起可靠的TCP連接,數據才可以在客戶機和服務器之間傳遞。
? ? TCP連接的第一個包,非常小的一種數據包。


2 ACK
? ? Acknowledgement,即確認字符,在數據通信中,接收站發給發送站的一種傳輸類控制字符。表示發來的數據已確認接收無誤。
? ? 在TCP/IP協議中,如果接收方成功的接收到數據,那么會回復一個ACK數據。通常ACK信號有自己固定的格式,長度大小,由接收方回復給發送方。其格式取決于采取的網絡協議。當發送方接收到ACK信號時,就可以發送下一個數據。如果發送方沒有收到信號,那么發送方可能會重發當前的數據包,也可能停止傳送數據。具體情況取決于所采用的網絡協議。
? ? TCP報文格式中的控制位由6個標志比特構成,其中一個就是ACK,ACK為1表示確認號有效,為0表示報文中不包含確認信息,忽略確認號字段。
? ? ACK也可用于AT24cxx這一系列的EEPROM中。
? ? 在USB傳輸中,ACK事務包用來向主機/設備報告包正確的傳輸。


3 FIN
? ? FIN(ISH)為TCP報頭的碼位字段,該位置為1的含義為發送方字節流結束,用于關閉連接。
? ? 當兩端交換帶有FIN標志的TCP報文段并且每一端都確認另一端發送的FIN包時,TCP連接將會關閉。FIN位字面上的意思是連接一方再也沒有更多新的數據發送。然而,那些重傳的數據會被傳送,直到接收端確認所有的信息。


四 編程







五 黑客攻擊與防御

1 SYN攻擊
? ? SYN 攻擊包括大量此類的包,由于這些包看上去來自實際不存在的站點,因此無法有效進行處理。每個機器的欺騙包都要花幾秒鐘進行嘗試方可放棄提供正常響應。
攻擊性質
? ? SYN攻擊屬于DDoS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和內存資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火墻等網絡系統,事實上SYN攻擊并不管目標是什么系統,只要這些系統打開TCP服務就可以實施。服務器接收到連接請求(syn= j),將此信息加入未連接隊列,并發送請求包給客戶(syn=k,ack=j+1),此時進入SYN_RECV狀態。當服務器未收到客戶端的確認包時,重發請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內偽造大量不存在的IP地址,向服務器不斷地發送syn包,服務器回復確認包,并等待客戶的確認,由于源地址是不存在的,服務器需要不斷的重發直至超時,這些偽造的SYN包將長時間占用未連接隊列,正常的SYN請求被丟棄,目標系統運行緩慢,嚴重者引起網絡堵塞甚至系統癱瘓。


攻擊原理
? ? 歸納起來,主要有兩大類,一類是通過防火墻、路由器等過濾網關防護,另一類是通過加固TCP/IP協議棧防范。
? ? SYN Flood利用TCP協議缺陷,發送了大量偽造的TCP連接請求,使得被攻擊方資源耗盡,無法及時回應或處理正常的服務請求。一個正常的TCP連接需要三次握手,首先客戶端發送一個包含SYN標志的數據包,其后服務器返回一個SYN/ACK的應答包,表示客戶端的請求被接受,最后客戶端再返回一個確認包ACK,這樣才完成TCP連接。在服務器端發送應答包后,如果客戶端不發出確認,服務器會等待到超時,期間這些半連接狀態都保存在一個空間有限的緩存隊列中;如果大量的SYN包發到服務器端后沒有應答,就會使服務器端的TCP資源迅速耗盡,導致正常的連接不能進入,甚至會導致服務器的系統崩潰。


攻擊器
? ? SYN攻擊實現起來非常的簡單,互聯網上有大量現成的SYN攻擊工具。


? ? windows系統下的SYN工具
? ? 以synkill.exe為例,運行工具,選擇隨機的源地址和源端囗,并填寫目標機器地址和TCP端囗,激活運行,很快就會發現目標系統運行緩慢。如果攻擊效果不明顯,可能是目標機器并未開啟所填寫的TCP端囗或者防火墻拒絕訪問該端囗,此時可選擇允許訪問的TCP端囗,通常,windows系統開放tcp139端囗,UNIX系統開放tcp7、21、23等端囗。


檢測攻擊
? ? 檢測SYN攻擊非常的方便,當你在服務器上看到大量的半連接狀態時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。我們使用系統自帶的netstat 工具來檢測SYN攻擊:


# netstat -n -p TCP
tcp 0  0 10.11.11.11:23 124.173.152.8:25882  SYN_RECV -
tcp 0  0 10.11.11.11:23 236.15.133.204:2577  SYN_RECV -
tcp 0  0 10.11.11.11:23 127.160.6.129:51748  SYN_RECV -
tcp 0  0 10.11.11.11:23 222.220.13.25:47393  SYN_RECV -
tcp 0  0 10.11.11.11:23 212.200.204.182:60427 SYN_RECV -
tcp 0  0 10.11.11.11:23 232.115.18.38:278  SYN_RECV -
tcp 0  0 10.11.11.11:23 239.116.95.96:5122 SYN_RECV -
tcp 0  0 10.11.11.11:23 236.219.139.207:49162 SYN_RECV -
...
上面是在LINUX系統中看到的,很多連接處于SYN_RECV狀態(在WINDOWS系統中是SYN_RECEIVED狀態),源IP地址都是隨機的,表明這是一種帶有IP欺騙的SYN攻擊。


我們也可以通過下面的命令直接查看在LINUX環境下某個端囗的未連接隊列的條目數:
#netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l
324
顯示TCP端囗22的未連接數有324個,雖然還遠達不到系統極限,但應該引起管理員的注意。


防范技術
? ? 一類是通過防火墻、路由器等過濾網關防護,另一類是通過加固TCP/IP協議棧防范


注冊表設置
? ? 在“開始->運行->鍵入regedit”
? ? 啟用 SYN 攻擊保護的命名值位于注冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters之下。值名稱:SynAttackProtect。推薦值:2。
? ? 以下部分中的所有項和值均位于注冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters 之下。
? ? 指定必須在觸發 SYN flood 保護之前超過的 TCP 連接請求閾值。值名稱:TcpMaxPortsExhausted。推薦值:5。
? ? 啟用 SynAttackProtect 后,該值指定 SYN_RCVD 狀態中的 TCP 連接閾值,超過 SynAttackProtect 時,觸發 SYN flood 保護。值名稱:TcpMaxHalfOpen。推薦值數據:500。
? ? 啟用 SynAttackProtect 后,指定至少發送了一次重傳的 SYN_RCVD 狀態中的 TCP 連接閾值。超過 SynAttackProtect 時,觸發 SYN flood 保護。值名稱:TcpMaxHalfOpenRetried。推薦值數據:400


豐富帶寬資源
? ? 不難看出syn攻擊消耗帶寬資源所以要想防御synflood一個豐富的帶寬資源是必要的,通常的流量攻擊,攻擊者也是利用肉雞的帶寬資源來達到攻擊堵死網絡的,所以這個是一個前提


防火墻
? ? 利用防火墻來進行防護攻擊是目前最有效的方法,當然前提是攻擊在防護帶寬范圍之內,也就是為什么第二條推薦帶寬資源,這是保證在防火墻前面不會造成堵塞,來達到防火墻的防護目的。

















總結

以上是生活随笔為你收集整理的TCP/IP协议-概念、应用、开发、Hack的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。