學網路通訊協定方法-轉

來源:互聯網
上載者:User
我是這樣學網路通訊協定的-值得新人蔘考
 
 
 網路這東西就是一個靠實踐的東西,只靠看書是不行的。當年在學校還上過史美林教授/張公忠教授所講的電腦網路體繫結構課,用的是Tanabaum寫的那本,考試還得了九十多分,可實際還是連TCP和UDP有什麼區別都分不清,就是死記硬背,到畢業的時候基本上是忘光了,工作後等於重新來過。上班了要在Linux做一些底層的網路處理,不得不從頭來學Linux和網路,編程部分主要看Richard Stevens的那幾本書:APUE、UNP、TCP/IP Illustraion等,學Linux則看得很雜,市面上各種Linux入門書大都翻了一遍,俺是習慣在書店裡看書,愛看書而不愛買書,汗,,然後就是去各大BBS、論壇把他們的精華區都下載下來狂看,邊看邊實踐,基本上在一個月內熟悉了Linux的操作。學網路通訊協定剛開始也是看書,但看了之後沒多少印象,那些東西靠死記真是沒法記的,後來找到一個好辦法,就是自己寫個sniffer,自己寫個協議分析器,先學怎麼抓包,就看tcpdump的源碼,然後看libpcap的源碼,知道了什麼是網卡的混雜模式,很快就能抓到網卡上包的。接下來就是對包進行分析,就看作TCP/IP Illustraion,從以太頭、ARP/IP、ICMP/IGMP/TCP/UDP、HTTP/FTP/TELNET/SMTP等這麼一點一點、一個欄位一個欄位分析下來,很快就明白了所謂TCP/IP到底是怎麼回事。另外為了學TCP狀態轉換表,根據所抓的包的TCP標誌分析通訊雙方當前是什麼狀態,剛開始還只能從頭一方發SYN包開始分析,到後來是可從串連中間包如手就能逐漸判斷雙方的TCP狀態,基本上是徹底搞清楚了TCP的狀態轉移是怎麼回事,後來再理解防火牆的狀態檢測原理就很容易了。另外在分析過程中,為徹底掌握IP片段,還特地ping大包來抓,把抓上來的包自己重組,搞明白了IP頭的片段offset欄位是怎麼用的。能抓包後進而又開始學如何自己構造包來“幹擾”正常通訊了,開始是學怎麼發TCP的RST包來切斷一個正常的TCP串連,就的學會如何計算IP頭校正和,TCP校正和,知道了算TCP校正和時必須加IP偽頭資料,然後是正確計算序號和確認號,知道了原來SYN和FIN標誌也是算一位的,最重要的是理解了什麼是網路序什麼是主機序,現在基本把ntohs(l),htons(l)處理都成了一種編程的本能意識了。學會用RST切斷TCP後,進一步實現了直接發一個頁面資訊告訴用戶端訪問了非法資訊,也就是以後實現URL過濾時用戶端顯示的拒絕畫面。後來也學發ARP資訊胡亂通告MAC地址,也就是以前寫的那篇ARP攻擊的由來。後來俺寫的這個協議分析器逐步完善,能解析的就解析,不能解析的就列印出16進位數,可列印字元也列印出來,對HTTP、FTP、POP3、SMTP這些文本協議幾乎就一下看明白了,對於非文本協議,如DNS,也根據協議解析了出來,而且解析DNS時不得不用了我一向不愛用的遞迴方法來編程。隨著網路應用的增加,在用到前都先作協議解析,除了各種TCP、UDP的協議,還增加了BPDU、PPPOE、OSPF、ESP、AH、IKE等的解析處理,現在俺的協議分析器也可以分析上百種協議,平時抓包就只用俺這個,TCPDUMP基本不再用了,畢竟自己寫的自己更清楚,如果有不能解析的再現加進去。現在學新協議時,往往先抓包看看協議的基本資料格式,再看RFC瞭解細節。學協議剛開始是看書,到後來要更深入瞭解或追詢最新發展情況就只能看RFC了,畢竟網路的東西變化太快,書的東西只能算入門,說不定很快就出新的了,到現在也看了數百篇的RFC了。通過編程分析來學協議,慢是慢了點,花了一個多月的時間,但感覺學得紮實,正所謂磨刀不誤砍柴功,而且一通百通。到現在雖然已經好幾年了,IP頭,TCP頭有哪些欄位還是一下就可以說得出來,對理解各種網路攻擊原理從而進行防範更是有協助,我覺得對我來說這種方法是很有效,如果哪位覺得有更有效學習方法,可以共同交流一下

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.