沖突域 廣播域簡單解釋

網絡互連設備可以將網絡劃分為不同的沖突域、廣播域。但是,由于不同的網絡互連設備可能工作在OSI模型的不同層次上。因此,它們劃分沖突域、廣播域的效果也就各不相同。如中繼器工作在物理層,網橋和交換機工作在數據鏈路層,路由器工作在網絡層,而網關工作在OSI模型的上三層。而每一層的網絡互連設備要根據不同層次的特點完成各自不同的任務。
  
  下面我們討論常見的網絡互連設備的工作原理以及它們在劃分沖突域、廣播域時各自的特點。
  
  1、傳統以太網操作
  
  傳統共享式以太網的典型代表是總線型以太網。在這種類型的以太網中,通信信道只有一個,采用介質共享(介質爭用)的訪問方法。每個站點在發送數據之前首先要偵聽網絡是否空閑,如果空閑就發送數據。否則,繼續偵聽直到網絡空閑。如果兩個站點同時檢測到介質空閑并同時發送出一幀數據,則會導致數據幀的沖突,雙方的數據幀均被破壞。這時,兩個站點將采用"二進制指數退避"的方法各自等待一段隨機的時間再偵聽、發送。
  
  在圖1中,主機A只是想要發送一個單播數據包給主機B。但由于傳統共享式以太網的廣播性質,接入到總線上的所有主機都將收到此單播數據包。同時,此時如果任何第二方,包括主機B也要發送數據到總線上都將沖突,導致雙方數據發送失敗。我們稱連接在總線上的所有主機共同構成了一個沖突域。
  
  當主機A發送一個目標是所有主機的廣播類型數據包時,總線上的所有主機都要接收該廣播數據包,并檢查廣播數據包的內容,如果需要的話加以進一步的處理。我們稱連接在總線上的所有主機共同構成了一個廣播域。
  
  
 
  圖1  傳統以太網

  
  2、中繼器(Repeater)
  
  中繼器(Repeater)作為一個實際產品出現主要有兩個原因:
  
  第一,擴展網絡距離,將衰減信號經過再生。
  
  第二,實現粗同軸電纜以太網和細同軸電纜以太網的互連。
  
  通過中繼器雖然可以延長信號傳輸的距離、實現兩個網段的互連。但并沒有增加網絡的可用帶寬。如圖2所示,網段1和網段2經過中繼器連接后構成了一個單個的沖突域和廣播域。
  
  
 
  圖2  中繼器連接的網絡

  
  3、集線器(HUB)
  
  集線器實際上相當于多端口(在本章,我們常用"端口"一詞代替"接口"這個術語)的中繼器。集線器通常有8個、16個或24個等數量不等的接口。
  
  集線器同樣可以延長網絡的通信距離,或連接物理結構不同的網絡,但主要還是作為一個主機站點的匯聚點,將連接在集線器上各個接口上的主機聯系起來使之可以互相通信。
  
  如圖3所示,所有主機都連接到中心節點的集線器上構成一個物理上的星型連接。但實際上,在集線器內部,各接口都是通過背板總線連接在一起的,在邏輯上仍構成一個共享的總線。因此,集線器和其所有接口所接的主機共同構成了一個沖突域和一個廣播域。
  
  
 
  圖3  集線器連接的網絡

  
  4、網橋(Bridge)
  
  網橋(Bridge)又稱為橋接器。和中繼器類似,傳統的網橋只有兩個端口,用于連接不同的網段。和中繼器不同的是,網橋具有一定的"智能"性,可以"學習"網絡上主機的地址,同時具有信號過濾的功能。
  
  如圖4所示,網段1的主機A發給主機B的數據包不會被網橋轉發到網段2。因為,網橋可以識別這是網段1內部的通信數據流。同樣,網段2的主機X發給主機Y的數據包也不會被網橋轉發到網段1。可見,網橋可以將一個沖突域分割為兩個。其中,每個沖突域共享自己的總線信道帶寬。
  
  
 
  圖4  網橋連接的網絡

  
  但是,如果主機C發送了一個目標是所有主機的廣播類型數據包時,網橋要轉發這樣的數據包。網橋兩側的兩個網段總線上的所有主機都要接收該廣播數據包。因此,網段1和網段2仍屬于同一個廣播域。
  
  5、交換機(Switch)
  
  交換機(Switch)也被稱為交換式集線器。它的出現是為了解決連接在集線器上的所有主機共享可用帶寬的缺陷。
  
  交換機是通過為需要通信的兩臺主機直接建立專用的通信信道來增加可用帶寬的。從這個角度上來講,交換機相當于多端口網橋。
  
  如圖5所示,交換機為主機A和主機B建立一條專用的信道,也為主機C和主機D建立一條專用的信道。只有當某個接口直接連接了一個集線器,而集線器又連接了多臺主機時,交換機上的該接口和集線器上所連的所有主機才可能產生沖突,形成沖突域。換句話說,交換機上的每個接口都是自己的一個沖突域。
  
  
 
  圖5  交換機連接的網絡

  
  但是,交換機同樣沒有過濾廣播通信的功能。如果交換機收到一個廣播數據包后,它會向其所有的端口轉發此廣播數據包。因此,交換機和其所有接口所連接的主機共同構成了一個廣播域。
  
  我們將使用交換機作為互連設備的局域網稱為交換式局域網。
  
  6、路由器(Router)
  
  路由器工作在網絡層,可以識別網絡層的地址-IP地址,有能力過濾第3層的廣播消息。實際上,除非做特殊配置,否則路由器從不轉發廣播類型的數據包。因此,路由器的每個端口所連接的網絡都獨自構成一個廣播域。如圖6所示,如果各網段都是共享式局域網,則每網段自己構成一個獨立的沖突域。
  
  
 
  圖6  路由器連接的網絡

  
  7、網關(Gateway)
  
  網關工作在OSI參考模型的高三層,因此,并不使用沖突域、廣播域的概念。網關主要用來進行高層協議之間的轉換。例如,充當LOTUS 1-2-3郵件服務和Microsoft Exchange郵件服務之間的郵件網關。

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

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

