計算機網絡知識點詳解(持續更新...)

一、基本概述

何爲計算機網絡,計算網絡是由若干結點和連接這些結點的鏈路組成。網絡中的結點可以是計算機,集線器,交換機或路由器等。

ISP

ISP(internet service provider)譯爲互聯網服務提供商,類似中國電信,中國移動,中國聯通就是國內有名的ISP。ISP可以從互聯網管理機構申請到很多IP地址,然後一些機構和個人從某個ISP獲取IP地址的使用權,並可通過該ISP連接到互聯網。

在這裏插入圖片描述
互聯網交換點(IXP):爲了更快地轉發分組,IXP允許兩個網絡直接連接並交換分組,而不需要通過第三個網絡來轉發分組。例如上圖中,主機A和主機B通過2個地區ISP連接起來了,就不必經過最上層的的主幹ISP來轉發分組。典型的IXP由一個或多個網絡交換機組成。

計算機網絡:三層ISP結構

電路交換與分組交換

電路交換用於電話通信系統,兩個用戶要通信之前需要建立一條專用的物理鏈路,並且在整個通信過程中始終佔用該鏈路。由於通信的過程中不可能一直在使用傳輸線路,因此電路交換對線路的利用率很低,往往不到 10%。
每個分組都有首部和尾部,包含了源地址和目的地址等控制信息,在同一個傳輸線路上同時傳輸多個分組互相不會影響,因此在同一條傳輸線路上允許同時傳輸多個分組,也就是說分組交換不需要佔用傳輸線路。

分組交換:在一個郵局通信系統中,郵局收到一份郵件之後,先存儲下來,然後把相同目的地的郵件一起轉發到下一個目的地,這個過程就是存儲轉發過程,分組交換也使用了存儲轉發過程。

電路交換和分組交換

時延

時延是指數據(一個報文或分組,甚至比特)從網絡(或鏈路)的一端傳送到另一端所需的時間。它是計算機網絡的性能指標之一,包括:
總時延 = 排隊時延 + 處理時延 + 發送時延 + 傳播時延

排隊時延

分組在路由器的輸入隊列和輸出隊列中排隊等待的時間,取決於網絡當前的通信量。

處理時延

主機或路由器收到分組時進行處理所需要的時間,例如分析首部、從分組中提取數據、進行差錯檢驗或查找適當的路由等。

發送時延

發送時延是主機或路由器發送數據幀所需要的時間, 也就是從發送數據幀的第一個比特算起,到該幀的最後一個比特發送完畢所需要的時間。發送時延的計算公式爲:
發送時延 = 數據幀長度(bit)/ 發送速率(bit/s)

傳輸時延

傳播時延是電磁波在信道中傳播一定的距離需要花費的時間。傳播時延的計算公式的:
傳播時延 = 信道長度(m)/ 電磁波在信道上的傳播速率(m/s)

發送時延與傳播時延有本質上的差別。發送時延發生在機器內部的發送器中(一般是發生在網絡適配器中),與傳播信道的長度無關。 而傳播時延發生在機器外部的傳播信道媒體上,與信號的發送速率無關。傳播信道長度越長,傳播時延就越大。

動畫:什麼是計算機網絡時延

體系結構

在這裏插入圖片描述

每層協議

針對標準七層協議來說,每層協議如下:
物理層:RJ45、CLOCK、IEEE802.3 (中繼器,集線器);
數據鏈路:PPP、FR、HDLC、VLAN、MAC (網橋,交換機);
網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、(路由器);
傳輸層:TCP、UDP、SPX;
會話層:NFS、SQL、NETBIOS、RPC;
表示層:JPEG、MPEG、ASII;
應用層:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS。

協議對應的端口

每一種協議對應的端口:

協議 端口 TCP/UDP
DNS 53 tcp或udp
SMTP 25 tcp
POP3 110 tcp
HTTP 80 tcp
HTTPS 443 udp
TELNET 23 tcp
FTP 20/21 tcp
tftp 69 udp
IMAP 143 tcp
snmp 161 udp
snmptrap 162 udp

