計算機網路面試題(1)

2021-08-20 10:10:56 字數 4174 閱讀 5163

應用層:提供使用者與網路間的介面。----http、ftp、smtp

運輸層:程序到程序間的資料傳輸。---tcp、udp

網路層:主機到主機之間的資料傳輸。---ip、選路協議

資料鏈路層:相鄰結點之間的資料傳輸。---ppp、乙太網

物理層:在物理介質上傳輸位元流。

傳輸控制協議 tcp(transmission control protocol)是面向連線的,提供可靠交付,有流量控制,擁塞控制,提供全雙工通訊,面向位元組流(把應用層傳下來的報文看成位元組流,把位元組流組織成大小不等的資料塊)。

三次握手:

第一次握手:客戶端傳送syn包(syn=x)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=x+1),同時自己也傳送乙個syn包(syn=y),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=y+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。

握手過程中傳送的包裡不包含資料,三次握手完畢後,客戶端與伺服器才正式開始傳送資料。理想狀態下,tcp連線一旦建立,在通訊雙方中的任何一方主動關閉連線之前,tcp 連線都將被一直保持下去。

三次握手的原因

第三次握手是為了防止失效的連線請求到達伺服器,讓伺服器錯誤開啟連線。

失效的連線請求是指,客戶端傳送的連線請求在網路中滯留,客戶端因為沒及時收到伺服器端傳送的連線確認,因此就重新傳送了連線請求。滯留的連線請求並不是丟失,之後還是會到達伺服器。如果不進行第三次握手,那麼伺服器會誤認為客戶端重新請求連線,然後開啟了連線。但是並不是客戶端真正開啟這個連線,因此客戶端不會給伺服器傳送資料,這個連線就白白浪費了。

四次揮手

與建立連線的「三次握手」類似,斷開乙個tcp連線則需要「四次握手」。

第一次揮手:主動關閉方傳送乙個fin,用來關閉主動方到被動關閉方的資料傳送,也就是主動關閉方告訴被動關閉方:我已經不會再給你發資料了(當然,在fin包之前傳送出去的資料,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些資料),但是,此時主動關閉方還可以接受資料。

第二次揮手:被動關閉方收到fin包後,傳送乙個ack給對方,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號)。

第三次揮手:被動關閉方傳送乙個fin,用來關閉被動關閉方到主動關閉方的資料傳送,也就是告訴主動關閉方,我的資料也傳送完了,不會再給你發資料了。

第四次揮手:主動關閉方收到fin後,傳送乙個ack給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。

四次揮手的原因

客戶端傳送了 fin 連線釋放報文之後,伺服器收到了這個報文,就進入了 close-wait 狀態。這個狀態是為了讓伺服器端傳送還未傳送完畢的資料,傳送完畢之後,伺服器會傳送 fin 連線釋放報文。

time_wait

客戶端接收到伺服器端的 fin 報文後進入此狀態,此時並不是直接進入 closed 狀態,還需要等待乙個時間計時器設定的時間 2msl。這麼做有兩個理由:

應用應用層協議

埠號運輸層協議

備註網域名稱解析

dns

53

udp/tcp

長度超過 512 位元組時使用 tcp

動態主機配置協議

dhcp

67/68

udp

簡單網路管理協議

snmp

161/162

udp

檔案傳送協議

ftp

20/21

tcp

控制連線 21,資料連線 20

遠端終端協議

telnet

23

tcp

超文字傳送協議

簡單郵件傳送協議

smtp

25

tcp

郵件讀取協議

pop3

110

tcp

網際報文訪問協議

imap

143

tcp

在瀏覽器中輸入www.baidu.com後執行的全部過程

1、客戶端瀏覽器通過dns解析到www.baidu.com的ip位址220.181.27.48,通過這個ip位址找到客戶端到伺服器的路徑。客戶端瀏覽器發起乙個http會話到220.161.27.48,然後通過tcp進行封裝資料報,輸入到網路層。

2、在客戶端的傳輸層,把http會話請求分成報文段,新增源和目的埠,如伺服器使用80埠監聽客戶端的請求,客戶端由系統隨機選擇乙個埠如5000,與伺服器進行交換,伺服器把相應的請求返回給客戶端的5000埠。然後使用ip層的ip位址查詢目的端。

3、客戶端的網路層不用關心應用層或者傳輸層的東西,主要做的是通過查詢路由表確定如何到達伺服器,期間可能經過多個路由器,這些都是由路由器來完成的工作,我不作過多的描述,無非就是通過查詢路由表決定通過那個路徑到達伺服器。

4、客戶端的鏈路層,包通過鏈路層傳送到路由器,通過鄰居協議查詢給定ip位址的mac位址,然後傳送arp請求查詢目的位址,如果得到回應後就可以使用arp的請求應答交換的ip資料報現在就可以傳輸了,然後傳送ip資料報到達伺服器的位址。

計算機網路面試題

tcp udp區別以及tcp如何保證傳輸可靠性 tcp是基於連線的協議,udp是面向非連線的協議 tcp傳輸可靠,udp傳輸不可靠 tcp的可靠性是通過順序編號和確認 ack 來實現的。tcp在開始傳送乙個段時,首先將該段插入到傳送佇列之中,同時啟動時鐘。其後,如果收到了接受端對該段的ack資訊,就...

計算機網路面試題

常見題 1 osi開放式網際網路參考模型有哪些組成?2 客戶端傳給伺服器時經過tcp ip的四層模型?3 從輸入 到獲得頁面的過程?4 cookie作用是啥?和session區別是啥?tcp ip 1 什麼是tcp協議?什麼是udp協議?2 tcp udp區別?3 tcp報文頭有哪些組成?4 udp...

計算機網路面試題

傳輸層網路層 應用層 3 http協議 報文格式 請求報文 響應報文 請求頭各種字段 響應頭各種字段 http狀態碼。4 https協議 詳細握手過程 各種演算法 摘要演算法 數字簽名 數字證書的原理與過程 http與https 輸入乙個url到瀏覽器返回頁面發生了什麼 網易 cookie與sess...