A. 簡述計算機內存的分類及各自特點
1、SDRAM
(Synchronous Dynamic RAM,同步動態隨機存儲器)採用3.3V工作電壓,內存數據位寬64位。 SDRAM與CPU通過一個相同的時鍾頻率鎖在一起,使兩者以相同的速度同步工作。 SDRAM它在每一個時鍾脈沖的上升沿傳輸數據SDRAM內存金手指為168腳。
2、DDR SDRAM
( Double data Rate SDRAM,雙倍速率同步動態隨機存儲器)採用2.5V工作電壓,內存數據位寬64位。 DDR SDRAM (簡稱DDR內存)一個時鍾脈沖傳輸兩次數據,分別在時鍾脈沖的上升沿和下降沿各傳輸一次數據,因此稱為雙倍速率的SDRAM。
3、DDR2 SDRAM
(Double Data Rate 2 SDRAM)採用1.8V工作電壓,內存數據位寬64位。 DDR2內存和DDR內存一樣,一個時鍾脈沖傳輸兩次數據,但DDR2內存卻擁有兩倍於上一代DDR內存的預讀取能力,即4位數據預讀取。
4、DDR3 SDRAM
(Double Data Rate 3 SDRAM)採用1.5 V工作電壓,內存數據位寬64位。同樣, DDR3內存擁有兩倍於上一代DDR2內存的預讀取能力,即8位數據預讀取。
5、DDR4 SDRAM
(Double Data Rate 4 SDRAM)採用1.2V工作電壓,內存數據位寬64位, 16位數據預讀取。取消雙通道機制,一條內存即為一條通道。工作頻率最高可達4266 MHz,單根DDR4內存的數據傳輸帶寬最高為34 GB/s。
B. 關於計算機網路的最簡單的理解,說說看
以我大學考試的理解,無非是對於一些演算法的理解(比如CRC演算法、擁塞)和協議的分析(IPv4協議分析)
C. 計算機網路技術專業電腦配置內存要求
最低16G內存起,無論你是做設計渲染還是數據分析
D. 計算機網路
應用層(數據):確定進程之間通信的性質以滿足用戶需要以及提供網路與用戶應用
表示層(數據):主要解決用戶信息的語法表示問題,如加密解密
會話層(數據):提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制,如伺服器驗證用戶登錄便是由會話層完成的
傳輸層(段):實現網路不同主機上用戶進程之間的數據通信,可靠
與不可靠的傳輸,傳輸層的錯誤檢測,流量控制等
網路層(包):提供邏輯地址(IP)、選路,數據從源端到目的端的
傳輸
數據鏈路層(幀):將上層數據封裝成幀,用MAC地址訪問媒介,錯誤檢測與修正
物理層(比特流):設備之間比特流的傳輸,物理介面,電氣特性等
IP 地址編址方案將IP地址空間劃分為 A、B、C、D、E 五類,其中 A、B、C 是基本類,D、E 類作為多播和保留使用,為特殊地址。
A 類地址:以 0 開頭,第一個位元組范圍:0~127 。
B 類地址:以 10 開頭,第一個位元組范圍:128~191 。
C 類地址:以 110 開頭,第一個位元組范圍:192~223。
D 類地址:以 1110 開頭,第一個位元組范圍:224~239 。
E 類地址:以 1111 開頭,保留地址。
物理地址(MAC 地址),是數據鏈路層和物理層使用的地址。
IP 地址是網路層和以上各層使用的地址,是一種邏輯地址。
其中 ARP 協議用於 IP 地址與物理地址的對應。
網路層的 ARP 協議完成了 IP 地址與物理地址的映射。
TCP(Transmission Control Protocol),傳輸控制協議,是一種面向連接的、可靠的、基於位元組流的傳輸層通信協議。
主要特點如下:
FTP :定義了文件傳輸協議
Telnet :它是一種用於遠程登陸
SMTP :定義了簡單郵件傳送協議
POP3 :它是和 SMTP 對應,POP3 用於接收郵件
HTTP :從 Web 伺服器傳輸超文本到本地瀏覽器的傳送協議。
防止了伺服器端的一直等待而浪費資源
伺服器端准備為每個請求創建一個鏈接,並向其發送確認報文,然後等待客戶端進行確認後創建。如果此時客戶端一直不確認,會造成 SYN 攻擊,即SYN 攻擊,英文為 SYN Flood ,是一種典型的 DoS/DDoS 攻擊。
TCP 協議是一種面向連接的、可靠的、基於位元組流的運輸層通信協議。TCP 是全雙工模式,這就意味著:
TIME_WAIT 表示收到了對方的 FIN 報文,並發送出了 ACK 報文,就等 2MSL後即可回到 CLOSED 可用狀態了。如果 FIN_WAIT_1 狀態下,收到了對方同時帶 FIN 標志和 ACK 標志的報文時,可以直接進入到 TIME_WAIT 狀態,而無須經過 FIN_WAIT_2 狀態。
如果不等,釋放的埠可能會重連剛斷開的伺服器埠,這樣依然存活在網路里的老的 TCP 報文可能與新 TCP 連接報文沖突,造成數據沖突,為避免此種情況,需要耐心等待網路老的 TCP 連接的活躍報文全部死翹翹,2MSL 時間可以滿足這個需求(盡管非常保守)!
建立連接後,兩台主機就可以相互傳輸數據了。如下圖所示:
因為各種原因,TCP 數據包可能存在丟失的情況,TCP 會進行數據重傳。如下圖所示:
TCP 協議操作是圍繞滑動窗口 + 確認機制來進行的。
滑動窗口協議,是傳輸層進行流控的一種措施,接收方通過通告發送方自己的窗口大小,從而控制發送方的發送速度,從而達到防止發送方發送速度過快而導致自己被淹沒的目的。
TCP 的滑動窗口解決了端到端的流量控制問題,允許接受方對傳輸進行限制,直到它擁有足夠的緩沖空間來容納更多的數據。
計算機網路中的帶寬、交換結點中的緩存及處理機等都是網路的資源。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的性能就會變壞,這種情況就叫做擁塞。
通過擁塞控制來解決。擁堵控制,就是防止過多的數據注入網路中,這樣可以使網路中的路由器或鏈路不致過載。注意,擁塞控制和流量控制不同,前者是一個 全局性 的過程,而後者指 點對點 通信量的控制。
擁塞控制的方法主要有以下四種:
1)慢開始
不要一開始就發送大量的數據,先探測一下網路的擁塞程度,也就是說由小到大逐漸增加擁塞窗口的大小。
2)擁塞避免
擁塞避免演算法,讓擁塞窗口緩慢增長,即每經過一個往返時間 RTT 就把發送方的擁塞窗口 cwnd 加 1 ,而不是加倍,這樣擁塞窗口按線性規律緩慢增長。
3)快重傳
快重傳,要求接收方在收到一個 失序的報文段 後就立即發出 重復確認 (為的是使發送方及早知道有報文段沒有到達對方),而不要等到自己發送數據時捎帶確認。
快重傳演算法規定,發送方只要一連收到三個重復確認,就應當立即重傳對方尚未收到的報文段,而不必繼續等待設置的重傳計時器時間到期。
4)快恢復
快重傳配合使用的還有快恢復演算法,當發送方連續收到三個重復確認時,就執行「乘法減小」演算法,把 ssthresh 門限減半。
UDP(User Data Protocol,用戶數據報協議),是與 TCP 相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去。
主要特點如下:
DNS :用於域名解析服務
SNMP :簡單網路管理協議
TFTP:簡單文件傳輸協議
TCP 只支持點對點通信;UDP 支持一對一、一對多、多對一、多對多的通信模式。
TCP 有擁塞控制機制;UDP 沒有擁塞控制,適合媒體通信,對實時應用很有用,如 直播,實時視頻會議等
既使用 TCP 又使用 UDP 。
HTTP 協議,是 Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網伺服器傳輸超文本到本地瀏覽器的傳送協議。
主要特點如下:
請求報文包含三部分:
a、請求行:包含請求方法、URI、HTTP版本信息
b、請求首部欄位
c、請求內容實體
響應報文包含三部分:
a、狀態行:包含HTTP版本、狀態碼、狀態碼的原因短語
b、響應首部欄位
c、響應內容實體
GET: 對伺服器資源的簡單請求。
POST: 用於發送包含用戶提交數據的請求。
HEAD:類似於 GET 請求,不過返回的響應中沒有具體內容,用於獲取報頭。
PUT:傳說中請求文檔的一個版本。
DELETE:發出一個刪除指定文檔的請求。
TRACE:發送一個請求副本,以跟蹤其處理進程。
OPTIONS:返回所有可用的方法,檢查伺服器支持哪些方法。
CONNECT:用於 SSL 隧道的基於代理的請求。
1.明文發送,內容可能被竊聽
2.不驗證通信方的身份,因此可能遭遇偽裝
3.無法證明報文的完整性,可能被篡改
綜上所述:
需要 IP 協議來連接網路,TCP 是一種允許我們安全傳輸數據的機制,使用 TCP 協議來傳輸數據的 HTTP 是 Web 伺服器和客戶端使用的特殊協議。HTTP 基於 TCP 協議,所以可以使用 Socket 去建立一個 TCP 連接。
HTTPS ,實際就是在 TCP 層與 HTTP 層之間加入了 SSL/TLS 來為上層的安全保駕護航,主要用到對稱加密、非對稱加密、證書,等技術進行客戶端與伺服器的數據加密傳輸,最終達到保證整個通信的安全性。
埠不同:HTTP 與 HTTPS 使用不同的連接方式,埠不一樣,前者是 80,後者是 443。
資源消耗:和 HTTP 通信相比,HTTPS 通信會由於加解密處理消耗更多的 CPU 和內存資源。
開銷:HTTPS 通信需要證書,而證書一般需要向認證機構申請免費或者付費購買。
SSL 協議即用到了對稱加密也用到了非對稱加密
1)客戶端發起 https 請求(就是用戶在瀏覽器里輸入一個 https 網址,然後連接到 server
的 443 埠)
2)服務端的配置(採用 https 協議的伺服器必須要有一套數字證書,可以自己製作,
也可以向組織申請,這套證書就是一對公鑰和私鑰,這是非對稱加密)。
3)傳輸證書(這個證書就是公鑰,只是包含了很多信息)
4)客戶端解析證書(由客戶端 tls 完成,首先驗證公鑰是否有效,若發現異常,則彈出
一個警示框,提示證書存在問題,若無問題,則生成一個隨機值(對稱加密的私鑰),然後用證書對隨機值進行加密)
5)傳輸加密信息(這里傳輸的是加密後的隨機值,目的是讓服務端得到這個隨機值,以後客戶端和服務端的通信就可以通過這個隨機值來進行加密了)
6)服務端解密信息(服務端用私鑰(非對稱加密)解密後得到了客戶端傳來的隨機值(對稱加密的私鑰),然後把通信內容通過該值(對稱加密的私鑰隨機值)進行對稱加密。所謂對稱加密就是,將信息和私鑰(對稱加密的私鑰)通過某種演算法混在一起,這樣除非知道私鑰(對稱加密的私鑰),不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰(對稱加密的私鑰),所以只要加密演算法夠彪悍,私鑰夠復雜,數據就夠安全)
7)傳輸加密的信息
8)客戶端解密信息,用隨機數(對稱加密的私鑰)來解。
默認情況下建立 TCP 連接不會斷開,只有在請求報頭中聲明 Connection: close 才會在請求完成後關閉連接。
在 HTTP/1.0 中,一個伺服器在發送完一個 HTTP 響應後,會斷開 TCP 鏈接。但是這樣每次請求都會重新建立和斷開 TCP 連接,代價過大。所以雖然標准中沒有設定,某些伺服器對 Connection: keep-alive 的 Header 進行了支持。意思是說,完成這個 HTTP 請求之後,不要斷開 HTTP 請求使用的 TCP 連接。這樣的好處是連接可以被重新使用,之後發送 HTTP 請求的時候不需要重新建立 TCP 連接,以及如果維持連接,那麼 SSL 的開銷也可以避免.
如果維持持久連接,一個 TCP 連接是可以發送多個 HTTP 請求的。
HTTP/1.1 存在一個問題,單個 TCP 連接在同一時刻只能處理一個請求,在 HTTP/1.1 存在 Pipelining 技術可以完成這個多個請求同時發送,但是由於瀏覽器默認關閉,所以可以認為這是不可行的。在 HTTP2 中由於 Multiplexing 特點的存在,多個 HTTP 請求可以在同一個 TCP 連接中並行進行。
TCP 連接有的時候會被瀏覽器和服務端維持一段時間。TCP 不需要重新建立,SSL 自然也會用之前的。
有。Chrome 最多允許對同一個 Host 建立六個 TCP 連接。不同的瀏覽器有一些區別。
如果圖片都是 HTTPS 連接並且在同一個域名下,那麼瀏覽器在 SSL 握手之後會和伺服器商量能不能用 HTTP2,如果能的話就使用 Multiplexing 功能在這個連接上進行多路傳輸。不過也未必會所有掛在這個域名的資源都會使用一個 TCP 連接去獲取,但是可以確定的是 Multiplexing 很可能會被用到。
如果發現用不了 HTTP2 呢?或者用不了 HTTPS(現實中的 HTTP2 都是在 HTTPS 上實現的,所以也就是只能使用 HTTP/1.1)。那瀏覽器就會在一個 HOST 上建立多個 TCP 連接,連接數量的最大限製取決於瀏覽器設置,這些連接會在空閑的時候被瀏覽器用來發送新的請求,如果所有的連接都正在發送請求呢?那其他的請求就只能等等了
E. 名詞解析 1、DOS 2、INTERNET 3、計算機網路 4、內存 5、CPU
一、DOS是英文Disk Operating System的縮寫,意思是「磁碟操作系統」。DOS是個人計算機上的一類操作系統。DOS主要是一種面向磁碟的系統軟體,說得簡單些,DOS就是人與機器的一座橋梁,是罩在機器硬體外面的一層「外殼」,有了DOS,我們就不必去深入了解機器的硬體結構,也不必去死記硬背那些枯燥的機器命令。我們只需通過一些接近於自然語言的DOS命令,就可以輕松地完成絕大多數的日常操作。
二、Internet,中文正式譯名為網際網路,又叫做國際互聯網。它是由那些使用公用語言互相通信的計算機連接而成的全球網路。一旦你連接到它的任何一個節點上,就意味著您的計算機已經連入Internet網上了。Internet目前的用戶已經遍及全球,有超過幾億人在使用Internet,並且它的用戶數還在以等比級數上升。網際網路(Internet)是一組全球信息資源的總匯。有一種粗略的說法,認為INTERNET是由於許多小的網路(子網)互聯而成的一個邏輯網,每個子網中連接著若乾颱計算機(主機)。Internet以相互交流信息資源為目的,基於一些共同的協議,並通過許多路由器和公共互聯網而成,它是一個信息資源和資源共享的集合。計算機網路只是傳播信息的載體,而INTERNET的優越性和實用性則在於本身。網際網路最高層域名分為機構性域名和地理性域名兩大類,目前主要有14 種機構性域名。
三、計算機網路,是指將地理位置不同的具有獨立功能的多台計算機及其外部設備,通過通信線路連接起來,在網路操作系統,網路管理軟體及網路通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。
計算機網路就是通過線路互連起來的、資質的計算機集合,確切的說就是將分布在不同地理位置上的具有獨立工作能力的計算機、終端及其附屬設備用通信設備和通信線路連接起來,並配置網路軟體,以實現計算機資源共享的系統。
四、內存是計算機中重要的部件之一,它是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。 內存(Memory)也被稱為內存儲器,其作用是用於暫時存放CPU中的運算數據,以及與硬碟等外部存儲器交換的數據。只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成後CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。 內存是由內存晶元、電路板、金手指等部分組成的。
五、中央處理器(英文Central Processing Unit,CPU)是一台計算機的運算核心和控制核心。CPU、內部存儲器和輸入/輸出設備是電子計算機三大核心部件。其功能主要是解釋計算機指令以及處理計算機軟體中的數據。CPU由運算器、控制器和寄存器及實現它們之間聯系的數據、控制及狀態的匯流排構成。差不多所有的CPU的運作原理可分為四個階段:提取(Fetch)、解碼(Decode)、執行(Execute)和寫回(Writeback)。 CPU從存儲器或高速緩沖存儲器中取出指令,放入指令寄存器,並對指令解碼,並執行指令。所謂的計算機的可編程性主要是指對CPU的編程。
F. 計算機的內存包括什麼
內存是由內存晶元、電路板、金手指等部分組成的。
內存是計算機中重要的部件之一,它是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。內存也被稱為內存儲器和主存儲器,其作用是用於暫時存放CPU中的運算數據,以及與硬碟等外部存儲器交換的數據。
只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成後CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。
(6)計算機網路內存數據擴展閱讀
內存顆粒的好壞直接影響到內存的性能,可以說也是內存最重要的核心元件。所以大家在購買時,盡量選擇大廠生產出來的內存顆粒。
而採用這些頂級大廠內存顆粒的內存條品質性能,必然會比其他雜牌內存顆粒的產品要高出許多。內存PCB電路板的作用是連接內存晶元引腳與主板信號線,因此其做工好壞直接關系著系統穩定性。
目前主流內存PCB電路板層數一般是6層,這類電路板具有良好的電氣性能,可以有效屏蔽信號干擾。而更優秀的高規格內存往往配備了8層PCB電路板,以起到更好的效能。
G. 簡述計算機網路的組成,以及各個組成部分的作用
計算機網路由七層組成:
1、物理層:傳遞信息需要利用一些物理傳輸媒體,如雙絞線、同軸電纜、光纖等。物理層的任務就是為上層提供一個物理的連接,以及該物理連接表現出來的機械、電氣、功能和過程特性,實現透明的比特流傳輸。
2、數據鏈路層:數據鏈路層負責在2個相鄰的結點之間的鏈路上實現無差錯的數據幀傳輸。在接收方接收到數據出錯時要通知發送方重發,直到這一幀無差錯地到達接收結點,數據鏈路層就是把一條有可能出錯的實際鏈路變成讓網路層看起來像不會出錯的數據鏈路。
3、網路層:網路中通信的2個計算機之間可能要經過許多結點和鏈路,還可能經過幾個通信子網。網路層數據傳輸的單位是分組。網路層的主要任務是為要傳輸的分組選擇一條合適的路徑,使發送分組能夠正確無誤地按照給定的目的地址找到目的主機,交付給目的主機的傳輸層。
4、傳輸層:傳輸層的主要任務是通過通信子網的特性,最佳地利用網路資源,並以可靠與經濟的方式為2個端系統的會話層之間建立一條連接通道,以透明地傳輸報文。傳輸層向上一層提供一個可靠的端到端的服務,使會話層不知道傳輸層以下的數據通信的細節。
5、會話層:在會話層以及以上各層中,數據的傳輸都以報文為單位,會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立以及維護應用之間的通信機制。如伺服器驗證用戶登錄便是由會話層完成的。
6、表示層:這一層主要解決用戶信息的語法表示問題。它將要交換的數據從適合某一用戶的抽象語法,轉換為適合OSI內部表示使用的傳送語法。即提供格式化的表示和轉換數據服務。數據的壓縮和解壓縮、加密和解密等工作都由表示層負責。
7、應用層:這是OSI參考模型的最高層。應用層確定進程之間通信的性質以滿足用戶的需求,以及提供網路與用戶軟體之間的介面服務。
(7)計算機網路內存數據擴展閱讀:
傳輸層作為整個計算機網路的核心,是惟一負責總體數據傳輸和控制的一層。因為網路層不一定保證服務的可靠,而用戶也不能直接對通信子網加以控制,因此在網路層之上,加一層即傳輸層以改善傳輸質量。
傳輸層利用網路層提供的服務,並通過傳輸層地址提供給高層用戶傳輸數據的通信埠,使系統間高層資源的共享不必考慮數據通信方面和不可靠的數據傳輸方面的問題。
H. 計算機網路之RDMA技術(十)內存機制
姓名:周肇星;學號:22011110028;學院:通信工程學院
【嵌牛導讀】RDMA技術全稱遠程直接數據存取,就是為了解決網路傳輸中伺服器端數據處理的延遲而產生的。RDMA通過網路把資料直接傳入計算機的存儲區,將數據從一個系統快速移動到遠程系統存儲器中,而不對操作系統造成任何影響,這樣就不需要用到多少計算機的處理功能。它消除了外部存儲器復制和上下文切換的開銷,因而能解放內存帶寬和CPU周期用於改進應用系統性能。本專題將針對RDMA技術進行介紹!
【嵌牛鼻子】計算機網路,高性能網路,RDMA
【嵌牛提問】讀完本文,對RDMA技術的SRQ有所認識了嗎?
【嵌牛正文】
InfiniBand specification R1.3, Chapter3, 3.4.2, Page 104【通道適配器提供MTP機制及其功能】
InfiniBand specification R1.3, Chapter3, 3.5.3, Page 112【概述L_Key & R_Key】
InfiniBand specification R1.3, Chapter3, 3.5.4, Page 113【概述虛擬內存地址 & L_Key & R_Key】
InfiniBand specification R1.3, Chapter3, 3.6.1, Page 127【實現遠程訪問內存的兩種機制】
用戶可使用兩種機制來實現遠程訪問內存(RDMA):
任何一種方法均會產生R_Key,用戶可將R_Key和數據緩沖區的虛擬地址提供給遠程節點,只有遠端節點發來的RDMA請求中具有正確的R_Key才能訪問特定的內存區域
註:QP、內存區域、內存窗口必須位於相同的保護域中
MR全稱為Memory Region,可譯為內存區域,指的是由RDMA軟體層在內存中規劃出的一片區域,用於存放收發的數據。IB協議中,用戶在申請完用於存放數據的內存區域之後,都需要通過調用IB框架提供的API注冊MR,才能讓RDMA網卡訪問這片內存區域
Memory Region,它是一片由用戶注冊的特殊的內存區域:一方面其中的內容不會被換頁到硬碟中,另一方面RDMA網卡中記錄了它的地址轉換關系,使得硬體拿到用戶指定在WR中的虛擬地址之後找到對應的物理地址
通道適配器提供了一種內存轉換和保護(Memory Translation & Protection,MTP)機制,它將虛擬地址轉換為物理地址,並驗證訪問許可權。因此IBA應用程序無需對任何操作使用物理定址
注冊MR的過程中,硬體會在內存中創建並填寫一個VA to PA的映射表,這樣需要的時候就能通過查表把VA轉換成PA了
現在假設左邊的節點向右邊的節點發起了RDMA WRITE操作,即直接向右節點的內存區域中寫入數據。假設圖中兩端都已經完成了注冊MR的動作,MR即對應圖中的「數據Buffer」,同時也創建好了VA->PA的映射表。
對於右側節點來說,無論是地址轉換還是寫入內存,完全不用其CPU的參與
因為HCA訪問的內存地址來自於用戶,如果用戶傳入了一個非法的地址(比如系統內存或者其他進程使用的內存),HCA對其進行讀寫可能造成信息泄露或者內存覆蓋。所以我們需要一種機制來確保HCA只能訪問已被授權的、安全的內存地址。IB協議中,APP在為數據交互做准備的階段,需要執行注冊MR的動作
而用戶注冊MR的動作會產生兩把鑰匙:L_KEY(Local Key)和R_KEY(Remote Key),鑰匙的實體其實就是一串序列而已。它們將分別用於保障對於本端和遠端內存區域的訪問許可權
因為物理內存是有限的,所以操作系統通過換頁機制來暫時把某個進程不用的內存內容保存到硬碟中。當該進程需要使用時,再通過缺頁中斷把硬碟中的內容搬移回內存,這一過程幾乎必然導致VA-PA的映射關系發生改變
由於HCA經常會繞過CPU對用戶提供的VA所指向的物理內存區域進行讀寫,如果前後的VA-PA映射關系發生改變,那麼我們在前文提到的VA->PA映射表將失去意義,HCA將無法找到正確的物理地址
為了防止換頁所導致的VA-PA映射關系發生改變,注冊MR時會"Pin"住這塊內存(亦稱「鎖頁」),即鎖定VA-PA的映射關系。也就是說,MR這塊內存區域會長期存在於物理內存中不被換頁,直到完成通信之後,用戶主動注銷這片MR
Memory Window簡稱MW,中文為內存窗口。是一種由用戶申請的,用於讓遠端節點訪問本端內存區域的RDMA資源。每個MW都會綁定(稱為bind)在一個已經注冊的MR上,但是它相比於MR可以提供更靈活的許可權控制。MW可以粗略理解為是MR的子集,一個MR上可以劃分出很多MW,每個MW都可以設置自己的許可權
用戶注冊MR的過程,需要從用戶態陷入內核態,調用內核提供的函數pin住內存(防止換頁),然後製作虛擬-物理地址映射表並下發給硬體
因為MR是由內核管理的,如果用戶想修改一個已經存在的MR的信息,比如我想收回某個MR的遠端寫許可權,只保留遠端讀許可權;或者想要使一個之前已經授權給遠端節點的R_Key失效,那麼用戶需要通過重注冊MR(Reregister MR)介面來進行修改,該介面等價於先取消注冊MR(Deregister MR),然後注冊MR(Register MR)。上述流程需要陷入內核態來完成,而這個過程是耗時較長的
不同於需要通過控制路徑修改許可權的MR,MW在創建好之後,可以通過數據路徑(即通過用戶態直接下發WR到硬體的方式)動態的綁定到一個已經注冊的MR上,並同時設置或者更改其訪問許可權,這個過程的速度遠遠超過重新注冊MR的過程
IB規范通過下述兩種機制,來確保MR可以按照用戶的期望被正確且安全的訪問
A給自己的房間(MR)配了兩把鑰匙(Memory Key),一把留作自用(L_Key),另一把鑰匙(R_Key)郵寄(可以是任何通信方式)給了B。B可以在A不在家的時候(本端CPU不感知遠端節點對本地內存的RDMA操作),通過鑰匙(R_Key)打開門。打開門之後,可能B只能隔著玻璃查看房間的擺設(A只給了這個MR遠程讀許可權),或者進入房間內發現漆黑一片什麼也看不到,但是可以向房間里放物品(A只給了這個MR遠程寫許可權),當然也有可能沒有玻璃也開了燈(同時給了遠程讀寫許可權)
這里的許可權,指的是本端/對端節點,對於本端內存的讀/寫許可權,它們兩兩組合形成了四種許可權(除了這四種許可權之外,還有Atomic許可權等)
上表中這四種許可權中最低的是本地讀(Local Read),是用戶必須賦予MR/MW的許可權,因為如果一塊內存本地的用戶都無法訪問的話,那就失去意義了;另外還有個限制,如果某個MR需要配置遠端寫(Remote Write)或者遠端原子操作許可權(Remote Atomic),那麼也一定要配置本地寫(Local Write)許可權。在此約束之下,每個MR或者MW都可以按需配置許可權,比如注冊的一個MR需要允許遠端節點寫入數據,而不允許讀,那麼我們就打開Remote Write許可權,關閉Remote Read許可權。這樣HCA(網卡)收到對端發起的對這個MR范圍內的某個地址的WRITE請求之後,就可以予以放行;而HCA收到對端對這個MR的READ操作時,就會拒絕這個請求,並返回錯誤信息給對端
Key是一串數字,由兩部分組成:24bit的Index以及8bit的Key
其中,Index用於HCA快速索引到本地的虛擬-物理地址轉換表等MR相關的信息,而Key用於校驗整個欄位的合法性,以防止未授權的用戶任意傳遞Index
即Local Key,關聯到一個MR上,用於HCA訪問本端內存。當本端的某個進程試圖使用一個已經注冊的MR的內存時,HCA會校驗其傳遞的L_Key。並且利用L_Key中的索引查找地址轉換表,把虛擬地址翻譯成物理地址然後訪問內存
sge由起始地址、長度和秘鑰組成。用戶在填寫WR時,如果需要HCA訪問本端內存,那麼就需要通過一個sge的鏈表(sgl)來描述內存塊,這里sge的秘鑰填的就是L_Key,也就是下圖中的key1和key3,他們分別是MR1的L_Key和MR2的L_Key
即Remote Key,關聯到一個MR或者MW上,用於遠端節點訪問本端內存。當遠端節點試圖訪問本端的內存時,一方面本端的HCA會校驗R_Key是否合法,另一方面會利用R_Key中的索引查地址轉換表,把虛擬地址翻譯成物理地址然後訪問內存
凡是RDMA操作(即Write/Read/Atomic),用戶都要在WR中攜帶遠端內存區域的R_Key
指的是將一個MW「關聯」到一個已經注冊的MR的指定范圍上,並配置一定的讀寫許可權。綁定的結果會產生一個R_key,用戶可以把這個R_Key傳遞給遠端節點用於遠程訪問。注意一個MW可以被多次綁定,一個MR上也可以綁定多個MW。如果一個MR還有被綁定的MW,那麼這個MR是不能被取消注冊的
Bind有兩種方式,一種是調用Post Send介面下發Bind MW WR,一種是調用Bind MW介面:
指的是用戶通過下發一個帶有Invalidate操作碼的WR到硬體而使一個R_Key無效的操作
Invalidate操作的對象是R_Key而不是MW本身,即Invalidate之後的效果是:遠端用戶無法再使用這個R_Key訪問對應的MW,而MW資源仍然存在,以後仍然可以生成新的R_Key給遠端使用
按照Invalidate操作的發起方不同,又可以進一步分成兩種:
I. 如何查看自己電腦的網路配置
使用win+r打開命令提示符,以下是查看電腦信息的一些命令
查看當前IP:開始--運行--(window+r)輸入 cmd -- ipconfig、ipconfig/all
查看電腦配置:開始--運行--(window+r)輸入 dxdiag
查看注冊表:開始--運行--(window+r)輸入 regedit
查看系統屬性:開始--運行--(window+r)輸入 sysdm.cpl
查看系統信息:開始--運行--(window+r)輸入 msinfo32
cmd下查看查看網路信息:
一、nbtstat(該命令使用TCP/IP上的NetBIOS顯示協議統計和當前TCP/IP連接,使用這個命令你可以得到遠程主機的NETBIOS信息,比如用戶名、所屬的工作組、網卡的MAC地址等。在此我們就有必要了解幾個基本的參數。
-a 使用這個參數,只要你知道了遠程主機的機器名稱,就可以得到它的NETBIOS信息(下同)。
-A 這個參數也可以得到遠程主機的NETBIOS信息,但需要你知道它的IP。
-n 列出本地機器的NETBIOS信息。)
二、netstat(這是一個用來查看網路狀態的命令,操作簡便功能強大。
-a 查看本地機器的所有開放埠,可以有效發現和預防木馬,可以知道機器所開的服務等信息。
這里可以看出本地機器開放有FTP服務、Telnet服務、郵件服務、WEB服務等。用法:netstat -a IP。
-r 列出當前的路由信息,告訴我們本地機器的網關、子網掩碼等信息。用法:netstat -r IP。)
三、tracert(跟蹤路由信息,使用此命令可以查出數據從本地機器傳輸到目標主機所經過的所有途徑,這對我們了解網路布局和結構很有幫助。這里說明數據從本地機器傳輸到192.168.0.1的機器上,中間沒有經過任何中轉,說明這兩台機器是在同一段區域網內。用法:tracert IP。)
J. 計算機網路數據:網路中的數據是不是被網卡接收 然後經過內存到達CPU
是的,你忽略了另外一個硬體,
主板:起系統匯流排作用,就是網卡到內存到CPU的通道