每層作用

每一層的作用如***意下面括號內文字):
物理層:通過媒介傳輸比特,確定機械及電氣規範(比特Bit);
數據鏈路層:將比特組裝成幀和點到點的傳遞(幀Frame);
網絡層:負責數據包從源到宿的傳遞和網際互連(包PackeT);
傳輸層:提供端到端的可靠報文傳遞和錯誤恢復(段Segment);
會話層:建立、管理和終止會話(會話協議數據單元SPDU);
表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU);
應用層:允許訪問OSI環境的手段(應用協議數據單元APDU)。

數據在各層之間的傳遞過程

在向下的過程中,需要添加下層協議所需要的首部或者尾部,而在向上的過程中不斷拆開首部和尾部。

路由器只有下面三層協議,因爲路由器位於網絡核心中,不需要爲進程或者應用程序提供服務,因此也就不需要傳輸層和應用層。

二、IP地址的分類

在這裏插入圖片描述
ABC類地址對應的網絡號、IP範圍和主機數:
在這裏插入圖片描述

子網劃分

一個有500臺主機的網絡,如果使用C類地址,則無法滿足主機數量需求,使用B類地址則會造成IP地址的浪費。由此,需要在ABC類網絡的基礎上進行子網劃分:即佔用主機號的前幾位表示子網號。子網掩碼的概念由此被引入。
在這裏插入圖片描述
子網劃分是通過借用IP地址中若干位主機地址來充當子網的網絡地址,從而將原網絡劃分爲若干子網。
劃分子網時,隨着子網地址借用主機位數的增多,子網的數目隨之增加,但每個子網中的可用主機數逐漸減少。
如C類地址,原有8位主機位,2^8-2即254個主機地址,默認子網掩碼255.255.255.0。(全0或全1不可用)
借用1位主機位,產生21=2個子網,每個子網有2^7個主機地址;
借用2位主機位,產生22=4個子網,每個子網有2^6個主機地址;
……
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
子網掩碼中的 1 標識了 IP 地址中相應的網絡號,0 標識了主機號。將 IP 地址和子網掩碼進行邏輯與運算 ,結果就能得到網絡號和子網號。
注意:外部網絡看不到子網的存在。

子網劃分及子網掩碼計算方法

特殊用途IP地址

  1. 地址爲127.0.0.1(127.0.0.1~127.0.0.255)用於本機測試
  2. 地址爲0.0.0.0 嚴格意義上來說,0.0.0.0已經不是真正意義上的ip地址了。它表示的是這樣一個集合,所有不清楚的主機和目的網絡。這裏的不清楚是指在本機的路由表裏沒有特定條目指明如何到達。
  3. 255.255.255.255 受限制的廣播地址,對本機來說,這個地址指本網段內(同一個廣播域)的所有主機,該地址用於主機配置過程中IP數據包的目的地址,這時主機可能還不知道它所在網絡的網絡掩碼,甚至連它的IP地址也還不知道。
    在這裏插入圖片描述

三、通信方式

根據信息在傳輸線上的傳送方向,分爲以下三種通信方式:

單工通信:單向傳輸
半雙工通信:雙向交替傳輸
全雙工通信:雙向同時傳輸

單工、半雙工和雙工通信

四、以太網

以太網(Ethernet)和無線局域網(WLAN)

如何區分LAN,WAN,WLAN ,VLAN 和v*n?

五、各種協議的介紹

ICMP協議: 因特網控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。
TFTP協議: 是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。
HTTP協議: 超文本傳輸協議,是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分佈式超媒體信息系統。
NAT協議:網絡地址轉換屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化爲合法IP地址的轉換技術,
DHCP協議:動態主機配置協議,是一種讓系統得以連接到網絡上,並獲取所需要的配置參數手段,使用UDP協議工作。具體用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作爲對所有計算機作中央管理的手段。

