天天看點

計算機網絡之面試常考

整理一下計算機網絡部分的面試常考點,參考書籍:《計算機網絡》第五版 謝希仁的那本,希望對大家有所幫助

OSI,TCP/IP,五層協定的體系結構,以及各層協定

OSI分層      (7層):實體層、資料鍊路層、網絡層、傳輸層、會話層、表示層、應用層。

TCP/IP分層(4層):網絡接口層、              網際層、運輸層、                            應用層。

五層協定     (5層):實體層、資料鍊路層、網絡層、運輸層、                            應用層。

每一層的協定如下:

實體層:RJ45、CLOCK、IEEE802.3    (中繼器,集線器,網關)

資料鍊路:PPP、FR、HDLC、VLAN、MAC  (網橋,交換機)

網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)

傳輸層:TCP、UDP、SPX

會話層:NFS、SQL、NETBIOS、RPC

表示層:JPEG、MPEG、ASII

應用層:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

每一層的作用如下:

實體層:通過媒介傳輸比特,确定機械及電氣規範(比特Bit)

資料鍊路層:将比特組裝成幀和點到點的傳遞(幀Frame)

網絡層:負責資料包從源到宿的傳遞和網際互連(包PackeT)

傳輸層:提供端到端的可靠封包傳遞和錯誤恢複(段Segment)

會話層:建立、管理和終止會話(會話協定資料單元SPDU)

表示層:對資料進行翻譯、加密和壓縮(表示協定資料單元PPDU)

應用層:允許通路OSI環境的手段(應用協定資料單元APDU)

 IP位址的分類

A類位址:以0開頭,      第一個位元組範圍:0~127(1.0.0.0 - 126.255.255.255);

B類位址:以10開頭,    第一個位元組範圍:128~191(128.0.0.0 - 191.255.255.255);

C類位址:以110開頭,  第一個位元組範圍:192~223(192.0.0.0 - 223.255.255.255);

10.0.0.0—10.255.255.255,172.16.0.0—172.31.255.255,192.168.0.0—192.168.255.255。(Internet上保留位址用于内部)

IP位址與子網路遮罩相與得到主機号

ARP是位址解析協定,簡單語言解釋一下工作原理。

1:首先,每個主機都會在自己的ARP緩沖區中建立一個ARP清單,以表示IP位址和MAC位址之間的對應關系。

2:當源主機要發送資料時,首先檢查ARP清單中是否有對應IP位址的目的主機的MAC位址,如果有,則直接發送資料,如果沒有,就向本網段的所有主機發送ARP資料包,該資料包包括的内容有:源主機IP位址,源主機MAC位址,目的主機的IP位址。

3:當本網絡的所有主機收到該ARP資料包時,首先檢查資料包中的IP位址是否是自己的IP位址,如果不是,則忽略該資料包,如果是,則首先從資料包中取出源主機的IP和MAC位址寫入到ARP清單中,如果已經存在,則覆寫,然後将自己的MAC位址寫入ARP響應包中,告訴源主機自己是它想要找的MAC位址。

4:源主機收到ARP響應包後。将目的主機的IP和MAC位址寫入ARP清單,并利用此資訊發送資料。如果源主機一直沒有收到ARP響應資料包,表示ARP查詢失敗。

廣播發送ARP請求,單點傳播發送ARP響應。

各種協定

ICMP協定:網際網路控制封包協定。它是TCP/IP協定族的一個子協定,用于在IP主機、路由器之間傳遞控制消息。

TFTP協定:是TCP/IP協定族中的一個用來在客戶機與伺服器之間進行簡單檔案傳輸的協定,提供不複雜、開銷不大的檔案傳輸服務。

HTTP協定:超文本傳輸協定,是一個屬于應用層的面向對象的協定,由于其簡捷、快速的方式,适用于分布式超媒體資訊系統。

DHCP協定:動态主機配置協定,是一種讓系統得以連接配接到網絡上,并擷取所需要的配置參數手段。

NAT協定:網絡位址轉換屬接入廣域網(WAN)技術,是一種将私有(保留)位址轉化為合法IP位址的轉換技術,

