計算機網絡(四)網絡層

計算機網絡(四)網絡層

  • 一、概述和功能
    • TCP/IP協議棧
    • IP數據報格式
    • IP數據報分片
  • 二、ipv4
    • 網絡地址轉換(NAT)
    • 子網劃分
    • 子網掩碼
    • ARP協議(地址解析協議)
    • DHCP協議
    • ICMP協議
  • 二、ipv6
    • ipv4和ipv6的區別
    • IPv6基本地址類型
    • IPv6向IPv4過渡的策略
  • 三、路由算法及路由協議
    • 內部網關協議IGP
      • RIP(距離向量路由算法)
        • RIP特點
        • 距離向量算法
      • OSPF協議
        • 特點
        • 鏈路狀態路由算法
        • OSPF的區域
    • 外部網關協議(EGP)
      • BGP協議
        • BGP協議報文格式
        • BGP協議特點
        • BGP-4的四種報文
        • 三種路由協議比較
  • 四、IP組播
    • IP組播地址
    • 硬件組播
    • IGMP協議
    • 組播路由選擇協議


一、概述和功能

主要任務是把分組從源端傳到目的端,為分組交換網上的不同主機提供通信服務。
網絡層傳輸單位是數據報

功能一:路由選擇與分組轉發
功能二:異構網絡互聯
功能三:擁塞控制(方法一:開環控制 方法二:閉環控制)

TCP/IP協議棧

在這里插入圖片描述

IP數據報格式

在這里插入圖片描述
版本:指IP的版本
首部長度:占4位,以32位為單位,最大60B,常用首部20B
總長度:占16位,指首部和數據之和的長度,單位1B
標識:占16位,它是一個計數器,每產生一個數據包+1,并賦值給標識字段。當數據報的長度超過網絡的MTU時,必須分片。
標志:占3位,標志字段最低位位MF,MF=1標識后面還有分片,MF=0標識最后一個分片。
片偏移:占13位,指較長的分組分片后,某片在分組的位置
首部檢驗和:占16位,IP數據報的首部檢驗和分組中的首部
生存周期(TTL):占8位,數據報在網絡中通過的路由器數的最大值,確保分組不會永遠在網絡中循環
協議:占8位,指出此分組攜帶的哪種協議。
源地址字段:占4B,發送方的ip地址
目的地址字段,4B,接收方的ip地址

IP數據報分片

以太網的MTU是1500字節。超過需要進行分片。
在這里插入圖片描述
在這里插入圖片描述

二、ipv4

IP地址:全世界唯一的32位/4字節標識符,標識路由器主機的接口。
IP地址={<網絡號>,<主機號>}

在這里插入圖片描述

特殊IP地址:
在這里插入圖片描述

私有IP地址:
在這里插入圖片描述

分類的IP地址
在這里插入圖片描述

在這里插入圖片描述

網絡地址轉換(NAT)

網絡地址轉換NAT(Network Address Translation):在專用網連接到因特網的路由器上安裝NAT軟件,安裝了NAT軟件的路由器叫NAT路由器,它至少有一個有效的外部全球IP地址。

子網劃分

分類的IP地址的弱點
1.IP地址空間的利用率有時很低。
2.兩級IP地址不夠靈活

在這里插入圖片描述

子網掩碼

在這里插入圖片描述

已知IP地址是141.14.72.24,子網掩碼是255.255.192.0,求網絡地址。如果子網掩碼是255.255.224.0,求網絡地址
在這里插入圖片描述

在這里插入圖片描述
77的二進制:01001011
子網掩碼:11111100
廣播要全為1,選C

路由器轉發分組的算法:
1)從收到的分組的首部提取目的IP地址,記為D.
2)先判斷是否為直接交付。對路由器直接相連的網絡逐個進行檢查:用各網絡的子網掩碼
和D逐位相“與”,看結果是否和相應的網絡地址匹配。若匹配,則將分組直接交付,否
則間接交付,執行步驟3)。
3)若路由表中有目的地址為D的特定主機路由,則將分組傳送給路由表中所指明的下一-跳
路由器;否則,執行4)。
4)對路由表中的每一行(目的網絡地址、子網掩碼、下一跳地址)中的子網掩碼和D逐位
相“與”,其結果為N。若N與該行的目的網絡地址匹配,則將分組傳送給該行指明的下
跳路由器; 否則,執行步驟5)。
5)若路由表中有一個默認路由,則將分組傳送給路由表中所指明的默認路由器:否則,執
行步驟6)。
6)報告轉發分組出錯。