六、IP數據報文

IP地址目前有兩個版本, 分別是IPv4和IPv6。 IPv4是一個32位的地址, 由於通信技術的發展導致近些年物聯網/互聯網的爆發, 使得基本上每一臺智能設備都有聯網的需求, 這樣導致IPv4地址即將枯竭。 而IPv6的地址長度爲128位, 是IPv4地址長度的4倍, 這基本上可以保證地球上每一粒沙子都可以有一個IP地址,所以國家最近也在大力推動IPv6的使用。
在這裏插入圖片描述
版本:IP協議的版本,目前的IP協議版本號爲4,下一代IP協議版本號爲6。
首部長度:IP報頭的長度。固定部分的長度(20字節)和可變部分的長度之和。共佔4位。最大爲1111,即10進制的15,代表IP報頭的最大長度可以爲15個32bits(4字節),也就是最長可爲15*4=60字節,除去固定部分的長度20字節,可變部分的長度最大爲40字節。
服務類型:Type Of Service。
總長度:IP報文的總長度。報頭的長度和數據部分的長度之和。
標識:唯一的標識主機發送的每一分數據報。通常每發送一個報文,它的值加一。當IP報文長度超過傳輸網絡的MTU(最大傳輸單元)時必須分片,這個標識字段的值被複制到所有數據分片的標識字段中,使得這些分片在達到最終目的地時可以依照標識字段的內容重新組成原先的數據。
標誌:共3位。R、DF、MF三位。目前只有後兩位有效,DF位:爲1表示不分片,爲0表示分片。MF:爲1表示「更多的片」,爲0表示這是最後一片。
片位移:本分片在原先數據報文中相對首位的偏移位。(需要再乘以8)
生存時間:IP報文所允許通過的路由器的最大數量。每經過一個路由器,TTL減1,當爲0時,路由器將該數據報丟棄。TTL 字段是由發送端初始設置一個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值爲 64。發送 ICMP 回顯應答時經常把 TTL 設爲最大值 255。
協議:指出IP報文攜帶的數據使用的是那種協議,以便目的主機的IP層能知道要將數據報上交到哪個進程(不同的協議有專門不同的進程處理)。和端口號類似,此處採用協議號,TCP的協議號爲6,UDP的協議號爲17。ICMP的協議號爲1,IGMP的協議號爲2.
首部校驗和:計算IP頭部的校驗和,檢查IP報頭的完整性。
源IP地址:標識IP數據報的源端設備。
目的IP地址:標識IP數據報的目的地址。

七、ARP 和RARP

在這裏插入圖片描述

ARP

地址解析協議(Address Resolution Protocol),其基本功能爲透過目標設備的IP地址,查詢目標設備的MAC地址。

基本原理:

  1. 首先,每個主機都會在自己的ARP緩衝區中建立一個ARP列表,以表示IP地址和MAC地址之間的對應關係。
  2. 當源主機要發送數據時,首先檢查ARP列表中是否有對應IP地址的目的主機的MAC地址,如果有,則直接發送數據,如果沒有,就向本網段的所有主機發送ARP數據包,該數據包包括的內容有:源主機 IP地址,源主機MAC地址,目的主機的IP 地址。
  3. 當本網絡的所有主機收到該ARP數據包時,首先檢查數據包中的IP地址是否是自己的IP地址,如果不是,則忽略該數據包,如果是,則首先從數據包中取出源主機的IP和MAC地址寫入到ARP列表中,如果已經存在,則覆蓋,然後將自己的MAC地址寫入ARP響應包中,告訴源主機自己是它想要找的MAC地址。
  4. 源主機收到ARP響應包後。將目的主機的IP和MAC地址寫入ARP列表,並利用此信息發送數據。如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。廣播發送ARP請求,單播發送ARP響應。

RARP

