當前位置:成語大全網 - 新華字典 - 請教----病毒專家!

請教----病毒專家!

感染該蠕蟲病毒後網絡帶寬被大量占用,導致網絡癱瘓,該蠕蟲是利用SQL SERVER 2000的解析端口1434的緩沖區溢出漏洞,對其網絡進行攻擊。

網絡常見攻擊及防範手冊(上)

(上) 壹、前言 在網絡這個不斷更新換代的世界裏,網絡中的安全漏洞無處不在。即便舊的安全漏洞補上了,新的安全漏洞又將不斷湧現。網絡攻擊正是利用這些存在的漏 洞和安全缺陷對系統和資源進行攻擊。 也許有人會對網絡安全抱著無所謂的態度,認為最多不過是被攻擊者盜用賬號,造不成多大的危害。他們往往會認為"安全"只是針對那些大中型企事業單位和網站而言。其實,單從技術上說,黑客入侵的動機是成為目標主機的主人。只要他們獲得了壹臺網絡主機的超級用戶權限後他們就有可能在該主機上修改資源配置、安置"特洛伊"程序、隱藏行蹤、執行任意進程等等。我們誰又願意別人在我們的機器上肆無忌憚地擁有這些特權呢?更何況這些攻擊者的動機也不都是那麽單純。因此,我們每壹個人都有可能面臨著安全威脅,都有必要對網絡安全有所了解,並能夠處理壹些安全方面的問題。 下面我們就來看壹下那些攻擊者是如何找到妳計算機中的安全漏洞的,並了解壹下他們的攻擊手法。 二、網絡攻擊的步驟 第壹步:隱藏自已的位置 普通攻擊者都會利用別人的電腦隱藏他們真實的IP地址。老練的攻擊者還會利用800電話的無人轉接服務聯接ISP,然後再盜用他人的帳號上網。 第二步:尋找目標主機並分析目標主機 攻擊者首先要尋找目標主機並分析目標主機。在Internet上能真正標識主機的是IP地址,域名是為了便於記憶主機的IP地址而另起的名字,只要利用域名和IP地址就可以順利地找到目標主機。當然,知道了要攻擊目標的位置還是遠遠不夠的,還必須將主機的操作系統類型及其所提供服務等資料作個全面的了解。此時,攻擊者們會使用壹些掃描器工具,輕松獲取目標主機運行的是哪種操作系統的哪個版本,系統有哪些帳戶,WWW、FTP、Telnet 、SMTP等服務器程序是何種版本等資料,為入侵作好充分的準備。 第三步:獲取帳號和密碼,登錄主機 攻擊者要想入侵壹臺主機,首先要有該主機的壹個帳號和密碼,否則連登錄都無法進行。這樣常迫使他們先設法盜竊帳戶文件,進行破解,從中獲取某用戶的帳戶和口令,再尋覓合適時機以此身份進入主機。當然,利用某些工具或系統漏洞登錄主機也是攻擊者常用的壹種技法。 第四步:獲得控制權 攻擊者們用FTP、Telnet等工具利用系統漏洞進入進入目標主機系統獲得控制權之後,就會做兩件事:清除記錄和留下後門。他會更改某些系統設置、在系統中置入特洛伊木馬或其他壹些遠程操縱程序,以便日後可以不被覺察地再次進入系統。大多數後門程序是預先編譯好的,只需要想辦法修改時間和權限就可以使用了,甚至新文件的大小都和原文件壹模壹樣。攻擊者壹般會使用rep傳遞這些文件,以便不留下FTB記錄。清除日誌、刪除拷貝的文件等手段來隱藏自己的蹤跡之後,攻擊者就開始下壹步的行動。 第五步:竊取網絡資源和特權 攻擊者找到攻擊目標後,會繼續下壹步的攻擊。如:下載敏感信息;實施竊取帳號密碼、信用卡號等經濟偷竊;使網絡癱瘓。 三、網絡攻擊的原理和手法 1、口令入侵 所謂口令入侵是指使用某些合法用戶的帳號和口令登錄到目的主機,然後再實施攻擊活動。這種方法的前提是必須先得到該主機上的某個合法用戶的帳號,然後再進行合法用戶口令的破譯。獲得普通用戶帳號的方法很多,如 利用目標主機的Finger功能:當用Finger命令查詢時,主機系統會將保存的用戶資料(如用戶名、登錄時間等)顯示在終端或計算機上; 利用目標主機的X.500服務:有些主機沒有關閉X.500的目錄查詢服務,也給攻擊者提供了獲得信息的壹條簡易途徑; 從電子郵件地址中收集:有些用戶電子郵件地址常會透露其在目標主機上的帳號; 查看主機是否有習慣性的帳號:有經驗的用戶都知道,很多系統會使用壹些習慣性的帳號,造成帳號的泄露。 這又有三種方法: (1)是通過網絡監聽非法得到用戶口令,這類方法有壹定的局限性,但危害性極大。監聽者往往采用中途截擊的方法也是獲取用戶帳戶和密碼的壹條有效途徑。當下,很多協議根本就沒有采用任何加密或身份認證技術,如在Telnet、FTP、HTTP、SMTP等傳輸協議中,用戶帳戶和密碼信息都是以明文格式傳輸的,此時若攻擊者利用數據包截取工具便可很容易收集到妳的帳戶和密碼。還有壹種中途截擊攻擊方法更為厲害,它可以在妳同服務器端完成"三次握手"建立連接之後,在通信過程中扮演"第三者"的角色,假冒服務器身份欺騙妳,再假冒妳向服務器發出惡意請求,其造成的後果不堪設想。另外,攻擊者有時還會利用軟件和硬件工具時刻監視系統主機的工作,等待記錄用戶登錄信息,從而取得用戶密碼;或者編制有緩沖區溢出錯誤的SUID程序來獲得超級用戶權限。 (2)是在知道用戶的賬號後(如電子郵件@前面的部分)利用壹些專門軟件強行破解用戶口令,這種方法不受網段限制,但攻擊者要有足夠的耐心和時間。如:采用字典窮舉法(或稱暴力法)來破解用戶的密碼。攻擊者可以通過壹些工具程序,自動地從電腦字典中取出壹個單詞,作為用戶的口令,再輸入給遠端的主機,申請進入系統;若口令錯誤,就按序取出下壹個單詞,進行下壹個嘗試,並壹直循環下去,直到找到正確的口令或字典的單詞試完為止。由於這個破譯過程由計算機程序來自動完成,因而幾個小時就可以把上十萬條記錄的字典裏所有單詞都嘗試壹遍。 (3)是利用系統管理員的失誤。在現代的Unix操作系統中,用戶的基本信息存放在passwd文件中,而所有的口令則經過DES加密方法加密後專門存放在壹個叫shadow的文件中。黑客們獲取口令文件後,就會使用專門的破解DES加密法的程序來解口令。同時,由於為數不少的操作系統都存在許多安全漏洞、Bug或壹些其他設計缺陷,這些缺陷壹旦被找出,黑客就可以長驅直入。例如,讓Windows95/98系統後門洞開的BO就是利用了Windows的基本設計缺陷。 2、放置特洛伊木馬程序 特洛伊木馬程序可以直接侵入用戶的電腦並進行破壞,它常被偽裝成工具程序或者遊戲等誘使用戶打開帶有特洛伊木馬程序的郵件附件或從網上直接下載,壹旦用戶打開了這些郵件的附件或者執行了這些程序之後,它們就會象古特洛伊人在敵人城外留下的藏滿士兵的木馬壹樣留在自己的電腦中,並在自己的計算機系統中隱藏壹個可以在windows啟動時悄悄執行的程序。當您連接到因特網上時,這個程序就會通知攻擊者,來報告您的IP地址以及預先設定的端口。攻擊者在收到這些信息後,再利用這個潛伏在其中的程序,就可以任意地修改妳的計算機的參數設定、復制文件、窺視妳整個硬盤中的內容等,從而達到控制妳的計算機的目的。 3、WWW的欺騙技術 在網上用戶可以利用IE等瀏覽器進行各種各樣的WEB站點的訪問,如閱讀新聞組、咨詢產品價格、訂閱報紙、電子商務等。然而壹般的用戶恐怕不會想到有這些問題存在:正在訪問的網頁已經被黑客篡改過,網頁上的信息是虛假的!例如黑客將用戶要瀏覽的網頁的URL改寫為指向黑客自己的服務器,當用戶瀏覽目標網頁的時候,實際上是向黑客服務器發出請求,那麽黑客就可以達到欺騙的目的了。 壹般Web欺騙使用兩種技術手段,即URL地址重寫技術和相關信關信息掩蓋技術。利用URL地址,使這些地址都向攻擊者的Web服務器,即攻擊者可以將自已的Web地址加在所有URL地址的前面。這樣,當用戶與站點進行安全鏈接時,就會毫不防備地進入攻擊者的服器,於是用記的所有信息便處於攻擊者的監視之中。但由於瀏覽器材壹般均設有地址欄和狀態欄,當瀏覽器與某個站點邊接時,可以在地址欄和狀態樣中獲得連接中的Web站點地址及其相關的傳輸信息,用戶由此可以發現問題,所以攻擊者往往在URLf址重寫的同時,利用相關信息排蓋技術,即壹般用javascript程序來重寫地址樣和狀枋樣,以達到其排蓋欺騙的目的。 4、電子郵件攻擊 電子郵件是互聯網上運用得十分廣泛的壹種通訊方式。攻擊者可以使用壹些郵件炸彈軟件或CGI程序向目的郵箱發送大量內容重復、無用的垃圾郵件,從而使目的郵箱被撐爆而無法使用。當垃圾郵件的發送流量特別大時,還有可能造成郵件系統對於正常的工作反映緩慢,甚至癱瘓。相對於其它的攻擊手段來說,這種攻擊方法具有簡單、見效快等優點。 電子郵件攻擊主要表現為兩種方式: (1)是電子郵件轟炸和電子郵件"滾雪球",也就是通常所說的郵件炸彈,指的是用偽造的IP地址和電子郵件地址向同壹信箱發送數以千計、萬計甚至無窮多次的內容相同的垃圾郵件,致使受害人郵箱被"炸",嚴重者可能會給電子郵件服務器操作系統帶來危險,甚至癱瘓; (2)是電子郵件欺騙,攻擊者佯稱自己為系統管理員(郵件地址和系統管理員完全相同),給用戶發送郵件要求用戶修改口令(口令可能為指定字符串)或在貌似正常的附件中加載病毒或其他木馬程序。 5、通過壹個節點來攻擊其他節點 攻擊者在突破壹臺主機後,往往以此主機作為根據地,攻擊其他主機(以隱蔽其入侵路徑,避免留下蛛絲馬跡)。他們可以使用網絡監聽方法,嘗試攻破同壹網絡內的其他主機;也可以通過IP欺騙和主機信任關系,攻擊其他主機。 這類攻擊很狡猾,但由於某些技術很難掌握,如TCP/IP欺騙攻擊。攻擊者通過外部計算機偽裝成另壹臺合法機器來實現。它能滾壞兩臺機器間通信鏈路上的數據,其偽裝的目的在於哄騙網絡中的其它機器誤將其攻擊者作為合法機器加以接受,誘使其它機器向他發送據或允許它修改數據。TCP/IP欺騙可以發生TCP/IP系統的所有層次上,包括數據鏈路層、網絡層、運輸層及應用層均容易受到影響。如果底層受到損害,則應用層的所有協議都將處於危險之中。另外由於用戶本身不直接與底層相互相交流,因而對底層的攻擊更具有欺騙性。