ARP協議(地址解析協議)

由于在實際網絡的鏈路上傳送數據幀時,最終必須使用MAC地址。

ARP協議使用過程
檢查ARP高速緩存,有對應表項則寫入MAC幀,沒有則用目的MAC地址為FF-FF-FF-FF-FF-FF的幀封裝并廣播ARP請求分組,同一局域網中所有主機都能收到該請求。目的主機收到請求后就會向源主機單播一個ARP響應分組,源主機收到后將此映射寫入ARP緩存(10-20min更新一次)。

ARP協議4種典型情況
1.主機A發給本網絡上的主機B:用ARP找到主機B的硬件地址;
2.主機A發給另一網絡上的主機B:用ARP找到本網絡上一個路由器(網關)的硬件地址;
3.路由器發給本網絡的主機A:用ARP找到主機A的硬件地址;
4.路由器發給另一網絡的主機B:用ARP找到本網絡上的一個路由器的硬件地址。

DHCP協議

動態主機配置協議DHCP是應用層協議,使用客戶/服務器方式,客戶端和服務端通過廣播方式進行交互,基于UDP。

DHCP提供即插即用聯網的機制,主機可以從服務器動態獲取IP地址、子網掩碼、默認網關、DNS服務器名稱與IP地址,允許地址重用,支持移動用戶加入網絡,支持在用地址續租。

1.主機廣播DHCP發現報文
2.DHCP服務器廣播DHCP提供報文
3.主機廣播DHCP請求報文
4.DHCP服務器廣播DHCP確認報文

ICMP協議

ICMP差錯報告報文(5種):
1.終點不可達:當路由器或主機不能交付數據報時就向源點發送終點不可達報文。
2.源點抑制:當路由器或主機由于擁塞而丟棄數據報時,就向源點發送源點抑制報文,使源點知道應當把數據報的發送速率放慢。
3.時間超過:當路由器收到生存時間TTL=0的數據報時,除丟棄該數據報外,還要向源點發送時間超過報文。當終點在預先規定的時間內不能收到一個數據報的全部數據報片時,就把已收到的數據報片都丟棄,并向源點發送時間超過報文。
4.參數問題:當路由器或目的主機收到的數據報的首部中有的字段的值不正確時,就丟棄該數據報,并向源點發送參數問題報文。
5.改變路由(重定向):路由器把改變路由報文發送給主機,讓主機知道下次應將數據報發送給另外的路由器(可通過更好的路由)。

不應發送ICMP差錯報文的情況:
1.對ICMP差錯報告報文不再發送ICMP差錯報告報文。
2.對第一個分片的數據報片的所有后續數據報片都不發送ICMP差錯報告報文。
3.對具有組播地址的數據報都不發送ICMP差錯報告報文。
4.對具有特殊地址(如127.0.0.0或0.0.0.0)的數據報不發送ICMP差錯報告報文。

ICMP詢問報文
1.回送請求和回答報文:主機或路由器向特定目的主機發出的詢問,收到此報文的主機必須給源主機或路由器發送ICMP回送回答報文。測試目的站是否可達以及了解其相關狀態。

2.時間戳請求和回答報文:請某個主機或路由器回答當前的日期和時間。用來進行時鐘同步和測量時間。

二、ipv6

在這里插入圖片描述

ipv4和ipv6的區別

1.IPv6將地址從32位(4B)擴大到128位(16B),更大的地址空間。
2.IPv6將IPv4的校驗和字段徹底移除,以減少每跳的處理時間。
3.IPv6將IPv4的可選字段移出首部,變成了擴展首部,成為靈活的首部格式,路由器通常不對擴展首部進行檢查,
大大提高了路由器的處理效率。
4.IPv6支持即插即用(即自動配置),不需要DHCP協議。
5.IPv6首部長度必須是8B的整數倍,IPv4首部是4B的整數倍。
6.IPv6只能在主機處分片,IPv4可以在路由器和主機處分片。
7.ICMPv6:附加報文類型“分組過大”。
8. IPv6支持資源的預分配, 支持實時視像等要求,保證一定的帶寬和時延的應用。
9.IPv6取消了協議字段,改成下一個首部字段。
10.IPv6取消了總長度字段,改用有效載荷長度字段。
11.IPv6取消了服務類型字段

IPv6基本地址類型

