1. 程式人生 > >計算機網路筆記

計算機網路筆記

(一)概要

1.在一個完整的計算機網路中,除了基於IP的網路層,傳輸層和應用層技術外,還包括大量不在IP協議定義範圍內的資料鏈路層和物理層技術;現代通訊網路的發展有IP化的趨勢,未來通訊網路的在網路層上可能會由IP協議一統天下;而網路介面層的典型協議主要是IEEE定義的802系列協議族以及ATM等;

2.網路協議有2大體系標準:

(1)國際標準化組織(ISO)提出的開放系統互連(OSI)的7層網路協議模型:物理層,資料鏈路層,網路層,運輸層,會話層,表示層,應用層;

(2)美國國防部提出的TCP/IP協議:網路介面層,互連網層,傳輸層,應用層(實際上TCP/IP協議族只定義了後3層);

3.TCP/IP是常見的網路協議體系結構,分為四層:

網路介面層:物理底層的連線;

網路層:負責相鄰計算機之間的通訊;

傳輸層:提供應用程式之間的通訊;

應用層:向用戶提供一組常用的程式;

4. TCP/IP在每個網路分層都定義了若干協議,其中一般認為IP(internet protocol,網路層)、TCP(Transmission Control Protocol,面向連線的,傳輸層)、UDP(User Datagram Protocol,面向無連線的,傳輸層)是最根本的三種協議,是其他協議的基礎;

(二)基本概念

1.MAC地址:網絡卡實體地址,存在於網絡卡的ROM中,48位;

2.IPv4地址:存在於記憶體中,32位(IPv6:128位);

3.埠號:程序地址,16位;

4.套接字:IP地址:埠號;

5.域名:主機的便於記憶的名稱;

6.URL:對可以從網際網路上得到的資源的位置和訪問方法的一種簡潔的表示,是網際網路上標準資源的地址,格式:〈協議〉://〈主機域名〉:〈埠號〉/〈路徑〉

7.閘道器:如果網路A中的主機發現資料包的目的主機不在本地網路中,就把資料包轉發給它自己的閘道器,再由閘道器轉發給網路B的閘道器,網路B的閘道器再轉發給網路B的某個主機;

8.IP地址分類(NestID+HostID):

(1)A類:0開頭,NestID為1個位元組,HostID為3個位元組,單播地址;

(2)B類:10開頭,NestID為2個位元組,HostID為2個位元組,單播地址;

(3)C類:110開頭,NestID為3個位元組,HostID為1個位元組,單播地址;

(4)D類:1110開頭,組播地址,不會分配給一個特定的主機;(因為組播成員可以任意加入,所以D類地址不是目的地址,而是組播組的編號)

(5)E類:1111開頭,預留地址;

(6)專用地址:10.0.0.0 --10.255.255.255     172.16.0.0 -- 172.16.255.255    192.168.0.0 -- 192.168.255.255

PS:1)在ABC類地址中,HostID全0表示網路本身,全1表示廣播地址,都不會分配給特定的主機;

        2)專用地址沒有唯一性,可被重複使用,路由器遇到目的地址是專用地址的報文一概不轉發;

        3)localhost(意為“本地主機”,指“這臺計算機”)是給迴路網路介面的一個標準主機名,相對應的IP地址為127.0.0.1;

9.子網與超網

(1)子網:通過對ABC類網路進行劃分得到規模較小的網路,稱其為子網;子網的劃分是為了合理利用地址空間;為表示一個子網的ID,需要掩碼來表示;

(2)掩碼:一個32位的程式碼,其中含1的位對應子網的標識,剩下的含0的位對應主機的標識;

(3)超網:幾個網路組合構成更大的一個網路;(同樣需要超網掩碼)(一般是將C類網路進行合併);

10.網路地址轉換技術(NAT):專用地址是一種內部的地址,當某個主機需要訪問外部的網際網路時,可分配一個合法的IP地址給該主機;採用網路地址轉換技術可以很大程度上解決IP資源不夠的問題,但是無法保證每個主機擁有一個獨立的合法IP地址;

11.內網與外網:專用地址只能在內部進行通訊,而不能與其他網路互連;如果要與外部通訊,那麼必須通過閘道器與外部通訊,這裡使用了NAT, NAT技術就是用來保證通訊的代理機制;另外,一些寬頻運營商儘管也使用了非私有地址分配給使用者使用,但是由於路由設定的原因,Internet上的其他使用者並不能訪問到這些ip;上面2部分IP都可稱為內網IP;NAT要求整個服務的連線是從內網向外網主動發起的,而外網的使用者無法直接(主動)向內網的服務發起連線請求;

12.交換機與路由:交換機主要是實現大家通過一根網線上網,但是大家上網是分別撥號的,各自使用自己的寬頻,大家各自上網沒有影響,哪怕其他人在下載,對自己上網也沒有影響,並且所有使用同一條交換機的電腦都是在同一個區域網內;路由器比交換機多了一個虛擬撥號功能,通過同一臺路由器上網的電腦是共用一個寬頻賬號,大家之間上網是相互影響的,比如一臺電腦在下載,那麼同一個路由器上的其他電腦會很明顯的感覺到網速很慢;

13.DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)通常被應用在大型的區域網絡環境中,主要作用是集中的管理、分配IP地址,使網路環境中的主機動態的獲得IP地址、Gateway地址、DNS伺服器地址等資訊,並能夠提升地址的使用率;DHCP有三種機制分配IP地址:

(1) 自動分配方式(Automatic Allocation),DHCP伺服器為主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP伺服器端租用到IP地址後,就可以永久性的使用該地址;

