網絡必備知識小結

什麼是網絡?網絡最初是由美國軍事部門搞出來用於跨平臺通信的協議。後來被廣泛商用化,普及化。網絡協議有兩種:OSI七層協議,和TCP/IP協議。第一種是一幫標準化組織的科學家搞出來,將網絡抽象成7層模型。分別爲:應用層,表示層,會話層,傳輸層,網絡層,鏈路層,還有物理層。具體的模型圖如下所示:





















設計的核心思想是各層之間都是相互透明的,每層只與對應的相同層打交道。這樣一來方便各層的獨立發展和改進,二來也有利於基礎設備的建設,比如:對於鏈路層來說,不管物理層怎麼變化,設備如何更新,只要提供的服務沒有變化就可以。這7層模型分類固然好,講網絡抽象的非常完美,但是十分不利於商用。簡單來說就是真正實施起來特別費勁,可能這也是科學家與工程師,理論與實際之間的差別吧。這直接導致了TCP/IP協議的普及。它只講網絡抽象成4層,分別爲:應用層,傳輸層,網絡層,網絡接口層。實際模型如下:















因爲這種分層特別適合於商用化,所以普及的特別快,目前全球的網絡協議基本都用的是TCP/IP協議。雖然OSI協議沒有普及,但並不代表它一點價值也沒有,其實它對網絡的抽象更加清晰,更加易於我們理解,比tcp/ip的4層籠統抽象要好很多,還是有必要了解它的。

TCP/IP也好,OSI協議也好,都只是規範化了網絡層次。其實網絡協議有很多,在tcp/ip的各層都有很多網絡協議,比如以太網的傳輸協議:CSMA/CD,還有網絡接口層的ARP與RARP協議,還有網絡層的路由協議等。要詳細的瞭解各層的協議還需要花費很多的時間,要閱讀很多的文獻,本人的觀點是先了解個大概,等具體需要用某個協議的時候再去仔細查閱某個協議。

網絡簡單分爲局域網和廣域網。比如我們一個教研室電腦統一通過集線器和路由器相連來上網,這樣就構成了一個局域網。中國地區的網絡和美國地區的網絡這就是廣域網。在局域網中通信比較方便,速度也比較快,在廣域網中通信速度比較慢,遠達不到局域網中的網速。其實這種分類現在也不一定可靠。比如中國地區的教育網中網速可以達到很快,幾乎和局域網中差不多,所以整個中國的教育網就是一個局域網。

局域網通過路由器相互連接,構成一個很大的廣域網。我們發現在INTERNET上面上網時,每個聯網的電腦都有一個IP地址,這就像我們每個人的身份證,在網絡中獨一無二,不然要是有重複的IP就會發現網絡故障,因爲無法準確傳輸數據了。上網的IP地址統一由各地區的ISP(電信運營商)發放,付錢給IP上網大笑,不付錢就不給IP,然後你就沒辦法上網了。IP地址其實就分爲兩類:公有IP和私有IP。一般在局域網中的電腦多用的是私有IP,大多爲192.168.*.*。在windows中DOS下輸入ipconfig,在linux下輸入ifconfig就可以看到自己的ip地址了。公有IP經Inter NIC所統一規劃,有這種IP纔可以上網,而私有IP或保留IP,不能直接聯網,其主要用於局域網中。IP地址分有5類,如下:











A類:0.*.*.* ~ 127.*.*.*

B類:128.*.*.* ~ 191.*.*.*

C類:192.*.*.* ~ 223.*.*.*

D類:224.*.*.* ~ 239.*.*.*

E類:240.*.*.* ~ 255.*.*.*

私有IP分別在A,B,C三個類別中各保留了一段作爲私有IP網段:

A類:10.0.0.0 ~ 10.255.255.255

B類:172.16.0.0 ~ 172.31.255.255

C類:192.168.0.0~ 192.168.0.0

局域網中我們都擁有一個私有IP,方便路由器講數據傳送給我們,路由器是一般有連個IP地址,一個是公有IP,用於與外部網絡打交道,還有一個私有IP,用於與局域網內部打交道,私有IP一般爲192.168.0.1,路由器怎麼將數據傳遞給我們呢?這就涉及到了MAC地址,每一個以太網適配器(俗稱網卡)都有一個固定的MAC地址(有的MAC可以修改),每個MAC地址都不一樣,從網卡出廠時就被設置好了。數據在網絡接口層傳輸的時候通過尋找源MAC地址,講MAC數據包傳輸出去,路由器也是這樣的,在路由器中,有一張動態變化的表格,對應局域網中MAC地址與IP地址的對應關係。當路由器接收到外部網絡傳來的數據時,通過將目標IP與表格中的IP對比,得知對應主機的MAC地址,然後將數據打包成MAC數據包,傳輸給我們。至於路由器內的MAC與IP對應的表格怎麼生成的,這就要大名鼎鼎的ARP(網絡地址解析)協議了,當路由器想要了解各臺主機的IP分佈時,就會向整個局域網發送出ARP數據包,各個主機接受到以後就返回自己的MAC地址給路由器。路由器講獲取的MAC信息記錄到ARP table中,記錄20分鐘。其實不光是路由器有ARP table,局域網中每臺電腦都會有個ARP table,方便各臺電腦在局域網中通信。如何你是linux系統,你可以在終端中輸入arp -n查看自己表中的信息。arp命令也可以設置固定MAC與IP對應。有興趣的同學可以自己man一下arp。動手操作一下總是印象深刻一下的。