相關文章

Linux系統編程---5(共享存儲映射,存儲映射I/O,mmap函數,父子進程間通信,匿名映射)

共享存儲映射 文件進程間通信 使用文件也可以完成 IPC,理論依據是,fork 后,父子進程共享文件描述符。也就共享打開的文件。 編程:父子進程共享打開的文件。借助文件進行進程間通信。 測試代碼 /*** 父子進程共享打開的文件描述…

變量的存取

一、預備知識―程序的內存分配 一個由c/C編譯的程序占用的內存分為以下幾個部分 1、棧區(stack)― 由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。 2、堆區(heap&#xff…

Linux下文件的多進程拷貝

大文件拷貝 假設有一個超大文件,需對其完成拷貝工作。為提高效率,可采用多進程并行拷貝的方法來實現。假設文件 大小為 len,共有 n 個進程對該文件進行拷貝。那每個進程拷貝的字節數應為 len/n。但未必一定能整除,我們可 以選擇讓…

linux下cron定時任務的總結

cron是linux系統下一個自動執行指定任務的程序,即包含“時間”、“路徑”、“自動執行腳本”等要素 當我們要增加全局性的計劃任務時,一種方式是直接修改/etc/crontab。但是,一般不建議這樣做,/etc/cron.d目錄就是為了解決這種問…

Linux系統編程---6(信號的機制,信號4要素,Linu常規信號表,定時器)

信號的概念 信號在我們的生活中隨處可見, 如:古代戰爭中摔杯為號;現代戰爭中的信號彈;體育比賽中使用的信號槍… 他們都有共性: 簡單不能攜帶大量信息,只能帶一個標志。滿足某個特設條件才發送。 Unix 早…

python httplib2的安裝

window下python安裝httplib2 https://pypi.python.org/pypi/httplib2地址下下載httplib2安裝包,并解壓縮 方法一、我的電腦->屬性->高級->環境變量->系統變量 在系統變量里找到PATH,雙擊PATH,在結尾加上 ";C:\Python25&…

Linux系統編程----7(信號集,信號屏蔽,信號捕捉)

信號集操作函數 內核通過讀取未決信號集來判斷信號是否應被處理。信號屏蔽字 mask 可以影響未決信號集。而我們可以在應 用程序中自定義 set 來改變 mask。已達到屏蔽指定信號的目的。 信號集設定 sigset_t set; //typedef unsigned long sigset_t;int sigemptyset(sigset_t…

Linux系統編程----8(競態條件,時序競態,pause函數,如何解決時序競態)

競態條件(時序競態): pause 函數 調用該函數可以造成進程主動掛起,等待信號喚醒。調用該系統調用的進程將處于阻塞狀態(主動放棄 cpu) 直 到有信號遞達將其喚醒,等不到一直等 int pause(void); 返回值:-1 并設置 errno 為 EINTR…

Linux系統編程---8(全局變量異步I/O,可重入函數)

全局變量異步 I/O 分析如下父子進程交替 數數 程序。當捕捉函數里面的 sleep 取消&#xff0c;程序即會出現問題。請分析原因。 #include<stdio.h> #include<signal.h> #include<unistd.h> #include<stdlib.h>intn0,flag0; void sys_err(char* s…

http使用post上傳文件時,請求頭和主體信息總結

請求頭必須配置如下行&#xff1a; Content-Type : multipart/form-data; boundary---12321 boundary---12321位文件的分界線 body如下&#xff1a; "-----12321\r\n" //分割文件時加-- "Content-Disposition: form-data; name\"…

iconv 文件編碼轉換

iconv 文件編碼轉換 http://qq164587043.blog.51cto.com/261469/63349 linux shell 配置文件中默認的字符集編碼為UTF&#xff0d;8 。UTF&#xff0d;8是unicode的一種表達方式&#xff0c;gb2312是和unicode都是字符的編碼方式&#xff0c;所以說gb2312跟utf&#xff0d;8的…

Linu系統編程---9(SIGCHLD 信號,信號傳參,中斷系統調用)

SIGCHLD 信號 SIGCHLD 的產生條件 子進程終止時子進程接收到 SIGSTOP 信號停止時子進程處在停止態&#xff0c;接受到 SIGCONT 后喚醒時 借助 SIGCHLD 信號回收子進程 子進程結束運行&#xff0c;其父進程會收到 SIGCHLD 信號。該信號的默認處理動作是忽略。可以捕捉該信號…

Linu系統編程---10(Linux的終端,線路規程,網絡終端,進程組)

終端 輸入輸出設備的總稱 在 UNIX 系統中&#xff0c;用戶通過終端登錄系統后得到一個 Shell 進程&#xff0c;這個終端成為 Shell 進程的控制終端&#xff08;Controlling Terminal&#xff09;&#xff0c; 進程中&#xff0c;控制終端是保存在 PCB 中的信息&#xff0c;而 …

PCRE函數簡介和使用示例

PCRE是一個NFA正則引擎&#xff0c;不然不能提供完全與Perl一致的正則語法功能。但它同時也實現了DFA&#xff0c;只是滿足數學意義上的正則。 PCRE提供了19個接口函數&#xff0c;為了簡單介紹&#xff0c;使用PCRE內帶的測試程序(pcretest.c)示例用法。 1. pcre_compile 原型…

Linux系統編程---11(會話,守護進程,創建守護進程)

會話 創建會話 創建一個會話需要注意以下6點注意事項 調用進程不能是進程組組長&#xff0c;該進程變成新會話首進程該進程成為一個新進程組的組長進程需要root權限&#xff08;nbuntu不需要&#xff09;新會話丟棄原有的控制終端&#xff0c;該會話沒有控制終端該調用進程是…

判斷一段文件是UTF-8編碼還是GB2312的編碼方式

分類&#xff1a; 算法 cpp2012-03-10 16:01 7120人閱讀 評論(2) 收藏 舉報null生活c對于只包含中文和英文的文本中判斷編碼方式是非常簡單的&#xff0c;中文的編碼方式最常用的是GBK&#xff0c;字符集更大的如GBK向下兼容GB2312&#xff0c;其中包含的的很多一部分字符是我們…

判斷文件的編碼方式

/*功能&#xff1a;實現文件編碼格式的判斷通過一個文件的最前面三個字節&#xff0c;可以判斷出該的編碼類型&#xff1a;ANSI&#xff1a;        無格式定義&#xff1b;(第一個字節開始就是文件內容)Unicode&#xff1a;       前兩個字節為FFFE&#xff1b;…

Linux系統編程----12(線程概念,Linux線程實現原理,棧中ebp指針和ebp指針,線程的優缺點和共享資源)

線程概念 什么是線程 在一個程序里的一個執行路線就叫做線程&#xff08;thread&#xff09;。更準確的定義是&#xff1a;線程是“一個進程內部的控制序列” 一切進程至少都有一個執行線程線程在進程內部運行&#xff0c;本質是在進程地址空間內運行在Linux系統中&#xff0…

Linux系統編程---13(線程控制函數,創建線程,循環創建多個線程,線程間共享全局變量)

線程控制 操作系統并沒有提供創建線程的系統調用接口&#xff0c;因此大佬們封裝了一個線程的接口庫實現線程控制。意為著用戶創建線程都使用的是庫函數&#xff08;所以有時候我們說創建的線程是一個用戶態線程&#xff0c;但是在內核中對應有一個輕量級進程實現線程程序的調…

Linux系統編程---14(回收子線程,回收多個子線程,線程分離,殺死線程)

回收子線程 pthread_join 函數 阻塞等待線程退出&#xff0c;獲取線程退出狀態 其作用&#xff0c;對應進程中 waitpid() 函數。 int pthread_join (pthread_t thread,void** retval); 成功&#xff1a;0&#xff0c;失敗&#xff1a;錯誤號 參數&#xff1a;thread&#x…