單播:一對一通信,可做源地址+目的地址
多播:一對多通信,可做目的地址
任播:一對多的一個通信,可做目的地址

IPv6向IPv4過渡的策略

雙棧協議:雙協議棧技術就是指在一臺設備上同時啟用IPv4協議棧和IPv6協議棧。這樣的話,這臺設備既能和IPv4網絡通信,又能和IPv6網絡通信。如果這臺設備是一個路由器,那么這臺路由器的不同接口上,分別配置了IPv4地址和IPv6地址,并很可能分別連接了IPv4網絡和IPv6網絡。如果這臺設備是一個計算機,那么它將同時擁有IPv4地址和IPv6地址,并具備同時處理這兩個協議地址的功能。

隧道技術 :通過使用互聯網絡的基礎設施在網絡之間傳遞數據的方式。使用隧道傳遞的數據(或負載)可以是不同協議的數據幀或包。隧道協議將其它協議的數據幀或包重新封裝然后通過隧道發送。

三、路由算法及路由協議

內部網關協議IGP

路由器間彼此交換信息,按照路由算法優化出路由表項
路由更新快,適用大型網絡,及時響應鏈路費用或網絡拓撲變化。算法復雜,增加網絡負擔。

RIP(距離向量路由算法)

RIP是一種分布式的基于距離向量的路由選擇協議,是因特網的協議標準,最大優點是簡單。
RIP協議要求網絡中每一個路由器都維護從它自己到其他每一個目的網絡的唯一最佳距離記錄(即一組距離)。
距離:通常為“跳數”,即從源端口到目的端口所經過的路由器個數,經過一個路由器跳數+1。特別的,從一路由器到直接連接的網絡距離為1。RIP允許一條路由最多只能包含15個路由器,因此距離為16表示網絡不可達。
在這里插入圖片描述

在這里插入圖片描述

RIP特點

1.僅和相鄰路由器交換信息
2.路由器交換的信息是自己的路由表
3.每30秒交換一次路由信息,然后路由器根據新信息更新路由表。若超過180s沒收到鄰居路由器的通告,則判定鄰居沒了,并更新自己路由表

距離向量算法

對于每個相鄰路由器發過來的RIP報文,具體步驟:
1.修改相鄰路由器發來的RIP報文中所有表項,對地址為X的相鄰路由器發來的RIP報文,修改此報文中的所有項目:把“下一跳”字段中的地址改為X,并把所有的“距離”字段+1。
在這里插入圖片描述

2.對修改后的RIP報文中的每一個項目,進行以下步驟:

  • (1)R1路由表中若沒有Net3,則把該項目填入R1路由表
  • (2)R1路由表中若有Net3,則查看下一跳路由器地址:

若下一跳是X,則用收到的項目替換源路由表中的項目;
若下一跳不是X, 原來距離比從X走的距離遠則更新,否則不作處理。

3.若180s還沒收到相鄰路由器X的更新路由表,則把X記為不可達的路由器,即把距離設置為16。
4.返回

例題:

已知路由器R6的路由表,現收到相鄰路由器R4發來的路由更新信息,試更新路由器R1的路由表:
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

RIP協議是好消息傳得快,壞消息穿得慢

在這里插入圖片描述
假設網1發生故障,R1路由器更新路由表 1 16 _ 表示網1不可到達,R2要發消息給網1,R1接收到了R2發來得RIP報文,修改R2得RIP報文 1 3 R2,與自己的1 16 _比較發現,可以通過R2到達網1實際上不能的,最后雙方不斷發RIP報文更新到16,不可達。

OSPF協議

特點

1.使用洪泛法向自治系統內所有路由器發送信息,即路由器通過輸出端口向所有相鄰的路由器發送信息,而每一個相鄰路由器又再次將此信息發往其所有的相鄰路由器
2.發送的信息就是與本路由器相鄰的所有路由器的鏈路狀態
3.只有當鏈路狀態發生變化時,路由器才向所有路由器洪泛發送此信息。
最后,所有路由器都能建立一個鏈路狀態數據庫,即全網拓撲圖。

1.每隔30min,要刷新一次數據庫中的鏈路狀態。
2.由于一個路由器的鏈路狀態只涉及到與相鄰路由器的連通狀態,因而與整個互聯網的規模并無直接關系。因此當互聯網規模很大時,OSPF 協議要比距離向量協議 RIP 好得多。
3.OSPF不存在壞消息傳的慢的問題,它的收斂速度很快。

