我認為自學首先要有一個系統的方案吧,要從哪裡入門,如何學會和應用,等等問題,下面就推薦一下吧。計算機網路自頂向下方法這本書是世界上最受歡迎的計算機網路教材之一,作者採用了從上到下的教學計算機網路原理和協議,即從協議棧開始的應用層協議。我覺得裡面強調應用層範例和應用編程介面,使讀者盡快進入每天使用的應用程序環境之中進行學習和「創造」。本書的講解以網際網路為例,學以致用;注重教學法,深入淺出地重點講解計算機網路的基本原理。
總結
所以我認為現在的計算機真不難學,現在的網路門檻低了很多哦。
❷ 計算機網路自學筆記:TCP
如果你在學習這門課程,僅僅為了理解網路工作原理,那麼只要了解TCP是可靠傳輸,數據傳輸丟失時會重傳就可以了。如果你還要參加研究生考試或者公司面試等,那麼下面內容很有可能成為考查的知識點,主要的重點是序號/確認號的編碼、超時定時器的設置、可靠傳輸和連接的管理。
1 TCP連接
TCP面向連接,在一個應用進程開始向另一個應用進程發送數據之前,這兩個進程必須先相互「握手」,即它們必須相互發送某些預備報文段,以建立連接。連接的實質是雙方都初始化與連接相關的發送/接收緩沖區,以及許多TCP狀態變數。
這種「連接」不是一條如電話網路中端到端的電路,因為它們的狀態完全保留在兩個端系統中。
TCP連接提供的是全雙工服務 ,應用層數據就可在從進程B流向進程A的同時,也從進程A流向進程B。
TCP連接也總是點對點的 ,即在單個發送方與單個接收方之間建立連接。
一個客戶機進程向伺服器進程發送數據時,客戶機進程通過套接字傳遞數據流。
客戶機操作系統中運行的 TCP軟體模塊首先將這些數據放到該連接的發送緩存里 ,然後會不時地從發送緩存里取出一塊數據發送。
TCP可從緩存中取出並放入報文段中發送的數據量受限於最大報文段長MSS,通常由最大鏈路層幀長度來決定(也就是底層的通信鏈路決定)。 例如一個鏈路層幀的最大長度1500位元組,除去數據報頭部長度20位元組,TCP報文段的頭部長度20位元組,MSS為1460位元組。
報文段被往下傳給網路層,網路層將其封裝在網路層IP數據報中。然後這些數據報被發送到網路中。
當TCP在另一端接收到一個報文段後,該報文段的數據就被放人該連接的接收緩存中。應用程序從接收緩存中讀取數據流(注意是應用程序來讀,不是操作系統推送)。
TCP連接的每一端都有各自的發送緩存和接收緩存。
因此TCP連接的組成包括:主機上的緩存、控制變數和與一個進程連接的套接字變數名,以及另一台主機上的一套緩存、控制變數和與一個進程連接的套接字。
在這兩台主機之間的路由器、交換機中,沒有為該連接分配任何緩存和控制變數。
2報文段結構
TCP報文段由首部欄位和一個數據欄位組成。數據欄位包含有應用層數據。
由於MSS限制了報文段數據欄位的最大長度。當TCP發送一個大文件時,TCP通常是將文件劃分成長度為MSS的若干塊。
TCP報文段的結構。
首部包括源埠號和目的埠號,它用於多路復用/多路分解來自或送至上層應用的數據。另外,TCP首部也包括校驗和欄位。報文段首部還包含下列欄位:
32比特的序號欄位和32比特的確認號欄位。這些欄位被TCP發送方和接收方用來實現可靠數據傳輸服務。
16比特的接收窗口欄位,該欄位用於流量控制。該欄位用於指示接收方能夠接受的位元組數量。
4比特的首部長度欄位,該欄位指示以32比特的字為單位的TCP首部長度。一般TCP首部的長度就是20位元組。
可選與變長的選項欄位,該欄位用於當發送方與接收方協商最大報文段長度,或在高速網路環境下用作窗口調節因子時使用。
標志欄位ACK比特用於指示確認欄位中的ACK值的有效性,即該報文段包括一個對已被成功接收報文段的確認。 SYN和FIN比特用於連接建立和拆除。 PSH、URG和緊急指針欄位通常沒有使用。
•序號和確認號
TCP報文段首部兩個最重要的欄位是序號欄位和確認號欄位。
TCP把數據看成一個無結構的但是有序的位元組流。TCP序號是建立在傳送的位元組流之上,而不是建立在傳送的報文段的序列之上。
一個報文段的序號是該報文段首位元組在位元組流中的編號。
例如,假設主機A上的一個進程想通過一條TCP連接向主機B上的一個進程發送一個數據流。主機A中的TCP將對數據流中的每一個位元組進行編號。假定數據流由一個包含4500位元組的文件組成(可以理解為應用程序調用send函數傳遞過來的數據長度),MSS為1000位元組(鏈路層一次能夠傳輸的位元組數),如果主機決定數據流的首位元組編號是7。TCP模塊將為該數據流構建5個報文段(也就是分5個IP數據報)。第一個報文段的序號被賦為7;第二個報文段的序號被賦為1007,第三個報文段的序號被賦為2007,以此類推。前面4個報文段的長度是1000,最後一個是500。
確認號要比序號難理解一些。前面講過,TCP是全雙工的,因此主機A在向主機B發送數據的同時,也可能接收來自主機B的數據。從主機B到達的每個報文段中的序號欄位包含了從B流向A的數據的起始位置。 因此主機B填充進報文段的確認號是主機B期望從主機A收到的下一報文段首位元組的序號。
假設主機B已收到了來自主機A編號為7-1006的所有位元組,同時假設它要發送一個報文段給主機A。主機B等待主機A的數據流中位元組1007及後續所有位元組。所以,主機B會在它發往主機A的報文段的確認號欄位中填上1007。
再舉一個例子,假設主機B已收到一個來自主機A的包含位元組7-1006的報文段,以及另一個包含位元組2007-3006的報文段。由於某種原因,主機A還沒有收到位元組1007-2006的報文段。
在這個例子中,主機A為了重組主機B的數據流,仍在等待位元組1007。因此,A在收到包含位元組2007-3006的報文段時,將會又一次在確認號欄位中包含1007。 因為TCP只確認數據流中至第一個丟失報文段之前的位元組數據,所以TCP被稱為是採用累積確認。
TCP的實現有兩個基本的選擇:
1接收方立即丟棄失序報文段;
2接收方保留失序的位元組,並等待缺少的位元組以填補該間隔。
一條TCP連接的雙方均可隨機地選擇初始序號。 這樣做可以減少將那些仍在網路中的來自兩台主機之間先前連接的報文段,誤認為是新建連接所產生的有效報文段的可能性。
•例子telnet
Telnet由是一個用於遠程登錄的應用層協議。它運行在TCP之上,被設計成可在任意一對主機之間工作。
假設主機A發起一個與主機B的Telnet會話。因為是主機A發起該會話,因此主機A被標記為客戶機,主機B被標記為伺服器。用戶鍵入的每個字元(在客戶機端)都會被發送至遠程主機。遠程主機收到後會復制一個相同的字元發回客戶機,並顯示在Telnet用戶的屏幕上。這種「回顯」用於確保由用戶發送的字元已經被遠程主機收到並處理。因此,在從用戶擊鍵到字元顯示在用戶屏幕上之間的這段時間內,每個字元在網路中傳輸了兩次。
現在假設用戶輸入了一個字元「C」,假設客戶機和伺服器的起始序號分別是42和79。前面講過,一個報文段的序號就是該報文段數據欄位首位元組的序號。因此,客戶機發送的第一個報文段的序號為42,伺服器發送的第一個報文段的序號為79。前面講過,確認號就是主機期待的數據的下一個位元組序號。在TCP連接建立後但沒有發送任何數據之前,客戶機等待位元組79,而伺服器等待位元組42。
如圖所示,共發了3個報文段。第一個報文段是由客戶機發往伺服器,其數據欄位里包含一位元組的字元「C」的ASCII碼,其序號欄位里是42。另外,由於客戶機還沒有接收到來自伺服器的任何數據,因此該報文段中的確認號欄位里是79。
第二個報文段是由伺服器發往客戶機。它有兩個目的:第一個目的是為伺服器所收到的數據提供確認。伺服器通過在確認號欄位中填入43,告訴客戶機它已經成功地收到位元組42及以前的所有位元組,現在正等待著位元組43的出現。第二個目的是回顯字元「C」。因此,在第二個報文段的數據欄位里填入的是字元「C」的ASCII碼,第二個報文段的序號為79,它是該TCP連接上從伺服器到客戶機的數據流的起始序號,也是伺服器要發送的第一個位元組的數據。
這里客戶機到伺服器的數據的確認被裝載在一個伺服器到客戶機的數據的報文段中,這種確認被稱為是捎帶確認.
第三個報文段是從客戶機發往伺服器的。它的唯一目的是確認已從伺服器收到的數據。
3往返時延的估計與超時
TCP如同前面所講的rdt協議一樣,採用超時/重傳機制來處理報文段的丟失問題。最重要的一個問題就是超時間隔長度的設置。顯然,超時間隔必須大於TCP連接的往返時延RTT,即從一個報文段發出到收到其確認時。否則會造成不必要的重傳。
•估計往返時延
TCP估計發送方與接收方之間的往返時延是通過採集報文段的樣本RTT來實現的,就是從某報文段被發出到對該報文段的確認被收到之間的時間長度。
也就是說TCP為一個已發送的但目前尚未被確認的報文段估計sampleRTT,從而產生一個接近每個RTT的采樣值。但是,TCP不會為重傳的報文段計算RTT。
為了估計一個典型的RTT,採取了某種對RTT取平均值的辦法。TCP據下列公式來更新
EstimatedRTT=(1-)*EstimatedRTT+*SampleRTT
即估計RTT的新值是由以前估計的RTT值與sampleRTT新值加權組合而成的。
參考值是a=0.125,因此是一個加權平均值。顯然這個加權平均對最新樣本賦予的權值
要大於對老樣本賦予的權值。因為越新的樣本能更好地反映出網路當前的擁塞情況。從統計學觀點來講,這種平均被稱為指數加權移動平均
除了估算RTT外,還需要測量RTT的變化,RTT偏差的程度,因為直接使用平均值設置計時器會有問題(太靈敏)。
DevRTT=(1-β)*DevRTT+β*|SampleRTT-EstimatedRTT|
RTT偏差也使用了指數加權移動平均。B取值0.25.
•設置和管理重傳超時間隔
假設已經得到了估計RTT值和RTT偏差值,那麼TCP超時間隔應該用什麼值呢?TCP將超時間隔設置成大於等於估計RTT值和4倍的RTT偏差值,否則將造成不必要的重傳。但是超時間隔也不應該比估計RTT值大太多,否則當報文段丟失時,TCP不能很快地重傳該報文段,從而將給上層應用帶來很大的數據傳輸時延。因此,要求將超時間隔設為估計RTT值加上一定餘量。當估計RTT值波動較大時,這個余最應該大些;當波動比較小時,這個餘量應該小些。因此使用4倍的偏差值來設置重傳時間。
TimeoutInterval=EstimatedRTT+4*DevRTT
4可信數據傳輸
網際網路的網路層服務是不可靠的。IP不保證數據報的交付,不保證數據報的按序交付,也不保證數據報中數據的完整性。
TCP在IP不可靠的盡力而為服務基礎上建立了一種可靠數據傳輸服務。
TCP提供可靠數據傳輸的方法涉及前面學過的許多原理。
TCP採用流水線協議、累計確認。
TCP推薦的定時器管理過程使用單一的重傳定時器,即使有多個已發送但還未被確認的報文段也一樣。重傳由超時和多個ACK觸發。
在TCP發送方有3種與發送和重傳有關的主要事件:從上層應用程序接收數據,定時器超時和收到確認ACK。
從上層應用程序接收數據。一旦這個事件發生,TCP就從應用程序接收數據,將數據封裝在一個報文段中,並將該報文段交給IP。注意到每一個報文段都包含一個序號,這個序號就是該報文段第一個數據位元組的位元組流編號。如果定時器還沒有計時,則當報文段被傳給IP時,TCP就啟動一個該定時器。
第二個事件是超時。TCP通過重傳引起超時的報文段來響應超時事件。然後TCP重啟定時器。
第三個事件是一個來自接收方的確認報文段(ACK)。當該事件發生時,TCP將ACK的值y與變數SendBase(發送窗口的基地址)進行比較。TCP狀態變數SendBase是最早未被確認的位元組的序號。就是指接收方已正確按序接收到數據的最後一個位元組的序號。TCP採用累積確認,所以y確認了位元組編號在y之前的所有位元組都已經收到。如果Y>SendBase,則該ACK是在確認一個或多個先前未被確認的報文段。因此發送方更新其SendBase變數,相當於發送窗口向前移動。
另外,如果當前有未被確認的報文段,TCP還要重新啟動定時器。
快速重傳
超時觸發重傳存在的另一個問題是超時周期可能相對較長。當一個報文段丟失時,這種長超時周期迫使發送方等待很長時間才重傳丟失的分組,因而增加了端到端時延。所以通常發送方可在超時事件發生之前通過觀察冗餘ACK來檢測丟包情況。
冗餘ACK就是接收方再次確認某個報文段的ACK,而發送方先前已經收到對該報文段的確認。
當TCP接收方收到一個序號比所期望的序號大的報文段時,它認為檢測到了數據流中的一個間隔,即有報文段丟失。這個間隔可能是由於在網路中報文段丟失或重新排序造成的。因為TCP使用累計確認,所以接收方不向發送方發回否定確認,而是對最後一個正確接收報文段進行重復確認(即產生一個冗餘ACK)
如果TCP發送方接收到對相同報文段的3個冗餘ACK.它就認為跟在這個已被確認過3次的報文段之後的報文段已經丟失。一旦收到3個冗餘ACK,TCP就執行快速重傳 ,
即在該報文段的定時器過期之前重傳丟失的報文段。
5流量控制
前面講過,一條TCP連接雙方的主機都為該連接設置了接收緩存。當該TCP連接收到正確、按序的位元組後,它就將數據放入接收緩存。相關聯的應用進程會從該緩存中讀取數據,但沒必要數據剛一到達就立即讀取。事實上,接收方應用也許正忙於其他任務,甚至要過很長時間後才去讀取該數據。如果應用程序讀取數據時相當緩慢,而發送方發送數據太多、太快,會很容易使這個連接的接收緩存溢出。
TCP為應用程序提供了流量控制服務以消除發送方導致接收方緩存溢出的可能性。因此,可以說 流量控制是一個速度匹配服務,即發送方的發送速率與接收方應用程序的讀速率相匹配。
前面提到過,TCP發送方也可能因為IP網路的擁塞而被限制,這種形式的發送方的控制被稱為擁塞控制(congestioncontrol)。
TCP通過讓接收方維護一個稱為接收窗口的變數來提供流量控制。接收窗口用於告訴發送方,該接收方還有多少可用的緩存空間。因為TCP是全雙工通信,在連接兩端的發送方都各自維護一個接收窗口變數。 主機把當前的空閑接收緩存大小值放入它發給對方主機的報文段接收窗口欄位中,通知對方它在該連接的緩存中還有多少可用空間。
6 TCP連接管理
客戶機中的TCP會用以下方式與伺服器建立一條TCP連接:
第一步: 客戶機端首先向伺服器發送一個SNY比特被置為1報文段。該報文段中不包含應用層數據,這個特殊報文段被稱為SYN報文段。另外,客戶機會選擇一個起始序號,並將其放置到報文段的序號欄位中。為了避免某些安全性攻擊,這里一般隨機選擇序號。
第二步: 一旦包含TCP報文段的用戶數據報到達伺服器主機,伺服器會從該數據報中提取出TCPSYN報文段,為該TCP連接分配TCP緩存和控制變數,並向客戶機TCP發送允許連接的報文段。這個允許連接的報文段還是不包含應用層數據。但是,在報文段的首部卻包含3個重要的信息。
首先,SYN比特被置為1。其次,該 TCP報文段首部的確認號欄位被置為客戶端序號+1最後,伺服器選擇自己的初始序號,並將其放置到TCP報文段首部的序號欄位中。 這個允許連接的報文段實際上表明了:「我收到了你要求建立連接的、帶有初始序號的分組。我同意建立該連接,我自己的初始序號是XX」。這個同意連接的報文段通常被稱為SYN+ACK報文段。
第三步: 在收到SYN+ACK報文段後,客戶機也要給該連接分配緩存和控制變數。客戶機主機還會向伺服器發送另外一個報文段,這個報文段對伺服器允許連接的報文段進行了確認。因為連接已經建立了,所以該ACK比特被置為1,稱為ACK報文段,可以攜帶數據。
一旦以上3步完成,客戶機和伺服器就可以相互發送含有數據的報文段了。
為了建立連接,在兩台主機之間發送了3個分組,這種連接建立過程通常被稱為 三次握手(SNY、SYN+ACK、ACK,ACK報文段可以攜帶數據) 。這個過程發生在客戶機connect()伺服器,伺服器accept()客戶連接的階段。
假設客戶機應用程序決定要關閉該連接。(注意,伺服器也能選擇關閉該連接)客戶機發送一個FIN比特被置為1的TCP報文段,並進人FINWAIT1狀態。
當處在FINWAIT1狀態時,客戶機TCP等待一個來自伺服器的帶有ACK確認信息的TCP報文段。當它收到該報文段時,客戶機TCP進入FINWAIT2狀態。
當處在FINWAIT2狀態時,客戶機等待來自伺服器的FIN比特被置為1的另一個報文段,
收到該報文段後,客戶機TCP對伺服器的報文段進行ACK確認,並進入TIME_WAIT狀態。TIME_WAIT狀態使得TCP客戶機重傳最終確認報文,以防該ACK丟失。在TIME_WAIT狀態中所消耗的時間是與具體實現有關的,一般是30秒或更多時間。
經過等待後,連接正式關閉,客戶機端所有與連接有關的資源將被釋放。 因此TCP連接的關閉需要客戶端和伺服器端互相交換連接關閉的FIN、ACK置位報文段。
❸ 計算機網路技術主要學哪些課程
計算機網路技術的主要課程有:
資料庫原理與SQLSERVER,Oracle資料庫管理、面向對象程序設計,網路安全管理與維護技術,HTML與JavaScript,網路後期維護與運營。
網路規劃、設計方向:Linux系統及網路管理、網路伺服器配置與管理、路由器交換機配置與管理、構建企業網路、網路綜合布線技術、網路測試與故障診斷、網路入侵的檢測與防範。
網站設計方向:ASP動態網站建設、JAVA網路程序開發,php伺服器端腳本語言。Dreamwearver firework Flash網頁設計,div+css網頁布局。
計算機網路技術培養適應生產、建設、管理、服務第一線需要的德、智、體、美全面發展,掌握計算機網路技術基礎知識,具備良好的個人、人際交往能力, 具備計算機網路系統設計、實施、運維能力的高級技術應用型專門人才。
❹ 計算機網路該怎麼學
好的教學方式一定是講的讓別人能聽懂,對於初學者,我認為好的方法應該是這樣的:
1、從實際案例出發(比如我們在瀏覽器輸入一個網址到展示出內容中間發生了什麼事情)
2、計算機網路出現的背景是什麼?遇到了什麼問題?是為了解決什麼問題?
不能一下子就陷入細節,一開始應該快速入門,了解其概貌。
3、入門後,然後再進階學習,建議從自頂向下的方式來學習。
4、一定要多實戰,通過抓包工具查看實際的數據包長啥樣,通過動手實現一個聊天工具等。
❺ 如何學習計算機網路
1.理解計算機網路的組成
計算機網路是計算機與通信技術的結合,軟體與硬體的結合,通信子網與資源子網的結合,這樣來理解,可以減少網路課程學習的難度。這也是網路協議分層的基本知識原點,即網路為什麼要分為通信子網和資源子網,因為計算機網路是由通信與計算機技術相結合而產生的。分為2個子網後,問題變簡單了。進一步,還可以繼續分層,把通信子網分為2層或者3層,即物理層、鏈路層和網路層;再把資源子網分為2層,即傳輸層和應用層。
網路硬體與軟體的結合,這樣的概念理解也是很重要的,比如互聯網,是由路由器和IP協議相結合產生的,路由器是其硬體,而IP協議是其軟體。
網路的組成還要注意的是,不同類型的網路,有不同的組成方式,包括區域網、廣域網和互聯網,因此,要分別介紹網路的組成,不能籠統地談計算機網路的組成。網路應用也有類似情況,區域網,廣域網和互聯網的應用范圍和模式都是不同的。
2.如何學習網路協議
分層理論,把協議分層,可以減少分析的難度,分層,以及模塊化是計算機技術的重要分析方法。計算機網路首先分為通信子網和資源子網2層,進一步再把通信子網和資源子網繼續分層。事實上,網路設備與層有關,比如集線器、乙太網交換機和路由器都是不同層的網路設備。TCP/IP與層有關,比如IP層,傳輸層和應用層。網路安全與層有關,比如應用層、傳輸層、網路層和鏈路層都有相應的安全協議。
3.了解網路分類的重要性
可以更好地幫助讀者理清思路,不至於在頭腦中如同一團漿糊。如按照地域分類,包括區域網、廣域網;按照介質分類,包括銅網、光纖網、無線網;按照應用分類,包括區域網應用和互聯網應用。
4.一定要學習好TCP/IP協議
底層是區域網,廣域網或者無線網,然後是IP層,用於組成邏輯的,完整的網路,上述完成了通信子網的功能。TCP完成應用進程間的通信,應用層完成應用。學習計算機網路的實質是學習TCP/IP協議,因為只有採用了TCP/IP這個完整協議的網路才稱得上是真正的計算機網路,因此,學習好TCP/IP協議,理解了TCP/IP協議的內涵,也就真正地理解了計算機網路,學會了計算機網路。
❻ 如何自學計算機網路技術
1
首先,我們需要了解計算機網路技術與通信專業,計算機專業的關系,在通信工程的計算機網路技術中,學習的是除網路層以外的其他協議層。如下
2
在學習計算機網路技術時,我們需要有一定的相關知識儲備,比如進制計算,通信原理等,如下圖。
3
學習一門課程我們首先需要知道這門課程的研究方向,熟悉掌握課程中的重要概念。如下
4
在計算機網路中,由於涉及到數據的傳輸,所以我們在學習中還要注意相關幀結構的總結,如下圖所示。點擊即可查看。
5
學習離不開總結,我們還需要總結課程中不同協議層的相似點,了解選用不同協議原因以及其優缺點等,如下圖。
6
任何課程都離不開相應的實踐,為了更好的學習計算機網路技術,我們還要認真學習計算機網路技術實驗課,從實際出發。
❼ 計算機網路怎麼學
計算機網路是一門需要動手實踐的學科,這點其實和編程很像。無論看多麼牛X編程教科書,無論看多少遍,只要不動手去寫代碼,要不了多久就全還給課本了。
計算機網路,提供的是管道服務,像自來水管一樣單純。發送方Bob向管道里注入一噸液體,接收方Alice就接收到整整一噸液體,不多一滴也不少一滴。當然這是完美的理想,而現實往往並不是這樣的。
❽ 零基礎可以學計算機網路技術嗎
上一期我講到了數據結構怎麼學,當時我的學習方法是先看視頻,再看書,然後刷一刷基礎演算法題做鞏固。
作為一個非科班考研黨,當時覺得這個學習路線還是比較平滑的,畢竟能讓我一個小白快速學會,這門課相對來說還是比較簡單的。
於是,等我讀研的時候,打算以相同的學習方式來補一下其他幾門計算機基礎課程,首當其沖的就是計算機網路。
因為這門課實在重要,幾乎是面試必問的內容,什麼TCP/IP三次握手,四次揮手,TCP和UDP區別,HTTP協議的一堆面試題,在程序員面試時都是很常見的考題,你們應該也深有體會。
計算機網路中的復雜概念遠不止這些,那麼按照老規矩,我們先來看一下計算機網路到底是個啥。
根據網路的介紹,計算機網路是指將地理位置不同的具有獨立功能的多台計算機及其外部設備,通過通信線路連接起來,在網路操作系統,網路管理軟體及網路通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。
相比於數據結構的介紹,網路上對於計算機網路的介紹更加好懂一些,簡單來說,計算機網路就是把計算機通過通信線路連接起來,實現網路互聯和信息傳遞。
為什麼要學計算機網路
在這個時代,離開了網路,簡直沒有辦法生存,而我們所學的編程知識,脫了網路去談也將毫無意義,畢竟沒有哪個編程語言是只支持單機運行的。
作為一個編程學習者,當你在學習一門語言時,比如Java,你可能會學到一些基本語法,面向對象的基礎、集合類的使用,甚至是多線程、IO流以及異常處理,這種時候你往往意識不到計算機網路的重要性,反正我寫代碼也不涉及網路傳輸,平時的工作也只是CRUD,學習計算機網路也沒有什麼用武之地。
曾幾何時我也是這么想的,但是到後來,我開始接觸Tomcat,接觸Nginx,以及Java中的網路編程技術,比如BIO和NIO,甚至是網路編程框架netty,在沒有計算機網路基礎的情況下來看這些東西,絕對會讓你懷疑人生。
最早我開始意識到自己計算機網路基礎薄弱時,還是我在學習docker容器方面的知識時,接觸到了docker的網路原理,比如docker的網路模式有橋接和host兩種,然而我當時基本上看不懂這是什麼東西。
類似地,我在學習OpenStack的時候,也完全看不懂裡面的網路組件是做什麼用的。
就算你不學習網路編程、虛擬化和容器調度,你也得學學平時家裡的ip地址、DNS和子網掩碼怎麼配置吧,沒認真學習計算機網路之前,我對這些東西甚至都是一臉懵逼的。