DHCP協定:一個區域網路的網絡協定,使用UDP協定工作,用途:給内部網絡或網絡服務供應商自動配置設定IP位址,給使用者或者内部網絡管理者作為對所有計算機作中央管理的手段。

描述:RARP

RARP是逆位址解析協定,作用是完成硬體位址到IP位址的映射,主要用于無盤工作站,因為給無盤工作站配置的IP位址不能儲存。工作流程:在網絡中配置一台RARP伺服器,裡面儲存着IP位址和MAC位址的映射關系,當無盤工作站啟動後,就封裝一個RARP資料包,裡面有其MAC位址,然後廣播到網絡上去,當伺服器收到請求包後,就查找對應的MAC位址的IP位址裝入響應封包中發回給請求者。因為需要廣播請求封包,是以RARP隻能用于具有廣播能力的網絡。

TCP三向交握和四次揮手的全過程

三次握手:

第一次握手:用戶端發送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,至此,完成四次揮手。

計算機網絡之面試常考

 在浏覽器中輸入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提供面向連接配接的、可靠的資料流傳輸,而UDP提供的是非面向連接配接的、不可靠的資料流傳輸。

TCP傳輸機關稱為TCP封包段,UDP傳輸機關稱為使用者資料報。

TCP注重資料安全性,UDP資料傳輸快,因為不需要連接配接等待,少了許多操作,但是其安全性卻一般。

TCP對應的協定和UDP對應的協定

TCP對應的協定:

(1) FTP:定義了檔案傳輸協定,使用21端口。

(2) Telnet:一種用于遠端登陸的端口,使用23端口,使用者可以以自己的身份遠端連接配接到計算機上,可提供基于DOS模式下的通信服務。

(3) SMTP:郵件傳送協定,用于發送郵件。伺服器開放的是25号端口。

(4) POP3:它是和SMTP對應,POP3用于接收郵件。POP3協定所用的是110端口。

(5)HTTP:是從Web伺服器傳輸超文本到本地浏覽器的傳送協定。

UDP對應的協定:

(1) DNS:用于域名解析服務,将域名位址轉換為IP位址。DNS用的是53号端口。

(2) SNMP:簡單網絡管理協定,使用161号端口,是用來管理網絡裝置的。由于網絡裝置很多,無連接配接的服務就展現出其優勢。

(3) TFTP(Trival File Transfer Protocal),簡單檔案傳輸協定,該協定在熟知端口69上使用UDP服務。

DNS域名系統,簡單描述其工作原理。

當DNS客戶機需要在程式中使用名稱時,它會查詢DNS伺服器來解析該名稱。客戶機發送的每條查詢資訊包括三條資訊:包括:指定的DNS域名,指定的查詢類型,DNS域名的指定類别。基于UDP服務,端口53. 該應用一般不直接為使用者使用,而是為其他應用服務,如HTTP,SMTP等在其中需要完成主機名到IP位址的轉換。

面向連接配接和非面向連接配接的服務的特點是什麼?

面向連接配接的服務,通信雙方在進行通信之前,要先在雙方建立起一個完整的可以彼此溝通的通道,在通信過程中,整個連接配接的情況一直可以被實時地監控和管理。

       非面向連接配接的服務,不需要預先建立一個聯絡兩個通信節點的連接配接,需要通信的時候,發送節點就可以往網絡上發送資訊,讓資訊自主地在網絡上去傳,一般在傳輸的過程中不再加以監控。

TCP的三次握手過程?為什麼會采用三次握手,若采用二次握手可以嗎?

答:建立連接配接的過程是利用客戶伺服器模式,假設主機A為用戶端,主機B為伺服器端。

(1)TCP的三次握手過程:主機A向B發送連接配接請求;主機B對收到的主機A的封包段進行确認;主機A再次對主機B的确認進行确認。