鏈路狀態路由算法

1.每個路由器發現它的鄰居結點【HELLO問候分組】,并了解鄰居節點的網絡地址。
2.設置到它的每個鄰居的成本度量metric。
3.構造【DD數據庫描述分組】,向鄰站給出自己的鏈路狀態數據庫中的所有鏈路狀態項目的摘要信息。
4.如果DD分組中的摘要自己都有,則鄰站不做處理;如果有沒有的或者是更新的,則發送【LSR鏈路狀態請求分組】
請求自己沒有的和比自己更新的信息。
5.收到鄰站的LSR分組后,發送【LSU鏈路狀態更新分組】進行更新。
6.更新完畢后,鄰站返回一個【LSAck鏈路狀態確認分組】進行確認。
只要一個路由器的鏈路狀態發生變化:
5.泛洪發送【LSU鏈路狀態更新分組】進行更新。
6.更新完畢后,其他站返回一個【LSAck鏈路狀態確認分組】進行確認。
7.使用Dijkstra根據自己的鏈路狀態數據庫構造到其他節點間的最短路徑

OSPF的區域

為了使 OSPF 能夠用于規模很大的網絡,OSPF 將一個自治系統再劃分為若干個更小的范圍,叫做區域。每一個區域都有一個 32 位的區域標識符(用點分十進制表示)。區域也不能太大,在一個區域內的路由器最好不超過 200 個

在這里插入圖片描述

外部網關協議(EGP)

BGP協議

在這里插入圖片描述
BGP 所交換的網絡可達性的信息就是要到達某個網絡所要經過的一系列 AS。當 BGP 發言人互相交換了網絡可達性的信息后,各 BGP 發言人就根據所采用的策略從收到的路由信息中找出到達各 AS 的較好路由。

BGP協議報文格式

一個 BGP 發言人與其他自治系統中的 BGP 發言人要交換路由信息,就要先建立 TCP 連接,即通過TCP傳送,然后在此連接上交換 BGP 報文以建立 BGP 會話(session),利用 BGP 會話交換路由信息。

在這里插入圖片描述

BGP協議特點

BGP 支持 CIDR,因此 BGP 的路由表也就應當包括目的網絡前綴、下一跳路由器,以及到達該目的網絡所要經過的各個自治系統序列。
在 BGP 剛剛運行時,BGP 的鄰站是交換整個的 BGP 路由表。但以后只需要在發生變化時更新有變化的部分。這樣做對節省網絡帶寬和減少路由器的處理開銷都有好處。

BGP-4的四種報文

1.OPEN(打開)報文:用來與相鄰的另一個BGP發言人建立關系,并認證發送方。
2.UPDATE(更新)報文:通告新路徑或撤銷原路徑。
3.KEEPALIVE(保活)報文:在無UPDATE時,周期性證實鄰站的連通性;也作為OPEN的確認。
4.NOTIFICATION(通知)報文:報告先前報文的差錯;也被用于關閉連接。

三種路由協議比較

RIP是一種分布式的基于距離向量的內部網關路由選擇協議,通過廣播UDP報文來交換路由信息。
OSPF是一個內部網關協議,要交換的信息量較大,應使報文的長度盡量短,所以不使用傳輸層協議(如UDP
或TCP),而是直接采用IP。
BGP是一個外部網關協議,在不同的自治系統之間交換路由信息,由于網絡環境復雜,需要保證可靠傳輸,所
以采用TCP。

在這里插入圖片描述

四、IP組播

當網絡中的某些用戶需要特定數據時,組播數據發送者僅發送一次數據,借助組播路由協議為組播數據包建立組播分發樹,被傳遞的數據到達距離用戶端盡可能近的節點后才開始復制和分發,是一種點對多點傳輸方式。
在這里插入圖片描述

IP組播地址

IP組播地址讓源設備能夠將分組發送給一組設備。屬于多播組的設備將被分配一個組播組IP地址(一群共同需求主機的相同標識)。
組播地址范圍為224.0.0.0~239.255.255.255(D類地址),一個D類地址表示一個組播組。只能用作分組的目標地址。源地址總是為單播地址。
1.組播數據報也是“盡最大努力交付”,不提供可靠交付,應用于UDP。
2.對組播數據報不產生ICMP差錯報文。
3.并非所有D類地址都可以作為組播地址。

硬件組播

