本科課程:計算機網絡(四)

網絡層

transport segment from sending to receiving host
encapsulates segments into datagrams 把報文封裝爲數據報
network layer protocols in every host, router

網絡層的兩個功能:

  • 轉發功能(考慮的是局部網絡)
    move packets from router’s input to appropriate router output

  • 路由功能(考慮的是全局網絡)
    determine route taken by packets from source to dest

網絡層是主機之間的連接(host-to-host)
傳輸層是進程之間的連接(不考慮中間網絡設備)

網絡層的三個主要的組件:

  • IP protocol
  • ICMP protocol
  • routing protocol

一、virtual circuit and datagram networks 虛擬電路網絡和數據報

  • datagram network provides network-layer connectionless service
  • virtual-circuit network provides network-layer connection service

網絡層和傳輸層的區別:

  • 1.service : host-to-host

  • 2.no choice : network provides one or the other

  • 3.implementation : in network core

1、虛擬電路

類似於電話線,使用時建立,結束後拆除

每條虛擬電路包括:

  • path from source to destination
  • VC numbers, one number for each link along path 每一條鏈路都有一個ID
  • entries in forwarding tables in routers along path

VC number can be changed on each link
VC 標識號是可變的,每換了一條鏈路就會換一個標識號

2、forwarding table 轉發表

VC routers maintain connection state information
虛擬電路的路由器包含連接狀態信息
在這裏插入圖片描述

Longest prefix matching 最長前綴匹配原則(二進制匹配)

在這裏插入圖片描述

從頭開始匹配的字節數最多的,來選擇對應的端口

在這裏插入圖片描述
比如這個地址走的是端口1而不是端口2

3、虛擬電路網絡和數據報網絡的區別

datagram :

  1. “elastic” service, no strict timing req.
    彈性服務,對時延不嚴格要求
  2. 有很多類型的連接介質
  3. “smart” end systems
    智能終端(簡化網絡的複雜性)

virtual circuit :

  1. strict timing, reliability requirements
    need for guaranteed service
    需要嚴格的時延要求和高可靠性
  2. “dumb” end systems
    簡單終端

二、router 路由器

兩個主要功能:

  • run routing algorithms/protocol 實現路由算法
  • forwarding datagrams from incoming to outgoing link
    轉發數據報

在這裏插入圖片描述

1、input ports

在這裏插入圖片描述

  • 在進入路由器進行轉發之前,會在每一個本地輸入端口(紅色框)查詢轉發表,分散路由器的內存使用,如果目標地址是本機,則交給該路由器解析數據;如果目標地址在轉發表中,則按照轉發錶轉發,如果不在轉發表中,則跳轉到默認的下一跳地址
  • 假如數據報到的太快,就會在輸入端口處排隊

2、switching fabrics

transfer packet from input buffer to appropriate output buffer
將包轉發
一共有三種轉發方式:

switching iva memory

switching iva a bus

不需要選擇處理器來處理
共享總線,帶寬需要爭奪

switching iva interconnectiong network

3、outer ports

三、Internet Protocol IP協議

1、IP協議數據報格式

在這裏插入圖片描述
ver:IP協議版本
head len:IP數據報頭部的長度
type of service:服務類型,一般不使用
length:數據報總長度字段(佔16位)
16-bit identifier:
flgs:標識位(佔3位)
fragment offset:偏移量,指當前分片在原始位置中佔的位置
time to live :IP分組的生存期,指該分組最多能經過多少跳
upper layer:
header checksum:校驗和
source IP address:

2、IP數據報分片

3、IPv4地址

a、子網

b、 CIDR

c、Hierarchical addressing

d、DHCP

e、NAT (network address translation)

同一個ip地址上映射有多個端口對應內部網絡(16-bit的端口號一共有60000多個端口)

