3. 數據鏈路層
- 差錯檢測;現實的通信鏈路都不會是理想的,存在一定的信噪比,從而導致誤碼率;爲了保證數據的可靠傳輸,在數據鏈路層廣泛的採用了循環冗餘校驗(CRC)
- 傳輸差錯可分爲兩大類:比特差錯(由於信噪比、硬件設施的原因)、傳輸差錯(幀丟失、幀重複、幀亂序)
- 爲了保證傳輸的質量,現在使用了兩種方式實現可靠性傳輸協議(這樣做可以提高通信效率):
- 對於通信質量良好的有線傳輸鏈路,如果數據鏈路層出現差錯,需要由上層協議改進(如傳輸層、TCP)
- 對於信號質量較差的無線傳輸鏈路,使用確認重傳機制。
- 在通信線路傳輸質量較差的年代,高級數據鏈路控制(HDLC)協議廣受使用;現在更多的使用PPP協議
- PPP協議是用戶和ISP服務商進行通信時所使用的數據鏈路層協議。
- PPP協議特點:
1. 簡單 2. 封裝成幀 3. 透明性 4. 多種網絡層協議 5. 多種類型鏈路 6. 差錯檢測 7. 檢測連接狀態 8. 最大傳送單元 9. 網絡層地址協商 10.數據壓縮協商
- MTU 最大接收單元1500字節;只包含數據部分
網絡層
-
網際協議 IP
-
地址解析協議 ARP(根據目標機器IP地址解析出對應的數據鏈路層的硬件地址)
-
網際控制協議 ICMP
-
網際組管理協議 IGMP
-
一般來講,將網絡互聯需要使用一些設備,不同層次所用設備不同:
- 物理層 使用轉發器
- 數據鏈路層使用網橋或橋接器
- 網絡層使用路由器
- 網絡層以上使用網關
-
ip數據報格式:
-
ARP地址解析協議(緩存+廣播)
-
IP數據包組成部分:
- 版本 佔4位(IP協議版本,例如IPV4、IPV6)
- 首部長度 佔4位,(首部長度(總長60字節)=固定部分(20字節)+變長)
- 區分服務
- 總長度,總長度字段爲16位,那麼數據包最長單位2的16次方-1=65535字節;然而實際傳送的字節爲MTU(1500)最大傳送單元;然而IP協議又規定,總長度不能超過576字節(512字節+60首部+4富餘字節),如果超過,則需要分片處理。
- 標識,分片的標識。
- 片偏移 分片偏移量
- 生存時間 TTL
- 協議 (IP層的上層協議)
- 首部校驗和
- 源地址
- 目的地址
-
CIDR 無類別域間路由,可以構成超網;使得細分的子網又能聚合起來。
-
網際控制報文協議ICMP;爲了有效的轉發IP數據包和提高交付成功的機會。
-
ICMP 存放在數據包的數據部分加上數據包的首部
-
ICMP的一個重要應用就是分組網間探測PING,用來測試兩臺主機之間的連通性。traceroute發送無法交付的UDP數據包。
-
內部網關協議RIP(距離向量算法)和內部網關協議OSPF(迪傑斯特拉最短路徑算法)
-
外部網關協議BGP(路徑向量算法)
-
NAT 網絡地址轉換;
-
MPLS 面向連接技術。具有以下三個特點:
- 支持面向連接的服務質量
- 支持流量工程,平衡網絡負載
- 有效的支持虛擬專用網VPN
TCP/UDP協議
-
運輸層爲應用進程直接提供端到端的邏輯通信,同時還會對報文進行差錯檢測。
-
UDP 用戶數據報協議
-
TCP傳輸控制協議;由於要提供可靠的、面向連接的服務;因此不可避免的增加了許多開銷,如確認、流量控制、計時器以及連接管理等。不僅使協議的數據單月的首部增大很多,還要佔用許多的處理機資源。
-
UDP是無連接的、盡最大努力交付、面向報文的;在IP數據包服務的基礎上僅僅添加了複用和分用以及差錯檢測功能。UDP直接傳送應用層發送的報文數據,不會進行分包處理。所以應用層應該在處理UDP數據報時考慮其大小。
TCP:
- 關於TCP的幾個協議,這些協議都沒有在TCP中使用,但是類似於TCP協議進階出來的;
- 停止等待協議(等待消息發送收到確認之後再發送第二個協議,信道利用率差)
- 連續ARQ協議(連續ARQ協議規定,發送方每收到一個確認,就把窗口向前滑動一個分組的位置)
- TCP 報文段首部格式
- 流量控制
- 擁塞控制
- 慢開始(每經過一個輪次,擁塞窗口就加倍;慢是因爲從1個擁塞窗口開始)
- 擁塞避免(慢開始到達門限值之後,每經過一個輪次(RTT),擁塞窗口就+1 MSS)
- 快重傳(在接收方丟失數據包(序號爲N)之後,將收到的失序的報文信息,然後連續三次反饋給發送方N-1的序號,表示重複確認;塊重傳可以提高網絡20%的性能)
- 快恢復(結合快重傳)
- AQM 主動隊列管理;主動在隊列達到擁塞警惕的時候丟棄分組,提醒發送方放慢發送速率,從而減輕網絡擁塞或者不出現網絡擁塞。
應用層
- 應用進程跨越網絡的通信;如果我們不能使用已經標準化的互聯網應用協議,那麼我們應該需要使用系統調用和應用編程接口來解決這個問題。
轉載篇
TCP 總結:TCP協議面試靈魂10問,建議收藏~