計算機網絡
第1章 概述
- 計算機網絡的功能:連通、共享
- 互聯網(Internet、因特網): 指由APPANET發展而來、採用 TCP/IP協議族作爲通信的規則的特定的計算機網絡
- 因特網的組成:邊緣部分、核心部分
- 邊緣部分:連接在因特網上的所有主機
- 核心部分:由網絡與路由器組成
- 主機之間的通信模式:
- 客戶端/服務器模式(C/S)Client/Server
- 瀏覽器/服務器模式(B/S)Browser/Server
- 對等模式(P2P)Peer-to-Peer
- 路由器處理分組的過程:
- 把收到的分組先放入緩存(暫時存儲)
- 查找轉發表,找出到某個目的地址應從哪個端口轉發
- 把分組送到適當的端口轉發出去
- 電路交換:先建立源點到終點的鏈路,然後整個報文的比特流連續地從源點直達終點。
- 報文交換:整個報文先傳送到相鄰結點,全部存儲下來後查找轉發表,轉發到下一個結點。需要各結點存儲轉發。
- 分組交換:單個分組(這只是整個報文的一部分)傳送到相鄰結點,存儲下來後查找轉發表,-轉發到下一個結點。需要各結點存儲轉發。
- 計算機網絡的性能指標:
- 速率(信息速率、碼元速率)
- 帶寬
- 時延(發送時延、傳播時延、處理時延、排隊時延)
- 利用率(信道利用率、網絡利用率)
- 網絡協議:爲進行網絡中心的數據交換而建立的規則、標準或約定。主要由語法、語義、同步三個要素組成。
- 語法:數據與控制信息的結構或格式
- 語義:需要發出何種控制信息,完成何種動作以及做出何種響應
- 同步:事件實現順序的詳細說明
- 協議:對等實體間進行通信的規則,協議必須能應付各種可能的情況。協議是水平的
- 服務:下層爲上層提供服務。上下層實體進行信息交互的地方稱爲服務訪問點SAP。服務是垂直的
第2章 物理層
公式
信噪比\:(dB) = 10 ln(S/N)\:(dB)
C = W log_2(1+S/N)\:(bit/s)
傳輸媒體
信道複用技術
1. 頻分 FDM
2. 時分 TDM
3. 統計時分 STDM
- 掃描正在使用信道的用戶,動態分配時隙
- 優點:
- 缺點:
- 掃描時使用了緩存,對於智能複用器的性能要求高
- 由於時隙不是固定分配的,所以每個時隙中需要帶有地址等信息,造成額外開銷
4. 波分 WDM/DWDM
- 按波長將一條光纖劃分成多個信道
- 優點:
- 缺點:價格昂貴
5. 碼分 CDM
- 每個站被指派一個唯一的碼片序列,1就是這個序列,0是這個序列的反碼
- 各個站的碼片序列各不相同,相互正交
- 優點:
- 用戶可以在同樣的時間使用同樣的頻帶進行通信
- 信號有很強的抗干擾能力
- 缺點:一個bit轉換成m個比特的碼片,需要傳送的數據量增大
寬帶接入技術
1. xDSL
- 特點:
- 在電話線(
銅線
)的基礎上改造
- 0~4kHz 頻段用於電話,高頻用於上網
- ASDL使用DMT技術:將高頻分段,少部分用於上行信道,其他用於下行信道
- 採用頻分複用
- ISP<–>端局DSLAM<–>ATU-C<–>電話分離器(
至電話局
)<–>電話分離器(用戶電話
)<–>ATU-R<–>用戶電腦
- 優點:
- 改造成本低,在電話線基礎上改造,不需要破壞原有的物理結構
- ATU是無源的,使用物理方法進行濾波,維護成本低
- 缺點:
2. HFC
- 特點:
- 在電視線的基礎上改造
- 原本電視線的單向傳輸改造爲雙向傳輸
- 主幹使用光纖,在光纖節點中轉換爲電信號,再由一條大同軸電纜送至用戶家庭
- 優點:
- 缺點:
3. FTTx
- 特點:
- 不同與DSL的電話線和FHC的同軸電纜,FTTx使用光纖進行近距離傳輸
- 爲了有效利用光纖,數十個用戶使用一個光配線網ODN(
光分路器
)對一條光纖進行分用
- 採用波分複用
- 優點:
- 缺點:
第3章 數據鏈路層
循環冗餘檢驗 CRC
- 雙方協議生成多項式的方式,例如
P(X) = X^3 + X^2 + 1
- 得出除數就是1101,最高項次數n = 3
- 數據後面補n個0:101001,000
- 101001,000除以1101,相同爲0,不同爲1
- 最後的餘數取n位:001即FCS
- 由數據101001和FCS 001檢驗數據是否正確:
- 將FCS拼接到數據後面:101001,001
- 由多項式得出除數1001
- 若101001,001除1001不爲0,則數據錯誤
點對點協議 PPP
PPP協議就是用戶和 ISP進行通信時使用的數據鏈路層協議
字段: |
F |
A |
C |
協議 |
信息部分 |
FCS |
F |
字節: |
1 |
1 |
1 |
2 |
不超過1500字節 |
2 |
1 |
-
協議:
- 0x0021:信息部分爲 IP數據報
- 0xC021:信息部分爲 鏈路控制協議LCP的數據
- 0x8021:信息部分爲 網絡控制協議NCP的數據
-
連接過程:
- 物理鏈路:物理層建立連接
- LCP鏈路:發送一系列LCP分組–>對方返回配置確認幀–>LCP配置鑑別成功
- NCP鏈路:發送NCP幀–>建立NCP鏈路
-
封裝和透明性:
- 使用標誌字段7E表示一個幀的開始和結束
- 使用字節填充,轉義字符7D
- 數據中的幀邊界(
7E
)轉義爲7D 5E,數據中的轉義字符(7D
)轉義爲7D 5D
- PPP協議用在SONET/SDH鏈路時使用零比特填充,每5個1填入一個0
CSMA/CD協議
CSMA/CD協議是使用在以太網(使用總線網的局域網
)上的數據鏈路層協議,解決一條總線上如何實現一對一通信的問題
字段: |
前同步碼 |
幀開始定界符 |
|
目的地址 |
源地址 |
類型 |
數據 |
FCS |
字節: |
7 |
1 |
|
6 |
6 |
2 |
46~1500 |
4 |
-
幀格式說明:
- 前同步碼:在不使用SONET/SDH時發送需要插入前同步碼,目的是使適配器的時鐘與比特流達成同步
- 幀開始定界符:分開前同步碼和MAC幀
- 類型:標誌上一層使用的協議,例如IP或IPX
- 數據:數據不夠46字節時將會在數據後面進行填充
-
MAC地址:
- MAC存在於硬件適配器(
網卡,串行/並行轉換
)中
- 長度爲6字節、48位
- 前24位由 IEEE的RA管理出售,第7位爲G/L位(
全球/本地管理
),第8位爲I/G位(單個站/組地址
)
- 後24位由廠家自行指派
-
利用率:
S_{max}=\frac{發送時延}{發送時延 + 傳播時延}
-
封裝和透明性:
- 不需要幀結束定界
- 不需要使用字節插入來保證透明傳輸
-
碰撞、退避:
- 基本退避時間S = RTT = 512比特時間 = 64字節傳輸時延 = 51.2 μs(10 Mb/s)
- 截斷二進制指數退避:
S_{退讓時間} = r × RTT
r = [0,1,2,...,(2^k-1)]
k = Min[重傳次數,10]
交換機
- 網橋:通過MAC地址表查找目標地址,確定後將幀轉發到目標地址上,使用軟件轉發
- 交換機:
- 並行傳輸,無碰撞
- 內置緩存
- 通過自學習方法建立交換表,使用硬件轉發
虛擬局域網 VLAN
字段: |
目的地址 |
源地址 |
802.1Q標記 |
用戶優先級 |
CFI |
VID |
類型 |
數據 |
FCS |
字節: |
6 |
6 |
2 |
3位 |
1位 |
12位 |
2 |
42~1500 |
4 |
第4章 網絡層
- 網絡層提供的兩種服務:虛電路服務和數據報服務
- 網絡層中間設備:路由器
- IP地址:分類的IP地址、子網掩碼、掩碼、CIDR、迴環地址、私有地址(10/8,172.16/12,192.168/16)、網絡地址與廣播地址、單播地址與多播地址。
IPv4
1. 分類的IP地址
- A類:前面1個字節是網絡號,1.x.x.x~126.x.x.x
- B類:前面2個字節是網絡號,128.1.x.x~191.255.x.x
- C類:前面3個字節是網絡號,192.0.1.x~223.255.255.x
2. 劃分子網
3. 超網 CIDR
4. IP數據報
字段: |
版本(IPv4) |
首部長度(最少20) |
區分服務(一般沒用) |
總長度(該分片的長度) |
字節: |
4位 |
4位 |
1 |
2 |
字段: |
標識(一個數據的全部分片標識一樣) |
標誌(MF=還有分片,DF=不能分片) |
片偏移(數據在原來的位置/8) |
字節: |
2 |
3位 |
13位 |
字段: |
生存時間(跳數TTL) |
協議(數據部分使用的協議) |
首部檢驗和 |
字節: |
1 |
1 |
2 |
IPv6
字段: |
版本(IPv6) |
通信量類 |
流標號 |
字節: |
4位 |
1 |
20位 |
字段: |
有效載荷長度(擴展首部+數據) |
下一個首部(協議) |
跳數限制 |
字節: |
2 |
1 |
1 |
地址解析協議 ARP
- ARP進程在本局域網上廣播發送一個ARP請求分組
- 在本局域網上所有主機上運行的ARP進程都收到此ARP請求分組
- 主機B在ARP分組中見到自己的IP地址,就向主機A發送ARP響應分組,並寫入自己的硬件地址
- 主機A收到主機B的ARP響應分組後,就在其ARP高速緩存中寫入主機B的IP地址到硬件地址的映射
網際控制報文協議 ICMP
- 有ICMP差錯報告報文和ICMP詢問報文兩種
- ICMP 允許主機或路由器報告差錯情況和提供有關異常情況的報告
- 應用程序PING採用的就是ICMP 請求與響應報文。
內部/外部網關協議
1. 路由信息協議 RIP
- 一種分佈式的基於距離向量的路由選擇協議
- 相鄰路由器間定時交換各自的路由表
- 基於UDP
2. 開放最短路徑優先協議 OSPF
- 一種分佈式的鏈路狀態路由協議
- 鏈路狀態改變時洪泛發送鄰居信息。基於IP協議進行傳輸
3. 邊界網關協議 BGP
網際組管理協議 IGMP
讓連接在本地局域網上的多播路由器知道本局域網上是否有主機參加或退出了某個多播組。
虛擬專用網 VPN
通過一個公用網絡建立一個臨時的、安全的連接,是一條穿過混亂的公用網絡的安全、穩定的隧道。
網絡地址轉換 NAT
將私有(保留)地址轉化爲合法IP地址的轉換技術,被廣泛應用於各種類型Internet接入方式和各種類型的網絡中。原因很簡單,NAT不僅完美地解決了IP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。
第5章 運輸層
UDP
字段: |
源IP地址 |
目的IP地址 |
0 |
17 |
UDP長度 |
字節: |
4 |
4 |
1 |
1 |
2 |
-
17表示UDP檢驗和,TCP的僞首部將17換爲6
-
報文格式:
字段: |
源端口 |
目的端口 |
長度 |
檢驗和 |
UDP數據部分 |
字節: |
2 |
2 |
2 |
2 |
|
TCP
字段 |
源端口 |
目的端口 |
序號 |
確認號 |
數據偏移 |
保留 |
URG |
ACK |
PSH |
RST |
SYN |
FIN |
窗口 |
檢驗和 |
緊急指針 |
字節 |
2 |
2 |
4 |
4 |
4位 |
6位 |
1位 |
1位 |
1位 |
1位 |
1位 |
1位 |
2 |
2 |
2 |
- 序號:本報文段數據的第一個字節的編號
- 確認號:下一個報文第一個字節的編號
- 數據偏移:因爲首部有可選項,所以數據位置不確定,需要指明偏移值用於找到數據部分
- ACK:建立連接後ACK=1
- PSH:PSH=1相當於flush
- RST:RST=1釋放和復位
- SYN:SYN=1表示這是一個連接請求或連接接受報文
- FIN:FIN=1釋放連接
- 窗口:接收方窗口的大小
1. 超時重傳 ARQ
RTT_S = \frac{7}{8}RTT_S + \frac{1}{8}RTT
RTO = RTT_S + 4 × RTT_D
RTT_D = \frac{3}{4}RTT_D + \frac{1}{4}|RTT - RTT_S|
2. 擁塞控制*
3. 握手
sequenceDiagram
Client->>Service: SYN = 1, seq = x
Service->>Client: SYN=1,ACK=1,seq=y,ack=x+1
Client->>Service: ACK = 1, seq = x+1, ack = y+1
sequenceDiagram
Client->>Service: FIN = 1, seq = u
Service->>Client: ACK=1,seq=v,ack=u+1
Service->>Client: FIN=1,ACK=1,seq=w,ack=u+1
Client->>Service: ACK = 1, seq = u+1, ack = w+1
UDP和TCP的區別
對比項目 |
UDP |
TCP |
連接 |
無連接 |
面向連接 |
面向 |
報文 |
字節流 |
交互通信方式 |
支持全部 |
一對一 |
首部開銷 |
固定8字節 |
20字節以上 |
可靠 |
盡最大努力交付 |
提供可靠交付 |
第6章 應用層
域名解析 DNS
- 主機訪問 www.baidu.com:
- 主機本地的映射緩存
- 本地域名服務器的映射緩存
- 本地域名服務器向根域名服務器查詢,活得
.com
頂級域名服務器的地址
- 本地域名服務器向頂級域名服務器查詢,獲得
baidu.com
權限域名服務器的地址
- 本地域名服務器向權限域名服務器查詢,獲得
www.baidu.com
的IP地址
文件傳輸 FTP
- FTP:
- 使用TCP
- 一個端口21負責傳送控制信息
- 一個端口20負責傳送數據
- TFTP:
- 使用UDP
- 每次傳送512字節
- 數據報文編號,從1開始
- 使用類似停止等待的方式實現可靠傳輸
超文本傳輸協議 HTTP
- URL:
- <協議> 😕/ <主機> : [端口] / [路徑]
- HTTP的端口默認爲 80
- HTTP:
- 使用TCP
- 在建立TCP連接的第三次握手中發送HTTP請求報文
- HTTP/1.1使用長連接
- Proxy Server:
- 請求報文:
- GET /dir/index.html HTTP/1.1
- Host: www.xyz.edu.cn
- Connection: close
- User-Agent:
電子郵件
1. 簡單郵件傳送協議 SMTP
- 電子郵件分信封(
自動填入
)和內容
- 內容分首部和主體
- To: 收件人地址
- Subject: 主題
- Cc: 抄送
- Bcc: 暗送
- Reply-To: 讓對方回信的地址
- From: 來自(
自動填入
)
- Date: 發信日期(
自動填入
)
3. 萬維網電子郵件
- 瀏覽器和郵件服務器間使用HTTP協議
- 郵件在服務器之間傳送仍然使用SMTP
動態主機配置協議 DHCP
- DHCP可以讓主機自動獲得IP地址
- 使用UDP
- 租用時間過了一半後像DHCP服務器申請延時
- DHCP客戶端口68,DHCP服務器端口67