(2)采用三次握手是為了防止失效的連接配接請求封包段突然又傳送到主機B,因而産生錯誤。失效的連接配接請求封包段是指:主機A發出的連接配接請求沒有收到主機B的确認,于是經過一段時間後,主機A又重新向主機B發送連接配接請求,且建立成功,順序完成資料傳輸。考慮這樣一種特殊情況,主機A第一次發送的連接配接請求并沒有丢失,而是因為網絡節點導緻延遲達到主機B,主機B以為是主機A又發起的新連接配接,于是主機B同意連接配接,并向主機A發回确認,但是此時主機A根本不會理會,主機B就一直在等待主機A發送資料,導緻主機B的資源浪費。

(3)采用兩次握手不行,原因就是上面說的實效的連接配接請求的特殊情況。

端口及對應的服務?

服務 端口号 服務 端口号
FTP 21 SSH 22
telnet 23 SMTP 25
Domain(域名伺服器) 53 HTTP 80
POP3 110 NTP(網絡時間協定) 123
MySQL資料庫服務 3306 Shell或 cmd 514
POP-2 109 SQL Server 1433

IP資料包的格式

IP資料報由首部 和資料 兩部分組成。首部由固定部分和可選部分 組成。首部的固定部分有20位元組。可選部分的長度變化範圍為1——40位元組。固定部分的字段:

字段名 位數(bit) 字段名 位數
版本 4  Ipv4 首部長度 4(表示的最大數為15個機關,一個機關表示4位元組)
服務類型 8  以前很少用 總長度 1665535位元組,即64KB,但是由于鍊路層的MAC都有一定的最大傳輸單元,是以IP資料報的長度一般都不會有理論上的那麼大,如果超出了MAC的最大單元就會進行分片)
辨別 16 (相同的辨別使得分片後的資料報片能正确的重裝成原來的資料報) 标志 3MF=1表示後面還有分片,MF=0表示這是若幹個資料報片的最後一個中間位DF=0才允許分片)
片偏移 片偏移指出較長的分組在分片後,某片在原分組中的相對位置,都是8位元組的偏移位置 生存時間 資料報在網絡中的生存時間,指最多經過路由器的跳數
協定 8IP層知道應将資料部分上交給哪個處理程式)如ICMP=1 IGMP=2 TCP=6 EGP=8 IGP=9 UDP=17 Ipv6=41 OSPF=89 首部校驗和 這個部分隻校驗首部,不包括資料部分,計算方法:将首部劃分為多個16位的部分,然後每個16位部分取反,然後計算和,再将和取反放到首部校驗和。接收方收到後按同樣的方法劃分,取反,求和,在取反,如果結果為零,則接收,否則就丢棄
源位址 32 目的位址 32

TCP資料報的格式?

源端口 目的端口
序号
确認序号
資料偏移 保留 URG ACK PSH RST SYN FIN 視窗
檢驗和 緊急指針
選項和填充
資料

一個TCP封包段分為首部和資料兩部分。首部由固定部分和選項部分組成,固定部分是20位元組。TCP首部的最大長度為60。首部固定部分字段:

字段名 位元組(Byte) 字段名 位元組(Byte)
源端口 2 目的端口 2
序号 4 确認号 4,是期望收到對方的下一個封包段的資料的第一個位元組的序号
資料偏移 4bitTCP封包段的資料起始處距離TCP封包段的起始有多遠 保留 6bit
緊急比特URG 确認比特ACK 隻有當ACK=1時,确認号字段才有效
推送比特PSH 複位比特RST
同步比特SYN 終止比特FIN
視窗 2 檢驗和 212位元組的僞首部進行校驗和計算)
選項 長度可變(範圍1——40)

TCP的12位元組僞首部:

源IP位址(4) 目的IP位址(4) 0 (1) 6(1)TCP,IP協定中提到過 TCP長度(2)

TCP資料報的格式?

使用者資料報UDP由首部和資料部分組成。首部隻有8個位元組,由4個字段組成,每個字段都是兩個位元組。

字段名 位元組 字段名 位元組
源端口 2 目的端口 2
長度 2 檢驗和 212位元組的僞首部)

UDP的12位元組僞首部:

源IP位址(4) 目的IP位址(4) 0 (1) 17(1)UDP UDP長度(2)

以太網MAC幀格式?