RARP是將MAC物理地址轉換成IP地址。RARP也有request與reply,並且RARP request也是廣播,沒有目標地址;RARP reply也是有目標地址,也是單播。這兩點與ARP都相同。

工作原理:

  1. 將源設備和目標設備的MAC地址字段都設爲發送者的MAC地址和IP地址,發送主機發送一個本地的RARP廣播,能夠到達網絡上的所有設備,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的RARP服務器分配一個IP地址; ​
  2. 本地網段上的RARP服務器收到此請求後,檢查其RARP列表,查找該MAC地址對應的IP地址;
  3. 如果存在,RARP服務器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用;如果不存在,RARP服務器對此不做任何的響應;
  4. 源主機收到從RARP服務器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到RARP服務器的響應信息,表示初始化失敗。

ARP與RARP詳細解析

ARP欺騙攻擊

ARP欺騙攻擊原理及其防禦

八、路由協議

根據不同路由協議是否在路由更新中發送子網掩碼,一般可將ip路由協議分爲兩大類:

  • 有類路由選擇協議(早期使用,不發送子網掩碼)(RIPv1、IGRP)
  • 無類路由選擇協議(目前使用,發送子網掩碼)(RIPv2、OSPF、EIGRP)

路由協議

九、IP 協議相關技術

IP 旨在讓最終目標主機收到數據包,但是在這一過程中僅僅有 IP 是無法實現通信的。必須還有能夠解析主機名稱和 MAC 地址的功能,以及數據包在發送過程中異常情況處理的功能。

DNS

  • 我們平常在訪問某個網站時不適用 IP 地址,而是用一串由羅馬字和點號組成的字符串。而一般用戶在使用 TCP/IP 進行通信時也不使用 IP 地址。能夠這樣做是因爲有了 DNS (Domain Name System)功能的支持。DNS 可以將那串字符串自動轉換爲具體的 IP 地址。
  • 這種 DNS 不僅適用於 IPv4,還適用於 IPv6。

工作原理:當DNS客戶機需要在程序中使用名稱時,它會查詢DNS服務器來解析該名稱。客戶機發送的每條查詢信息包括三條信息:包括:指定的DNS域名,指定的查詢類型,DNS域名的指定類別。基於UDP服務,端口53. 該應用一般不直接爲用戶使用,而是爲其他應用服務,如HTTP,SMTP等在其中需要完成主機名到IP地址的轉換。

域名系統(DNS)概述

ICMP

  • ICMP 的主要功能包括,確認 IP 包是否成功送達目標地址,通知在發送過程當中 IP 包被廢棄的具體原因,改善網絡設置等。
  • IPv4 中 ICMP 僅作爲一個輔助作用支持 IPv4。也就是說,在 IPv4 時期,即使沒有 ICMP,仍然可以實現 IP 通信。然而,在 IPv6 中,ICMP 的作用被擴大,如果沒有 ICMPv6,IPv6 就無法進行正常通信。

ICMP協議詳解

DHCP

  • 如果逐一爲每一臺主機設置 IP 地址會是非常繁瑣的事情。特別是在移動使用筆記本電腦、只能終端以及平板電腦等設備時,每移動到一個新的地方,都要重新設置 IP 地址。
  • 於是,爲了實現自動設置 IP 地址、統一管理 IP 地址分配,就產生了 DHCP(Dynamic Host Configuration Protocol)協議。有了 DHCP,計算機只要連接到網絡,就可以進行 TCP/IP 通信。也就是說,DHCP 讓即插即用變得可能。
  • DHCP 不僅在 IPv4 中,在 IPv6 中也可以使用。

