1. 2019年同等學力申碩計算機綜合試題解析--計算機網路
本文解析的原文出處都是《計算機網路第七版謝希仁》
一、填空題
1. 乙太網的爭用期是指(乙太網的端到端往返時間2 ),乙太網發送數據使用(曼切斯特)編碼
解析: 第一空出處教材P88,第七段第三句: 「因此乙太網的端到端往返時間2 稱為爭用期」
第二空原話出處教材p86,第二段第一句:「 乙太網發送的數據都使用曼切斯特編碼 的信號」
2. 一個廣域網傳輸比特率是4Kbps,傳播時延為20ms,若採用停-等協議效率是50%,幀長至少為(160)位
解析: 停止等待協議概念出處P213,
傳播時延為20ms,則往返時延rtt為40ms,效率即為信道利用率,設分組時延為T, , 忽略不計,把已知數據代入公式求出
幀長度為 (式子中有單位轉換),因此幀長度最少為160位。
3. 一個網段的網路號為130.10.3.0/21,子網掩碼可以寫為(255.255.248.0)
解析:用位與的方法即可求出。
4. TCP協議中發送窗口的大小應該由(擁塞)窗口和(接收)窗口中較小的一個決定
二、 選擇題
1. 數據鏈鏈路層採用後退N幀協議,若發送窗口大小是16,那至少需要(C)位序號才能保證不出錯
A. 7
B.6
C.5
D.4
解析: 發窗口的大小 ,n代表序號位數,n位序號要減去0的組合,最大窗口只有n個1表示為 ,因此該題選C
2. 一台主機的IP地址為152.68.70.3,子網掩碼為255.255.224.0,必須路由器才能與該主機通信的是(A)
A.152.68.62.23
B.152.68.67.15
C.152.68.85.220
D.152.68.90.30
解析: 根據子網掩碼可知網路號是19位,主機IP為152.68.70.3,與子網掩碼按位求與,其網路號為152.68.64.0,把子網掩碼與選項中ip按位求與得到,A的網路號為152.68.32.0,其他選項的網路號為152.68.64.0,因此A與題干中ip不在一個網路,因此要路由器通信。
3. 對分片後的數據進行重組的是(B)
A.中間主機
B. 目的主機
C. 核心路由器
D.下一跳路由器
解析: IP協議規定,只有最終的目的主機才可以對分片數據報進行重組,這樣做有兩個好處:首先,在目的主機上進行重組減少了路由器的計算量,當轉發一個IP數據報時,路由器不需要知道它是不是個分片;其次,路由器可以為每個分片獨立選擇路由,每個分片到達目的地所經過的路徑可以不同。
4. CIDR地址塊192.168.10.0/20所包含的IP地址范圍是(D)
A.192.168.10.0-192.168.12.255
B.192.168.10.0-192.168.13.255
C.192.168.10.0-192.168.14.255
D.192.168.10.0-192.168.15.255
解析: 根據題干192.168.10.0/20可以得到
子網掩碼是 ,
IP地址的二進製表示為:
因此原題干IP范圍為
192.168.10.0-192.168.15.255
5. 一個由25台計算機組成的通信網路,網路中任意兩台計算機之間的往返時延為20ms,他們之間採用UDP協議進行請求和響應,如果40ms內未收到響應,該計算機立即重傳請求,但很快網路發生崩潰,解決辦法是(D)
A.增加超時計時器時間
B.增加路由中隊列長度
C.在接收方使用滑動窗口機制防止緩沖區溢出
D.超時後重傳請求時,使用二進制指數退避演算法
解析: P88,二進制指數退避演算法用來確定碰撞後重傳時機,這種演算法讓發生碰撞的站在停止發送數據後,不是等待信道變為空閑後就立即再發送數據,而是推遲一個隨機的時間。
三、名詞解釋
1.BGP協議
解析: (P164第三段和第四段)
BGP邊界網關協議,是不同AS的路由器之間交換路由信息的協議。BGP力求尋找一條能夠到達目的網路且比較好的路由,而並非要尋找一條最佳路由。BGP採用路徑向量路由選擇協議。
2.DHCP協議
解析: (P295-P296)
動態主機配置協議DHCP提供了一種機制,即插即用連網,這種機制允許一台計算機加入新的網路和獲取IP地址而不用手工參與。DHCP對於運行客戶軟體和服務軟體器軟體都適用。DHCP使用客戶伺服器方式。DHCP伺服器分配給DHCP客戶的IP是臨時的,因此DHCP客戶只能在一段有限時間內使用這個分配到的IP地址。
四、計算
1. 一台路由器收到一個1500位元組的IPv4分組,IP頭部為20位元組,如果需要將該分組轉發到一個MTU為500位元組的鏈路上,
1)該IP分組共分成幾個分片,長度分別為多少位元組
2)最後一個分片的片偏移是多少位元組
解析:
(1)IP頭部20個位元組,而轉發mtu500位元組,因此數據量只有480位元組。1500個位元組分成4組,前三組都是480+20 = 500位元組,其中數據長度為480位元組,共用了1440個位元組,原來的數據量為1500-20=1480,因此第四組長度為 1480-1440 +20= 60位元組,其中數據長度為40位元組。
(2)最後一個分片的片偏移了三個分組,mtu大小為500位元組,ip佔20個位元組,每片大小最大為480,片偏移必須為8位元組的整數倍。
第一個片偏移是:0/8 = 0,第二個片偏移是:480/8=60;
第三個片偏移是:480*2/8=960/8=120, 第四個片偏移是:480*3/8=1440/8=180, 因此得到答案180。
2. 一個TCP連接使用256Kbps鏈路,其端到端的傳輸時延為128ms,實際吞吐量是128Kbps,若忽略數據封裝開銷及接收方響應分組的發送時間,發送窗口大小是多少位元組
解析: 實際吞吐量為128Kbps,使用的是256Kbps的鏈路,則說明信道利用率只有50%
ms,發送窗口大小即發送分組長度的大小,根據信道利用率公式: , 其中 忽略不計,rtt代入公式求出分組時間T=256ms,
則窗口大小為
3. 客戶端C和S之間建立一個TCP連接,該連接總是以1KB的最大段長發送TCP段,C有足夠數據發送,當擁塞窗口為32KB時,收到了三個重復的ACK報文,如果接下來4個RTT時間內TCP段的傳輸是成功的,那麼在當四個RTT時間內發送的TCP段都得到ACK,擁塞窗口大小是多少?採用了怎樣的擁塞機制?
解析: (P234-P235)有題干可知MSS=1KB,當收到3個重復確認時,就知道接收方確實沒有收到最近發的那個報文段,立即使用 快重傳 ,此時不是用慢啟動而是使用 快恢復 演算法,接下來的 第一個rtt ,發送放調整門限ssthresh = cwnd /2 = 32/2 = 16KB,於此同時設置擁塞窗口cwnd = ssthresh = 16KB。之後並開始執行 擁塞避免演算法 ,因此接下來的連續 3個rtt 都是連續加法增大,因此最終擁塞窗口cwnd = 16+3*MSS = 19KB
因此該擁塞機制過程為: 快重傳 → 快恢復 → 擁塞避免
2. 請計算機網路的高手做一下下面的名詞解釋各是什麼意思,謝謝
ARP (Address Resolution Protocol)地址解析協議
ARQ (auto repeat request)自動重傳請求
CSMA/CD (Carrier Sense Multiple Access/Collision Derect)載波監聽多路訪問/沖突檢測
CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance)載波監聽多路訪問/沖突防止
CTS 不知道
FTP (File Transfer Protocal)文件傳輸協議
HDSL(High-data-rate Digital Subscriber Line)高速率數字用戶線路
ADSL(Asymmetric Digital Subscriber Line)非對稱數字用戶線
HTTP(HyperTextTransferProtocol)超文本傳輸協議
LAN (Local Area Network)區域網
MAC (Media Access Control)媒體訪問控制
PING (Packet Internet Grope) 網際網路探索數據包
QOS (Quality of Service) 服務質量
RTS 即時戰略類游戲??
TCP (Transmission Control Protocol)傳輸控制協議
UDD 沒聽過,是不是UDP?(User Datagram Protocol)用戶數據報協議
WAN (Wide Area Network) 廣域網
WWW (World Wide Web )萬維網
ATM (Asynchronous Transfer Mode)非同步傳輸模式
DNS (Domain Name Server)域名伺服器
RARP (Reverse Address Resolution Protocol)反向地址轉換協議
IP (Internet Protocol)Internet協議
CDMA (Code Division Multiple Access)碼分多址
3. 計算機網路的名詞解釋是什麼
1、 計算機網路:是利用通信設備和線路將地理位置不同的、功能獨立的多個計算機系統互連起來,以功能完善的網總軟體實現網路中資源共享和信息傳遞的系統。
2、 聯機系統:是由一台中央計算機連接大量的地理位置分散的終端而構成的計算機系統。
3、 PDN:是公用數據網。網中傳輸的是數字化的數據,屬於通信子網的一種。
4、 OSI:是開放系統互連參考模型。為ISO(國際標准化組織)制訂的七層網路模型。
5、 數據通信:是一種通過計算機或其他數據裝置與通信線路,完成數據編碼信號的傳輸、轉接、存儲和處理的通信技術。
6、 數據傳輸率:每秒能傳輸的二進制信息位數,單位為B/S.
7、 信道容量:是信息傳輸數據能力的極限,是信息的最大數據傳輸速率。
8、 自同步法:是指接收方能從數據信號波形中提取同步信號的方法。
9、 PCM:稱脈碼調制,是將模擬數據換成數字信號編碼的最常用方法。
10、 FDM:又稱時分多路復用技術,是在信道帶寬超過原始信號所需帶寬情況下,將物理停產的總帶寬分成若干個與傳輸單個信號帶寬相同的子停產,每個子信息傳輸一路信號。
11、 同步傳輸:是以一批字元為傳輸單位,僅在開始和結尾加同步標志,字元間和比特間均要求同步。
12、 差錯控制:是指在數據通信過程中能發現或糾正差錯,把差錯限制在盡可能小的允許范圍內的技術和方法。
13、 信號:是數據的電子或電磁編碼。
14、 MODEM:又稱數據機。其作用是完成數字數據和模擬信號之間的轉換,使傳輸模擬信號的媒體能傳輸數字數據。發送端MODEM將數字數據調制轉換為模擬信號,接收端MODEM再把模擬信號解調還原為原來的數字數據。
15、 信號傳輸速率:也稱碼元率、調制速率或波特率,表示單位時間內通過信道傳輸的碼元個數,單位記做BAND。
16、 基帶傳輸:是在線路中直接傳送數字信號的電脈沖,是一種最簡單的傳輸方式,適用於近距離通信的區域網。
17、 串列通信:數據是逐位地在一條通信線上傳輸的,較之並行通信速度慢,傳輸距離遠。
18、 信宿:通信過程中接收和處理信息的設備或計算機。
19、 信源:通信過程中產生和發送信息的設備或計算機。
20、 全雙工:允許數據同時在兩個方向上傳輸,要有兩條數據通道,發送端和接收端都要有獨立的接收和發送能力。
4. 運輸層知識要點——謝希仁《計算機網路》
為了在計算機網路中有條不紊地交換數據,就必須遵守一些事先約定好的規則。這些規則明確規定了所 交換數據的格式 以及有關的 同步 問題。
同步的含義:在一定條件下應當發生什麼事件,因而含有時序的意思。
網路協議:為進行網路中的數據交換而建立的規則、標准或約定。
網路協議由以下三個要素組成:
1)語法:即數據與控制信息的結構或格式
2)語義:即需要發出何種控制信息,完成何種動作以及做出何種反應
3)同步:即事件實現順序的詳細說明
一、運輸層協議的概述
1.1 進程之間的通信
1.2 運輸層的兩個主要協議
1.3 運輸層的埠
二、用戶數據報協議UDP
2.1 UDP概述
2.2 UDP的首部格式
三、傳輸控制協議TCP概述
3.1 TCP的最主要的特點
3.2 TCP的連接
四、可靠傳輸的工作原理
4.1 停止等待協議
4.2 連續ARQ協議
五、TCP報文段的首部格式
六、TCP可靠傳輸的實現
6.1 以位元組為單位的滑動窗口
6.2 超時重傳時間的選擇
6.3 選擇確認SACK
七、TCP的流量控制
7.1 利用滑動窗口實現流量控制
7.2 必須考慮傳輸效率
八、TCP的擁塞控制
8.1 擁塞控制的一般原理
8.2 幾種擁塞控制方法
8.3 隨機早期檢測RED
九、TCP的運輸連接管理
9.1 TCP的連接建立
9.2 TCP的連接釋放
9.3 TCP的有限狀態機
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.1 進程之間的通信
1.只有主機的協議棧才有運輸層,而網路核心部分中的路由器在轉發分組時都只用到了下三層的功能
2.兩個主機進行通信就是兩個主機中的應用進程互相通信。從運輸層的角度看,通信的真正端點並不是主機而是主機中的進程。(IP協議能把分組送到目的主機)
網路層時為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
3.運輸層一個重要功能——復用、分用。 (應用進程復用、分用運輸層)
1.2 運輸層的兩個主要協議
1.UDP—User Datagram Protocol 用戶數據報協議(無連接):DNS/RIP/DHCP/SNMP/NFS
TCP—Transmission Control Protocol 傳輸控制協議(面向連接):SMTP/TELNET/HTTP/ FTP
1.3 運輸層的埠
問題:為了使運行不同操作系統的計算機的應用進程能夠互相通信,就必須使用統一的方法(而這種方法必須與特定操作系統無關)對TCP/IP體系的應用進程進行標識。
為什麼不用進程號來區分?(第一,不同操作系統的進程標識符不同;第二,用功能來識別,而不是進程,例如郵件服務功能,而不管具體是哪個進程)
解決方案:在運輸層使用協議埠號,即埠。軟體埠是應用層的各種協議進程與運輸實體進行層間交互的一種地址。(埠號只具有本地意義,只是為了標識本計算機應用層中各個進程在和運輸層交互時的層間介面。)
埠分為兩大類:
1)伺服器使用的埠號:熟知埠號或系統埠號(0~1023);登記埠號(1024~49151)
2)客戶端使用的埠號:49152~65535
2.1 UDP概述
1.UDP只在IP的數據報服務至上增加了很少一點功能,就是復用、分用以及差錯檢測功能
2.特點
1)無連接
2)盡最大努力交付
3)面向報文 (不合並、不拆分、保留這些報文的邊界)
4)UDP沒有擁塞控制
5)UDP支持一對一、一對多、多對一和多對多的交互通信
6)UDP的首部開銷小,只有8位元組
應用進程本身可以在不影響應用的實時性的前提下,增加一些提高可靠性的措施,如採用前向糾錯或重傳已丟失的報文。
2.2 UDP的首部格式
1.traceroute 讓發送的UDP用戶數據報故意使用一個非法的UDP埠號,接收方丟棄報文,並由ICMP(網路控制報文協議)發送「埠不可達」差錯報文給發送方。
2.計算檢驗和。IP數據報的校驗和只檢驗IP數據報的首部,但UDP的校驗和是把首部和數據部分一起都檢驗。(12位元組的首部+真正的首部+數據來進行校驗和的計算)
Q1.為什麼計算校驗和要加12位元組的偽首部
Q2.計算校驗和的原理是什麼?
3.1 TCP的最主要的特點
1.面向連接的運輸層協議(建立連接、傳輸數據、釋放連接)
2.點對點,每一條TCP連接只能有兩個端點
3.可靠交付(無差錯、不丟失、不重復、並且按序到達)
4.全雙工通信。TCP連接的兩端都設有發送緩存和接收緩存。
5.面向位元組流。(流指的是流入到進程或從進程流出的位元組序列;面向位元組流:TCP把應用程序交下來的數據看成是一連串的無結構位元組流。 接收方的應用程序必須有能力識別接收到的位元組流,把它還原成有意義的應用層數據。 因此TCP可以根據窗口值和當前網路狀況調整發送的報文長度。劃分短一點,或者積累到足夠多再發送出去。)
3.2 TCP的連接
1.TCP把連接作為最基本的抽象。
2.每一條TCP連接有兩個端點。TCP連接的端點叫作套接字。
套接字soket = (IP地址:埠號)
每一條TCP連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。
TCP連接 ::= {socket1, socket2}
理想的傳輸條件有以下兩個特點:
1)傳輸信道不產生差錯
2)不管發送方以多快的速度發送數據,接收方總是來得及處理收到的數據
實際的網路並不具備,因此:
1)出現差錯時,讓發送方重傳
2)接收方來不及處理時,及時告訴發送方適當降低發送數據的速度
4.1 停止等待協議
1.「停止等待」就是沒發送完一個分組就停止發送,等待對方的確認,在收到確認後再發送下一個分組。
2.超時重傳。在每發完一個分組就設置一個超時計時器,如果在超時計時器之前收到對方的確認,就撤銷已設置的超時計時器。如果未收到,就認為剛才的分組丟失,並重傳。
3.三種情況:A發送的分組出錯、丟失;B發送的確認丟失;B發送的確認遲到
確認丟失:B丟棄重復的分組,向A重傳確認
確認遲到:A丟棄重復的確認,B丟棄重復分組,並向A重傳確認
4.常稱為自動重傳請求ARQ,重傳時自動進行的(超時即重傳)
5.缺點:信道利用率太低
U=Td/(Td+RTT+Ta)
為了提高傳輸效率,發送方不使用停止等待協議,而是採用流水線傳輸。流水線傳輸就是發送發可連續發送多個分組,不必等每發完一個分組就停頓下來等待對方的確認。(連續ARQ協議和滑動窗口協議)
4.2 連續ARQ協議
1.位於發送窗口內的分組都可連續發送出去,而不需要等待對方的確認。
2.累積確認:接收方不必對收到的分組逐個發送確認,而是在收到幾個分組後,對按序到達的最後一個分組發送確認。
3.缺點:Go-back-N (發送前5個分組,第3個分組丟失,後面三個要重傳)
1.源埠和目的埠
2.序號。 每個位元組都按順序編號。
3.確認號。 期望收到對方下一個報文段的第一個數據位元組的序號。
若確認號=N,則表明:到序號N-1為止的所有數據都已正確收到。
4.數據偏移。 指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠(也即TCP報文段首部長度)。由於首部中還有長度不確定的選項欄位,因此數據偏移欄位是必要的。
5.窗口。窗口欄位明確指出了現在允許對方發送的數據量。窗口值是經常在動態變化著。
6.1 以位元組為單位的滑動窗口
1.發送緩存用來暫存:
1)發送應用程序傳送給發送方TCP准備發送的數據;
2)TCP已發送但未收到確認德爾數據
2.接收緩存用來存放:
1)按序到達的、但尚未被接收應收程序讀取的數據;
2)未按序到達的數據
3.注意三點:
1)A的發送窗口是根據B的接收窗口設置的,但是在同一時刻,由於網路傳輸的滯後,A的發送窗口並不總是B的接收窗口一樣大
2)TCP通常對不按序到達的數據是先臨時存放在接收窗口中,等到位元組流中所缺少的位元組收到後,再按序交付上層的應用進程
3)TCP接收方有累計確認功能(不能過分推遲發送確認,否則會導致發送方不必要的重傳)
6.2 超時重傳時間的選擇
1.超時重傳時間設置太短,會引起很多不必要的重傳;如果設置太長,使網路的空閑時間增大,降低傳輸效率。
2.新的RTTs = (1-a)x(舊的RTTs) + ax(新的RTT樣本),其中RTT樣本的時間為:記錄一個報文段發出的時間,以及收到相應的確認時間,時間差就是報文段的往返時間RTT。
3.RTO = RTTs + 4 x RTTd,其中RTO為超時重傳時間,RTTd是RTT的偏差的加權平均值。
新的RTTd = (1-b) x (舊的RTTd)+ b x |RTTs - 新的RTT樣本|
4.一個問題:發送一個報文段,設定的重傳時間到了,還沒有收到確認。於是重傳報文段。經過一段時間,收到了確認報文段。現在的問題是:如何判定此確認報文段是對先發送的報文段的確認,還是對後來重傳的報文段的確認?
1)解決方法1,在計算加權平均值RTTs時,只要報文段重傳了,就不採用其往返時間樣本。
引入的問題:報文段的時延突然增大的情況
2)解決方法2,報文段每重傳一次,就把超時重傳時間RTO增大一些(一般是2倍)。當不在發生報文段的重傳時,再根據加權平均計算。
6.3 選擇確認SACK
SACK文檔並沒有指明發送發應當怎樣響應SACK。因此大多數的實現還是重傳所有未被確認的數據塊。
7.1 利用滑動窗口實現流量控制
1.流量控制:就是讓發送方的發送速率不要太快,要讓接收方來得及接收。
2.利用滑動窗口機制可很方便地在TCP連接上實現對發送方的流量控制。發送方的發送窗口不能超過接收方給出的接收窗口的數值。
3.死鎖情況:B向A發送了零窗口的報文段後不久,B又有了一些緩存空間,因此B向A發送rwnd = 400.然而該報文段在傳送過程中丟失。A一直等待B發送的非零窗口的通知,B也一直等待A發送的數據。( 窗口通知不超時重傳?為什麼? )
解決方法:TCP為每個連接設有一個持續計時器。只要一方收到對方的零窗口通知,就啟動計時器。計時器到期後,發送一個零窗口探測報文段,而對方就在確認這個探測報文段時給出了現在的窗口值。若仍為零,收到報文段的一方重新設置持續計時器。
7.2 必須考慮傳輸效率
1.應用程序把數據傳送到TCP的發送緩存後,剩下的發送任務就由TCP來控制了。
2.三種不同的機制來控制TCP報文段的發送時機:
1)TCP維持一個變數,它等於最大報文段長度MSS,只要緩存中的存放的數據達到MSS,就組裝成一個TCP報文段發送出去
2)由發送方的應用進程指明要求發送報文段,即TCP支持推送操作
3)發送方設置一個定時器
3.問題一、若用戶只發送一個位元組,則非常浪費帶寬。
解決方法:若發送應用程序把要發送的數據逐個位元組地送到TCP的發送緩存,則發送方就把第一個數據位元組先發送出去,把後面到達的數據位元組都緩存起來。當發送方收到對第一個數據字元的確認後,再把發送緩存中的所有數據組裝成一個報文段發送出去。(採用收到確認就發送+並開始緩存的方式;同時當到達的數據已達到發送窗口大小的一半或已達到報文段的最大長度時,就立即發送一個報文段。)
4.問題二、糊塗窗口綜合症。接收緩存已滿,應用程序一次只讀取一個位元組,然後向發送方發送確認。
解決方法:讓接收方等待一段時間,使得接收緩存已有足夠空間容納一個最長的報文段,或者等到接收緩存已有一半空閑的空間。則接收方就發出確認報文。
8.1 擁塞控制的一般原理
1.擁塞的定義:對資源的需求 > 可用資源。 在計算機網路中的鏈路帶寬、交換結點中的緩存和處理機等,都是網路中的資源。
2.擁塞解決不能靠解決某一個部分的問題。因為這會將瓶頸轉移到其他地方。問題的實質往往是整個系統的各個部分不匹配。只有所有部分都平衡了,問題才會得到解決。
3.擁塞控制與流量控制的比較。
1)擁塞控制:防止過多的數據注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。
擁塞控制有個前提:網路能夠承受現有的網路負荷
擁塞控制是一個全局性過程。(發送擁塞時,不知道在某處、什麼原因造成的)
2)流量控制:點對點通信量的控制,是個端到端的問題
流量控制:抑制發送端發送數據的速率,以便使接收端來得及接收。
4.尋找擁塞控制的方案無非就是使不等式 「對資源的需求 > 可用資源 」不再成立的條件。但是必須考慮該措施帶來的其他影響。
5.計算機網路是個復雜的系統。從控制理論的角度來看擁塞控制,可以分為開環控制和閉環控制兩種方法。
1)開環控制:設計網路時事先將有關發生擁塞的因素考慮周到,力求網路在工作時不產生擁塞。但一旦系統運行起來,就不再中途改正。
2)閉環控制:基於反饋環路。
步驟一、監測網路系統以便檢測到擁塞在何時、何處發生;
步驟二、把擁塞發生的信息傳送到可採取行動的地方
步驟三、調整網路系統的運行以解決出現的問題
8.2 幾種擁塞控制方法(只考慮網路擁塞程度,即假設接收方總是有足夠大的緩存空間)
1.慢開始和擁塞避免
1)發送方維持一個擁塞窗口。
擁塞窗口的大小取決於網路的擁塞程度,並且動態地在變化。
控制擁塞窗口的原則是:只要網路沒有出現擁塞,擁塞窗口增大;如果網路出現擁塞,則減小。
2)慢開始的思路:由小到大逐漸增大擁塞窗口數值。每收到一個對新的報文段的確認,把擁塞窗口增加至多一個MSS的數值。(沒經過一個傳輸輪次,擁塞窗口cwnd就加倍)
輪次:把擁塞窗口所允許發送的報文段都連續發送出去,並收到了對已發送的最後一位元組的確認。
慢開始的「慢」並不是指cwnd的增長速率慢,而是指TCP開始發送報文段時先設置cwnd=1(一個MSS數值)。
3)慢開始門限ssthresh
為防止擁塞窗口增長過大,引入一個慢開始門限ssthresh。
當cwnd < ssthresh時,使用上述的慢開始演算法
當cwnd > ssthresh時,停止使用慢開始演算法而改用擁塞避免演算法
4)擁塞避免演算法
思路:讓擁塞窗口cwnd緩慢增大,即沒經過一個往返時間RTT就把發送方的擁塞窗口cwnd增加1,而不是加倍。
5)慢開始門限的設置
只要發送方判斷網路出現擁塞(沒有按時收到確認),就把慢開始門限ssthresh設置為出現擁塞時發送方窗口值的一半,然後把擁塞窗口cwnd重置為1,執行慢開始演算法。
6)乘法減小和加法增大
乘法減小:網路出現擁塞時,把慢開始門限ssthresh減半(當前的ssthresh的一半),並執行慢開始演算法。
加法增大:執行擁塞避免方法
2.快重傳和快恢復
1)快重傳(盡快重傳未被確認的報文段)
首先,要求接收方每收到一個失序的報文段後就立即發出重復確認。(如接收方收到了M1和M2後都分別發出了確認,但接收方沒有收到M3但接著收到了M4。此時接收方立即發送對M2的重復確認。)
其次,發送方只要一連收到三個重復確認,就應當立即重傳對方尚未收到的報文段M3.
2)快恢復
要點一、當發送方連續收到三個重復確認,就執行「乘法減小」演算法,把慢開始門限ssthresh減半。
要點二、由於發送方認為網路很可能沒有發生擁塞(因為收到了連續的重復確認),把cwnd設置為慢開始門限ssthresh減半後的值,然後開始執行擁塞避免演算法
慢開始演算法只在TCP連接建立時和網路出現超時才使用。
3.發送方的窗口
發送方窗口的上限值 = Min [rwnd, cwnd]
8.3 隨機早期檢測RED(IP層影響TCP層的擁塞控制)
1.網路層的分組丟棄策略
網路層的策略對TCP擁塞控制影響最大的就是路由器的分組丟棄策略。
如果路由器隊列已滿,則後續到達的分組將都被丟棄。這就叫做尾部丟棄策略。
2.全局同步
由於TCP復用IP,若發生路由器中的尾部丟棄,就可能會同時影響到很多條TCP連接,結果就使許多TCP連接在同一時間突然都進入到慢開始狀態。全局同步使得全網的通信量突然下降了很多,網路恢復正常後,其通信量又突然增大很多。
3.隨機早期檢測RED
使路由器的隊列維持兩個參數,即隊列長度最小門限THmin和最大門限THmax。當每一個分組到達時,RED就先計算平均隊列長度Lav。RED演算法是:
1)若平均隊列長度小於最小門限THmin,則把新到達的分組放入隊列進行排隊
2)若平均隊列長度超過最大門限THmax,則把新到達的分組丟棄
3)若平均隊列長度在最小門限THmin和最大門限THmax之間,則按照某一概率p將新到達的分組丟棄。
隨機體現在3),在檢測到網路擁塞的早期徵兆時(即路由器的平均隊列長度超過一定的門限值時),就先以概率p隨機丟棄個別的分組,讓擁塞控制只在個別的TCP連接上進行,因而避免發生全局性的擁塞控制。
4.平均隊列長度Lav和分組丟棄概率p
Lav = (1-d) x (舊的Lav) +d x (當前的隊列長度樣本)
p = ptemp / (1- count x ptemp)
ptemp = pmax x (Lav - THmin) / (THmax - THmin)
TCP時面向連接的協議。
運輸連接就有三個階段:連接建立、數據傳送和連接釋放
運輸連接的管理:使運輸連接的建立和釋放都能正常地進行。
在TCP連接建立過程中要解決以下三個問題:
1)要使每一方能夠確知對方的存在
2)要允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳等等)
3)能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配
9.1 TCP的連接建立
1.TCP規定,SYN=1報文段不能攜帶數據,但消耗一個序號
2.TCP規定,ACK=1報文段可以攜帶數據,如果不攜帶數據則不消耗序號
3.為什麼A還要發送一次確認?為了防止已失效的連接請求報文突然又傳送到B,因而產生錯誤。
「已失效的連接請求報文段」
A發出第一個連接請求報文段,在網路中滯留超時,又發出了第二個連接請求。但B收到第一個延遲的失效的連接請求報文段後,就誤認為是A又發出了一次新的連接請求。於是就向A發出確認報文段,同意建立連接。假定不採用三次握手,那麼只要B發出確認,新的連接就建立。此時A不會理睬B的確認,也不會發數據,但B一直等A發送數據,B的許多資源就浪費了。
採用三次握手,A不會向B發送確認,因此B就知道A並沒有要求建立確認。
9.2 TCP的連接釋放
1.TCP規定,FIN報文段基石不攜帶數據,也消耗一個序號
2.第二次握手後,TCP通知高層應用程序,因而從A到B這個方向的連接就釋放,TCP連接處於半關閉狀態
3.為什麼A在TIME-WAIT狀態必須等待2MSL的時間
1)為了保證A發送的最後一個ACK報文段能夠到達B。因為ACK可能丟失,此時B可能會超時重傳,然後A重傳確認,並重新啟動2MSL計時器
2)防止「已失效的連接請求報文段」出現在本連接中。可以使本連接持續時間內所產生的所有報文段都從網路中消失。
9.3 TCP的有限狀態機
5. 計算機網路
應用層(數據):確定進程之間通信的性質以滿足用戶需要以及提供網路與用戶應用
表示層(數據):主要解決用戶信息的語法表示問題,如加密解密
會話層(數據):提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制,如伺服器驗證用戶登錄便是由會話層完成的
傳輸層(段):實現網路不同主機上用戶進程之間的數據通信,可靠
與不可靠的傳輸,傳輸層的錯誤檢測,流量控制等
網路層(包):提供邏輯地址(IP)、選路,數據從源端到目的端的
傳輸
數據鏈路層(幀):將上層數據封裝成幀,用MAC地址訪問媒介,錯誤檢測與修正
物理層(比特流):設備之間比特流的傳輸,物理介面,電氣特性等
IP 地址編址方案將IP地址空間劃分為 A、B、C、D、E 五類,其中 A、B、C 是基本類,D、E 類作為多播和保留使用,為特殊地址。
A 類地址:以 0 開頭,第一個位元組范圍:0~127 。
B 類地址:以 10 開頭,第一個位元組范圍:128~191 。
C 類地址:以 110 開頭,第一個位元組范圍:192~223。
D 類地址:以 1110 開頭,第一個位元組范圍:224~239 。
E 類地址:以 1111 開頭,保留地址。
物理地址(MAC 地址),是數據鏈路層和物理層使用的地址。
IP 地址是網路層和以上各層使用的地址,是一種邏輯地址。
其中 ARP 協議用於 IP 地址與物理地址的對應。
網路層的 ARP 協議完成了 IP 地址與物理地址的映射。
TCP(Transmission Control Protocol),傳輸控制協議,是一種面向連接的、可靠的、基於位元組流的傳輸層通信協議。
主要特點如下:
FTP :定義了文件傳輸協議
Telnet :它是一種用於遠程登陸
SMTP :定義了簡單郵件傳送協議
POP3 :它是和 SMTP 對應,POP3 用於接收郵件
HTTP :從 Web 伺服器傳輸超文本到本地瀏覽器的傳送協議。
防止了伺服器端的一直等待而浪費資源
伺服器端准備為每個請求創建一個鏈接,並向其發送確認報文,然後等待客戶端進行確認後創建。如果此時客戶端一直不確認,會造成 SYN 攻擊,即SYN 攻擊,英文為 SYN Flood ,是一種典型的 DoS/DDoS 攻擊。
TCP 協議是一種面向連接的、可靠的、基於位元組流的運輸層通信協議。TCP 是全雙工模式,這就意味著:
TIME_WAIT 表示收到了對方的 FIN 報文,並發送出了 ACK 報文,就等 2MSL後即可回到 CLOSED 可用狀態了。如果 FIN_WAIT_1 狀態下,收到了對方同時帶 FIN 標志和 ACK 標志的報文時,可以直接進入到 TIME_WAIT 狀態,而無須經過 FIN_WAIT_2 狀態。
如果不等,釋放的埠可能會重連剛斷開的伺服器埠,這樣依然存活在網路里的老的 TCP 報文可能與新 TCP 連接報文沖突,造成數據沖突,為避免此種情況,需要耐心等待網路老的 TCP 連接的活躍報文全部死翹翹,2MSL 時間可以滿足這個需求(盡管非常保守)!
建立連接後,兩台主機就可以相互傳輸數據了。如下圖所示:
因為各種原因,TCP 數據包可能存在丟失的情況,TCP 會進行數據重傳。如下圖所示:
TCP 協議操作是圍繞滑動窗口 + 確認機制來進行的。
滑動窗口協議,是傳輸層進行流控的一種措施,接收方通過通告發送方自己的窗口大小,從而控制發送方的發送速度,從而達到防止發送方發送速度過快而導致自己被淹沒的目的。
TCP 的滑動窗口解決了端到端的流量控制問題,允許接受方對傳輸進行限制,直到它擁有足夠的緩沖空間來容納更多的數據。
計算機網路中的帶寬、交換結點中的緩存及處理機等都是網路的資源。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的性能就會變壞,這種情況就叫做擁塞。
通過擁塞控制來解決。擁堵控制,就是防止過多的數據注入網路中,這樣可以使網路中的路由器或鏈路不致過載。注意,擁塞控制和流量控制不同,前者是一個 全局性 的過程,而後者指 點對點 通信量的控制。
擁塞控制的方法主要有以下四種:
1)慢開始
不要一開始就發送大量的數據,先探測一下網路的擁塞程度,也就是說由小到大逐漸增加擁塞窗口的大小。
2)擁塞避免
擁塞避免演算法,讓擁塞窗口緩慢增長,即每經過一個往返時間 RTT 就把發送方的擁塞窗口 cwnd 加 1 ,而不是加倍,這樣擁塞窗口按線性規律緩慢增長。
3)快重傳
快重傳,要求接收方在收到一個 失序的報文段 後就立即發出 重復確認 (為的是使發送方及早知道有報文段沒有到達對方),而不要等到自己發送數據時捎帶確認。
快重傳演算法規定,發送方只要一連收到三個重復確認,就應當立即重傳對方尚未收到的報文段,而不必繼續等待設置的重傳計時器時間到期。
4)快恢復
快重傳配合使用的還有快恢復演算法,當發送方連續收到三個重復確認時,就執行「乘法減小」演算法,把 ssthresh 門限減半。
UDP(User Data Protocol,用戶數據報協議),是與 TCP 相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去。
主要特點如下:
DNS :用於域名解析服務
SNMP :簡單網路管理協議
TFTP:簡單文件傳輸協議
TCP 只支持點對點通信;UDP 支持一對一、一對多、多對一、多對多的通信模式。
TCP 有擁塞控制機制;UDP 沒有擁塞控制,適合媒體通信,對實時應用很有用,如 直播,實時視頻會議等
既使用 TCP 又使用 UDP 。
HTTP 協議,是 Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網伺服器傳輸超文本到本地瀏覽器的傳送協議。
主要特點如下:
請求報文包含三部分:
a、請求行:包含請求方法、URI、HTTP版本信息
b、請求首部欄位
c、請求內容實體
響應報文包含三部分:
a、狀態行:包含HTTP版本、狀態碼、狀態碼的原因短語
b、響應首部欄位
c、響應內容實體
GET: 對伺服器資源的簡單請求。
POST: 用於發送包含用戶提交數據的請求。
HEAD:類似於 GET 請求,不過返回的響應中沒有具體內容,用於獲取報頭。
PUT:傳說中請求文檔的一個版本。
DELETE:發出一個刪除指定文檔的請求。
TRACE:發送一個請求副本,以跟蹤其處理進程。
OPTIONS:返回所有可用的方法,檢查伺服器支持哪些方法。
CONNECT:用於 SSL 隧道的基於代理的請求。
1.明文發送,內容可能被竊聽
2.不驗證通信方的身份,因此可能遭遇偽裝
3.無法證明報文的完整性,可能被篡改
綜上所述:
需要 IP 協議來連接網路,TCP 是一種允許我們安全傳輸數據的機制,使用 TCP 協議來傳輸數據的 HTTP 是 Web 伺服器和客戶端使用的特殊協議。HTTP 基於 TCP 協議,所以可以使用 Socket 去建立一個 TCP 連接。
HTTPS ,實際就是在 TCP 層與 HTTP 層之間加入了 SSL/TLS 來為上層的安全保駕護航,主要用到對稱加密、非對稱加密、證書,等技術進行客戶端與伺服器的數據加密傳輸,最終達到保證整個通信的安全性。
埠不同:HTTP 與 HTTPS 使用不同的連接方式,埠不一樣,前者是 80,後者是 443。
資源消耗:和 HTTP 通信相比,HTTPS 通信會由於加解密處理消耗更多的 CPU 和內存資源。
開銷:HTTPS 通信需要證書,而證書一般需要向認證機構申請免費或者付費購買。
SSL 協議即用到了對稱加密也用到了非對稱加密
1)客戶端發起 https 請求(就是用戶在瀏覽器里輸入一個 https 網址,然後連接到 server
的 443 埠)
2)服務端的配置(採用 https 協議的伺服器必須要有一套數字證書,可以自己製作,
也可以向組織申請,這套證書就是一對公鑰和私鑰,這是非對稱加密)。
3)傳輸證書(這個證書就是公鑰,只是包含了很多信息)
4)客戶端解析證書(由客戶端 tls 完成,首先驗證公鑰是否有效,若發現異常,則彈出
一個警示框,提示證書存在問題,若無問題,則生成一個隨機值(對稱加密的私鑰),然後用證書對隨機值進行加密)
5)傳輸加密信息(這里傳輸的是加密後的隨機值,目的是讓服務端得到這個隨機值,以後客戶端和服務端的通信就可以通過這個隨機值來進行加密了)
6)服務端解密信息(服務端用私鑰(非對稱加密)解密後得到了客戶端傳來的隨機值(對稱加密的私鑰),然後把通信內容通過該值(對稱加密的私鑰隨機值)進行對稱加密。所謂對稱加密就是,將信息和私鑰(對稱加密的私鑰)通過某種演算法混在一起,這樣除非知道私鑰(對稱加密的私鑰),不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰(對稱加密的私鑰),所以只要加密演算法夠彪悍,私鑰夠復雜,數據就夠安全)
7)傳輸加密的信息
8)客戶端解密信息,用隨機數(對稱加密的私鑰)來解。
默認情況下建立 TCP 連接不會斷開,只有在請求報頭中聲明 Connection: close 才會在請求完成後關閉連接。
在 HTTP/1.0 中,一個伺服器在發送完一個 HTTP 響應後,會斷開 TCP 鏈接。但是這樣每次請求都會重新建立和斷開 TCP 連接,代價過大。所以雖然標准中沒有設定,某些伺服器對 Connection: keep-alive 的 Header 進行了支持。意思是說,完成這個 HTTP 請求之後,不要斷開 HTTP 請求使用的 TCP 連接。這樣的好處是連接可以被重新使用,之後發送 HTTP 請求的時候不需要重新建立 TCP 連接,以及如果維持連接,那麼 SSL 的開銷也可以避免.
如果維持持久連接,一個 TCP 連接是可以發送多個 HTTP 請求的。
HTTP/1.1 存在一個問題,單個 TCP 連接在同一時刻只能處理一個請求,在 HTTP/1.1 存在 Pipelining 技術可以完成這個多個請求同時發送,但是由於瀏覽器默認關閉,所以可以認為這是不可行的。在 HTTP2 中由於 Multiplexing 特點的存在,多個 HTTP 請求可以在同一個 TCP 連接中並行進行。
TCP 連接有的時候會被瀏覽器和服務端維持一段時間。TCP 不需要重新建立,SSL 自然也會用之前的。
有。Chrome 最多允許對同一個 Host 建立六個 TCP 連接。不同的瀏覽器有一些區別。
如果圖片都是 HTTPS 連接並且在同一個域名下,那麼瀏覽器在 SSL 握手之後會和伺服器商量能不能用 HTTP2,如果能的話就使用 Multiplexing 功能在這個連接上進行多路傳輸。不過也未必會所有掛在這個域名的資源都會使用一個 TCP 連接去獲取,但是可以確定的是 Multiplexing 很可能會被用到。
如果發現用不了 HTTP2 呢?或者用不了 HTTPS(現實中的 HTTP2 都是在 HTTPS 上實現的,所以也就是只能使用 HTTP/1.1)。那瀏覽器就會在一個 HOST 上建立多個 TCP 連接,連接數量的最大限製取決於瀏覽器設置,這些連接會在空閑的時候被瀏覽器用來發送新的請求,如果所有的連接都正在發送請求呢?那其他的請求就只能等等了
6. 計算機網路知識點
一、計算機網路概述
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
7. 計算機網路
TCP/IP五層協議的體系結構,自頂向下依次為:應用層、傳輸層、網路層、數據鏈路層、物理層。
不使用兩次握手和四次握手的原因
為什麼TIME_WAIT等待的時間是2MSL
MSL,Maximum Segment Lifetime英文的縮寫, 報文最大生存時間 ,它是任何報文在網路上存在的最長時間,超過這個時間將被丟棄。
概述
區別 :
區別(表形式)
概念
超時時間應該設置為多少呢
8、快速重傳
概念
SACK(Selective Acknowledgment 選擇性確認),這種方式需要在 TCP 頭部選項欄位里加一個 叫SACK 的東西,它可以將 緩存的地圖發送給發送方 ,這樣發送方就可以知道哪些數據收到了,哪些數據沒收到,知道了這些信息,就可以 只重傳丟失的數據 。
D-SACK,其主要使用了 SACK 來 告訴發送方有哪些數據被重復接收了 。
下面以兩個例子,來說明D-SACK的作用。
D-SACK有這么幾個好處 :
引入滑動窗口的原因
窗口的實現
窗口的大小
窗口應用示例
窗口的大小由哪一方決定?
TCP 利用滑動窗⼝實現流量控制。流量控制是為了控制發送方發送速率,保證接收方來得及接收(讓發送方根據接收方的實際接收能力控制發送的數據量)。 接收方發送的確認報文中的窗口欄位可以用來控制發送方窗口大小,從而影響發送方的發送速率。將窗口欄位設置為 0,則發送方不能發送數據。
HTTP協議的⻓連接和短連接,實質上是TCP協議的⻓連接和短連接。
HTTP 是⼀種不保存狀態的協議,即無狀態(stateless)協議。也就是說 HTTP 協議⾃身不對請求和響應之間的通信狀態進⾏保存。
無狀態的利弊:
對於無狀態的問題,解法方案有很多種,其中比較簡單的方式用 Cookie 技術 。Cookie的工作原理如下:
(1)瀏覽器端第一次發送請求到伺服器端
(2)伺服器端創建Cookie,該Cookie中包含用戶的信息,然後將該Cookie發送到瀏覽器端
(3)瀏覽器端再次訪問伺服器端時會攜帶伺服器端創建的Cookie
(4)伺服器端通過Cookie中攜帶的數據區分不同的用戶
此外,還有 Session 機制來解決這一問題。Session的工作原理如下:
(1)瀏覽器端第一次發送請求到伺服器端,伺服器端創建一個Session,同時會創建一個 特殊 的Cookie(name為JSESSIONID的固定值,value為session對象的ID),然後將該Cookie發送至瀏覽器端
(2)瀏覽器端發送第N(N>1)次請求到伺服器端,瀏覽器端訪問伺服器端時就會攜帶該name為JSESSIONID的Cookie對象
(3)伺服器端根據name為JSESSIONID的Cookie的value(sessionId),去查詢Session對象,從而區分不同用戶。
Cookie 和 Session都是⽤來跟蹤瀏覽器⽤戶身份的會話⽅式,但是兩者的應⽤場景不太⼀樣。
Cookie ⼀般⽤來保存⽤戶信息。比如①我們在 Cookie 中保存已經登錄過得⽤戶信息,下次訪問⽹站的時候⻚⾯可以⾃動幫你登錄的⼀些基本信息給填了;②⼀般的⽹站都會有保持登錄也就是說下次你再訪問⽹站的時候就不需要重新登錄了,這是因為⽤戶登錄的時候我們可以存放了⼀個Token 在 Cookie 中,下次登錄的時候只需要根據 Token 值來查找⽤戶即可(為了安全考慮,重新登錄⼀般要將 Token 重寫);③登錄⼀次⽹站後訪問⽹站其他⻚⾯不需要重新登錄。
Session 的主要作⽤就是通過服務端記錄⽤戶的狀態。 典型的場景是購物⻋,當你要添加商品到購物⻋的時候,系統不知道是哪個⽤戶操作的,因為 HTTP 協議是⽆狀態的。服務端給特定的⽤戶創建特定的 Session 之後就可以標識這個⽤戶並且跟蹤這個⽤戶了。
Cookie數據存儲在客戶端(瀏覽器)中,⽽Session數據保存在伺服器上,相對來說 Session 安全性更⾼。如果要在Cookie 中存儲⼀些敏感信息,不要直接寫⼊ Cookie 中,最好能將 Cookie 信息加密然後使⽤到的時候再去伺服器端解密。
HTTP1.0最早在⽹⻚中使⽤是在1996年,那個時候只是使⽤⼀些較為為簡單的⽹⻚上和⽹絡請求上,⽽HTTP1.1則在1999年才開始⼴泛應⽤於現在的各⼤瀏覽器⽹絡請求中,同時HTTP1.1也是當前使⽤最為⼴泛的HTTP協議。 主要區別主要體現在:
URI的作⽤像身份證號⼀樣,URL的作⽤更像家庭住址⼀樣。URL是⼀種具體的URI,它不僅唯⼀標識資源,⽽且還提供了定位該資源的信息。
8. [計算機網路之六] 傳輸層
傳輸層向它上面的應用層提供通信服務,它屬於面向通信部分的最高層,同時也是用戶功能中的最底層。
從傳輸層的角度,通信的真正端點並不是主機而是主機中的進程。
傳輸層有 分用 和 復用 的功能。 「復用」 是指在發送方不同的應用進程都可以使用同一個運輸層協議傳送數據, 「分用」 是指接收方的運輸層在剝去報文的首部後能夠把這些數據正確交付目的應用進程。
網路層和運輸層有明顯的區別,網路層為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
知名埠號 :0~1023
登記埠號 :1024~49151
客戶端短暫埠號 :49152~65535
① 無連接。 發送數據之前不需要建立連接,因此減少了開銷和發送數據之前的時延。
② 盡最大努力交付。 即不保證可靠交付,因此主機不需要維持復雜的連接狀態表。
③ 面向報文的。 對應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界,UDP 一次交付一個完整的報文。
用戶數據報 UDP 有兩個欄位:數據欄位和首部欄位。首部欄位很簡單,只有 8 個位元組,由四個欄位組成,每個欄位的長度都是兩個位元組。各欄位意義如下:
① 源埠 在需要對方回信時選用。不需要時可用全0。
② 目的埠 目的埠號。這在終點交付報文時必須使用。
③ 長度 用戶數據報的長度,最小值為 8 (僅有首部)。
④ 檢驗和 檢測用戶數據報在傳輸中是否有錯。有錯就丟棄。
用戶數據報首部檢驗和的計算和校驗都要計算出一個偽首部。
① 面向連接。
應用程序在使用 TCP 協議之前,必須先建立 TCP 連接;傳送數據完畢後,必須釋放已經建立的 TCP 連接。類似於打電話:通話前要先撥號建立連接,通話結束後要掛機釋放連接。
② 一對一。
TCP 連接只能是點對點的(一對一)。
③ 可靠交付。
通過 TCP 連接傳送的數據,無差錯、不丟失、不重復,並且按序到達。
④ 全雙工通信。
通信雙方的應用進程在任何時候都能發送和接收數據,TCP 連接的兩端都設有發送緩存和接收緩存,用來臨時存放雙向通信的數據。
⑤ 面向位元組流。
TCP 中的 「流」 指的是流入到進程或從進程流出的位元組序列。
「面向位元組流」 的含義:雖然應用程序和 TCP 的互動式一次一個數據塊(大小不等),但 TCP 把應用程序交下來的數據僅僅看成是一連串無結構的位元組流。TCP 並不知道所傳送的位元組流的含義。TCP 不保證接收方應用程序鎖收到的數據塊和發送方應用程序所發出的數據塊具有對應的大小關系。但接收方應用程序收到的位元組流必須和發送方應用程序發出的位元組流完全一樣,當然接收方的應用程序必須有能力識別收到的位元組流,把它還原成有意義的應用層數據。
TCP 連接是協議軟體提供的一種抽象,每一條 TCP 連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定,即:
TCP 連接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}
IP1 和 IP2 分別是兩個端點主機的 IP 地址,port1 和 port2 分別是兩端端點主機中的埠號。
網路只能提供最大努力的服務,是不可靠的,因此 TCP 必須採用適當的措施才能使得兩個運輸層之間的通信變得可靠。當出現差錯時讓發送方重傳出現差錯的數據,同時在接收方來不及處理收到的數據時,及時告知發送方適當降低發送數據的速度,這樣就可以在不可靠的傳輸信道實現可靠傳輸。
ARQ(Auto Repeat-reQuest):自動重傳請求。
發送方每發送完一個分組就停止發送,等待接收方確認,在收到確認後再發送下一個分組。
A 是發送方,B 是接收方。
A 每發送一個分組後,等待 B 對該分組的確認後,再接著發送下一個分組。
【發送方】A 發送的分組在傳輸過程中出錯,可能是丟失了,也可能是分組受到干擾出錯了
【接收方】這時 B 直接丟棄分組,什麼也不做(也不通知 A 受到的分組有差錯)。
【解決方案】發送方在每發送完一個分組時設置一個 超時計數器 ,只要超過一段時間仍然沒有接收到確認,就認為剛才發送的分組丟失了,因而重傳前面發送過的分組,這叫 超時重傳 。反之在超時計時器到期之前收到了相應的確認,就撤銷該超時計時器。
第一,A 在發送完一個分組後, 必須暫時保留已發送的分組的副本 (在發生超時重傳時使用)。只有在收到相應的確認後才能清楚暫時保留的分組副本。
第二,分組和確認分組都必須進行 編號 。這樣才能明確是哪一個發送出去的分組受到了確認,而哪一個分組還沒有收到確認。
第三,超時計時器設置的 重傳時間應當比數據在分組傳輸的平均往返時間更長一些 。
【發送方】超時重傳時間內沒有收到確認報文,無法確認是發送出錯、丟失,還是接收方的確認丟失,超時計時器到期後就要重傳。
【接收方】丟棄收到的重復分組,不向上層交付;向發送方發送確認。
【發送方】收下遲到的確認,並且丟棄
發送方大部分時間都在等待確認,信道的利用率低
使用流水線的 ARQ 可以提高信道利用率
【發送方】維持一個發送窗口,位於發送窗口內的分組都可連續發送出去,而不需要等待對方的確認。
回退N幀協議 :如果發送方發送了多個分組,但中間的某個分組丟失了,這時接收方只能對丟失分組之前的分組發出確認,而發送方無法知道丟失分組及後面分組的接收情況,只好把丟失分組及後面的分組重傳一次,這叫 Go-back-N ,表示需要再退回來重傳已發送過的 N 個分組。
前面 20 個位元組固定,因此 TCP 首部最小長度是 20 位元組。
TCP 的滑動窗口以位元組為單位,窗口後沿的部分表示已發送且已收到通知,窗口裡的序號表示允許發送的序號,窗口前沿之前的數據暫時不允許發送,需要等待收到接收方的確認後前沿往前移才可發送。
描述一個發送窗口需要三個指針:P1、P2 和 P3,如圖所示:
小於 P1 的是已發送並已收到確認的部分,而大於 P3 的是不允許發送的部分。
P3 - P1 = A 的發送窗口
P2 - P1 = 已發送但尚未收到確認的位元組數
P3 - P2 = 允許發送但當前尚未發送的位元組數(又稱為 可用窗口 或 有效窗口 )
接收方 B 接收窗口大小為20,因為未收到 31 的數據,即使已收到後面的序號 32、33 的數據,返回的確認號仍然是 31。
現在接收方收到了 31、32、33,並返回確認號 33,接收窗口往前滑動 3 個序號,發送方接收到確認,發送窗口也向前滑動 3 個序號大小,現在 A 可以發送序號 51~53 的數據了。
當發送方將發送窗口內的數據都發送出去,但是接收方的確認可能由於網路擁塞滯留,這時發送方發送窗口已滿,可用窗口為 0,只能等待接收方的確認報文到達。
TCP 為了保證可靠傳輸,要求必須受到對已發送報文的確認,如果超過一定時間未受到確認報文,則重傳已發送的報文。這個時間就叫 超時重傳時間 ,很明顯超時重傳時間的大小設置應該更貼近網路的實際情況,如果網路狀況好,就設短一點,否則使網路的空閑時間增大,降低了傳輸效率;網路差就設長一點,否則會引起很多不必要的重傳,使網路負荷增大。
TCP 採用了一種自適應的演算法:
RTT(報文段的往返時間)、RTTs(加權平均往返時間),RTTs 的計算公式:
RTTd(RTT 的偏差的加權平均值)、RTO(RetransmissionTime-Out 超時重傳時間):
【場景】TCP 的接收方在接收對方發送過來的數據位元組流的序號不連續,形成一些不連續的位元組塊,如果簡單按照回退N幀協議處理,意味著要重傳第一個未收到的序號數據塊及之後的數據,如果能通知發送方已收到了哪些數據(選擇確認),就可以讓發送方只發送接收方未收到的數據。
流量控制就是讓發送方的發送速率不要太快,要讓接收方來得及接收。
當發送方收到接收方通知,將窗口縮小為 0 時,發送方將暫時不能發送數據了,必須等接收方通知更新接收窗口大小,但是這個通知又有可能丟失,導致發送方沒收到通知。
為了避免雙方互相等待死鎖,TCP 為每個鏈接設有一個 持續計時器 ,只要 TCP 連接的一方收到對方的零窗口通知,就啟動持續計時器。若持續計時器設置的時間到期,就發送一個零窗口 探測報文段 (僅攜帶 1 位元組的數據),而對方就在確認這個探測報文段時給出了現在的窗口值。如果窗口仍然是零,那麼受到這個報文段的一方就重新設置持續計時器;如果窗口不是零,那麼死鎖的僵局就可以打破了。
【優點】提高網路利用率
【缺點】可能會發生某種程度的延遲
【場景】接收數據的主機如果每次都立刻回復確認應答的話,可能會返回一個較小的窗口,因為接收方剛接收完數,緩沖區已滿。
【糊塗窗口綜合征問題】
TCP 接收方緩存已滿,而互動式的應用進程一次只從接收緩存中讀取 1 個位元組(這樣就使接收緩存空間僅騰出 1 個位元組),然後向發送方發送確認,並把窗口設置為 1 個位元組(但發送的數據報是 40 位元組長,TCP 首部 + IP 數據報首部)。接著,發送方又發來 1 個位元組的數據(注意發送方發送的 IP 數據報是 41 位元組長)。接收方發回確認,仍然將窗口設置為 1 個位元組。這樣進行下去,使網路的效率很低。
TCP 文件傳輸中,就採用了兩個數據段返回一次確認應答,並且等待一定時間後沒有其他數據包到達時也依然發送確認應答。
當對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的性能就要變壞,這種情況就叫做 擁塞 。
慢開始(slow-start)、擁塞避免(congestion avoidance)、快重傳(fast retransmit)和快恢復(fast recovery)。
【演算法思路】
當主機開始發送數據時,由於並不清楚網路的負荷情況,所以如果立即把大量數據位元組注入網路,那麼就有可能引起網路發生擁塞。較好的方法是先探測一下,即 由小到大逐漸增大發送窗口 ,也就是說, 由小到大逐漸增大擁塞窗口數值 。
【處理過程】
慢開始門限值 ssthresh 決定了擁塞窗口達到多大時要執行什麼演算法。
① 當 cwnd < ssthresh 時,使用慢開始演算法;
② 當 cwnd > ssthresh 時,停止使用慢開始演算法而改用擁塞避免演算法;
③ 當 cwnd = ssthresh 時,既可使用慢開始演算法,也可使用擁塞避免演算法。
在擁塞窗口 cwnd 達到門限值之前,發送方每一輪次收到確認應答後,cwnd 就增大為原來的兩倍;達到門限值後,執行擁塞避免演算法。
PS. 慢開始只是表示初始發送數據少,不代表發送速率增長速度慢,實際上是指數級增長非常快。
【演算法思路】
讓擁塞窗口 cwnd 緩慢地增大,即每經過一個往返時間 RTT 就把發送方的擁塞窗口 cwnd 加 1,而不是像慢開始階段那樣加倍增長。擁塞避免階段有 「加法增大」 的特點,按線性規律緩慢增長,使網路比較不容易出現擁塞 。
【處理過程】
在執行擁塞避免演算法階段,當網路出現超時時,發送方判斷為網路擁塞,調整門限值為當前擁塞窗口的一半,即 ssthresh = cwnd / 2,同時擁塞窗口重置為 1,即 cwnd = 1,進入慢開始階段。
【演算法原理】
① 快重傳
【場景】有時,個別報文段會在網路中丟失,但實際上網路並未發生擁塞。如果發送方遲遲收不到確認,就會產生超時,就會誤認為網路發生了擁塞,導致發送方錯誤地啟動慢開始,把擁塞窗口 cwnd 又設置為 1,因而降低了傳輸效率。
【方案】接收方不要等待自己發送數據時才進行捎帶確認,而是要立即發送確認,即使收到了失序的報文段也要立即發出對已收到的報文段的重復確認,當發送方 一連收到 3 個重復確認 ,就知道接收方確實沒有收到某個報文段,因而應當 立即進行重傳 。
② 快恢復:
發送方知道只是丟失了個別的報文段,於是不啟動慢開始,而是執行快恢復演算法,調整發送方門限值 ssthresh = cwnd / 2,同時設置擁塞窗口 cwnd = ssthresh = 8,並開始執行擁塞避免演算法。
擁塞控制的流程如下:
擁塞窗口 cwnd,接收方窗口 rwnd, 發送方發送窗口的上限值 = Min[rwnd, cwnd] 。
① 當 rwnd < cwnd,接收方的接收能力限制發送方窗口大小;
② 當 cwnd < rwnd,網路的擁塞程度限制發送方窗口大小。
【問題背景】
路由器採取分組丟棄策略,即按照 先進先出(FIFO) 規則處理分組,當隊列已滿時,則丟棄後面到達的分組,這叫 尾部丟棄策略 。
丟失的分組會導致發送方出現超時重傳,發送方轉而執行慢開始演算法,不同分組屬於不同 TCP 連接,導致很多 TCP 同時進入慢開始狀態,這種現象稱為 全局同步 。
【解決方案】
主動隊列管理 AQM:不等到路由器的隊列長度已經達到最大值時才不得不丟棄後面到達的分組,而是在隊列長度達到某個警惕值時就主動丟棄到達的分組,這樣就提醒了發送方放慢發送的速率,因而有可能使網路擁塞的程度減輕,甚至不出現網路擁塞。
TCP 是面向連接的協議,運輸連接有三個階段: 連接建立、數據傳送、連接釋放 。
TCP 連接建立過程要解決的幾個問題:
① 使每一方能夠確知對方的存在;
② 允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳選項以及服務質量等);
③ 能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配。
TCP 建立連接的過程叫做握手,握手需要在客戶和伺服器之間交換三個 TCP 報文段,即 三次握手 。
最初客戶端和服務端都處於 CLOSED(關閉) 狀態,A(Client)主動打開連接,B(Server)被動打開連接。
一開始,B 的 TCP 伺服器進程先創建 傳輸控制塊 TCB ,准備接受客戶進程的連接請求。然後伺服器進程就處於 LISTEN(收聽)狀態,等待客戶端的連接請求。如有,即作出響應。
第一次握手 :A 的 TCP 客戶進程也是首先創建傳輸控制塊 TCB,准備接受客戶進程的連接請求。然後在打算建立 TCP 連接時,向 B 發出連接請求報文段,這時首部中的同步位 SYN = 1,同時選擇一個初始序號 seq = x。TCP 規定,SYN 報文段(即 SYN = 1 的報文段)不能攜帶數據,但要 消耗掉一個序號 。這時,TCP 客戶進程進入 SYN-SENT(同步已發送) 狀態。
第二次握手 :B 收到連接請求報文段後,如同意建立連接,則向 A 發送確認。在確認報文段中應把 SYN 位和 ACK 位都置 1,確認號是 ack = x + 1,同時也為自己選擇一個初始序號 seq = y。請注意,這個報文段也不能攜帶數據,但同樣 要消耗掉一個序號 。這時 TCP 伺服器進程進入 SYN-RCVD(同步收到) 狀態。
第三次握手 :TCP 客戶進程收到 B 的確認後,還要向 B 給出確認。確認報文段的 ACK 置 1,確認號 ack = y + 1,而自己的序號 seq = x + 1。TCP 的標准規定,ACK 報文段可以攜帶數據。但 如果不攜帶數據則不消耗序號 ,在這種情況下,下一個數據報文段的序號仍是 seq = x + 1。這時,TCP 連接已經建立,A 進入 ESTABLISHED(已建立連接) 狀態。當 B 收到 A 的確認後,也進入 ESTABLISHED(已建立連接)狀態。
數據傳輸結束後,通信的方法都可釋放連接。現在 A 和 B 都處於 ESTABLISHED 狀態。
第一次揮手 :A 的應用進程先向其 TCP 發出連接釋放報文段,並停止再發送數據,主動關閉 TCP 連接。A 把連接釋放報文段首部的終止控制位 FIN 置 1,其序號 seq = u,它等於前面已傳送過的數據的最後一個位元組的序號加 1。這時 A 進入 FIN-WAIT-1(終止等待 1)狀態,等待 B 的確認。請注意,TCP 規定,FIN 報文段即使不攜帶數據,它也消耗掉一個序號。
第二次揮手 :B 收到連接釋放報文後即發出確認,確認號是 ack = u + 1,而這個報文段自己的序號是 v,等於 B 前面已傳送過的最後一個位元組的序號加 1。然後 B 就進入 CLOSE-WAIT(關閉等待)狀態。TCP 伺服器進程這時應通知高層應用程序,因而從 A 到 B 這個方向的連接就釋放了,這時的 TCP 連接處於半關閉(half-close)狀態,即 A 已經沒有數據要發送了,但 B 若發送數,A 仍要接收。也就是說,從 B 到 A 這個方向的連接並未關閉,這個狀態可能會持續一段時間。A 收到來自 B 的確認後,就進入 FIN-WAIT-2(終止等待 2)狀態,等待 B 發出的連接釋放報文段。
第三次揮手 :若 B 已經沒有要向 A 發送的數據,其應用進程就通知 TCP 釋放連接。這時 B 發出的連接釋放報文段必須使 FIN = 1。現假定 B 的序號為 w(在半關閉狀態 B 可能又發送了一些數據)。B 還必須重復上次已發送過的確認號 ack = u + 1。這時 B 就進入 LAST-ACK(最後確認)狀態,等待 A 的確認。
第四次揮手 :A 在收到 B 的連接釋放報文段後,必須對此發出確認。在確認報文段中把 ACK 置 1,確認號 ack = w + 1,而自己的序號是 seq = u + 1(根據 TCP 標准,前面發送過的 FIN 報文段要消耗一個序號)。然後進入 TIME-WAIT(時間等待)狀態。請注意,現在 TCP 連接還沒有釋放掉。必須經過時間等待計時器(TIME-WAIT timer)設置的時間 2MSL 後,A 才進入到 CLOSED 狀態,然後撤銷傳輸控制塊,結束這次 TCP 連接。當然如果 B 一收到 A 的確認就進入 CLOSED 狀態,然後撤銷傳輸控制塊。所以在釋放連接時,B 結束 TCP 連接的時間要早於 A。
9. 計算機網路名詞解釋知識點簡答題整理
基帶傳輸:比特流直接向電纜發送,無需調制到不同頻段;
基帶信號:信源發出的沒有經過調制的原始電信號;
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;
10. 計算機常用網路名詞解釋
自http://www.programfan.com/blog/article.asp?id=11894
只是很小的一部分
====================================================
縮略語解釋
A
AAL ( ATM Adapter Layer ) ATM適配子層
ADSL ( Asymmetrical Digital Subscriber Loop ) 非對稱數字用戶環路
API ( Application Program Interfacet ) 應用程序編程介面
ARCNET ( ) 令牌匯流排網
ARP ( Address Resolution Protocol ) 地址解析協議
ARQ ( Automatic Repeat reQuest ) 反潰重傳法
ATM ( Asynchronous Transfer Mode ) 非同步傳輸模式
B
BRI ( Basic Rate Interface ) 基本速率介面
BSC ( Binary Synchronization Communication ) 二進制同步通信規程
B-ISDN ( Broadband ISDN ) 寬頻ISDN
C
CERNET ( China Ecation and Research Network ) 中國教育科研網
CCITT 國際電報、電話咨詢委員會
ChinaDDN 中國公用數字數據網
ChinaPAC 中國公用數據網
CO/DEC ( Coding and Decoding ) 編碼/解碼
CRC ( CYC rendance checkout ) 循環校驗碼
CS ( Convergence Sublayer ) 傳輸會聚子層
CSMA/CD ( Carrier Sense Multiple Access with Collision Detection ) 載波偵聽多重訪問/沖突檢測
C/S ( Client/Server ) 客戶/伺服器
D
DCE ( Data Circuit-terminal Equpment ) 數據電路終接設備
DDN ( Digital Data Network ) 數字數據網
DES ( Data Encryption Standard ) 數據加密標准
DIX ( ) 數據鏈路層和物理層規范,也稱DIX規范
DL ( Data Link ) 數據鏈路
DNIC ( Data Netwrok Indentifier Code )數據網路識別碼
DNS ( Domain Naming System ) 域名系統
DTE ( Data Terminal Equipment ) 數據終端設備
DU ( Data Unit ) 數據單元
E
E1 ( ) 支持32路PCM載波信號的歐洲PCM載波標准
EDI ( Electronic Data Interchange ) 電子數據交換
EIA ( Electronic Instries Association ) 國際電氣工業協會
F
FDM ( Frequency Division Multiplexing ) 頻分多路復用
FDDI ( ) 光纖分布數字結口
FR ( Frame Relay ) 幀中繼
FTAM ( File Transfer Access Management ) 文件傳送訪問和管理
FTP ( File Transfer Protocol ) 文件傳輸協議
H
HDLC ( High-level Data Link Control ) 高級數據鏈路控制
HTTP ( HyperText Transfer Protocol ) 超文本傳輸協議
HUB 集線器
I
IDU ( Interface Data Unit ) 介面數據單元
ICMP ( Internet Control Message Protocol ) 網際網路控制報文協議
IP ( Internet Protocol ) 網際協議
ISDN ( Integrated Services Digital Network ) 綜合業務數字網
ISO ( International Standards Organization ) 國際標准化組織
ISP ( Internet Serve Provider ) 網際網路服務提供商
L
LAN ( Local Area Network ) 區域網
LEC ( LAN Emulation Client ) 區域網模擬客戶
LES ( LAN Emulation Server ) 區域網模擬伺服器
LC ( Logical Circuit ) 邏輯鏈路
LLC ( Logical Link Control ) 邏輯鏈路控制
M
MAC ( Medium Access Control ) 媒體訪問控制
MAN ( Metropolitan Area Network ) 城域網
MAU ( Multiple Access Unit ) 多路訪問器
MLP ( Multiple Link Protocol ) 多鏈路規程
MODEM ( Molator-Demolator ) 數據機
N
NMC [ Network Manager Center ) 網路管理中心
NNI ( Network-Network Interface ) 網路/網路端介面
NRNI ( ) 不歸0交替編碼
N-ISDN ( Narrowband ISDN ) 窄帶ISDN
O
OSI ( Open System Interconnection ) 開放式系統互連
P
PAD ( Packet Assembler Disassembler ) 分組組裝、拆卸設備
PC ( Personal Computer ) 個人計算機
PC ( Packet Concentrator )
PCI ( Protocol Control Information )協議控制信息
PCM ( Pulse Code Molation ) 脈碼調制
PDH ( )准同步數字體系
PDU( Protocol Data Unit )協議數據單元
PM ( Physical Medium ) 物理媒體子層
POP3 ( Post Office Protocol-3 ) 郵件代理協議
PRI ( Primary Rate Interface )一次群速率介面
PSDN ( Packet Switched Data Network ) 分組交換數據網
PSE ( Packet Switched Equipment ) 分組交換設備
PSTN ( Public Switched Telephone Network ) 公用交換電話網
PVC ( Permanent Virtual Circuit ) 永久虛電路
Q
QOS ( Quality of Service ) 服務質量
R
RPU 環中繼轉發器
RARP ( Reverse Address Resolution Protocol ) 反向地址解析協議
S
SAR ( Segmentation and Reassembly sublayer ) 分段、組裝子層
SDH ( Synchronous Digital Hierarchy )同步數字體系
SDLC ( Synchronous Data Link Control )同步數字體系
SDU ( Service Data Unit )服務數據單元
SLP ( Single Link Protocol ) 單鏈路規程
SMTP ( Simple Mail Transfer Protocol ) 簡單郵件傳輸協議
SNA ( Systems Network Architecture ) 系統網路體系結構
SNMP ( Simple Network Management Protocol ) 簡單郵件傳輸協議
SONET ( Synchronous Optical Network ) 同步光纖網
STP ( Shielded Twisted Pair ) 屏蔽雙絞線
SVC ( Switched Virtual circuit ) 交換虛電路
T
T1 ( ) 支持24路PCM載波信號的美洲PCM載波標准
TC ( Transmission Convergence ) 傳輸會聚子層
TCP ( Transfer Control Protocol ) 傳輸控制協議
TDM ( Time Division Multiplexing ) 時分多路復用
TIA ( Telecommunication Instries Association ) 電信工業協會
Token-BUS ( ) 令牌匯流排
TSMU ( Time-Sharing Multi-Use ) 分時多用戶
U
UDP ( User Datagram Protocol ) 用戶數據報協議
UNI ( User Network Interface ) 網路用戶端介面
UTP ( Unshielded Twisted Paired ) 非屏蔽雙絞線
V
VC ( Virtual Circuit ) 虛電路
VCI ( Virtual Channel Indicate ) 虛擬通道標志
VPI ( Virtual Path Indicate ) 虛擬路徑標志
VT ( Virtual Terminal ) 虛擬終端
W
WAN ( Wide Area Network ) 廣域網
WDM ( Wavelength Division Multiplexing ) 波分多路復用
WWW ( World Wide Web ] 網際網路
X
X.25 ( ) 由CCITT提出的DTE至DCE間的介面協議