前導碼 前定界符 目的位址 源目的位址 長度字段 資料字段 校驗字段
7B 1B 6B 6B 2B 46-1500 4B

了解交換機、路由器、網關的概念,并知道各自的用途

1)交換機

在計算機網絡系統中,交換機是針對共享工作模式的弱點而推出的。交換機擁有一條高帶寬的背部總線和内部交換矩陣。交換機的所有的端口都挂接在這條背 部總線上,當控制電路收到資料包以後,處理端口會查找記憶體中的位址對照表以确定目的MAC(網卡的硬體位址)的NIC(網卡)挂接在哪個端口上,通過内部 交換矩陣迅速将資料包傳送到目的端口。目的MAC若不存在,交換機才廣播到所有的端口,接收端口回應後交換機會“學習”新的位址,并把它添加入内部位址表 中。

交換機工作于OSI參考模型的第二層,即資料鍊路層。交換機内部的CPU會在每個端口成功連接配接時,通過ARP協定學習它的MAC位址,儲存成一張 ARP表。在今後的通訊中,發往該MAC位址的資料包将僅送往其對應的端口,而不是所有的端口。是以,交換機可用于劃分資料鍊路層廣播,即沖突域;但它不 能劃分網絡層廣播,即廣播域。

交換機被廣泛應用于二層網絡交換,俗稱“二層交換機”。

交換機的種類有:二層交換機、三層交換機、四層交換機、七層交換機分别工作在OSI七層模型中的第二層、第三層、第四層盒第七層,并是以而得名。

2)路由器

路由器(Router)是一種計算機網絡裝置,提供了路由與轉送兩種重要機制,可以決定資料包從來源端到目的端所經過 的路由路徑(host到host之間的傳輸路徑),這個過程稱為路由;将路由器輸入端的資料包移送至适當的路由器輸出端(在路由器内部進行),這稱為轉 送。路由工作在OSI模型的第三層——即網絡層,例如網際協定。

路由器的一個作用是連通不同的網絡,另一個作用是選擇資訊傳送的線路。 路由器與交換器的差别,路由器是屬于OSI第三層的産品,交換器是OSI第二層的産品(這裡特指二層交換機)。

3)網關

網關(Gateway),網關顧名思義就是連接配接兩個網絡的裝置,差別于路由器(由于曆史的原因,許多有關TCP/IP 的文獻曾經把網絡層使用的路由器(Router)稱為網關,在今天很多區域網路采用都是路由來接入網絡,是以現在通常指的網關就是路由器的IP),經常在家 庭中或者小型企業網絡中使用,用于連接配接區域網路和Internet。 網關也經常指把一種協定轉成另一種協定的裝置,比如語音網關。

在傳統TCP/IP術語中,網絡裝置隻分成兩種,一種為網關(gateway),另一種為主機(host)。網關能在網絡間轉遞資料包,但主機不能 轉送資料包。在主機(又稱終端系統,end system)中,資料包需經過TCP/IP四層協定處理,但是在網關(又稱中介系 統,intermediate system)隻需要到達網際層(Internet layer),決定路徑之後就可以轉送。在當時,網關 (gateway)與路由器(router)還沒有差別。

在現代網絡術語中,網關(gateway)與路由器(router)的定義不同。網關(gateway)能在不同協定間移動資料,而路由器(router)是在不同網絡間移動資料,相當于傳統所說的IP網關(IP gateway)。

網關是連接配接兩個網絡的裝置,對于語音網關來說,他可以連接配接PSTN網絡和以太網,這就相當于VOIP,把不同電話中的模拟信号通過網關而轉換成數字信号,而且加入協定再去傳輸。在到了接收端的時候再通過網關還原成模拟的電話信号,最後才能在電話機上聽到。

對于以太網中的網關隻能轉發三層以上資料包,這一點和路由是一樣的。而不同的是網關中并沒有路由表,他隻能按照預先設定的不同網段來進行轉發。網關最重要的一點就是端口映射,子網内使用者在外網看來隻是外網的IP位址對應着不同的端口,這樣看來就會保護子網内的使用者。