NAT技術

  • NAT(Network Address Translator)是用於在本地網絡中使用私有地址,在連接互聯網時轉而使用全局 IP 地址的技術。
  • 除轉換 IP 地址外,還出現了可以轉換 TCP、UDP 端口號的 NAPT(Network Address Ports Translator)技術,由此可以實現用一個全局 IP 地址與多個主機的通信。
  • NAT(NAPT)實際上是爲正在面臨地址枯竭的 IPv4 而開發的技術。不過,在 IPv6 中爲了提高網絡安全也在使用 NAT,在 IPv4 和 IPv6 之間的相互通信當中常常使用 NAT-PT。

NAT(地址轉換技術)詳解

在這裏插入圖片描述

IP 隧道

在這裏插入圖片描述

  • 如上圖的網絡環境中,網絡 A 與網絡 B 之間無法直接進行通信,爲了讓它們之間正常通信,這時必須得采用 IP 隧道的功能。
  • IP 隧道可以將那些從網絡 A 發過來的 IPv6 的包統合爲一個數據,再爲之追加一個 IPv4 的首部以後轉發給網絡 C。
  • 一般情況下,緊接着 IP 首部的是 TCP 或 UDP 的首部。然而,現在的應用當中「 IP 首部的後面還是 IP 首部」或者「 IP 首部的後面是 IPv6。

TCP/IP協議

虛擬專用網

虛擬專用網

十、TCP和UDP的區別

TCP和UDP的最完整的區別

十一、TCP三次握手和四次揮手

三次握手過程、爲什麼不是兩次一次握手:用動畫給面試官解釋 TCP 三次握手過程
用動畫給女朋友講解 TCP 四次分手過程

圖解 TCP 三次握手和四次揮手面試題

關於三次握手與四次揮手面試官想考什麼

十二、TCP粘包問題

什麼是TCP粘包?怎麼解決這個問題

十三、重傳機制、滑動窗口、流量和擁塞控制

在這裏插入圖片描述

全:圖解重傳機制、滑動窗口、流量控制、擁塞控制

推薦:TCP流量控制和擁塞控制

流量控制和擁塞控制區別

十四、TCP如何實現可靠傳輸

  1. 校驗和:TCP 將保持它首部和數據的檢驗和,這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP 將丟棄這個報文段和不確認收到此報文段;
  2. 將數據切割成合理的長度(應用數據被分割成 TCP 最認爲適合發送的數據塊大小)
  3. 有序接受(TCP 給發送的每一個包進行編號,接收方對數據包進行排序,把有序數據傳送給應用層)
  4. 丟棄重複的數據(TCP 的接收端會丟棄重複的數據)
  5. 流量控制: TCP 連接的每一方都有固定大小的緩衝空間,TCP 接收端只允許發送端發送接收端緩衝區能接納的數據。當接收方來不及處理髮送方的數據時,能提示發送方降低發送的速率,防止包丟失。TCP 使用的流量控制協議是可變大小的滑動窗口協議 ( TCP 利用滑動窗口實現流量控制);
  6. 擁塞控制: 當網絡擁塞時,減少數據的發送;
  7. ARQ 協議: 也是爲了實現可靠傳輸的,它的基本原理就是每發完一個分組就停止發送,並等待對方確認,在收到確認之後,再發下一個分組;
  8. 超時重傳: 當 TCP 發出一個段後,會啓動一個定時器,等待目的端確認收到這個報文段,如果不能及時收到這個確認,那麼將重發這個報文段。

附:TLV封包與解包詳解

十五、UDP如何實現可靠傳輸

  1. 超時重傳(定時器)
  2. 有序接受 (添加包序號)
  3. 應答確認(Seq/Ack應答機制)
  4. 流量控制(滑動窗口協議)

十六、瀏覽器中輸入網址後執行的全部過程

在瀏覽器地址欄輸入一個URL後回車,背後會進行哪些技術步驟

十七、交換機、路由器和網關概念以及用途

交換機