同單播地址一樣,組播IP地址也需要相應的組播MAC地址在本地網絡中實際傳送幀。組播MAC地址以十六進制值01-00-5E打頭,余下的6個十六進制位是根據IP組播組地址的最后23位轉換得到的
在這里插入圖片描述

IGMP協議

在這里插入圖片描述

1.某主機要加入組播組時,該主機向組播組的組播地址發送一個IGMP報文,聲明自己要稱為該組的成員。本地組播路由器收到IGMP報文后,要利用組播路由選擇協議把這組成員關系發給因特網上的其他組播路由器
2.本地組播路由器周期性探詢本地局域網上的主機,以便知道這些主機是否還是組播組的成員。只要有一個主機對某個組響應,那么組播路由器就認為這個組是活躍的;如果經過幾次探詢后沒有一個主機響應,組播路由器就認為本網絡上的沒有此組播組的主機,因此就不再把這組的成員關系發給其他的組播路由器。

組播路由選擇協議

組播路由協議目的是找出以源主機為根節點的組播轉發樹。構造樹可以避免在路由器之間兜圈子。對不同的多播組對應于不同的多播轉發樹;同一個多播組,對不同的源點也會有不同的多播轉發樹。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/384314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/384314.shtml
英文地址,請注明出處:http://en.pswp.cn/news/384314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux下基于socket和多線程的聊天室小程序

轉載&#xff1a;http://blog.csdn.net/robot__man/article/details/52460733 要求&#xff1a;基于TCP編寫&#xff0c;一個聊天室最多100人。 客戶端&#xff1a;   1、用戶需要登錄&#xff0c;登錄時只需要輸入一個昵稱即可無需判斷昵稱是否重復&#xff08;如果其他功…

操作系統(一)計算機系統概述

操作系統&#xff08;一&#xff09;計算機系統概述一、操作系統的概念二、功能和目標資源的管理者向上層提供服務對硬件的擴展三、操作系統的特征并發共享虛擬異步四、操作系統的發展與分類手工操作階段批處理階段單道批處理系統多道批處理系統分時操作系統實時操作系統操作系…

Linux下使用socket傳輸文件的C語言簡單實現

轉載&#xff1a;http://blog.csdn.net/ljd_1986413/article/details/7940938 服務器程序和客戶端程序應當分別運行在兩臺計算機上。 在運行服務器端的計算機終端執行&#xff1a;./file_server 在運行客戶端的計算終端上執行&#xff1a;./file_client ipaddr_server 然后根…

操作系統(二)進程管理

ui 操作系統&#xff08;二&#xff09;進程管理一、進程程序和進程進程控制塊&#xff08;PCB&#xff09;進程的組成進程的特征進程的狀態與轉換進程狀態的轉換進程的組織鏈接方式索引方式進程的控制進程的創建進程的終止進程阻塞進程喚醒進程切換進程通信共享存儲消息傳遞管…

gethostbyname()函數說明

轉載&#xff1a;http://www.cnblogs.com/cxz2009/archive/2010/11/19/1881611.html gethostbyname()函數說明——用域名或主機名獲取IP地址 包含頭文件 #include <netdb.h> #include <sys/socket.h> 函數原型 struct hostent *gethostbyna…

操作系統(三)內存管理

操作系統&#xff08;三&#xff09;內存管理一、程序執行過程裝入的三種方式鏈接的三種方式二、內存管理的概念內存空間的分配與回收連續分配管理方式單一連續分配固定分區分配動態分區分配首次適應算法最佳適應算法最壞適應算法鄰近適應算法非連續分配管理方式基本分頁存儲管…

操作系統(四)文件管理

操作系統&#xff08;四&#xff09;文件管理一、文件系統基礎1.文件邏輯結構無結構文件有結構文件2.文件目錄文件控制塊&#xff08;FCB&#xff09;目錄結構單級目錄兩級目錄結構多級目錄結構無環圖目錄結構3.文件保護口令保護加密保護訪問控制4.文件共享硬鏈接軟鏈接5.文件系…

struct stat結構體簡介

轉載&#xff1a;http://www.cnblogs.com/CSU-PL/archive/2013/06/06/3120757.html 在使用這個結構體和方法時&#xff0c;需要引入&#xff1a; <sys/types.h> <sys/stat.h> struct stat這個結構體是用來描述一個linux系統文件系統中的文件屬性的結構。 可以有兩種…

如何在Ubuntu上安裝GCC編譯器