(2)動態分配方式(Dynamic Allocation),DHCP伺服器給主機指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用;

(3)手工分配方式(Manual Allocation),客戶端的IP地址是由網路管理員指定的,DHCP伺服器只是將指定的IP地址告訴客戶端主機;

PS:三種地址分配方式中,只有動態分配可以重複使用客戶端不再需要的地址;

14.DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互對映的一個分散式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串;通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析);

(三)常見知識點

1.TCP與UDP區別:

(1)TCP提供面向連線的、可靠的資料流傳輸,而UDP提供的是非面向連線的、不可靠的資料流傳輸;
(2)TCP傳輸單位稱為TCP報文段,UDP傳輸單位稱為使用者資料報;
(3)TCP注重資料安全性,UDP資料傳輸快,因為不需要連線等待,少了許多操作,但是其安全性卻一般;

2.TCP協議中的三次握手與四次揮手:

.(1)三次握手:

           1)第一次握手:客戶端傳送syn包(syn=x)到伺服器,並進入SYN_SEND狀態,等待伺服器確認;
           2)第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=x+1),同時自己也傳送一個SYN包(syn=y),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
           3)第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=y+1),此包傳送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手;

PS:握手過程中傳送的包裡不包含資料,三次握手完畢後,客戶端與伺服器才正式開始傳送資料;理想狀態下,TCP連線一旦建立,在通訊雙方中的任何一方主動關閉連線之前,TCP 連線都將被一直保持下去;

PS:需要第三次握手的原因:由於網路傳輸延遲問題,客戶端有可能重複傳送連線請求,若服務端收到一個客戶端傳送的重複連線請求後發出確認訊號,若沒有第三次握手的機制,客戶端則不理會,服務端會一直浪費資源在等待;若有第三次握手的機制,服務端沒有收到第三次握手的確認訊號,則不會再等待;

(2)四次揮手:

           1)第一次揮手:主動關閉方傳送一個FIN,用來關閉主動方到被動關閉方的新資料傳送,此時主動關閉方還可以接受資料;

           2)第二次揮手:被動關閉方收到FIN包後,傳送一個ACK給對方;

           3)第三次揮手:被動關閉方傳送一個FIN,用來關閉被動關閉方到主動關閉方的新資料傳送;

           4)第四次揮手:主動關閉方收到FIN後,傳送一個ACK給被動關閉方;

PS:需要四次揮手的原因:被動關閉方接收到FIN時意味將沒有資料再發來,但是還是可以繼續傳送資料;

3.ARP協議與RARP協議(網路層):

(1)ARP協議(Address Resolution Protocol,地址解析協議):

           1)根據IP地址獲取實體地址;

           2)每個主機都會在自己的ARP緩衝區中建立一個ARP列表,以表示IP地址和MAC地址之間的對應關係;

           3)當源主機要傳送資料時,首先檢查ARP列表中是否有對應IP地址的目的主機的MAC地址,如果有,則直接傳送資料,如果沒有,就向本網段的所有主機發送ARP資料包,該資料包包括的內容有:源主機 IP地址,源主機MAC地址,目的主機的IP 地址;

           4)當本網路的所有主機收到該ARP資料包時,首先檢查資料包中的IP地址是否是自己的IP地址,如果不是,則忽略該資料包,如果是,則首先從資料包中取出源主機的IP和MAC地址寫入到ARP列表中,如果已經存在,則覆蓋,然後將自己的MAC地址寫入ARP響應包中,告訴源主機自己是它想要找的MAC地址;

           5)源主機收到ARP響應包後。將目的主機的IP和MAC地址寫入ARP列表,並利用此資訊傳送資料。如果源主機一直沒有收到ARP響應資料包,表示ARP查詢失敗;

           6)廣播發送ARP請求,單播發送ARP響應;

(2)RARP協議(Reverse Address Resolution Protocol,反向地址解析協議):

          1)根據實體地址獲取IP地址;

          2)主要用於無盤工作站,因為給無盤工作站配置的IP地址不能儲存;

          3)在網路中配置一臺RARP伺服器,裡面儲存著IP地址和MAC地址的對映關係,當無盤工作站啟動後,就封裝一個RARP資料包,裡面有其MAC地址,然後廣播到網路上去,當伺服器收到請求包後,就查詢對應的MAC地址的IP地址裝入響應報文中發回給請求者;因為需要廣播請求報文,因此RARP只能用於具有廣播能力的網路;

4.瀏覽器輸入網址,發生的一系列響應描述:

(1)客戶端瀏覽器通過DNS解析將域名轉換為目標IP地址;

(2)客戶端瀏覽器發起一個http會話到目標地址,然後通過傳輸層的TCP協議進行封裝資料包,輸入到網路層;在傳輸層會把http會話請求分成報文段,新增源和目的埠,如伺服器使用80埠監聽客戶端的請求,客戶端由系統隨機選擇一個埠如5000,與伺服器進行交換,伺服器把相應的請求返回給客戶端的5000埠;

(3)客戶端的網路層不用關心應用層或者傳輸層的東西,主要做的是通過查詢路由表確定如何到達伺服器,期間可能經過多個路由器,這些都是由路由器來完成的工作,無非就是通過查詢路由表決定通過那個路徑到達伺服器;

(4)客戶端的鏈路層,包通過鏈路層傳送到路由器,通過鄰居協議查詢給定IP地址的MAC地址,然後傳送ARP請求查詢目的地址,如果得到迴應後就可以使用ARP的請求應答交換的IP資料包現在就可以傳輸了,然後傳送IP資料包到達伺服器的地址;