計算機網絡·感覺Java研發計算機網絡只要會者幾道就夠了其他很少考
- 2020 年 2 月 18 日
- 筆記
如果對您有幫助,麻煩右邊點個贊哦~~
如有錯誤歡迎指出哦
考頻由高到低
- 三次握手的過程?為什麼3次,不能是2或者4?
- 四次握手過程? 有什麼問題?
- 問題:syn flood攻擊
- 面向連接和面向非連接的比較;
- 面向連接通信前會先建立連接,受監控,安全, 可靠;面向非連接反之,發送想發信息就可以發,速度更快
- TCP和UDP的比較
- TCP面向連接,UDP面向非連接
- TCP傳輸單位稱為TCP報文段,UDP傳輸單位稱為用戶數據報。
- TCP對應的協議:
- HTTP 80 HTTPS 8080
- FTP 21 SSH 22 telnet 23
- mysql 3306
- SMTP 25 郵件傳送協議 POPS 110 郵件接收協議
- HTTP 80 HTTPS 8080
- UDP對應的協議:
- DNS 53
三次握手
【運維方向優先】a. 請描述TCP協議3次握手建立連接的過程。b. 為什麼協議設計是3次握手連接建立而不是2次或4次,如果2次有什麼問題,如果4次有什麼問題?
非常重要,一定要背熟
a .
b. 握手達到3次使得兩邊都確認了通道的兩個方向都是連通的,因為自己發出的包都得到了對方的回應,並且交換了初始信息(各自的包序號,窗口大小等),從而認為連接建立是合適的。
2次握手的話不足以保證通道雙向正常,導致雙方認知不一致,服務端會消耗不必要的資源(服務端認為連接建立,創建並維持連接狀態數據,但因為單方向不通,確認包未被客戶端收到,客戶端認為連接不成功),同時還會存在安全問題被利用做攻擊(不斷發SYNC讓服務端不斷增加連接資源)。
4次握手的話,不比3次能提供更多的信息,多一次round-trip增大了連接建立的時間開銷。
3、掌握TCP/IP協議族的結構,理解其工作原理。
- TCP/IP(協議簇)五層協議 (5層):物理層、數據鏈路層、網絡層、運輸層、 應用層。
- 物理層:比特Bit
- 數據鏈路層:將比特組裝成幀,提供相鄰兩個端點之間的(相鄰的點到點,點不只是是主機,還包括其他設備)
- 網絡層:將數據幀組裝成IP數據包Packet,將包設法從信源經過若干個中間節點傳送到目的設備(信宿)上,點到點通信。
- 傳輸層:提供的就是應用程序間的通信。提供端到端(端指的是端口)的可靠報文傳遞和錯誤恢復(段Segment)
- 會話層:建立、管理和終止會話(
- 表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU)
- 應用層:提供一組常用的應用程序。
- 以上可能有錯。
- 封裝復用思想。 下層向上層提供服務,上層封裝下層的數據結構
- 在瀏覽器中輸入www.baidu.com後執行的全部過程
- 鍵盤硬件終端;OS處理中斷,轉換為特定消息放入瀏覽器程序的事件隊列;瀏覽器循環處理該消息,請求網址;
- 7層網絡協議
- 應用層
- 提供應用程序。
- 應用程序解析URL
- 解析出http協議,如果是Https,會檢查網站是否在安全列表中
- 非ASCII轉Unicode編碼
- 在傳輸信息中加入瀏覽器、地區、cookie等信息
- 域名解析的應用層環節
- 表示層
- 對數據進行Encode、Decode、加密、解密、壓縮等數據處理。
- 會話層
- 建立管理和終止會話。
- 進行HTTP會話 計算機網絡·基礎知識·面經·HTTP中的請求報文格式
- 傳輸層
- HTTP基於TCP連接
- HTTP數據包會嵌入在TCP報文段中
- 域名解析中的DNS進行地址解析環節
- 應用層
- 網絡層
- TCP報文段再嵌入IP數據包中
- 通過查找路由表決定到達服務器的路徑。
- ARP協議進行地質解析
- 鏈路層
- IP數據packet嵌入到Frame,傳輸Frame
- 客戶的包通過鏈路層發送到路由器,ARP(地址解析協議)根據給定的服務器IP地址獲取對應的物理地址
- 物理層
- 傳輸bit
- 傳輸層
- 網絡層
- 會話層
- HTTP會話
- 計算機網絡·基礎知識·面經·HTTP中的響應報文格式
- 表示層
- 將數據decode和解壓縮為HTML,CSS,JS,圖片等資源
- 應用層
- 應用程序進行HTML解析、CSS解析、頁面渲染等。
1、客戶端瀏覽器通過DNS解析到www.baidu.com的IP地址220.181.27.48,通過這個IP地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個HTTP會話到220.161.27.48,然後通過TCP進行封裝數據包,輸入到網絡層。
2、在客戶端的傳輸層,把HTTP會話請求分成報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。然後使用IP層的IP地址查找目的端。
4、客戶端的鏈路層,包通過鏈路層發送到路由器,通過鄰居協議查找給定IP地址的MAC地址,然後發送ARP請求查找目的地址,如果得到回應後就可以使用ARP的請求應答交換的IP數據包現在就可以傳輸了,然後發送IP數據包到達服務器的地址。
(拔高)輸入URL後操作系統和計算機網絡都發生了什麼?
【運維方向優先】你用瀏覽器打開一個電商網站,準備瀏覽購物。從你輸入完網站的網址敲下Enter鍵,到網站首頁迅速呈現出來的這段時間,你的電腦系統里發生了哪些事情?請根據你所學的計算機知識,儘可能詳細的解釋。(提示:從軟硬件的盡量多的層次考慮和描述。)
參考要點:回答是否從硬件(鍵盤網卡)、OS、TCP協議棧、運行庫、瀏覽器、HTTP、HTML/JS等多層面描述。
參考回答:鍵盤硬件中斷;OS處理中斷,轉換為特定消息放入瀏覽器程序的事件隊列;瀏覽器的消息循環處理該消息,請求網址;OS請求本地域名緩存或域名服務器解析網址中的域名,得到IP;瀏覽器向該IP建立TCP連接(默認80端口);瀏覽器發送GET請求,包含網站的路徑,TCP協議棧組裝為TCP包,通過網卡發送;瀏覽器等待網站回復,進程被OS切換為等待狀態;網站返回的數據到來,網卡產生中斷;OS處理中斷,TCP協議棧將數據讀入buffer;瀏覽器獲得數據,處理HTTP頭,顯示HTML網頁
更多:OS發ARP包獲得網關MAC地址,所有DNS請求、網站TCP等數據包均發向該網關;瀏覽器IO等待期間OS切換運行系統中其他進程;瀏覽器將HTTP頭中解析出的cookie保存到文件系統;根據網頁內容發起更多的HTTP請求獲取圖片、運行內嵌的javascript腳本等;將網頁按照HTTP 頭的指示緩存;將網址加入瀏覽歷史保存到文件系統;瀏覽器整個處理過程中,運行庫和OS對內存做相應分配釋放,磁盤做相應的IO操作;。。。
*【測試方向優先】你用瀏覽器打開一個網站,卻沒有按預期看到應有的網頁內容。請分析各種可能的原因,如果這些原因表現出來的現象不同,也請描述
參考要點:
人的原因:弄錯網址;拼寫錯誤;未打開網絡;。。。
本機原因:瀏覽器版本低不兼容網頁;本機防火牆阻止訪問;中病毒導致瀏覽器工作不正常;。。。
服務端原因:服務器宕機;服務器出錯;服務器高負載無法及時回應;服務器超負載主動拒絕回應;本機被服務端加入了黑名單;
網絡原因:網絡不通;網絡擁塞;DNS解析失敗;DNS解析到錯誤的IP;。。。
其他環境原因:域名被劫持;訪問被黑客攻擊;。。。
- 端口及對應的服務?
還沒背會的
-
- DNS
- 默認端口號 53
- DNS域名解析過程
- 會以此查詢以下緩存和服務器,直到找到網址對應的IP
- 瀏覽器緩存 –> 本地Hosts文件 –> 路由器緩存 –> ISP(互聯網服務提供商)DNS緩存 –> 根域名服務器 –> 頂級域名服務器 –> 主域名服務器
- 在任何環節找到,會把緩存
- 瀏覽器檢查域名是否在瀏覽器緩存當中。
- 如果緩存中沒有,就調用庫函數進行查詢。庫函數在進行DNS解析之前,檢查域名是否在本地 Hosts 里。
- 如果域名在緩存和Hosts中都沒有,庫函數會向 DNS 服務器發送一條 DNS 查詢請求。
- 查詢本地的DNS服務器。
- 首先查詢地址解析協議(ARP)的緩存,如果緩存命中,則返回結果:目標 IP = MAC地址。如果緩存沒有命中,就看看目標 IP 地址是不是在本地路由表中的某個子網內,並使用相關接口。然後查詢選擇的網絡接口的MAC地址。
- 發送ARP請求,路由器或其他硬件會返回結果(結果中包含默認網關的IP地址)。
- 通過TCP/UDP協議向DNS服務器發送相應請求。如果本地DNS服務器沒有找到結果,將會逐層查詢,直到結果(目標服務器的IP地址)返回。
- 會以此查詢以下緩存和服務器,直到找到網址對應的IP