在計算機網絡系統中,交換機是針對共享工作模式的弱點而推出的。交換機擁有一條高帶寬的背部總線和內部交換矩陣。交換機的所有的端口都掛接在這條背 部總線上,當控制電路收到數據包以後,處理端口會查找內存中的地址對照表以確定目的MAC(網卡的硬件地址)的NIC(網卡)掛接在哪個端口上,通過內部 交換矩陣迅速將數據包傳送到目的端口。目的MAC若不存在,交換機才廣播到所有的端口,接收端口迴應後交換機會「學習」新的地址,並把它添加入內部地址表 中。
交換機工作於OSI參考模型的第二層,即數據鏈路層。交換機內部的CPU會在每個端口成功連接時,通過ARP協議學習它的MAC地址,保存成一張 ARP表。在今後的通訊中,發往該MAC地址的數據包將僅送往其對應的端口,而不是所有的端口。因此,交換機可用於劃分數據鏈路層廣播,即衝突域;但它不 能劃分網絡層廣播,即廣播域。
交換機被廣泛應用於二層網絡交換,俗稱「二層交換機」。
交換機的種類有:二層交換機、三層交換機、四層交換機、七層交換機分別工作在OSI七層模型中的第二層、第三層、第四層盒第七層,並因此而得名。

路由器

路由器(Router)是一種計算機網絡設備,提供了路由與轉送兩種重要機制,可以決定數據包從來源端到目的端所經過 的路由路徑(host到host之間的傳輸路徑),這個過程稱爲路由;將路由器輸入端的數據包移送至適當的路由器輸出端(在路由器內部進行),這稱爲轉送。路由工作在OSI模型的第三層——即網絡層,例如網際協議。
路由器的一個作用是連通不同的網絡,另一個作用是選擇信息傳送的線路。 路由器與交換器的差別,路由器是屬於OSI第三層的產品,交換器是OSI第二層的產品(這裏特指二層交換機)。

附:交換機和路由器之間區別

網關

網關(Gateway),網關顧名思義就是連接兩個網絡的設備,區別於路由器(由於歷史的原因,許多有關TCP/IP 的文獻曾經把網絡層使用的路由器(Router)稱爲網關,在今天很多局域網採用都是路由來接入網絡,因此現在通常指的網關就是路由器的IP),經常在家 庭中或者小型企業網絡中使用,用於連接局域網和Internet。 網關也經常指把一種協議轉成另一種協議的設備,比如語音網關。

在傳統TCP/IP術語中,網絡設備只分成兩種,一種爲網關(gateway),另一種爲主機(host)。網關能在網絡間轉遞數據包,但主機不能 轉送數據包。在主機(又稱終端系統,end system)中,數據包需經過TCP/IP四層協議處理,但是在網關(又稱中介系 統,intermediate system)只需要到達網際層(Internet layer),決定路徑之後就可以轉送。在當時,網關 (gateway)與路由器(router)還沒有區別。

在現代網絡術語中,網關(gateway)與路由器(router)的定義不同。網關(gateway)能在不同協議間移動數據,而路由器(router)是在不同網絡間移動數據,相當於傳統所說的IP網關(IP gateway)。
網關是連接兩個網絡的設備,對於語音網關來說,他可以連接PSTN網絡和以太網,這就相當於VOIP,把不同電話中的模擬信號通過網關而轉換成數字信號,而且加入協議再去傳輸。在到了接收端的時候再通過網關還原成模擬的電話信號,最後才能在電話機上聽到。
對於以太網中的網關只能轉發三層以上數據包,這一點和路由是一樣的。而不同的是網關中並沒有路由表,他只能按照預先設定的不同網段來進行轉發。網關最重要的一點就是端口映射,子網內用戶在外網看來只是外網的IP地址對應着不同的端口,這樣看來就會保護子網內的用戶。

集線器、交換機與路由器

集線器、交換機與路由器有什麼區別?

十八、http

【漫畫】https 加密那點事

萬字長文:看完這篇HTTP,跟面試官扯皮就沒問題了

HTTP總結

未完待續…

========================================================

參考鏈接

牛客網

https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md