計算機網絡常見面試題

請簡述TCP/UDP的區別

TCP和UDP是OSI模型中的運輸層中的協議。TCP提供可靠的通訊傳輸,而UDP則常被用於讓廣播和細節控制交給應用的通訊傳輸。
二者的區別大體以下:瀏覽器

  • TCP面向鏈接,UDP面向非鏈接即發送數據前不須要創建連接
  • TCP提供可靠的服務(數據傳輸),UDP沒法保證
  • TCP面向字節流,UDP面向報文
  • TCP數據傳輸慢,UDP數據傳輸快

  • TCP提供一種面向鏈接的、可靠的字節流服務
  • 在一個TCP鏈接中,僅有兩方進行彼此通訊,所以廣播和多播不能用於TCP
  • TCP使用校驗和,確認和重傳機制來保證可靠傳輸
  • TCP使用累積確認
  • TCP使用滑動窗口機制來實現流量控制,經過動態改變窗口的大小進行擁塞控制

TCP對應的協議和UDP對應的協議

TCP對應的協議:緩存

  • FTP:定義了文件傳輸協議,使用21端口。
  • Telnet:一種用於遠程登錄的端口,使用23端口,用戶能夠以本身的身份遠程鏈接到計算機上,可提供基於DOS模式下的通訊服務。
  • SMTP:郵件傳送協議,用於發送郵件。服務器開放的是25號端口。
  • POP3:它是和SMTP對應,POP3用於接收郵件。POP3協議所用的是110端口。
  • HTTP:是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。

UDP對應的協議:安全

  • DNS:用於域名解析服務,將域名地址轉換爲IP地址。DNS用的是53號端口。
  • SNMP:簡單網絡管理協議,使用161號端口,是用來管理網絡設備的。因爲網絡設備不少,無鏈接的服務就體現出其優點。
  • TFTP(Trival File TransferProtocal),簡單文件傳輸協議,該協議在熟知端口69上使用UDP服務。

爲何 TCP 叫數據流模式? UDP 叫數據報模式?

  • 所謂的「流模式」,是指TCP發送端發送幾回數據和接收端接收幾回數據是沒有必然聯繫的,好比你經過 TCP鏈接給另外一端發送數據,你只調用了一次 write,發送了100個字節,可是對方能夠分10次收完,每次10個字節;你也能夠調用10次write,每次10個字節,可是對方能夠一次就收完。
  • 緣由:這是由於TCP是面向鏈接的,一個 socket 中收到的數據都是由同一臺主機發出,且有序地到達,因此每次讀取多少數據均可以。

  • 所謂的「數據報模式」,是指UDP發送端調用了幾回 write,接收端必須用相同次數的 read 讀完。UDP是基於報文的,在接收的時候,每次最多隻能讀取一個報文,報文和報文是不會合並的,若是緩衝區小於報文長度,則多出的部分會被丟棄。
  • 緣由:這是由於UDP是無鏈接的,只要知道接收端的 IP 和端口,任何主機均可以向接收端發送數據。 這時候,若是一次能讀取超過一個報文的數據, 則會亂套。

請簡單說一下你瞭解的端口及對應的服務

圖片描述

TCP中的流量控制和擁塞避免

  • 流量控制主要針對的是端到端傳輸中控制流量大小並保證傳輸可靠性(未收到ack就不滑動)。
  • 擁塞避免主要是全局網絡的擁塞狀況,若是有發生丟包則經過擁塞控制減少窗口,肯定出合適(慢啓動 擁塞避免 快重傳 快恢復)的擁塞窗口(增性加乘性減)。

說一說TCP的三次握手

在TCP/IP協議中,TCP協議提供可靠的鏈接服務,鏈接是經過三次握手進行初始化的。三次握手的目的是同步鏈接雙方的序列號和確認號並交換TCP窗口大小信息。
圖片描述服務器

  • 核心思想:讓雙方都證明對方能發收。知道對方能收是由於收到對方的由於收到信息以後發的迴應(ACK)。

IP地址分爲哪幾類?簡單說一下各個分類

圖片描述

其中私有地址有:cookie

  • A類:10.0.0.0 - 10.255.255.255
  • B類:172.16.0.0 - 172.31.255.255
  • C類:192.168.0.0 - 192.168.255.255

簡單解釋一些ARP協議的工做過程

clipboard.png

HTTP 協議包括哪些請求

  • GET:對服務器資源的簡單請求,GET用於信息獲取,並且應該是安全和冪等的。
  • POST:用於發送包含用戶提交數據的請求,POST請求表示可能修改服務器上資源的請求。
  • HEAD:相似於GET請求,不過返回的響應中沒有具體內容,用於獲取報頭
  • PUT:傳說中請求文檔的一個版本
  • DELETE:發出一個刪除指定文檔的請求
  • TRACE:發送一個請求副本,以跟蹤其處理進程
  • OPTIONS:返回全部可用的方法,檢查服務器支持哪些方法
  • CONNECT:用於ssl隧道的基於代理的請求