願這裏能成為我們***同的網上家園

2005-01-08 11:52

舉報帖子

復制貼子

加為精華

單貼屏蔽

帖子評價

使用道具

風影

等級:管理員

威望:1500

文章:453

積分:3056

註冊:2004-06-07 QQ 第 2 樓

網絡常見攻擊及防範手冊(下)

6、網絡監聽 網絡監聽是主機的壹種工作模式,在這種模式下,主機可以接收到本網段在同壹條物理通道上傳輸的所有信息,而不管這些信息的發送方和接收方是誰。因為系統在進行密碼校驗時,用戶輸入的密碼需要從用戶端傳送到服務器端,而攻擊者就能在兩端之間進行數據監聽。此時若兩臺主機進行通信的信息沒有加密,只要使用某些網絡監聽工具(如NetXRay for Windows95/98/NT、Sniffit for Linux、Solaries等)就可輕而易舉地截取包括口令和帳號在內的信息資料。雖然網絡監聽獲得的用戶帳號和口令具有壹定的局限性,但監聽者往往能夠獲得其所在網段的所有用戶帳號及口令。 7、利用黑客軟件攻擊 利用黑客軟件攻擊是互聯網上比較多的壹種攻擊手法。Back Orifice2000、冰河等都是比較著名的特洛伊木馬,它們可以非法地取得用戶電腦的超級用戶級權利,可以對其進行完全的控制,除了可以進行文件操作外,同時也可以進行對方桌面抓圖、取得密碼等操作。這些黑客軟件分為服務器端和用戶端,當黑客進行攻擊時,會使用用戶端程序登陸上已安裝好服務器端程序的電腦,這些服務器端程序都比較小,壹般會隨附帶於某些軟件上。有可能當用戶下載了壹個小遊戲並運行時,黑客軟件的服務器端就安裝完成了,而且大部分黑客軟件的重生能力比較強,給用戶進行清除造成壹定的麻煩。特別是最近出現了壹種TXT文件欺騙手法,表面看上去是壹個TXT文本文件,但實際上卻是壹個附帶黑客程序的可執行程序,另外有些程序也會偽裝成圖片和其他格式的文件。 8、安全漏洞攻擊 許多系統都有這樣那樣的安全漏洞(Bugs)。其中壹些是操作系統或應用軟件本身具有的。如緩沖區溢出攻擊。由於很多系統在不檢查程序與緩沖之間變化的情況,就任意接受任意長度的數據輸入,把溢出的數據放在堆棧裏,系統還照常執行命令。這樣攻擊者只要發送超出緩沖區所能處理的長度的指令,系統便進入不穩定狀態。若攻擊者特別配置壹串準備用作攻擊的字符,他甚至可以訪問根目錄,從而擁有對整個網絡的絕對控制權。另壹些是利用協議漏洞進行攻擊。如攻擊者利用POP3壹定要在根目錄下運行的這壹漏洞發動攻擊,破壞的根目錄,從而獲得超級用戶的權限。又如,ICMP協議也經常被用於發動拒絕服務攻擊。它的具體手法就是向目的服務器發送大量的數據包,幾乎占取該服務器所有的網絡寬帶,從而使其無法對正常的服務請求進行處理,而導致網站無法進入、網站響應速度大大降低或服務器癱瘓。現在常見的蠕蟲病毒或與其同類的病毒都可以對服務器進行拒絕服務攻擊的進攻。它們的繁殖能力極強,壹般通過Microsoft的Outlook軟件向眾多郵箱發出帶有病毒的郵件,而使郵件服務器無法承擔如此龐大的數據處理量而癱瘓。對於個人上網用戶而言,也有可能遭到大量數據包的攻擊使其無法進行正常的網絡操作。 9、端口掃描攻擊 所謂端口掃描,就是利用Socket編程與目標主機的某些端口建立TCP連接、進行傳輸協議的驗證等,從而偵知目標主機的掃描端口是否是處於激活狀態、主機提供了哪些服務、提供的服務中是否含有某些缺陷等等。常用的掃描方式有:Connect()掃描。Fragmentation掃描 四、攻擊者常用的攻擊工具 1、DOS攻擊工具: 如WinNuke通過發送OOB漏洞導致系統藍屏;Bonk通過發送大量偽造的UDP數據包導致系統重啟;TearDrop通過發送重疊的IP碎片導致系統的TCP/IP棧崩潰;WinArp通過發特殊數據包在對方機器上產生大量的窗口;Land通過發送大量偽造源IP的基於SYN的TCP請求導致系統重啟動;FluShot通過發送特定IP包導致系統凝固;Bloo通過發送大量的ICMP數據包導致系統變慢甚至凝固;PIMP通過IGMP漏洞導致系統藍屏甚至重新啟動;Jolt通過大量偽造的ICMP和UDP導致系統變的非常慢甚至重新啟動。 2、木馬程序 (1)、BO2000(BackOrifice):它是功能最全的TCP/IP構架的攻擊工具,可以搜集信息,執行系統命令,重新設置機器,重新定向網絡的客戶端/服務器應用程序。BO2000支持多個網絡協議,它可以利用TCP或UDP來傳送,還可以用XOR加密算法或更高級的3DES加密算法加密。感染BO2000後機器就完全在別人的控制之下,黑客成了超級用戶,妳的所有操作都可由BO2000自帶的"秘密攝像機"錄制成"錄像帶"。 (2)、"冰河":冰河是壹個國產木馬程序,具有簡單的中文使用界面,且只有少數流行的反病毒、防火墻才能查出冰河的存在。冰河的功能比起國外的木馬程序來壹點也不遜色。 它可以自動跟蹤目標機器的屏幕變化,可以完全模擬鍵盤及鼠標輸入,即在使被控端屏幕變化和監控端產生同步的同時,被監控端的壹切鍵盤及鼠標操作將反映在控端的屏幕。它可以記錄各種口令信息,包括開機口令、屏保口令、各種***享資源口令以及絕大多數在對話框中出現過的口令信息;它可以獲取系統信息;它還可以進行註冊表操作,包括對主鍵的瀏覽、增刪、復制、重命名和對鍵值的讀寫等所有註冊表操作。 (3)、NetSpy:可以運行於Windows95/98/NT/2000等多種平臺上,它是壹個基於TCP/IP的簡單的文件傳送軟件,但實際上妳可以將它看作壹個沒有權限控制的增強型FTP服務器。通過它,攻擊者可以神不知鬼不覺地下載和上傳目標機器上的任意文件,並可以執行壹些特殊的操作。 (4)、Glacier:該程序可以自動跟蹤目標計算機的屏幕變化、獲取目標計算機登錄口令及各種密碼類信息、獲取目標計算機系統信息、限制目標計算機系統功能、任意操作目標計算機文件及目錄、遠程關機、發送信息等多種監控功能。類似於BO2000。 (5)、KeyboardGhost:Windows系統是壹個以消息循環(MessageLoop)為基礎的操作系統。系統的核心區保留了壹定的字節作為鍵盤輸入的緩沖區,其數據結構形式是隊列。鍵盤幽靈正是通過直接訪問這壹隊列,使鍵盤上輸入妳的電子郵箱、代理的賬號、密碼Password(顯示在屏幕上的是星號)得以記錄,壹切涉及以星號形式顯示出來的密碼窗口的所有符號都會被記錄下來,並在系統根目錄下生成壹文件名為KG.DAT的隱含文件。 (6)、ExeBind:這個程序可以將指定的攻擊程序捆綁到任何壹個廣為傳播的熱門軟件上,使宿主程序執行時,寄生程序也在後臺被執行,且支持多重捆綁。實際上是通過多次分割文件,多次從父進程中調用子進程來實現的。 五、網絡攻擊應對策略 在對網絡攻擊進行上述分析與識別的基礎上,我們應當認真制定有針對性的策略。明確安全對象,設置強有力的安全保障體系。有的放矢,在網絡中層層設防,發揮網絡的每層作用,使每壹層都成為壹道關卡,從而讓攻擊者無隙可鉆、無計可使。還必須做到未雨稠繆,預防為主 ,將重要的數據備份並時刻註意系統運行狀況。以下是針對眾多令人擔心的網絡安全問題,提出的幾點建議 1、提高安全意識 (1)不要隨意打開來歷不明的電子郵件及文件,不要隨便運行不太了解的人給妳的程序,比如"特洛伊"類黑客程序就需要騙妳運行。 (2)盡量避免從Internet下載不知名的軟件、遊戲程序。即使從知名的網站下載的軟件也要及時用最新的病毒和木馬查殺軟件對軟件和系統進行掃描。 (3)密碼設置盡可能使用字母數字混排,單純的英文或者數字很容易窮舉。將常用的密碼設置不同,防止被人查出壹個,連帶到重要密碼。重要密碼最好經常更換。 (4)及時下載安裝系統補丁程序。 (5)不隨便運行黑客程序,不少這類程序運行時會發出妳的個人信息。 (6)在支持HTML的BBS上,如發現提交警告,先看源代碼,很可能是騙取密碼的陷阱。 2、使用防毒、防黑等防火墻軟件。 防火墻是壹個用以阻止網絡中的黑客訪問某個機構網絡的屏障,也可稱之為控制進/出兩個方向通信的門檻。在網絡邊界上通過建立起來的相應網絡通信監控系統來隔離內部和外部網絡,以阻檔外部網絡的侵入。 3、設置代理服務器,隱藏自已的IP地址。 保護自己的IP地址是很重要的。事實上,即便妳的機器上被安裝了木馬程序,若沒有妳的IP地址,攻擊者也是沒有辦法的,而保護IP地址的最好方法就是設置代理服務器。代理服務器能起到外部網絡申請訪問內部網絡的中間轉接作用,其功能類似於壹個數據轉發器,它主要控制哪些用戶能訪問哪些服務類型。當外部網絡向內部網絡申請某種網絡服務時,代理服務器接受申請,然後它根據其服務類型、服務內容、被服務的對象、服務者申請的時間、申請者的域名範圍等來決定是否接受此項服務,如果接受,它就向內部網絡轉發這項請求。 4、將防毒、防黑當成日常例性工作,定時更新防毒組件,將防毒軟件保持在常駐狀態,以徹底防毒。 5、由於黑客經常會針對特定的日期發動攻擊,計算機用戶在此期間應特別提高警戒。 6、對於重要的個人資料做好嚴密的保護,並養成資料備份的習慣。DOS攻擊原理及方法介紹已經有很多介紹DOS(Denial of Service,即拒絕服務)攻擊的文章,但是,多數人還是不知道DOS到底是什麽,它到底是怎麽實現的。本文主要介紹DOS的機理和常見的實施方法。因前段時間仔細了解了TCP/IP協議以及RFC文檔,有點心得。同時,文中有部分內容參考了Shaft的文章翻譯而得。要想了解DOS攻擊得實現機理,必須對TCP有壹定的了解。所以,本文分為兩部分,第壹部分介紹壹些實現DOS攻擊相關的協議,第二部分則介紹DOS的常見方式。1、 什麽是DOS攻擊DOS:即Denial Of Service,拒絕服務的縮寫,可不能認為是微軟的dos操作系統了。好象在5·1的時候鬧過這樣的笑話。拒絕服務,就相當於必勝客在客滿的時候不再讓人進去壹樣,呵呵,妳想吃餡餅,就必須在門口等吧。DOS攻擊即攻擊者想辦法讓目標機器停止提供服務或資源訪問,這些資源包括磁盤空間、內存、進程甚至網絡帶寬,從而阻止正常用戶的訪問。比如:* 試圖FLOOD服務器,阻止合法的網絡通?br>* 破壞兩個機器間的連接,阻止訪問服務* 阻止特殊用戶訪問服務* 破壞服務器的服務或者導致服務器死機 不過,只有那些比較陰險的攻擊者才單獨使用DOS攻擊,破壞服務器。通常,DOS攻擊會被作為壹次入侵的壹部分,比如,繞過入侵檢測系統的時候,通常從用大量的攻擊出發,導致入侵檢測系統日誌過多或者反應遲鈍,這樣,入侵者就可以在潮水般的攻擊中混騙過入侵檢測系統。2、有關TCP協議的東西TCP(transmission control protocol,傳輸控制協議),是用來在不可靠的因特網上提供可靠的、端到端的字節流通訊協議,在RFC793中有正式定義,還有壹些解決錯誤的東西在RFC 1122中有記錄,RFC 1323則有TCP的功能擴展。我們常見到的TCP/IP協議中,IP層不保證將數據報正確傳送到目的地,TCP則從本地機器接受用戶的數據流,將其分成不超過64K字節的數據片段,將每個數據片段作為單獨的IP數據包發送出去,最後在目的地機器中再組合成完整的字節流,TCP協議必須保證可靠性。發送和接收方的TCP傳輸以數據段的形式交換數據,壹個數據段包括壹個固定的20字節頭,加上可選部分,後面再跟上數據,TCP協議從發送方傳送壹個數據段的時候,還要啟動計時器,當數據段到達目的地後,接收方還要發送回壹個數據段,其中有壹個確認序號,它等於希望收到的下壹個數據段的順序號,如果計時器在確認信息到達前超時了,發送方會重新發送這個數據段。 上面,我們總體上了解壹點TCP協議,重要的是要熟悉TCP的數據頭(header)。因為數據流的傳輸最重要的就是header裏面的東西,至於發送的數據,只是header附帶上的。客戶端和服務端的服務響應就是同header裏面的數據相關,兩端的信息交流和交換是根據header中的內容實施的,因此,要實現DOS,就必須對header中的內容非常熟悉。下面是TCP數據段頭格式。Source Port和 Destination Port :是本地端口和目標端口Sequence Number 和 Acknowledgment Number :是順序號和確認號,確認號是希望接收的字節號。這都是32位的,在TCP流中,每個數據字節都被編號。Data offset :表明TCP頭包含多少個32位字,用來確定頭的長度,因為頭中可選字段長度是不定的。Reserved : 保留的6位,現在沒用,都是0接下來是6個1位的標誌,這是兩個計算機數據交流的信息標誌。接收和發送斷根據這些標誌來確定信息流的種類。下面是壹些介紹: URG:(Urgent Pointer field significant)緊急指針。用到的時候值為1,用來處理避免TCP數據流中斷ACK:(Acknowledgment field significant)置1時表示確認號(Acknowledgment Number)為合法,為0的時候表示數據段不包含確認信息,確認號被忽略。PSH:(Push Function),PUSH標誌的數據,置1時請求的數據段在接收方得到後就可直接送到應用程序,而不必等到緩沖區滿時才傳送。RST:(Reset the connection)用於復位因某種原因引起出現的錯誤連接,也用來拒絕非法數據和請求。如果接收到RST位時候,通常發生了某些錯誤。SYN:(Synchronize sequence numbers)用來建立連接,在連接請求中,SYN=1,CK=0,連接響應時,SYN=1,ACK=1。即,SYN和ACK來區分Connection Request和Connection Accepted。FIN:(No more data from sender)用來釋放連接,表明發送方已經沒有數據發送。知道這重要的6個指示標誌後,我們繼續來。16位的WINDOW字段:表示確認了字節後還可以發送多少字節。可以為0,表示已經收到包括確認號減1(即已發送所有數據)在內的所有數據段。接下來是16位的Checksum字段,用來確保可靠性的。16位的Urgent Pointer,和下面的字段我們這裏不解釋了。不然太多了。呵呵,偷懶啊。我們進入比較重要的壹部分:TCP連接握手過程。這個過程簡單地分為三步。在沒有連接中,接受方(我們針對服務器),服務器處於LISTEN狀態,等待其他機器發送連接請求。第壹步:客戶端發送壹個帶SYN位的請求,向服務器表示需要連接,比如發送包假設請求序號為10,那麽則為:SYN=10,ACK=0,然後等待服務器的響應。第二步:服務器接收到這樣的請求後,查看是否在LISTEN的是指定的端口,不然,就發送RST=1應答,拒絕建立連接。如果接收連接,那麽服務器發送確認,SYN為服務器的壹個內碼,假設為100,ACK位則是客戶端的請求序號加1,本例中發送的數據是:SYN=100,ACK=11,用這樣的數據發送給客戶端。向客戶端表示,服務器連接已經準備好了,等待客戶端的確認這時客戶端接收到消息後,分析得到的信息,準備發送確認連接信號到服務器第三步:客戶端發送確認建立連接的消息給服務器。確認信息的SYN位是服務器發送的ACK位,ACK位是服務器發送的SYN位加1。即:SYN=11,ACK=101。這時,連接已經建立起來了。然後發送數據,<SYN=11,ACK=101><DATA>。這是壹個基本的請求和連接過程。需要註意的是這些標誌位的關系,比如SYN、ACK。3、服務器的緩沖區隊列(Backlog Queue)服務器不會在每次接收到SYN請求就立刻同客戶端建立連接,而是為連接請求分配內存空間,建立會話,並放到壹個等待隊列中。如果,這個等待的隊列已經滿了,那麽,服務器就不在為新的連接分配任何東西,直接丟棄新的請求。如果到了這樣的地步,服務器就是拒絕服務了。 如果服務器接收到壹個RST位信息,那麽就認為這是壹個有錯誤的數據段,會根據客戶端IP,把這樣的連接在緩沖區隊列中清