NAT translation table: every (source IP address, port #) to (NAT IP address, new port #) translation pair // NAT轉發表
在這裏插入圖片描述
replace outgoing datagrams, and then remeber it in NAT translation table , at last replace incoming datagrams // 一記錄兩替換

爭議點:

  • routers should only process up to layer 3 //路由器應該只工作在第三層
  • violates end-to-end argument //端對端的系統所不允許
  • address shortage should instead be solved by IPv6 //地址短缺應該使用IPv6解決

外部不能直接訪問內部地址內的主機,即對外隱藏內部主機(安全性)
如果需要訪問內部主機 :

  • statically configure NAT // 靜態配置NAT(對外對內的ip地址和端口)
  • IGD protocol & UPnP protocol // 通用即插即用 (UPnP) 互聯網網關設備 (IGD) 協議
  • relay bridges // 中繼轉發
    在這裏插入圖片描述

4、ICMP協議

" InternetControlMessageProtocol " 因特網控制報文協議

用於主機和路由器之間的通信:

  • error reporting // 差錯報告
  • echo request/reply // 回聲請求/應答

ICMP協議的功能主要有:

  • 確認IP包是否成功到達目標地址
  • 通知在發送過程中IP包被丟棄的原因

我們需要注意幾點:

  • ICMP是基於IP協議工作的,但是它並不是傳輸層的功能,因此仍然把它歸結爲網絡層協議
  • ICMP只能搭配IPv4使用,如果是IPv6的情況下, 需要是用ICMPv6

ICMP的消息包括類型和代碼,部分類型和代碼表:
在這裏插入圖片描述
其中經常使用的類型和代碼消息:

  1. ping request :8,0
  2. ping reply :0,0
  3. dest host unreachable:3,3 //目標不可達
  4. TTl expired:11,0 //傳輸超時報文
    & TTl expired:11,1//分段重組超時

trace route

利用ICMP定位源主機和目標主機之間所有經過的路由器

traceroute發送的ICMP報文使用UDP協議

ICMP報文的TTL字段:代表路由器個數

  • 當TTL=0,生命週期結束, 路由器會丟棄這個報文,並返回超時報文
  • 每經過一個路由器,TTL的值-1
  • 發送多組報文,其中第一組TTL=1、第二組TTL=2…

當ICMP報文到達時,源主機會記錄下RTT時間。

當目標主機返回 “ port unreachable ”的ICMP報文時,停止發送

參考文章:ICMP協議詳解

5、IPv6版本協議

32-bit address space
fixed-length 40 byte header // 頭部長度固定40字節
no fragmentation allowed // 不允許分片處理

數據報格式:

在這裏插入圖片描述
pri:(priority)優先級
payload len : 載荷長度
next hdr : 指向第一個擴展頭部的option字段(放在data裏)
hop limit : 和TTL一樣的作用
source address : 128-bits, 16字節的長度
destination address : 128-bits, 16字節的長度

a、IPv4和IPv6的轉換

在這裏插入圖片描述

  • 把 IPv6 的數據報作爲 IPv4 的一部分

在這裏插入圖片描述
tunneling: // 隧道
IPv6 datagram carried as payload in IPv4 datagram among IPv4 routers

四、routing algorithms 路由算法

所謂的路由算法: 尋找最小費用路徑的算法

算法分類:

1、靜態路由&動態路由:

static

  • routes change slowly over time 路由更新快
  • manually configurate 手工配置
  • high priority 優先級高

dynamic

  • routes change more quickly 路由更新快
  • update automatic 自動配置
  • prompt respond change of link cost 及時響應鏈路費用的變化

2、全局信息&分散信息:

global

  • all routers have complete topology, link cost info 路由器掌握完整的網絡拓撲和鏈路費用信息
  • 代表算法:Link-State路由算法

decentralized

  • router knows physically-connected neighbors, link costs to neighbors 路由器只掌握物理相連的鄰居以及鏈路費用
  • iterative process of computation, exchange of info with neighbors 通過鄰居間信息交換、運算的迭代過程來更新路由信息。
  • 代表算法:distance vector 路由算法(矩陣向量)

1、Link-State Routing Algorithm //鏈路狀態路由算法(LS)

首先將網絡抽象
網絡結構圖:

在這裏插入圖片描述
鏈路費用:
c(x,x’) = cost of link (x,x’) 路徑費用:(鏈路費用之和) cost of path (x1, x2,
x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) eg. cost of path
(u,v,w,z)=2+3+5 =10

使用最短路徑(Dijkstra)算法
計算從一個結點(“源” )到達所有其他結點的最短路徑

僞代碼:

1、初始化:
   N' = {u} // N'爲目前已知的路徑                                                                                      
   for all nodes for n                                                                   
        if n is a neighbor of u                                                      
            then D(n) = c(u,n)                                                        
        else D(n) =2、循環階段
    find w not in N' such that D(w) is a minimum                    
    add w to N'                                                                            
    update D(n) for each neighbor n of w and not in N' //對最小費用的鏈路進行更新         
        D(n) = min(  D(n)D(w)+c(w,n)  )                              
    until N' = N                                                                            

在這裏插入圖片描述
N’ : 目前已知的最小費用路徑的集合
D(v),p(v):從源點到該點的路徑費用,前驅節點
通過找每一個D(v)、D(w)、D(x)、D(y)、D(z)的最小值,確定一個u到z的最短路徑,然後就可以配置路由表
去掉非最短費用的線,只保留最短費用路徑可得最短路徑樹
在這裏插入圖片描述
根據上圖可知:u到z的最小路徑是uwvyz

可能產生的鏈路震盪
鏈路狀態更新的太快並且不斷變化,數據報就一直在路由間切換

參考文章:路由選擇算法——鏈路狀態算法(包括了算法實現代碼)

2、Distance vector algorithm //距離向量算法

如果每個結點x以D_x(y)開始,對網絡N中所有結點,估計從它自己到結點y的最低路徑費用。
在這裏插入圖片描述

  1. 對每個鄰居結點v,從x到相鄰鄰居v的費用爲c(x,v)。
  2. 結點x的距離向量Dx,包含了x到N中所有目的地y的費用估計值。
  3. 每個鄰居的距離向量Dv。

3、Hierarchical routing

五、routing in the Internet 大型網絡中內部網關路由協議(IGP)的選擇

IGP(內部網關協議)是在一個自治網絡內網關(主機和路由器)間交換路由信息的協議。路由信息能用於網間協議(IP)或者其它網絡協議來說明路由傳送是如何進行的。

IGP協議包括RIP、OSPF、IS-IS、IGRP、EIGRP。

域:自治系統
Internet網被分成多個域或多個自治系統。一個域(domain)是一組主機和使用相同路由選擇協議的路由器集合,並由單一機構管理。換言之,一個域可能是由一所大學或其它機構管理的互聯網。

1、RIP協議(Routing Information Protocol)

網關間選徑協議,是一種內部網關協議,採用距離向量算法。以自治系統(Autonomous System)的方式提供路由選擇路由協議

2、OSPF協議(Open Shortest Path First)

3、BGP協議(Border Gateway Protocol)

參考文章:
內部網關協議
OSPF基礎介紹
RIP路由協議的理解
大型網絡中內部網關路由協議(IGP)的選擇
TCP/IP之路由算法
路由算法之距離矢量算法和鏈路狀態算法

六、broadcast and multicast routing

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章