架構師基礎一
主要內容是資料是如何傳送、影響傳送速度的因素、為什麼要限制頻寬
一、資料的網路傳輸
資料是如何傳送的?
應用程式首先將要傳送的資料寫入該程序的記憶體位址空間中。
應用程式通過系統函式(send)向核心發出系統呼叫,它將這些資料從使用者態記憶體區複製到由核心維護的一段稱為核心緩衝區的記憶體位址空間。這塊位址是有限的空間,所以傳送的資料以佇列的形式進入,而這些資料來自多個程序,每塊資料都有一定的額外記號來標記去向。如果傳送的資料比較多,那麼改系統呼叫就會進行多次,每次複製一定的資料大小,這個大小取決於網路資料報的大小以及核心區的承載能力。
當資料寫入核心區後,核心會通知網絡卡控制器來取資料,同時cpu轉而處理其他的程序。網絡卡接到通知後,便根據網絡卡驅動資訊得知對應核心緩衝區的位址,將傳送的資料複製到網絡卡的緩衝區中。注意以上一系列的資料複製中,資料始終按照連線兩端裝置的內部匯流排寬度來複製,也就是位元組的整數倍。比如32位匯流排的主機系統一般使用32位匯流排寬度。
傳送時網絡卡會使用內部特定的物理裝置來生成可以傳播的各種訊號。
二、影響傳送速度的因素
這裡所將的頻寬指的是資料的傳送速度,如百兆網絡卡,一秒鐘最快可以傳送100mb,那麼影響他的傳送速度的因素有哪些?
三、限制頻寬
在大多數情況下,我們都將web站點伺服器託管在idc,通過將其連線到某個交換機,從而進入網際網路。這時候,我們的伺服器擁有自己的ip位址,當站點使用者通過網際網路向這台伺服器請求資料後,資料從伺服器經交換機到達指定的路由器,這個過程需要交換機的儲存**機制,也就是交換機從連線伺服器的埠接收資料,儲存到交換機內部的高速緩衝佇列中,然後將其從連線路由器的埠傳送出去,再經過路由器的**,進入另乙個網路,接下來重複這些過程,直至進入pc。
如果全世界只有你的伺服器和你的使用者在傳輸資料,那麼這部分資料流經的每個交換節點都會全心全意地做好**工作,此時你的資料在各節點**的傳送速度都可以達到理論上裝置所能達到的最大值。但實際上每處交換節點都有可能來自其他的主機資料,包括你的資料在內的所有資料都匯集進入路由器的**佇列,路由器按照**佇列中的順序來交錯地傳送這些來自不同主機的資料,所以單從來自不同主機的資料而言,其**時的傳送速度必定小於所有從路由器**出去的資料的傳送速度(即該交換節點的出口頻寬)
因為頻寬是有限的,它毫無疑問是個搶手的資源,而且網際網路運營商在所有的基礎交換節點設定管卡,也就是限制資料從你的主機流入路由器**佇列的速度,而只要流入路由器**佇列的資料,都會按照路由器出口頻寬,流入其他網路。
架構師之路 架構師思維的培養
公司的cms 綜合賦碼管理系統 是winform的cs架構。這套系統的架構師換了3屆,到現在已經幾年沒有架構師了。本來入職時,崗位目標就是這個 自動化架構師 後來和領導達成共識先爭取成為儲備架構師,因為架構首先是為業務服務的,而工控行業有許多特別的地方,不是普通的軟體技術堆疊就能做出優秀的工控軟體的...
小白聊架構師 怎麼成為架構師
還有人說 我早就掌握了物件導向設計,也看了 企業應用架構模式 架構之美 大型 技術架構 等等架構的書,為啥還當不了架構師?是啊,這高階,大氣,上檔次的架構師是怎麼煉成的?這裡講乙個小王的故事吧。又到了畢業季,一批應屆生進了乙個軟體公司,小王也在其中。新人進入公司,基本上都是從最底層做起,做那些最髒最...
架構師之路 架構師思維的培養
公司的cms 綜合賦碼管理系統 是winform的cs架構。這套系統的架構師換了3屆,到現在已經幾年沒有架構師了。本來入職時,崗位目標就是這個 自動化架構師 後來和領導達成共識先爭取成為儲備架構師,因為架構首先是為業務服務的,而工控行業有許多特別的地方,不是普通的軟體技術堆疊就能做出優秀的工控軟體的...