A. 計算機網路知識點總結
計算機網路知識點總結
計算機網路使微機用戶也能夠分享到大型機的功能特性,充分體現了網路系統的“群體”優勢,能節省投資和降低成本。下面是我整理的關於計算機網路知識點總結,歡迎大家參考!
OSI,TCP/IP,五層協議的體系結構,以及各層協議
OSI分層 (7層):物理層、數據鏈路層、網路層、傳輸層、會話層、表示層、應用層。
TCP/IP分層(4層):網路介面層、 網際層、運輸層、 應用層。
五層協議 (5層):物理層、數據鏈路層、網路層、運輸層、 應用層。
每一層的協議如下:
物理層: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
每一層的作用如下:
物理層:通過媒介傳輸比特,確定機械及電氣規范(比特Bit)
數據鏈路層:將比特組裝成幀和點到點的傳遞(幀Frame)
網路層:負責數據包從源到宿的傳遞和網際互連(包PackeT)
傳輸層:提供端到端的可靠報文傳遞和錯誤恢復(段Segment)
會話層:建立、管理和終止會話(會話協議數據單元SPDU)
表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU)
應用層:允許訪問OSI環境的手段(應用協議數據單元APDU)
IP地址的分類
A類地址:以0開頭, 第一個位元組范圍:0~127(1.0.0.0 - 126.255.255.255);
B類地址:以10開頭, 第一個位元組范圍:128~191(128.0.0.0 - 191.255.255.255);
C類地址:以110開頭, 第一個位元組范圍:192~223(192.0.0.0 - 223.255.255.255);
10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用於內部)
IP地址與子網掩碼相與得到主機號
ARP是地址解析協議,簡單語言解釋一下工作原理。
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響應。
各種協議
ICMP協議: 網際網路控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。
TFTP協議: 是TCP/IP協議族中的一個用來在客戶機與伺服器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。
HTTP協議: 超文本傳輸協議,是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。
DHCP協議: 動態主機配置協議,是一種讓系統得以連接到網路上,並獲取所需要的配置參數手段。
NAT協議:網路地址轉換屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化為合法IP地址的轉換技術,
DHCP協議:一個區域網的網路協議,使用UDP協議工作,用途:給內部網路或網路服務供應商自動分配IP地址,給用戶或者內部網路管理員作為對所有計算機作中央管理的手段。
描述:RARP
RARP是逆地址解析協議,作用是完成硬體地址到IP地址的映射,主要用於無盤工作站,因為給無盤工作站配置的IP地址不能保存。工作流程:在網路中配置一台RARP伺服器,裡面保存著IP地址和MAC地址的映射關系,當無盤工作站啟動後,就封裝一個RARP數據包,裡面有其MAC地址,然後廣播到網路上去,當伺服器收到請求包後,就查找對應的MAC地址的IP地址裝入響應報文中發回給請求者。因為需要廣播請求報文,因此RARP只能用於具有廣播能力的網路。
TCP三次握手和四次揮手的全過程
三次握手:
第一次握手:客戶端發送syn包(syn=x)到伺服器,並進入SYN_SEND狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=x+1),同時自己也發送一個SYN包(syn=y),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器發送確認包ACK(ack=y+1),此包發送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。
握手過程中傳送的包里不包含數據,三次握手完畢後,客戶端與伺服器才正式開始傳送數據。理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前,TCP 連接都將被一直保持下去。
四次握手
與建立連接的“三次握手”類似,斷開一個TCP連接則需要“四次握手”。
第一次揮手:主動關閉方發送一個FIN,用來關閉主動方到被動關閉方的數據傳送,也就是主動關閉方告訴被動關閉方:我已經不 會再給你發數據了(當然,在fin包之前發送出去的數據,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些數據),但是,此時主動關閉方還可 以接受數據。
第二次揮手:被動關閉方收到FIN包後,發送一個ACK給對方,確認序號為收到序號+1(與SYN相同,一個FIN佔用一個序號)。
第三次揮手:被動關閉方發送一個FIN,用來關閉被動關閉方到主動關閉方的數據傳送,也就是告訴主動關閉方,我的數據也發送完了,不會再給你發數據了。
第四次揮手:主動關閉方收到FIN後,發送一個ACK給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。
;B. 計算機網路自學筆記:TCP
如果你在學習這門課程,僅僅為了理解網路工作原理,那麼只要了解TCP是可靠傳輸,數據傳輸丟失時會重傳就可以了。如果你還要參加研究生考試或者公司面試等,那麼下面內容很有可能成為考查的知識點,主要的重點是序號/確認號的編碼、超時定時器的設置、可靠傳輸和連接的管理。
1 TCP連接
TCP面向連接,在一個應用進程開始向另一個應用進程發送數據之前,這兩個進程必須先相互「握手」,即它們必須相互發送某些預備報文段,以建立連接。連接的實質是雙方都初始化與連接相關的發送/接收緩沖區,以及許多TCP狀態變數。
這種「連接」不是一條如電話網路中端到端的電路,因為它們的狀態完全保留在兩個端系統中。
TCP連接提供的是全雙工服務 ,應用層數據就可在從進程B流向進程A的同時,也從進程A流向進程B。
TCP連接也總是點對點的 ,即在單個發送方與單個接收方之間建立連接。
一個客戶機進程向伺服器進程發送數據時,客戶機進程通過套接字傳遞數據流。
客戶機操作系統中運行的 TCP軟體模塊首先將這些數據放到該連接的發送緩存里 ,然後會不時地從發送緩存里取出一塊數據發送。
TCP可從緩存中取出並放入報文段中發送的數據量受限於最大報文段長MSS,通常由最大鏈路層幀長度來決定(也就是底層的通信鏈路決定)。 例如一個鏈路層幀的最大長度1500位元組,除去數據報頭部長度20位元組,TCP報文段的頭部長度20位元組,MSS為1460位元組。
報文段被往下傳給網路層,網路層將其封裝在網路層IP數據報中。然後這些數據報被發送到網路中。
當TCP在另一端接收到一個報文段後,該報文段的數據就被放人該連接的接收緩存中。應用程序從接收緩存中讀取數據流(注意是應用程序來讀,不是操作系統推送)。
TCP連接的每一端都有各自的發送緩存和接收緩存。
因此TCP連接的組成包括:主機上的緩存、控制變數和與一個進程連接的套接字變數名,以及另一台主機上的一套緩存、控制變數和與一個進程連接的套接字。
在這兩台主機之間的路由器、交換機中,沒有為該連接分配任何緩存和控制變數。
2報文段結構
TCP報文段由首部欄位和一個數據欄位組成。數據欄位包含有應用層數據。
由於MSS限制了報文段數據欄位的最大長度。當TCP發送一個大文件時,TCP通常是將文件劃分成長度為MSS的若干塊。
TCP報文段的結構。
首部包括源埠號和目的埠號,它用於多路復用/多路分解來自或送至上層應用的數據。另外,TCP首部也包括校驗和欄位。報文段首部還包含下列欄位:
32比特的序號欄位和32比特的確認號欄位。這些欄位被TCP發送方和接收方用來實現可靠數據傳輸服務。
16比特的接收窗口欄位,該欄位用於流量控制。該欄位用於指示接收方能夠接受的位元組數量。
4比特的首部長度欄位,該欄位指示以32比特的字為單位的TCP首部長度。一般TCP首部的長度就是20位元組。
可選與變長的選項欄位,該欄位用於當發送方與接收方協商最大報文段長度,或在高速網路環境下用作窗口調節因子時使用。
標志欄位ACK比特用於指示確認欄位中的ACK值的有效性,即該報文段包括一個對已被成功接收報文段的確認。 SYN和FIN比特用於連接建立和拆除。 PSH、URG和緊急指針欄位通常沒有使用。
•序號和確認號
TCP報文段首部兩個最重要的欄位是序號欄位和確認號欄位。
TCP把數據看成一個無結構的但是有序的位元組流。TCP序號是建立在傳送的位元組流之上,而不是建立在傳送的報文段的序列之上。
一個報文段的序號是該報文段首位元組在位元組流中的編號。
例如,假設主機A上的一個進程想通過一條TCP連接向主機B上的一個進程發送一個數據流。主機A中的TCP將對數據流中的每一個位元組進行編號。假定數據流由一個包含4500位元組的文件組成(可以理解為應用程序調用send函數傳遞過來的數據長度),MSS為1000位元組(鏈路層一次能夠傳輸的位元組數),如果主機決定數據流的首位元組編號是7。TCP模塊將為該數據流構建5個報文段(也就是分5個IP數據報)。第一個報文段的序號被賦為7;第二個報文段的序號被賦為1007,第三個報文段的序號被賦為2007,以此類推。前面4個報文段的長度是1000,最後一個是500。
確認號要比序號難理解一些。前面講過,TCP是全雙工的,因此主機A在向主機B發送數據的同時,也可能接收來自主機B的數據。從主機B到達的每個報文段中的序號欄位包含了從B流向A的數據的起始位置。 因此主機B填充進報文段的確認號是主機B期望從主機A收到的下一報文段首位元組的序號。
假設主機B已收到了來自主機A編號為7-1006的所有位元組,同時假設它要發送一個報文段給主機A。主機B等待主機A的數據流中位元組1007及後續所有位元組。所以,主機B會在它發往主機A的報文段的確認號欄位中填上1007。
再舉一個例子,假設主機B已收到一個來自主機A的包含位元組7-1006的報文段,以及另一個包含位元組2007-3006的報文段。由於某種原因,主機A還沒有收到位元組1007-2006的報文段。
在這個例子中,主機A為了重組主機B的數據流,仍在等待位元組1007。因此,A在收到包含位元組2007-3006的報文段時,將會又一次在確認號欄位中包含1007。 因為TCP只確認數據流中至第一個丟失報文段之前的位元組數據,所以TCP被稱為是採用累積確認。
TCP的實現有兩個基本的選擇:
1接收方立即丟棄失序報文段;
2接收方保留失序的位元組,並等待缺少的位元組以填補該間隔。
一條TCP連接的雙方均可隨機地選擇初始序號。 這樣做可以減少將那些仍在網路中的來自兩台主機之間先前連接的報文段,誤認為是新建連接所產生的有效報文段的可能性。
•例子telnet
Telnet由是一個用於遠程登錄的應用層協議。它運行在TCP之上,被設計成可在任意一對主機之間工作。
假設主機A發起一個與主機B的Telnet會話。因為是主機A發起該會話,因此主機A被標記為客戶機,主機B被標記為伺服器。用戶鍵入的每個字元(在客戶機端)都會被發送至遠程主機。遠程主機收到後會復制一個相同的字元發回客戶機,並顯示在Telnet用戶的屏幕上。這種「回顯」用於確保由用戶發送的字元已經被遠程主機收到並處理。因此,在從用戶擊鍵到字元顯示在用戶屏幕上之間的這段時間內,每個字元在網路中傳輸了兩次。
現在假設用戶輸入了一個字元「C」,假設客戶機和伺服器的起始序號分別是42和79。前面講過,一個報文段的序號就是該報文段數據欄位首位元組的序號。因此,客戶機發送的第一個報文段的序號為42,伺服器發送的第一個報文段的序號為79。前面講過,確認號就是主機期待的數據的下一個位元組序號。在TCP連接建立後但沒有發送任何數據之前,客戶機等待位元組79,而伺服器等待位元組42。
如圖所示,共發了3個報文段。第一個報文段是由客戶機發往伺服器,其數據欄位里包含一位元組的字元「C」的ASCII碼,其序號欄位里是42。另外,由於客戶機還沒有接收到來自伺服器的任何數據,因此該報文段中的確認號欄位里是79。
第二個報文段是由伺服器發往客戶機。它有兩個目的:第一個目的是為伺服器所收到的數據提供確認。伺服器通過在確認號欄位中填入43,告訴客戶機它已經成功地收到位元組42及以前的所有位元組,現在正等待著位元組43的出現。第二個目的是回顯字元「C」。因此,在第二個報文段的數據欄位里填入的是字元「C」的ASCII碼,第二個報文段的序號為79,它是該TCP連接上從伺服器到客戶機的數據流的起始序號,也是伺服器要發送的第一個位元組的數據。
這里客戶機到伺服器的數據的確認被裝載在一個伺服器到客戶機的數據的報文段中,這種確認被稱為是捎帶確認.
第三個報文段是從客戶機發往伺服器的。它的唯一目的是確認已從伺服器收到的數據。
3往返時延的估計與超時
TCP如同前面所講的rdt協議一樣,採用超時/重傳機制來處理報文段的丟失問題。最重要的一個問題就是超時間隔長度的設置。顯然,超時間隔必須大於TCP連接的往返時延RTT,即從一個報文段發出到收到其確認時。否則會造成不必要的重傳。
•估計往返時延
TCP估計發送方與接收方之間的往返時延是通過採集報文段的樣本RTT來實現的,就是從某報文段被發出到對該報文段的確認被收到之間的時間長度。
也就是說TCP為一個已發送的但目前尚未被確認的報文段估計sampleRTT,從而產生一個接近每個RTT的采樣值。但是,TCP不會為重傳的報文段計算RTT。
為了估計一個典型的RTT,採取了某種對RTT取平均值的辦法。TCP據下列公式來更新
EstimatedRTT=(1-)*EstimatedRTT+*SampleRTT
即估計RTT的新值是由以前估計的RTT值與sampleRTT新值加權組合而成的。
參考值是a=0.125,因此是一個加權平均值。顯然這個加權平均對最新樣本賦予的權值
要大於對老樣本賦予的權值。因為越新的樣本能更好地反映出網路當前的擁塞情況。從統計學觀點來講,這種平均被稱為指數加權移動平均
除了估算RTT外,還需要測量RTT的變化,RTT偏差的程度,因為直接使用平均值設置計時器會有問題(太靈敏)。
DevRTT=(1-β)*DevRTT+β*|SampleRTT-EstimatedRTT|
RTT偏差也使用了指數加權移動平均。B取值0.25.
•設置和管理重傳超時間隔
假設已經得到了估計RTT值和RTT偏差值,那麼TCP超時間隔應該用什麼值呢?TCP將超時間隔設置成大於等於估計RTT值和4倍的RTT偏差值,否則將造成不必要的重傳。但是超時間隔也不應該比估計RTT值大太多,否則當報文段丟失時,TCP不能很快地重傳該報文段,從而將給上層應用帶來很大的數據傳輸時延。因此,要求將超時間隔設為估計RTT值加上一定餘量。當估計RTT值波動較大時,這個余最應該大些;當波動比較小時,這個餘量應該小些。因此使用4倍的偏差值來設置重傳時間。
TimeoutInterval=EstimatedRTT+4*DevRTT
4可信數據傳輸
網際網路的網路層服務是不可靠的。IP不保證數據報的交付,不保證數據報的按序交付,也不保證數據報中數據的完整性。
TCP在IP不可靠的盡力而為服務基礎上建立了一種可靠數據傳輸服務。
TCP提供可靠數據傳輸的方法涉及前面學過的許多原理。
TCP採用流水線協議、累計確認。
TCP推薦的定時器管理過程使用單一的重傳定時器,即使有多個已發送但還未被確認的報文段也一樣。重傳由超時和多個ACK觸發。
在TCP發送方有3種與發送和重傳有關的主要事件:從上層應用程序接收數據,定時器超時和收到確認ACK。
從上層應用程序接收數據。一旦這個事件發生,TCP就從應用程序接收數據,將數據封裝在一個報文段中,並將該報文段交給IP。注意到每一個報文段都包含一個序號,這個序號就是該報文段第一個數據位元組的位元組流編號。如果定時器還沒有計時,則當報文段被傳給IP時,TCP就啟動一個該定時器。
第二個事件是超時。TCP通過重傳引起超時的報文段來響應超時事件。然後TCP重啟定時器。
第三個事件是一個來自接收方的確認報文段(ACK)。當該事件發生時,TCP將ACK的值y與變數SendBase(發送窗口的基地址)進行比較。TCP狀態變數SendBase是最早未被確認的位元組的序號。就是指接收方已正確按序接收到數據的最後一個位元組的序號。TCP採用累積確認,所以y確認了位元組編號在y之前的所有位元組都已經收到。如果Y>SendBase,則該ACK是在確認一個或多個先前未被確認的報文段。因此發送方更新其SendBase變數,相當於發送窗口向前移動。
另外,如果當前有未被確認的報文段,TCP還要重新啟動定時器。
快速重傳
超時觸發重傳存在的另一個問題是超時周期可能相對較長。當一個報文段丟失時,這種長超時周期迫使發送方等待很長時間才重傳丟失的分組,因而增加了端到端時延。所以通常發送方可在超時事件發生之前通過觀察冗餘ACK來檢測丟包情況。
冗餘ACK就是接收方再次確認某個報文段的ACK,而發送方先前已經收到對該報文段的確認。
當TCP接收方收到一個序號比所期望的序號大的報文段時,它認為檢測到了數據流中的一個間隔,即有報文段丟失。這個間隔可能是由於在網路中報文段丟失或重新排序造成的。因為TCP使用累計確認,所以接收方不向發送方發回否定確認,而是對最後一個正確接收報文段進行重復確認(即產生一個冗餘ACK)
如果TCP發送方接收到對相同報文段的3個冗餘ACK.它就認為跟在這個已被確認過3次的報文段之後的報文段已經丟失。一旦收到3個冗餘ACK,TCP就執行快速重傳 ,
即在該報文段的定時器過期之前重傳丟失的報文段。
5流量控制
前面講過,一條TCP連接雙方的主機都為該連接設置了接收緩存。當該TCP連接收到正確、按序的位元組後,它就將數據放入接收緩存。相關聯的應用進程會從該緩存中讀取數據,但沒必要數據剛一到達就立即讀取。事實上,接收方應用也許正忙於其他任務,甚至要過很長時間後才去讀取該數據。如果應用程序讀取數據時相當緩慢,而發送方發送數據太多、太快,會很容易使這個連接的接收緩存溢出。
TCP為應用程序提供了流量控制服務以消除發送方導致接收方緩存溢出的可能性。因此,可以說 流量控制是一個速度匹配服務,即發送方的發送速率與接收方應用程序的讀速率相匹配。
前面提到過,TCP發送方也可能因為IP網路的擁塞而被限制,這種形式的發送方的控制被稱為擁塞控制(congestioncontrol)。
TCP通過讓接收方維護一個稱為接收窗口的變數來提供流量控制。接收窗口用於告訴發送方,該接收方還有多少可用的緩存空間。因為TCP是全雙工通信,在連接兩端的發送方都各自維護一個接收窗口變數。 主機把當前的空閑接收緩存大小值放入它發給對方主機的報文段接收窗口欄位中,通知對方它在該連接的緩存中還有多少可用空間。
6 TCP連接管理
客戶機中的TCP會用以下方式與伺服器建立一條TCP連接:
第一步: 客戶機端首先向伺服器發送一個SNY比特被置為1報文段。該報文段中不包含應用層數據,這個特殊報文段被稱為SYN報文段。另外,客戶機會選擇一個起始序號,並將其放置到報文段的序號欄位中。為了避免某些安全性攻擊,這里一般隨機選擇序號。
第二步: 一旦包含TCP報文段的用戶數據報到達伺服器主機,伺服器會從該數據報中提取出TCPSYN報文段,為該TCP連接分配TCP緩存和控制變數,並向客戶機TCP發送允許連接的報文段。這個允許連接的報文段還是不包含應用層數據。但是,在報文段的首部卻包含3個重要的信息。
首先,SYN比特被置為1。其次,該 TCP報文段首部的確認號欄位被置為客戶端序號+1最後,伺服器選擇自己的初始序號,並將其放置到TCP報文段首部的序號欄位中。 這個允許連接的報文段實際上表明了:「我收到了你要求建立連接的、帶有初始序號的分組。我同意建立該連接,我自己的初始序號是XX」。這個同意連接的報文段通常被稱為SYN+ACK報文段。
第三步: 在收到SYN+ACK報文段後,客戶機也要給該連接分配緩存和控制變數。客戶機主機還會向伺服器發送另外一個報文段,這個報文段對伺服器允許連接的報文段進行了確認。因為連接已經建立了,所以該ACK比特被置為1,稱為ACK報文段,可以攜帶數據。
一旦以上3步完成,客戶機和伺服器就可以相互發送含有數據的報文段了。
為了建立連接,在兩台主機之間發送了3個分組,這種連接建立過程通常被稱為 三次握手(SNY、SYN+ACK、ACK,ACK報文段可以攜帶數據) 。這個過程發生在客戶機connect()伺服器,伺服器accept()客戶連接的階段。
假設客戶機應用程序決定要關閉該連接。(注意,伺服器也能選擇關閉該連接)客戶機發送一個FIN比特被置為1的TCP報文段,並進人FINWAIT1狀態。
當處在FINWAIT1狀態時,客戶機TCP等待一個來自伺服器的帶有ACK確認信息的TCP報文段。當它收到該報文段時,客戶機TCP進入FINWAIT2狀態。
當處在FINWAIT2狀態時,客戶機等待來自伺服器的FIN比特被置為1的另一個報文段,
收到該報文段後,客戶機TCP對伺服器的報文段進行ACK確認,並進入TIME_WAIT狀態。TIME_WAIT狀態使得TCP客戶機重傳最終確認報文,以防該ACK丟失。在TIME_WAIT狀態中所消耗的時間是與具體實現有關的,一般是30秒或更多時間。
經過等待後,連接正式關閉,客戶機端所有與連接有關的資源將被釋放。 因此TCP連接的關閉需要客戶端和伺服器端互相交換連接關閉的FIN、ACK置位報文段。
C. 簡述計算機網路的定義和構成
(1)計算機網路的定義 : 利用通信線路和設備,將分散在不同地點、具有獨立功能的多個計算機系統互連起來,按網路協議互相通信,在功能完善的網路軟體控制下實現網路資源共享和信息交換的系統。 網路是現代通信技術與計算機技術結合的產物。
(2)主計算機、終端、通信處理機、通訊設備、集中器、信號變換器、通信線路、路由器。
D. 計算機網路筆記——數據鏈路層
封裝成幀 :在一段數據的前後部分添加 首部 和 尾部 ,這樣就構成了一個幀。
接收端在收到物理層上交的比特流後,就能根據首部和尾部的標記,從收到的比特流中識別幀的開始和結束.
首部和尾部包含許多的控制信息,他們的一個重要作用: 幀定界 (確定幀的界限)。
幀同步 :接收方應當能從接收到的二進制比特流中區分出幀的起始和終止。
1. 字元計數法
2. 字元(節)填充法
3. 零比特填充法
4. 違規編碼法。
位元組計數法 : Count欄位的脆弱性(其值若有差錯將導致災難性後果)
字元填充法 : 實現上的復雜性和不兼容性
目前較普遍使用的幀同步法是 比特填充 和 違規編碼法 。
差錯源於雜訊:
冗餘編碼: 在數據前面添加校驗數據,和最終收到的數據比對是否有誤,有誤證明傳輸出錯
板栗🌰
一段晦澀的話
「可靠傳輸」:數據鏈路層發送端發送什麼,接收端就收到什麼。
鏈路層使用CRC檢驗,能夠實現無比特差錯的傳輸,但這還不是可靠傳輸。
原理: 多個校驗位同時檢驗一個數據
構成: 檢驗位和數據位
檢驗位個數:海明不等式 2^r >= k + r + 1 計算得出(r為檢驗位個數,k為數據位位數)
檢驗位位置:2的(1-r次方)
編碼: (以數據D = 101101為例)
最終傳輸數據(海明碼): 00 1 0 011 1 01
校驗:
🌰🌰板栗+1
E. 計算機網路知識點
一、計算機網路概述
1.1 計算機網路的分類
按照網路的作用范圍:廣域網(WAN)、城域網(MAN)、區域網(LAN);
按照網路使用者:公用網路、專用網路。
1.2 計算機網路的層次結構
TCP/IP四層模型與OSI體系結構對比:
1.3 層次結構設計的基本原則
各層之間是相互獨立的;
每一層需要有足夠的靈活性;
各層之間完全解耦。
1.4 計算機網路的性能指標
速率:bps=bit/s 時延:發送時延、傳播時延、排隊時延、處理時延 往返時間RTT:數據報文在端到端通信中的來回一次的時間。
二、物理層
物理層的作用:連接不同的物理設備,傳輸比特流。該層為上層協議提供了一個傳輸數據的可靠的物理媒體。簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。
物理層設備:
中繼器【Repeater,也叫放大器】:同一區域網的再生信號;兩埠的網段必須同一協議;5-4-3規程:10BASE-5乙太網中,最多串聯4個中繼器,5段中只能有3個連接主機;
集線器:同一區域網的再生、放大信號(多埠的中繼器);半雙工,不能隔離沖突域也不能隔離廣播域。
信道的基本概念:信道是往一個方向傳輸信息的媒體,一條通信電路包含一個發送信道和一個接受信道。
單工通信信道:只能一個方向通信,沒有反方向反饋的信道;
半雙工通信信道:雙方都可以發送和接受信息,但不能同時發送也不能同時接收;
全雙工通信信道:雙方都可以同時發送和接收。
三、數據鏈路層
3.1 數據鏈路層概述
數據鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的數據可靠地傳輸到相鄰節點的目標機網路層。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。
該層的作用包括: 物理地址定址、數據的成幀、流量控制、數據的檢錯、重發 等。
有關數據鏈路層的重要知識點:
數據鏈路層為網路層提供可靠的數據傳輸;
基本數據單位為幀;
主要的協議:乙太網協議;
兩個重要設備名稱:網橋和交換機。
封裝成幀:「幀」是 數據鏈路層 數據的基本單位:
透明傳輸:「透明」是指即使控制字元在幀數據中,但是要當做不存在去處理。即在控制字元前加上轉義字元ESC。
3.2 數據鏈路層的差錯監測
差錯檢測:奇偶校驗碼、循環冗餘校驗碼CRC
奇偶校驗碼–局限性:當出錯兩位時,檢測不到錯誤。
循環冗餘檢驗碼:根據傳輸或保存的數據而產生固定位數校驗碼。
3.3 最大傳輸單元MTU
最大傳輸單元MTU(Maximum Transmission Unit),數據鏈路層的數據幀不是無限大的,數據幀長度受MTU限制.
路徑MTU:由鏈路中MTU的最小值決定。
3.4 乙太網協議詳解
MAC地址:每一個設備都擁有唯一的MAC地址,共48位,使用十六進製表示。
乙太網協議:是一種使用廣泛的區域網技術,是一種應用於數據鏈路層的協議,使用乙太網可以完成相鄰設備的數據幀傳輸:
區域網分類:
Ethernet乙太網IEEE802.3:
乙太網第一個廣泛部署的高速區域網
乙太網數據速率快
乙太網硬體價格便宜,網路造價成本低
乙太網幀結構:
類型:標識上層協議(2位元組)
目的地址和源地址:MAC地址(每個6位元組)
數據:封裝的上層協議的分組(46~1500位元組)
CRC:循環冗餘碼(4位元組)
乙太網最短幀:乙太網幀最短64位元組;乙太網幀除了數據部分18位元組;數據最短46位元組;
MAC地址(物理地址、區域網地址)
MAC地址長度為6位元組,48位;
MAC地址具有唯一性,每個網路適配器對應一個MAC地址;
通常採用十六進製表示法,每個位元組表示一個十六進制數,用 - 或 : 連接起來;
MAC廣播地址:FF-FF-FF-FF-FF-FF。
四、網路層
網路層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括定址和路由選擇、連接的建立、保持和終止等。數據交換技術是報文交換(基本上被分組所替代):採用儲存轉發方式,數據交換單位是報文。
網路層中涉及眾多的協議,其中包括最重要的協議,也是TCP/IP的核心協議——IP協議。IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。
與IP協議配套使用實現其功能的還有地址解析協議ARP、逆地址解析協議RARP、網際網路報文協議ICMP、網際網路組管理協議IGMP。具體的協議我們會在接下來的部分進行總結,有關網路層的重點為:
1、網路層負責對子網間的數據包進行路由選擇。此外,網路層還可以實現擁塞控制、網際互連等功能;
2、基本數據單位為IP數據報;
3、包含的主要協議:
IP協議(Internet Protocol,網際網路互聯協議);
ICMP協議(Internet Control Message Protocol,網際網路控制報文協議);
ARP協議(Address Resolution Protocol,地址解析協議);
RARP協議(Reverse Address Resolution Protocol,逆地址解析協議)。
4、重要的設備:路由器。
路由器相關協議
4.1 IP協議詳解
IP網際協議是 Internet 網路層最核心的協議。虛擬互聯網路的產生:實際的計算機網路錯綜復雜;物理設備通過使用IP協議,屏蔽了物理網路之間的差異;當網路中主機使用IP協議連接時,無需關注網路細節,於是形成了虛擬網路。
IP協議使得復雜的實際網路變為一個虛擬互聯的網路;並且解決了在虛擬網路中數據報傳輸路徑的問題。
其中,版本指IP協議的版本,佔4位,如IPv4和IPv6;首部位長度表示IP首部長度,佔4位,最大數值位15;總長度表示IP數據報總長度,佔16位,最大數值位65535;TTL表示IP數據報文在網路中的壽命,佔8位;協議表明IP數據所攜帶的具體數據是什麼協議的,如TCP、UDP。
4.2 IP協議的轉發流程
4.3 IP地址的子網劃分
A類(8網路號+24主機號)、B類(16網路號+16主機號)、C類(24網路號+8主機號)可以用於標識網路中的主機或路由器,D類地址作為組廣播地址,E類是地址保留。
4.4 網路地址轉換NAT技術
用於多個主機通過一個公有IP訪問訪問互聯網的私有網路中,減緩了IP地址的消耗,但是增加了網路通信的復雜度。
NAT 工作原理:
從內網出去的IP數據報,將其IP地址替換為NAT伺服器擁有的合法的公共IP地址,並將替換關系記錄到NAT轉換表中;
從公共互聯網返回的IP數據報,依據其目的的IP地址檢索NAT轉換表,並利用檢索到的內部私有IP地址替換目的IP地址,然後將IP數據報轉發到內部網路。
4.5 ARP協議與RARP協議
地址解析協議 ARP(Address Resolution Protocol):為網卡(網路適配器)的IP地址到對應的硬體地址提供動態映射。可以把網路層32位地址轉化為數據鏈路層MAC48位地址。
ARP 是即插即用的,一個ARP表是自動建立的,不需要系統管理員來配置。
RARP(Reverse Address Resolution Protocol)協議指逆地址解析協議,可以把數據鏈路層MAC48位地址轉化為網路層32位地址。
4.6 ICMP協議詳解
網際控制報文協議(Internet Control Message Protocol),可以報告錯誤信息或者異常情況,ICMP報文封裝在IP數據報當中。
ICMP協議的應用:
Ping應用:網路故障的排查;
Traceroute應用:可以探測IP數據報在網路中走過的路徑。
4.7網路層的路由概述
關於路由演算法的要求:正確的完整的、在計算上應該盡可能是簡單的、可以適應網路中的變化、穩定的公平的。
自治系統AS: 指處於一個管理機構下的網路設備群,AS內部網路自治管理,對外提供一個或多個出入口,其中自治系統內部的路由協議為內部網關協議,如RIP、OSPF等;自治系統外部的路由協議為外部網關協議,如BGP。
靜態路由: 人工配置,難度和復雜度高;
動態路由:
鏈路狀態路由選擇演算法LS:向所有隔壁路由發送信息收斂快;全局式路由選擇演算法,每個路由器計算路由時,需構建整個網路拓撲圖;利用Dijkstra演算法求源端到目的端網路的最短路徑;Dijkstra(迪傑斯特拉)演算法
距離-向量路由選擇演算法DV:向所有隔壁路由發送信息收斂慢、會存在迴路;基礎是Bellman-Ford方程(簡稱B-F方程);
4.8 內部網關路由協議之RIP協議
路由信息協議 RIP(Routing Information Protocol)【應用層】,基於距離-向量的路由選擇演算法,較小的AS(自治系統),適合小型網路;RIP報文,封裝進UDP數據報。
RIP協議特性:
RIP在度量路徑時採用的是跳數(每個路由器維護自身到其他每個路由器的距離記錄);
RIP的費用定義在源路由器和目的子網之間;
RIP被限制的網路直徑不超過15跳;
和隔壁交換所有的信息,30主動一次(廣播)。
4.9 內部網關路由協議之OSPF協議
開放最短路徑優先協議 OSPF(Open Shortest Path First)【網路層】,基於鏈路狀態的路由選擇演算法(即Dijkstra演算法),較大規模的AS ,適合大型網路,直接封裝在IP數據報傳輸。
OSPF協議優點:
安全;
支持多條相同費用路徑;
支持區別化費用度量;
支持單播路由和多播路由;
分層路由。
RIP與OSPF的對比(路由演算法決定其性質):
4.10外部網關路由協議之BGP協議
BGP(Border Gateway Protocol)邊際網關協議【應用層】:是運行在AS之間的一種協議,尋找一條好路由:首次交換全部信息,以後只交換變化的部分,BGP封裝進TCP報文段.
五、傳輸層
第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務是根據通信子網的特性,最佳的利用網路資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。在這一層,信息傳送的協議數據單元稱為段或報文。
網路層只是根據網路地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的埠。
有關網路層的重點:
傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
包含的主要協議:TCP協議(Transmission Control Protocol,傳輸控制協議)、UDP協議(User Datagram Protocol,用戶數據報協議);
重要設備:網關。
5.1 UDP協議詳解
UDP(User Datagram Protocol: 用戶數據報協議),是一個非常簡單的協議。
UDP協議的特點:
UDP是無連接協議;
UDP不能保證可靠的交付數據;
UDP是面向報文傳輸的;
UDP沒有擁塞控制;
UDP首部開銷很小。
UDP數據報結構:
首部:8B,四欄位/2B【源埠 | 目的埠 | UDP長度 | 校驗和】 數據欄位:應用數據
5.2 TCP協議詳解
TCP(Transmission Control Protocol: 傳輸控制協議),是計算機網路中非常復雜的一個協議。
TCP協議的功能:
對應用層報文進行分段和重組;
面向應用層實現復用與分解;
實現端到端的流量控制;
擁塞控制;
傳輸層定址;
對收到的報文進行差錯檢測(首部和數據部分都檢錯);
實現進程間的端到端可靠數據傳輸控制。
TCP協議的特點:
TCP是面向連接的協議;
TCP是面向位元組流的協議;
TCP的一個連接有兩端,即點對點通信;
TCP提供可靠的傳輸服務;
TCP協議提供全雙工通信(每條TCP連接只能一對一);
5.2.1 TCP報文段結構:
最大報文段長度:報文段中封裝的應用層數據的最大長度。
TCP首部:
序號欄位:TCP的序號是對每個應用層數據的每個位元組進行編號
確認序號欄位:期望從對方接收數據的位元組序號,即該序號對應的位元組尚未收到。用ack_seq標識;
TCP段的首部長度最短是20B ,最長為60位元組。但是長度必須為4B的整數倍
TCP標記的作用:
5.3 可靠傳輸的基本原理
基本原理:
不可靠傳輸信道在數據傳輸中可能發生的情況:比特差錯、亂序、重傳、丟失
基於不可靠信道實現可靠數據傳輸採取的措施:
差錯檢測:利用編碼實現數據包傳輸過程中的比特差錯檢測 確認:接收方向發送方反饋接收狀態 重傳:發送方重新發送接收方沒有正確接收的數據 序號:確保數據按序提交 計時器:解決數據丟失問題;
停止等待協議:是最簡單的可靠傳輸協議,但是該協議對信道的利用率不高。
連續ARQ(Automatic Repeat reQuest:自動重傳請求)協議:滑動窗口+累計確認,大幅提高了信道的利用率。
5.3.1TCP協議的可靠傳輸
基於連續ARQ協議,在某些情況下,重傳的效率並不高,會重復傳輸部分已經成功接收的位元組。
5.3.2 TCP協議的流量控制
流量控制:讓發送方發送速率不要太快,TCP協議使用滑動窗口實現流量控制。
5.4 TCP協議的擁塞控制
擁塞控制與流量控制的區別:流量控制考慮點對點的通信量的控制,而擁塞控制考慮整個網路,是全局性的考慮。擁塞控制的方法:慢啟動演算法+擁塞避免演算法。
慢開始和擁塞避免:
【慢開始】擁塞窗口從1指數增長;
到達閾值時進入【擁塞避免】,變成+1增長;
【超時】,閾值變為當前cwnd的一半(不能<2);
再從【慢開始】,擁塞窗口從1指數增長。
快重傳和快恢復:
發送方連續收到3個冗餘ACK,執行【快重傳】,不必等計時器超時;
執行【快恢復】,閾值變為當前cwnd的一半(不能<2),並從此新的ssthresh點進入【擁塞避免】。
5.5 TCP連接的三次握手(重要)
TCP三次握手使用指令:
面試常客:為什麼需要三次握手?
第一次握手:客戶發送請求,此時伺服器知道客戶能發;
第二次握手:伺服器發送確認,此時客戶知道伺服器能發能收;
第三次握手:客戶發送確認,此時伺服器知道客戶能收。
建立連接(三次握手):
第一次: 客戶向伺服器發送連接請求段,建立連接請求控制段(SYN=1),表示傳輸的報文段的第一個數據位元組的序列號是x,此序列號代表整個報文段的序號(seq=x);客戶端進入 SYN_SEND (同步發送狀態);
第二次: 伺服器發回確認報文段,同意建立新連接的確認段(SYN=1),確認序號欄位有效(ACK=1),伺服器告訴客戶端報文段序號是y(seq=y),表示伺服器已經收到客戶端序號為x的報文段,准備接受客戶端序列號為x+1的報文段(ack_seq=x+1);伺服器由LISTEN進入SYN_RCVD (同步收到狀態);
第三次: 客戶對伺服器的同一連接進行確認.確認序號欄位有效(ACK=1),客戶此次的報文段的序列號是x+1(seq=x+1),客戶期望接受伺服器序列號為y+1的報文段(ack_seq=y+1);當客戶發送ack時,客戶端進入ESTABLISHED 狀態;當服務收到客戶發送的ack後,也進入ESTABLISHED狀態;第三次握手可攜帶數據;
5.6 TCP連接的四次揮手(重要)
釋放連接(四次揮手)
第一次: 客戶向伺服器發送釋放連接報文段,發送端數據發送完畢,請求釋放連接(FIN=1),傳輸的第一個數據位元組的序號是x(seq=x);客戶端狀態由ESTABLISHED進入FIN_WAIT_1(終止等待1狀態);
第二次: 伺服器向客戶發送確認段,確認字型大小段有效(ACK=1),伺服器傳輸的數據序號是y(seq=y),伺服器期望接收客戶數據序號為x+1(ack_seq=x+1);伺服器狀態由ESTABLISHED進入CLOSE_WAIT(關閉等待);客戶端收到ACK段後,由FIN_WAIT_1進入FIN_WAIT_2;
第三次: 伺服器向客戶發送釋放連接報文段,請求釋放連接(FIN=1),確認字型大小段有效(ACK=1),表示伺服器期望接收客戶數據序號為x+1(ack_seq=x+1);表示自己傳輸的第一個位元組序號是y+1(seq=y+1);伺服器狀態由CLOSE_WAIT 進入 LAST_ACK (最後確認狀態);
第四次: 客戶向伺服器發送確認段,確認字型大小段有效(ACK=1),表示客戶傳輸的數據序號是x+1(seq=x+1),表示客戶期望接收伺服器數據序號為y+1+1(ack_seq=y+1+1);客戶端狀態由FIN_WAIT_2進入TIME_WAIT,等待2MSL時間,進入CLOSED狀態;伺服器在收到最後一次ACK後,由LAST_ACK進入CLOSED;
為什麼需要等待2MSL?
最後一個報文沒有確認;
確保發送方的ACK可以到達接收方;
2MSL時間內沒有收到,則接收方會重發;
確保當前連接的所有報文都已經過期。
六、應用層
為操作系統或網路應用程序提供訪問網路服務的介面。應用層重點:
數據傳輸基本單位為報文;
包含的主要協議:FTP(文件傳送協議)、Telnet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議(Hyper Text Transfer Protocol)。
6.1 DNS詳解
DNS(Domain Name System:域名系統)【C/S,UDP,埠53】:解決IP地址復雜難以記憶的問題,存儲並完成自己所管轄范圍內主機的 域名 到 IP 地址的映射。
域名解析的順序:
【1】瀏覽器緩存,
【2】找本機的hosts文件,
【3】路由緩存,
【4】找DNS伺服器(本地域名、頂級域名、根域名)->迭代解析、遞歸查詢。
IP—>DNS服務—>便於記憶的域名
域名由點、字母和數字組成,分為頂級域(com,cn,net,gov,org)、二級域(,taobao,qq,alibaba)、三級域(www)(12-2-0852)
6.2 DHCP協議詳解
DHCP(Dynamic Configuration Protocol:動態主機設置協議):是一個區域網協議,是應用UDP協議的應用層協議。作用:為臨時接入區域網的用戶自動分配IP地址。
6.3 HTTP協議詳解
文件傳輸協議(FTP):控制連接(埠21):傳輸控制信息(連接、傳輸請求),以7位ASCII碼的格式。整個會話期間一直打開。
HTTP(HyperText Transfer Protocol:超文本傳輸協議)【TCP,埠80】:是可靠的數據傳輸協議,瀏覽器向伺服器發收報文前,先建立TCP連接,HTTP使用TCP連接方式(HTTP自身無連接)。
HTTP請求報文方式:
GET:請求指定的頁面信息,並返回實體主體;
POST:向指定資源提交數據進行處理請求;
DELETE:請求伺服器刪除指定的頁面;
HEAD:請求讀取URL標識的信息的首部,只返回報文頭;
OPETION:請求一些選項的信息;
PUT:在指明的URL下存儲一個文檔。
6.3.1 HTTP工作的結構
6.3.2 HTTPS協議詳解
HTTPS(Secure)是安全的HTTP協議,埠號443。基於HTTP協議,通過SSL或TLS提供加密處理數據、驗證對方身份以及數據完整性保護
原文地址:https://blog.csdn.net/Royalic/article/details/119985591
F. 計算機網路筆記——數據鏈路層(停等協議、GBN、SR)
流量控制:防止發送端發送和接收端接收速度不匹配造成傳輸錯誤
傳輸層和數據鏈路層均有流量控制,但是控制手法不一樣
傳輸層:端到端,接收端向發送端發送一個窗口公告。告訴發送端目前我能接收多少
數據鏈路層:點到點,接收端接收不下的就不回復確認(ack),讓發送端自己重傳
涉及協議較多分批寫
優點 :最簡單的控制協議
缺點 :但是性能較弱,信道利用率低
控制方法 :
發送方:發送一個幀
接收方:接收到幀後返回改幀的ack
發送方:接收到ack後發送下一個幀
差錯控制 :
注意 :
滑動窗口協議是基於停止等待協議的優化版本
停止等待協議性能是因為需要等待ack之後才能發送下一個幀,在傳送的很長時間內信道一直在等待狀態
滑動窗口則利用緩沖思想,允許連續發送(未收到ack之前)多個幀,以加強信道利用
窗口 :其實就是緩沖幀的一個容器,將處理好的幀發送到緩沖到窗口,可以發送時就可以直接發送,藉此優化性能。一個幀對應一個窗口。
GBN是滑動窗口中的一種,其中 發送窗口 > 1 , 接收窗口=1 因發送錯誤後需要退回到最後正確連續幀位置開始重發,故而得名。
控制方法 :
發送端:在將發送窗口內的數據連續發送
接收端:收到一個之後向接收端發送累計確認的ack
發送端:收到ack後窗口後移發送後面的數據
累計確認 :累計確認允許接收端一段時間內發送一次ack而不是每一個幀都需要發送ack。該確認方式確認代表其前面的幀都以正確接收到
eg:發送端發送了編號 0,1,2,3,4,5 的幀,等待一段時間後(超過3的超時計時器)累計收到的ack對應 0,2 幀,則證明已經成功 0,1,2 均已經成功接收, 3 傳輸錯誤。並且哪怕 4,5 兩個幀接收成功後也不會返回 4,5 的ack會一直等待從 3 開始重傳
差錯控制 :
發送幀丟失、ack丟失、ack遲到 等處理方法基本和停等協議相同,不同的是採用累計確認恢復的方式,當前面的幀出錯之後後面幀無論是否發送成功都要重傳
優點:信道利用率高(利用窗口有增加發送端佔用,並且減少ack回復次數)
缺點:累計確認使得該方法只接收正確順序的幀,而不接受亂序的幀,錯誤重傳浪費嚴重
發送窗口大小問題
窗口理論上是越多性能越好,但是窗口不能無限大,n比特編碼最大隻能2^(n-1)個窗口,否則會造成幀無法區分(本質就是留了一個比特區分兩組幀)
SR協議可以說是GBN的plus版本,在GBN的基礎上改回每一個幀都要確認的機制,解決了累計確認只接收順序幀的弊端只需要重發錯誤幀。
其中 發送窗口 > 1 , 接收窗口 > 1 , 接收窗口 > 發送窗口 (建議接 收窗口 = 發送窗口 接收窗口少了溢出多了浪費).
控制方法 :
發送端:將窗口內的數據連續發送
接收端:收到一個幀就將該幀緩存到窗口中並回復一個ack
接收端:接收到順序幀後將數據提交給上層並接收窗口後移(若接收到的幀不是連續的順序幀時接收窗口不移動)
發送端:接收到順序幀的ack後發送窗口後移(同理發送窗口接收到的ack不連續也不移動)
差錯控制 :
發送幀丟失、ack丟失、ack遲到 三類處理方式仍然和停等協議相同,不同的是SR向上層提交的是多個連續幀,停等只提交一個幀(不連續的幀要等接收或重傳完成後才會提交)
發送窗口大小問題
同GBN一樣,發送窗口和接收窗口都不能無限多,且不說緩存容量問題,當兩組幀同時發送時會造成無法區分,大小上限仍然是2^(n-1)個窗口(本質就是留了一個比特寫組號)
窗口大小這里留一張截圖,方便理解
假設窗口大小都為3(圖中編號到了3是借4窗口的圖,正常應編號到2,但是不妨礙理解)
左邊是錯誤重發,第一組的0幀ack丟失了
右邊是正常收發
三種協議對比:
停等協議:單線程的傻子,簡單不易出錯,但是效率極其低下
GBN:假的多線程(接收端太坑啦),接收端是情種,只等待自己哪一個幀,丟棄了後來的幀
SR:多線程,接收端有收藏癖,等待集齊一套召喚神龍(提交給上層這只神龍……)
G. 計算機網路自頂向下方法讀書筆記
link
Client發送一個特殊的 SYN報文段 (標志位SYN置為1)。隨機產生一個初始序號值seq=x,發送給Server,Client進入SYN_SENT狀態,等待Server確認。
Server收到數據包後由標志位SYN=1知道Client請求建立連接,會為該TCP連接分配TCP緩存和變數。並向client發送允許連接報文段的ACK報文段(ACK標志位設置為1),報文段中SYN=1, ack=x+1,並隨機產生一個服務端的初始序號seq=y。發送後,Server進入SYN_RCVD狀態。
Client收到確認後,也要給該連接分配緩存和變數。將發送一個ACK報文段對伺服器的允許連接的報文段進行確認。設置ack=y+1。因為連接已被建立了SYN被置為0。Client和Server進入ESTABLISHED狀態,完成三次握手,隨後Client與Server之間可以開始傳輸數據了。以後每個階段中SYN都將被置為0.
Client(也可以是server,後面流程相反)設置seq=u, 發送一個FIN報文段(FIN標志位設置為1),Client進入FIN_WAIT_1狀態。表示client沒有數據要發送給server了。
Server收到FIN後,發送一個ACK報文段給Client,ack=u+1,並隨機產生一個服務端的初始序號seq=v, Server進入CLOSE_WAIT狀態。表示「同意」client關閉請求
Server發送一個FIN報文段,用來請求關閉Server到Client的數據傳送,同時包含ack=u+1,並隨機產生一個服務端的初始序號seq=w,server進入LAST_ACK狀態。
Client收到FIN後,Client進入TIME_WAIT狀態,接著發送一個ACK報文段ack=w+1給Server, Server收到後進入CLOSED狀態。client在等待了某個固定時間(兩個最大段生命周期,2MSL)之後,沒有收到伺服器端的 ACK ,認為伺服器端已經正常關閉連接,於是自己也關閉連接,進入 CLOSED 狀態。(目的是如果server由於網路原因沒有收到最後的ACK,server將會再發送一個FIN,但若此時client已經CLOSED,則無法回復。因此引入了等待2MSL的流程)。自此就完成了四次揮手,主機中的連接資源也被釋放。
其中 生存時間(TTL) 欄位用來確保數據不會永遠在網路中循環。每當一台路由器處理數據報時,該欄位的值減1。若TTL欄位減為0,則該數據報必須丟棄。
跨網路通信需要經過路由器,同一網路間的通信不需要。127隻有127.0.0.1一個地址可用,代表當前計算機自己。255.255.255.255是 廣播地址 。當一台主機向廣播地址發出數據報時,該報文會交付給網路中的所有主機。
H. 計算機網路名詞解釋知識點簡答題整理
基帶傳輸:比特流直接向電纜發送,無需調制到不同頻段;
基帶信號:信源發出的沒有經過調制的原始電信號;
URL :統一資源定位符,標識萬維網上的各種文檔,全網范圍唯一;
傳輸時延:將分組的所有比特推向鏈路所需要的時間;
協議:協議是通信設備通信前約定好的必須遵守的規則與約定,包括語法、語義、定時等。
網路協議:對等層中對等實體間制定的規則和約定的集合;
MODEM :數據機;
起始(原始)伺服器:對象最初存放並始終保持其拷貝的伺服器;
計算機網路:是用通信設備和線路將分散在不同地點的有獨立功能的多個計算機系統互相連接起來,並通過網路協議進行數據通信,實現資源共享的計算機集合;
解調:將模擬信號轉換成數字信號;
多路復用:在一條傳輸鏈路上同時建立多條連接,分別傳輸數據;
默認路由器:與主機直接相連的一台路由器;
LAN :區域網,是一個地理范圍小的計算機網路;
DNS :域名系統,完成主機名與 IP 地址的轉換;
ATM :非同步傳輸模式,是建立在電路交換和分組交換基礎上的一種面向連接的快速分組交換技術;
Torrent :洪流,參與一個特定文件分發的所有對等方的集合;
Cookie :為了辨別用戶、用於 session 跟蹤等而儲存在用戶本地終端的數據;
SAP :服務訪問點;
n PDU : PDU 為協議數據單元,指對等層之間的數據傳輸單位;第 n 層的協議數據單元;
PPP :點對點傳輸協議;
Web caching :網頁緩存技術;
Web 緩存:代替起始伺服器來滿足 HTTP 請求的網路實體。
Proxy server :代理伺服器;
Go-back-n :回退 n 流水線協議;允許發送方連續發送分組,無需等待確認,若出錯,從出錯的分組開始重發;接收方接收數據分組,若正確,發 ACK ,若出錯,丟棄出錯分組及其後面的分組,不發任何應答;
Packet switching :分組交換技術;
CDMA :碼分多路復用技術;各站點使用不同的編碼,然後可以混合發送,接收方可正確提取所需信息;
TDM :時分多路復用,將鏈路的傳輸時間劃分為若干時隙,每個連接輪流使用不同時隙進行傳輸;
FDM :頻分多路復用,將鏈路傳輸頻段分成多個小的頻段,分別用於不同連接信息的傳送;
OSI :開放系統互連模型,是計算機廣域網體系結構的國際標准,把網路分為 7 層;
CRC :循環冗餘檢測法,事先雙方約定好生成多項式,發送節點在發送數據後附上冗餘碼,使得整個數據可以整除生成多項式,接收節點收到後,若能整除,則認為數據正確,否則,認為數據錯誤;
RIP :路由信息協議;
Socket (套接字):同一台主機內應用層和運輸層的介面;
轉發表:交換設備內,從入埠到出埠建立起來的對應表,主要用來轉發數據幀或 IP 分組;
路由表:路由設備內,從源地址到目的地址建立起來的最佳路徑表,主要用來轉發 IP 分組;
存儲轉發:分組先接收存儲後,再轉發出去;
虛電路網路:能支持實現虛電路通信的網路;
數據報網路:能支持實現數據報通信的網路;
虛電路:源和目的主機之間建立的一條邏輯連接,創建這條邏輯連接時,將指派一個虛電路標識符 VC.ID ,相關設備為它運行中的連接維護狀態信息;
毒性逆轉技術: DV 演算法中,解決計數到無窮的技術,即告知從相鄰路由器獲得最短路徑信息的相鄰路由器到目的網路的距離為無窮大;
加權公平排隊 WFQ :排隊策略為根據權值大小不同,將超出隊列的數據包丟棄;
服務原語:服務的實現形式,在相鄰層通過服務原語建立交互關系,完服務與被服務的過程;
透明傳輸:在無需用戶干涉的情況下,可以傳輸任何數據的技術;
自治系統 AS :由一組通常在相同管理者控制下的路由器組成,在相同的 AS 中,路由器可全部選用同樣的選路演算法,且擁有相互之間的信息;
分組丟失:分組在傳輸過程中因為種種原因未能到達接收方的現象;
隧道技術:在鏈路層或網路層通過對等協議建立起來的邏輯通信信道;
移動接入:也稱無線接入,是指那些常常是移動的端系統與網路的連接;
面向連接服務:客戶機程序和伺服器程序發送實際數據的分組前,要彼此發送控制分組建立連接;
無連接服務:客戶機程序和伺服器程序發送實際數據的分組前,無需彼此發送控制分組建立連接;
MAC 地址:網卡或網路設備埠的物理地址;
擁塞控制:當網路發生擁塞時,用響應的演算法使網路恢復到正常工作的狀態;
流量控制:控制發送方發送數據的速率,使收發雙方協調一致;
Ad Hoc 網路:自主網路,無基站;
往返時延:發送方發送數據分組到收到接收方應答所需要的時間;
電路交換:通信節點之間採用面向連接方式,使用專用電路進行傳輸;
ADSL :非同步數字用戶專線,採用不對稱的上行與下行傳輸速率,常用於用戶寬頻接入。
多播:組播,一對多通信;
路由器的組成包括:輸入埠、輸出埠、交換結構、選路處理器;
網路應用程序體系結構:客戶機 / 伺服器結構、對等共享、混合;
集線器是物理層設備,交換機是數據鏈路層設備,網卡是數據鏈路層設備,路由器是網路層設備;
雙絞線連接設備的兩種方法:直連線和交叉線,同種設備相連和計算機與路由器相連都使用交叉線;不同設備相連用直連線;
MAC 地址 6 位元組, IPv4 地址 4 位元組, IPv6 地址 16 位元組;
有多種方法對載波波形進行調制,調頻,調幅,調相;
IEEE802.3 乙太網採用的多路訪問協議是 CSMA/CD ;
自治系統 AS 內部的選路協議是 RIP 、 OSPF ;自治系統間的選路協議是 BGP ;
多路訪問協議:分三大類:信道劃分協議、隨機訪問協議、輪流協議;
信道劃分協議包括:頻分 FDM 、時分 TDM 、碼分 CDMA ;
隨機訪問協議包括: ALOHA 、 CSMA 、 CSMA/CD(802.3) 、 CSMA/CA(802.11) ;
輪流協議包括:輪詢協議、令牌傳遞協議
ISO 和 OSI 分別是什麼單詞的縮寫,中文意思是什麼?用自己的理解寫出 OSI 分成哪七層?每層要解決的問題和主要功能是什麼?
答:ISO:international standard organization 國際標准化組織;OSI:open system interconnection reference model 開放系統互連模型;
OSI分為 應用層、表示層、會話層、傳輸層、網路層、數據鏈路層、物理層;
層名稱解決的問題主要功能
應用層實現特定應用選擇特定協議;針對特定應用規定協議、時序、表示等,進行封裝。在端系統中用軟體來實現,如HTTP;
表示層壓縮、加密等表示問題;規定數據的格式化表示,數據格式的轉換等;
會話層會話關系建立,會話時序控制等問題;規定通信的時序;數據交換的定界、同步、建立檢查點等;
傳輸層源埠到目的埠的傳輸問題;所有傳輸遺留問題:復用、流量、可靠;
網路層路由、擁塞控制等網路問題;IP定址,擁塞控制;
數據鏈路層相鄰節點無差錯傳輸問題;實現檢錯與糾錯,多路訪問,定址;
物理層物理上可達;定義機械特性,電氣特性,功能特性等;
網際網路協議棧分層模型及每層的功能。
分層的優點:使復雜系統簡化,易於維護和更新;
分層的缺點:有些功能可能在不同層重復出現;
假設一個用戶 ( 郵箱為: [email protected]) 使用 outlook 軟體發送郵件到另一個用戶 ( 郵箱為: [email protected]) ,且接收用戶使用 IMAP 協議收取郵件,請給出此郵件的三個傳輸階段,並給出每個階段可能使用的應用層協議。
用戶 [email protected] 使用outlook軟體發送郵件到 163 郵件伺服器
163郵件伺服器將郵件發送給用戶 [email protected] 的yahoo郵件伺服器
用戶 [email protected] 使用IMAP協議從yahoo郵件伺服器上拉取郵件
第1、2階段可以使用SMTP協議或者擴展的SMTP協議:MIME協議,第3階段可以使用IMAP、POP3、HTTP協議
三次握手的目的是什麼?為什麼要三次(二次為什麼不行)?
為了實現可靠數據傳輸,TCP協議的通信雙方,都必須維護一個序列號,以標識發送出去的數據包中,哪些是已經被對方收到的。三次握手的過程即是通信雙方相互告知序列號起始值,並確認對方已經收到了序列號起始值的必經步驟。
如果只是兩次握手,至多隻有連接發起方的起始序列號能被確認,另一方選擇的序列號則得不到確認。
選擇性重傳 (SR) 協議中發送方窗口和接收方窗口何時移動?分別如何移動?
發送方:當收到ACK確認分組後,若該分組的序號等於發送基序號時窗口發生移動;向前移動到未確認的最小序號的分組處;
接收方:當收到分組的序號等於接收基序號時窗口移動;窗口按交付的分組數量向前移動;
簡述可靠傳輸協議 rdt1.0, rdt2.0, rdt2.1, rdt2.2 和 rdt3.0 在功能上的區別。
rdt1.0:經可靠信道上的可靠數據傳輸,數據傳送不出錯不丟失,不需要反饋。
rdt2.0(停等協議):比特差錯信道上的可靠數據傳輸,認為信道傳輸的數據可能有比特差錯,但不會丟包。接收方能進行差錯檢驗,若數據出錯,發送方接收到NAK之後進行重傳。
rdt2.1:在rdt2.0的基礎上增加了處理重復分組的功能,收到重復分組後,再次發送ACK;
rdt2.2:實現無NAK的可靠數據傳輸,接收方回發帶確認號的ACK0/1,
收到出錯分組時,不發NAK,發送接收到的上一個分組的ACK;
rdt3.0:實現了超時重發功能,由發送方檢測丟包和恢復;
電路交換和虛電路交換的區別?哪些網路使用電路交換、報文交換、虛電路交換和數據報交換?請各舉一個例子。
電路交換時整個物理線路由通訊雙方獨占;
虛電路交換是在電路交換的基礎上增加了分組機制,在一條物理線路上虛擬出多條通訊線路。
電路交換:電話通信網
報文交換:公用電報網
虛電路交換:ATM
數據報交換:Internet
電路交換:面向連接,線路由通信雙方獨占;
虛電路交換:面向連接,分組交換,各分組走統一路徑,非獨占鏈路;
數據報交換:無連接,分組交換,各分組走不同路徑;
交換機逆向擴散式路徑學習法的基本原理:
交換表初始為空;
當收到一個幀的目的地址不在交換表中時,將該幀發送到所有其他介面(除接收介面),並在表中記錄下發送節點的信息,包括源MAC地址、發送到的介面,當前時間;
如果每個節點都發送了一幀,每個節點的地址都會記錄在表中;
收到一個目的地址在表中的幀,將該幀發送到對應的介面;
表自動更新:一段時間後,沒有收到以表中某個地址為源地址的幀,從表中刪除該地址;
非持久 HTTP 連接和持久 HTTP 連接的不同:
非持久HTTP連接:每個TCP連接只傳輸一個web對象,只傳送一個請求/響應對,HTTP1.0使用;
持久HTTP連接:每個TCP連接可以傳送多個web對象,傳送多個請求/響應對,HTTP1.1使用;
Web 緩存的作用是什麼?簡述其工作過程:
作用:代理原始伺服器滿足HTTP請求的網路實體;
工作過程:
瀏覽器:與web緩存建立一個TCP連接,向緩存發送一個該對象的HTTP請求;
Web緩存:檢查本地是否有該對象的拷貝;
若有,就用HTTP響應報文向瀏覽器轉發該對象;
若沒有,緩存與原始伺服器建立TCP連接,向原始伺服器發送一個該對象的HTTP請求,原始伺服器收到請求後,用HTTP響應報文向web緩存發送該對象,web緩存收到響應,在本地存儲一份,並通過HTTP響應報文向瀏覽器發送該對象;
簡要說明無線網路為什麼要用 CSMA/CA 而不用 CSMA/CD ?
無線網路用無線信號實施傳輸,現在的技術還無法檢測沖突,因此無法使用帶沖突檢測的載波偵聽多路訪問協議CSMA/CD,而使用沖突避免的載波偵聽多路訪問協議CSMA/CA;
簡述各種交換結構優缺點,並解釋線頭 HOL 阻塞現象。
內存交換結構:以內存為交換中心;
優點:實現簡單,成本低;
缺點:不能並行,速度慢;
匯流排交換結構:以共享匯流排為交換中心;
優點:實現相對簡單,成本低;
缺點:不能並行,速度慢,不過比memory快;
縱橫制:以交叉陣列為交換中心;
優點:能並行,速度快,比memory和匯流排都快;
缺點:實現復雜,成本高;
線頭HOL阻塞:輸入隊列中後面的分組被位於線頭的一個分組阻塞(即使輸出埠是空閑的),等待交換結構發送;
CSMA/CD 協議的中文全稱,簡述其工作原理。
帶沖突檢測的載波偵聽多路訪問協議;
在共享信道網路中,發送節點發送數據之前,先偵聽鏈路是否空閑,若空閑,立即發送,否則隨機推遲一段時間再偵聽,在傳輸過程中,邊傳輸邊偵聽,若發生沖突,以最快速度結束發送,並隨機推遲一段時間再偵聽;
奇偶校驗、二維奇偶校驗、 CRC 校驗三者比較:
奇偶校驗能檢測出奇數個差錯;
二維奇偶校驗能夠檢測出兩個比特的錯誤,能夠糾正一個比特的差錯;
CRC校驗能檢測小於等於r位的差錯和任何奇數個差錯;
GBN 方法和 SR 方法的差異:
GBN:一個定時器,超時,重發所有已發送未確認接收的分組,發送窗口不超過2的k次方-1,接收窗口大小為1,採用累計確認,接收方返回最後一個正確接受的分組的ACK;
SR:多個定時器,超時,只重發超時定時器對應的分組,發送窗口和接收窗口大小都不超過2的k-1次方,非累計確認,接收方收到當前窗口或前一窗口內正確分組時返回對應的ACK;
I. 計算機網路技術常用英語縮寫
ACPI:Advanced Configuration and Power Interface 高級電源配置電源介面
AD:Active Directory 活動目錄
ATM:Asynchronous Transfer Mode 非同步傳輸模式
CA:Certificate Authority 認證授權
CSMA/CD:Carrier Sense Multiple Access/Collision Detect 載波偵聽多波/沖突檢測
DDN:Digital Data Network 數字數據網路
DLC:Data Link Control 數據鏈接控制
DHCP:Dynamic Host Configuration Protocol 動態主機配置協議
DNS:Domain Name System(Service) 動態域名系統(服務)
EXP:
FAT:File Allocation Table 文件分配表
FTP:File Transfer Protocol 文件傳輸協議
GPF:General Protection Fault 一般保護錯
GC:Global Catalog 全局類目
GG:Global Group 全局組
GUI:Graphical User Interface 圖形用戶介面
HAL:Hardware Abstraction Layer 硬體抽象層
HCI:Human Computer Interaction 人機介面
HCL:Hardware Compatibility List 硬體兼容性列表
HDLC:High-level Data Link Control 高速數據鏈路協議
HTML:Hypertext Markup Language 超文本標記語言
HTTP:Hypertext Transfer Protocol 超文本傳輸協議
HTTP:Secure Hypertext Transfer Protocol 安全超文本傳輸協議
I/O:Input/Output 輸入/輸出
ICMP:Internet Control Message Protocol 互聯網控制信息協議
ICP:Internet Commerce Provider 互聯網商業提供商
IGMP:Internet Group Management Protocol 互聯網組管理協議
IIS:Internet Information Server 互聯網信息伺服器
IMAP:Internet Message Access Protocol 互聯網信息訪問協議
IPX:Internetwork Packet Exchange 互連網包交換
IrDA:Infrared Data Association 紅外數據傳輸組織
IRDP:ICMP Router Discovery Protocol ICMP路由發現協議
ISAPI:Internet Server Application Program Interface 互聯網伺服器應用程序介面
ISP:Internet or Independent Service Provider 互聯網(獨立)服務提供商
IT:Information Technology 信息技術(我發現很多朋友認為IT是Internet Technology其實不對
L2TP:Layer Two Tunneling Protocol 第二曾通道協議
LAN:Local Area Nerwork 區域網
LCP:Link Control Protocol 鏈路控制協議
LLP:Lower Layer Protocol 低層協議
MAC:Media Access Control 媒體訪問控制
MBR:Master Boot Record 主引導記錄
MPPE:Microsoft Point to Point Encryption 微軟點對點加密
MTU:Maximum Transmission Unit 最大傳輸單元
NAT:Network Address Translation 網路地址轉換
NetBEUI:NetBIOS Expand User Interface NetBIOS擴展用戶介面
NetBIOS:Network Basic Input/Output System 網路基本輸入/輸入系統
NDIS:Network Driver Interface Specification 網路驅動程序介面規范
NFS:Network File System 網路文件系統
NIC:Network Interface Card 網路介面卡
NTFS:NT File System NT文件系統