說完了ARP,我們來說一下route,就是路由,路由和路由器是不一樣的,路由是一個表,路由器是一個硬件。每個聯網的電腦都有一個路由表,由目標網絡,網關,還有子網掩碼和各標誌位組成。在linux中我們可以輸入route -n 來查看我們的路由表。一般局域網中的默認網關都是路由器。













還有一個ICMP協議一定要提一下,大家都用過PING命令吧。很多同學都希望在網絡故障的時候打開終端ping一下試試。其實ping命令就是利用了ICMP協議來檢查我們的網絡狀態的。ICMP全名是因特網信息控制協議。這是一個錯誤檢查與報告的機制,基本最大的用處就是檢查我們的網絡連接狀態了。其實它有很多類別,大家可以查閱詳細資料去了解一下。

說過了網絡層和網絡接口層,我們來聊聊傳輸層,在傳輸層有兩個重點協議,一個是面向連接的TCP協議,還有一個是面向無連接的UDP協議。我們常聽到的三次握手就是說的TCP協議的連接過程,TCP協議能夠保證數據包的可靠性和準確性,當然也不是100%的保證,我聽師兄說面試的時候有人問TCP協議的三次握手的漏洞,要是我說的話,應該是進過了3次握手也不是100%確定一定連接成功了(著名的紅軍和藍軍模型就是說的這個)。UDP協議是面向無連接的,它只管發送數據,不管對方有沒有接受到,由於少了連接的過程,所以比TCP協議更加有效率,直接表現在速度更快。比如一些對數據準確度要求不高的視頻監控中就可以應用UDP協議。

說到TCP/UDP協議,不得不說通信端口,port。有個比喻很恰到,在網絡世界中,IP相當於你的門牌號,TCP相當於是你家的樓房,各個服務就是每個樓層,端口號就是樓層號。每個服務都對應一個端口號,端口號最大可達65535(16位),小於1024以下的端口是固定端口,一般提供給許多知名網絡服務使用,大於1024是可用戶自行設置的。規定的端口和服務對應關係,我們可以在/etc/services中看到。SSH----22, FTP---21,WWW---80等。比如我們上qq的時候,我們應用tcp協議,找到騰訊服務器,對應相關端口號獲取服務,然後騰訊服務器中在對應端口給我們提供服務,在將消息發送到客戶端的對應端口,我們qq客戶端程序接受消息,完成登錄。

記得以前不懂網絡的時候,一直以爲防火牆是設置在網絡中的一堵牆,可以阻擋一切危險。認爲只要防火牆設的好,就可以阻擋100%的攻擊。其實想錯了,防火牆只是可以阻擋一些非法連接,和過濾一些不必要的IP訪問,對應服務器提供的服務程序基本沒有保護效果,如果服務程序有漏洞,或者黑客通過服務連接到服務器上這些情況,防火牆基本失效。換句話說即使沒有任何漏洞的防火牆也不可能阻擋100%的攻擊,除非該電腦不提供服務。

在linux中,查看網絡情況可以用netstat命令,可以查看本機各個服務程序運行情況和各個端口情況。

再來說說DHCP,這是一種動態分配IP服務。現在幾乎各大運營商都有提供DHCP服務,在學校上網,或者在公司上網,沒有必要每次都輸入固定ip上網,這樣會把人整瘋的生氣,因爲太不方便了,效率又低。DHCP就是解決分配IP的問題,由DHCP服務器給每一個想要上網的電腦分配一個IP地址,該IP不固定,隨時動態變化,用戶不需要關注自己的IP設置等,一切交給DHCP就OK。

還有DNS服務,就是域名解析服務,這個大家一般都知道,就是講公司域名交給DNS服務器,然後返回公司對於的IP,這樣特別方便,不是嗎?其實自己也可以搭建DNS服務,只不過比較麻煩,有興趣的同學可以試試。其實在ubuntu系的linux系統中,有個dnsmanager服務,它會自動根據用戶的上網記錄等建立小型的DNS表格在內存中,這樣可以加快上網速度,因爲無需再遠程DNS解析了。其實好處遠不止這樣,它還提供局域網的電腦DNS服務,這樣其實也可以加快其他電腦的上網速度,真的是特別特別優秀的程序。(有時間一定好好研究一下)

好了,今天就網絡就先複習到這裏吧!!!大笑


最後來一張老師的萌萌表情










發佈了65 篇原創文章 · 獲贊 75 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章