何爲計算機網絡,計算網絡是由若干結點和連接這些結點的鏈路組成。網絡中的結點可以是計算機,集線器,交換機或路由器等。
ISP(internet service provider)譯爲互聯網服務提供商,類似中國電信,中國移動,中國聯通就是國內有名的ISP。ISP可以從互聯網管理機構申請到很多IP地址,然後一些機構和個人從某個ISP獲取IP地址的使用權,並可通過該ISP連接到互聯網。
互聯網交換點(IXP):爲了更快地轉發分組,IXP允許兩個網絡直接連接並交換分組,而不需要通過第三個網絡來轉發分組。例如上圖中,主機A和主機B通過2個地區ISP連接起來了,就不必經過最上層的的主幹ISP來轉發分組。典型的IXP由一個或多個網絡交換機組成。
電路交換
用於電話通信系統,兩個用戶要通信之前需要建立一條專用的物理鏈路,並且在整個通信過程中始終佔用該鏈路。由於通信的過程中不可能一直在使用傳輸線路,因此電路交換對線路的利用率很低,往往不到 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
)。
在向下的過程中,需要添加下層協議所需要的首部或者尾部,而在向上的過程中不斷拆開首部和尾部。
路由器只有下面三層協議,因爲路由器位於網絡核心中,不需要爲進程或者應用程序提供服務,因此也就不需要傳輸層和應用層。
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 地址和子網掩碼進行邏輯與運算 ,結果就能得到網絡號和子網號。
注意:外部網絡看不到子網的存在。
根據信息在傳輸線上的傳送方向,分爲以下三種通信方式:
單工通信:單向傳輸
半雙工通信:雙向交替傳輸
全雙工通信:雙向同時傳輸
ICMP協議:
因特網控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。
TFTP協議:
是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。
HTTP協議:
超文本傳輸協議,是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分佈式超媒體信息系統。
NAT協議:
網絡地址轉換屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化爲合法IP地址的轉換技術,
DHCP協議:
動態主機配置協議,是一種讓系統得以連接到網絡上,並獲取所需要的配置參數手段,使用UDP協議工作。具體用途:給內部網絡或網絡服務供應商自動分配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數據報的目的地址。
地址解析協議(Address Resolution Protocol),其基本功能爲透過目標設備的IP地址,查詢目標設備的MAC地址。
基本原理:
RARP是將MAC物理地址轉換成IP地址。RARP也有request與reply,並且RARP request也是廣播,沒有目標地址;RARP reply也是有目標地址,也是單播。這兩點與ARP都相同。
工作原理:
根據不同路由協議是否在路由更新中發送子網掩碼
,一般可將ip路由協議分爲兩大類:
IP 旨在讓最終目標主機收到數據包,但是在這一過程中僅僅有 IP 是無法實現通信的。必須還有能夠解析主機名稱和 MAC 地址的功能,以及數據包在發送過程中異常情況處理的功能。
工作原理:當DNS客戶機需要在程序中使用名稱時,它會查詢DNS服務器來解析該名稱。客戶機發送的每條查詢信息包括三條信息:包括:指定的DNS域名,指定的查詢類型,DNS域名的指定類別。基於UDP服務,端口53. 該應用一般不直接爲用戶使用,而是爲其他應用服務,如HTTP,SMTP等在其中需要完成主機名到IP地址的轉換。
三次握手過程、爲什麼不是兩次一次握手:用動畫給面試官解釋 TCP 三次握手過程
用動畫給女朋友講解 TCP 四次分手過程
校驗和
:TCP 將保持它首部和數據的檢驗和,這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP 將丟棄這個報文段和不確認收到此報文段;將數據切割成合理的長度
(應用數據被分割成 TCP 最認爲適合發送的數據塊大小)有序接受
(TCP 給發送的每一個包進行編號,接收方對數據包進行排序,把有序數據傳送給應用層)丟棄重複的數據
(TCP 的接收端會丟棄重複的數據)流量控制:
TCP 連接的每一方都有固定大小的緩衝空間,TCP 接收端只允許發送端發送接收端緩衝區能接納的數據。當接收方來不及處理髮送方的數據時,能提示發送方降低發送的速率,防止包丟失。TCP 使用的流量控制協議是可變大小的滑動窗口協議 ( TCP 利用滑動窗口實現流量控制);擁塞控制:
當網絡擁塞時,減少數據的發送;ARQ 協議:
也是爲了實現可靠傳輸的,它的基本原理就是每發完一個分組就停止發送,並等待對方確認,在收到確認之後,再發下一個分組;超時重傳:
當 TCP 發出一個段後,會啓動一個定時器,等待目的端確認收到這個報文段,如果不能及時收到這個確認,那麼將重發這個報文段。超時重傳
(定時器)有序接受
(添加包序號)應答確認
(Seq/Ack應答機制)流量控制
(滑動窗口協議)在計算機網絡系統中,交換機是針對共享工作模式的弱點而推出的。交換機擁有一條高帶寬的背部總線和內部交換矩陣。交換機的所有的端口都掛接在這條背 部總線上,當控制電路收到數據包以後,處理端口會查找內存中的地址對照表以確定目的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地址對應着不同的端口,這樣看來就會保護子網內的用戶。
========================================================
https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md