如何在Ubuntu上安裝GCC編譯器1.首先更新包列表sudo apt update2.安裝build-essential軟件包&#xff1a; sudo apt install build-essential3.驗證GCC編譯器是否已成功安裝&#xff0c;請使用gcc --version命令打印GCC版本 rootubuntu:/home/csd# gcc --version

操作系統(五)輸入/輸出(I/O)管理

操作系統&#xff08;五&#xff09;輸入/輸出&#xff08;I/O&#xff09;管理一、I/O控制器二、I/O控制方式程序直接控制方式中斷驅動方式DMA方式通道控制方式I/O軟件層次結構假脫機技術設備的分配與回收緩沖區單緩沖雙緩沖循環緩沖區緩沖池一、I/O控制器 I/O設備由機械部件…

Linux下的I/O多路復用select,poll,epoll淺析

轉載&#xff1a;http://blog.csdn.net/u011573853/article/details/52105365 一&#xff0c;什么是I/O多路復用 所謂的I/O多路復用在英文中其實叫 I/O multiplexing. 就是單個線程&#xff0c;通過記錄跟蹤每個I/O流(sock)的狀態&#xff0c;來同時管理多個I/O流 。) I/O mu…

計算機組成原理(一)計算機系統概述

計算機組成原理&#xff08;一&#xff09;計算機系統概述一、計算機系統層次結構馮諾伊曼機計算機工作過程多級層次結構一、計算機系統層次結構 馮諾伊曼機 特點&#xff1a; 計算機由五大部件組成指令和數據以同等地位存于存儲 器&#xff0c;可按地址尋訪指令和數據用二進…

計算機組成原理(二)數據的表示和運算

計算機組成原理&#xff08;二&#xff09;數據的表示和運算一、BCD碼二、奇偶校驗碼三、海明碼四、循環冗余校驗碼&#xff08;CRC&#xff09;五、乘法運算原碼乘法補碼乘法六、除法運算原碼除法補碼除法七、浮點數的表示與運算浮點數的運算一、BCD碼 組合式BCD碼&#xff1…

select read write

轉載&#xff1a;http://blog.csdn.net/beginning1126/article/details/8057498 [cpp] view plaincopy <p style"color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; text-align: left; "><span style"font-size:14px;…

數據結構(七)圖的遍歷(遞歸非遞歸方法)

圖的遍歷&#xff08;遞歸非遞歸方法&#xff09;#include<iostream> #include<stdio.h> #include<stack> #include<queue> using namespace std;typedef char VertexType; typedef int EdgeType;#define MAXVEX 100 #define INF 65535 bool visited[M…

Linux IO復用區別與epoll詳解

轉載&#xff1a;http://blog.csdn.net/hacker00011000/article/details/52160590 一、select、poll、epoll之間的區別總結[整理]   select&#xff0c;poll&#xff0c;epoll都是IO多路復用的機制。I/O多路復用就通過一種機制&#xff0c;可以監視多個描述符&#xff0c;一…

簡單圖和多重圖

一、簡單圖 ?? ① 不存在重復邊&#xff1b; ?? ② 不存在頂點到自身的邊&#xff1b; 二、多重圖 ??① 某兩結點之間邊數多于一條&#xff1b; ??② 允許頂點通過一條邊和自己關聯&#xff1b;

C++筆記:select多路復用機制

轉載&#xff1a;http://blog.csdn.net/qdx411324962/article/details/42499535 函數作用&#xff1a; 系統提供select函數來實現多路復用輸入/輸出模型。select系統調用是用來讓我們的程序監視多個文件句柄的狀態變化的。程序會停在select這里等待&#xff0c;直到被監視的文件…

交叉編譯執行應用程序出現:No such file or directory

問題分析 當我在arm板子上執行交叉編譯過的程序的時候發現了這個錯誤。通過百度查詢基本都是缺少32位庫什么的,但是都不能解決問題。 然后我用ll指令&#xff0c;也排除了權限的原因。 我們用ldd指令發現&#xff0c;它不是動態執行的&#xff0c;雖然我們可以使用-static指…

select、poll、epoll 比較

轉載&#xff1a;http://blog.csdn.net/dodo_328/article/details/39081183 1.Selet&#xff1a;本質上是通過設置或者檢查存放fd標志位的數據結構來進行下一步處理。 缺點&#xff1a;1 單個進程可監視的fd數量被限制&#xff0c;因為受描述符集合fd_set限制&#xff0c;fd數量…