交換機、路由器的概念,並知道各自的用途

  • 交換機
  • 在計算機網絡系統中,交換機是針對共享工做模式的弱點而推出的。交換機擁有一條高帶寬的背部總線和內部交換矩陣。交換機的全部的端口都掛接在這條背部總線上,當控制電路收到數據包之後,處理端口會查找內存中的地址對照表以肯定目的MAC(網卡的硬件地址)的NIC(網卡)掛接在哪一個端口上,經過內部交換矩陣迅速將數據包傳送到目的端口。目的MAC若不存在,交換機才廣播到全部的端口,接收端口迴應後交換機會「學習」新的地址,並把它添加入內部地址表中
  • 交換機工做於OSI參考模型的第二層,即數據鏈路層。交換機內部的CPU會在每一個端口成功鏈接時,經過ARP協議學習它的MAC地址,保存成一張ARP表。在從此的通信中,發往該MAC地址的數據包將僅送往其對應的端口,而不是全部的端口。所以,交換機可用於劃分數據鏈路層廣播,即衝突域;但它不能劃分網絡層廣播,即廣播域。

  • 路由器
  • 路由器(Router)是一種計算機網絡設備,提供了路由與轉發兩種重要機制,能夠決定數據包歷來源端到目的端所通過的路由路徑(host到host之間的傳輸路徑),這個過程稱爲路由;將路由器輸入端的數據包移送至適當的路由器輸出端(在路由器內部進行),這稱爲轉送。路由工做在OSI模型的第三層——即網絡層,例如IP協議。
  • 路由器的一個做用是連通不一樣的網絡,另外一個做用是選擇信息傳送的線路。 路由器與交換器的差異,路由器是屬於OSI第三層的產品,交換器是OSI第二層的產品(這裏特指二層交換機)。

SYN 攻擊

什麼是 SYN 攻擊(SYN Flood)?網絡

  • 在三次握手過程當中,服務器發送 SYN-ACK 以後,收到客戶端的 ACK 以前的 TCP 鏈接稱爲半鏈接(half-open connect)。此時服務器處於 SYN_RCVD 狀態。當收到 ACK 後,服務器才能轉入 ESTABLISHED 狀態.
  • SYN攻擊指的是,攻擊客戶端在短期內僞造大量不存在的IP地址,向服務器不斷地發送SYN包,服務器回覆確認包,並等待客戶的確認。因爲源地址是不存在的,服務器須要不斷的重發直至超時,這些僞造的SYN包將長時間佔用未鏈接隊列,正常的SYN請求被丟棄,致使目標系統運行緩慢,嚴重者會引發網絡堵塞甚至系統癱瘓。
  • SYN 攻擊是一種典型的 DoS/DDoS 攻擊。

如何檢測 SYN 攻擊?socket

  • 檢測 SYN 攻擊很是的方便,當你在服務器上看到大量的半鏈接狀態時,特別是源IP地址是隨機的,基本上能夠判定這是一次SYN攻擊。在Linux/Unix 上可使用系統自帶的 netstats 命令來檢測 SYN 攻擊。

如何防護 SYN 攻擊?學習

  • SYN攻擊不能徹底被阻止,除非將TCP協議從新設計。咱們所作的是儘量的減輕SYN攻擊的危害,常見的防護 SYN 攻擊的方法有以下幾種:
  • 縮短超時(SYN Timeout)時間
  • 增長最大半鏈接數
  • 過濾網關防禦
  • SYN cookies技術

廣播

受限的廣播spa

  • 受限的廣播地址爲255.255.255.255。該地址用於主機配置過程當中IP數據報的目的地址,在任何狀況下,router不轉發目的地址爲255.255.255.255的數據報,這樣的數據報僅出如今本地網絡中。

指向網絡的廣播計算機網絡

  • 指向網絡的廣播地址是主機號爲全1的地址。A類網絡廣播地址netid.255.255.255,其中netid爲A類網絡的網絡號。
  • 一個router必須轉發指向網絡的廣播,但它也必須有一個不進行轉發的選擇。

指向子網的廣播

  • 指向子網的廣播地址爲主機號爲全1且有特定子網號的地址。做爲子網直接廣播地址的IP地址須要瞭解子網的掩碼。例如,router收到128.1.2.255的數據報,當B類網路128.1的子網掩碼爲255.255.255.0時,該地址就是指向子網的廣播地址;可是若是子網掩碼爲255.255.254.0,該地址就不是指向子網的廣播地址。

指向全部子網的廣播

  • 指向全部子網的廣播也須要了解目的網絡的子網掩碼,以便與指向網絡的廣播地址區分開來。指向全部子網的廣播地址的子網號和主機號爲全1.例如,若是子網掩碼爲255.255.255.0,那麼128.1.255.255就是一個指向全部子網的廣播地址。

多播

  • 多播又叫組播,使用D類地址,D類地址分配的28bit均用做多播組號而再也不表示其餘。
  • 多播組地址包括 1110 的最高 4bit 和多播組號。它們一般能夠表示爲點分十進制數,範圍從 224.0.0.0 到 239.255.255.255。
  • 多播的出現減小了對應用不感興趣主機的處理負荷。

多播的特色:

  • 容許一個或多個發送者(組播源)發送單一的數據包到多個接收者(一次的,同時的)的網絡技術。能夠大大的節省網絡帶寬,由於不管有多少個目標地址,在整個網絡的任何一條鏈路上只傳送單一的數據包
    多播技術的核心就是針對如何節約網絡資源的前提下保證服務質量。

簡述一下ping的原理

  • ping就是給目標IP地址發送一個 ICMP 回顯請求,並要求對方返回一個 ICMP 回顯應答來肯定兩臺網絡機器是否連通,時延是多少。

clipboard.png

  • 在 ICMP 逐層封裝的過程當中,須要知道源IP、源MAC地址、目的IP、目的MAC地址,前三者是已知的,只須要獲取目的MAC地址便可
  • 若在同一網段,只須要發送ARP廣播;
  • 若不在同一網段,發送ARP廣播給交換機,交換機若沒有緩存目的IP對應的MAC地址,它會再轉發該ARP廣播包。
相關文章
相關標籤/搜索