計算機網絡基礎 中的幾個常識問題

以下是引用鏈接:

https://blog.csdn.net/qq_41895747/article/details/104699853
https://www.cnblogs.com/xiaokang01/p/10032377.html
https://www.cnblogs.com/xiaokang01/p/10033267.html#_label0_4

一、OSI七層

二、IP地址分類

三、ARP

四、RARP

五、協議

六、TCP和UDP區別

七、TCP三次握手和四次揮手

八、TCP可以兩次握手嗎

九、TCP如何保證可靠性

十、輸入地址後發生了什麼

十一、交換機、路由器、網關

一、OSI七層

在這裏插入圖片描述
每一層的協議如下:

應用層:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
表示層:JPEG、MPEG、ASII
會話層:NFS、SQL、NETBIOS、RPC
傳輸層:TCP、UDP、SPX
網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
數據鏈路:PPP、FR、HDLC、VLAN、MAC (網橋,交換機)
物理層:RJ45、CLOCK、IEEE802.3 (中繼器,集線器)

每一層的作用如下:

應用層:允許訪問OSI環境的手段(應用協議數據單元APDU)
表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU)
會話層:建立、管理和終止會話(會話協議數據單元SPDU)
傳輸層:提供端到端的可靠報文傳遞和錯誤恢復(段Segment)
網絡層:負責數據包從源到宿的傳遞和網際互連(包PackeT)
數據鏈路層:將比特組裝成幀和點到點的傳遞(幀Frame)
物理層:通過媒介傳輸比特,確定機械及電氣規範(比特Bit)

二、IP地址分類

A類地址:以0開頭, 第一個字節範圍:1~126(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);

D類地址:以1110開頭,第一個字節範圍:224~239(224.0.0.0 - 239.255.255.255);(作爲多播使用)
爲什麼要劃分這麼多類IP
在這裏插入圖片描述
掩碼是什麼

IP地址與子網掩碼相與得到網絡號:

ip : 192.168.2.110

Submask : 255.255.255.0


網絡號 :192.168.2 .0

三、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響應。

四、描述RARP協議

RARP是逆地址解析協議,作用是完成硬件地址到IP地址的映射,主要用於無盤工作站,因爲給無盤工作站配置的IP地址不能保存。工作流程:在網絡中配置一臺RARP服務器,裏面保存着IP地址和MAC地址的映射關係,當無盤工作站啓動後,就封裝一個RARP數據包,裏面有其MAC地址,然後廣播到網絡上去,當服務器收到請求包後,就查找對應的MAC地址的IP地址裝入響應報文中發回給請求者。因爲需要廣播請求報文,因此RARP只能用於具有廣播能力的網絡

五、各種協議的介紹

ICMP協議: 因特網控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。
TFTP協議: 是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。
HTTP協議: 超文本傳輸協議,是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分佈式超媒體信息系統。
NAT協議:網絡地址轉換屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化爲合法IP地址的轉換技術,
DHCP協議:動態主機配置協議,是一種讓系統得以連接到網絡上,並獲取所需要的配置參數手段,使用UDP協議工作。具體用途:給內部網絡或網絡服務供應商自動分配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(Trivial File Transfer Protocal),簡單文件傳輸協議,該協議在熟知端口69上使用UDP服務。

七.TCP三次握手和四次揮手的全過程

三次握手
A 的 TCP 向 B 發出連接請求報文段,其首部中的同步位 SYN = 1,並選擇序號 seq = x,表明傳送數據時的第一個數據字節的序號是 x
B 的 TCP 收到連接請求報文段後,如同意,則發回確認。B 在確認報文段中應使 SYN = 1,使 ACK = 1,其確認號ack = x+1,自己選擇的序號 seq = y。
A 收到此報文段後向 B 給出確認,其 ACK = 1,確認號 ack = y + 1。A 的 TCP 通知上層應用進程,連接已經建立。
B 的 TCP 收到主機 A 的確認後,也通知其上層應用進程:TCP 連接已經建立。
接收端的ACK總是等於發送端SEQ+1

四次揮手
在這裏插入圖片描述
TCP的四次揮手
也可以看成兩次握手(A的釋放和B的釋放)

過程:

現在 A 的應用進程先向其 TCP 發出連接釋放報文段,並停止再發送數據,主動關閉 TCP 連接。A 把連接釋放報文段首部的 FIN = 1,其序號seq = u,等待 B 的確認。
B 發出確認,確認號 ack = u + 1,而這個報文段自己的序號 seq = v。TCP 服務器進程通知高層應用進程。從 A 到 B 這個方向的連接就釋放了,TCP 連接,處於半關閉狀態。B 若發送數據,A 仍要接收。
若 B 已經沒有要向 A 發送的數據,其應用進程就通知 TCP 釋放連接。
A 收到連接釋放報文段後,必鬚髮出確認。
在確認報文段中 ACK = 1,確認號 ack = w + 1,自己的序號 seq = u + 1。

八.爲什麼會採用三次握手,若採用二次握手可以嗎?爲什麼採用四次揮手?三次可以嗎?TIME_WAIT有什麼作用?

爲什麼採用三次握手而不是兩次?

爲了防止已失效的連接請求報文段突然又傳送到了,因而產生錯誤
解釋原因:如果在發送過程中的話,假如是兩次:當A給B發送一個連接請求,因爲網絡的原因該請求沒有按時到達實際上只是晚一些到,但超時重傳了),A就會重新發送一次請求,這次請求正常到,然後B就會給A一個確認請求,此時就可以傳送數據了。但是當A第一次發送的數據又來到了(A以爲這個包已經丟失了),那麼B就會再次向A發送一個確認,此時的A就不知道這個確認的意義了(不會理會B的再次確認,因爲在A看來連接已經建立),而B就會在一直等待着A給他發送信息(等待會導致資源浪費)。
簡單的說,兩次握手可能導致A多發一次SYN,導致A多接收一次ACK。而如果是三次握手,在第三次A向B發送ACK之後,已經超時失效的舊的SYN(來自第一次握手)就不會導致多餘的ACK。

爲什麼採用四次揮手而不是三次?TIME_WAIT的作用?

這段內容來自:https://www.cnblogs.com/xiaokang01/p/10032377.html
在這裏插入圖片描述
在三次握手的過程中,SYN和ACK是一起發送的但是在四次揮手的時候FIN和ACK卻不是一起發送的而是分開發送的,爲什麼呢???
那是因爲啊,TCP連接是全雙工的也就是說接收到FIN只是說沒有數據再發過來但是還是可以發送數據的,也就是接受到一個FIN只是關閉了一個方向的數據傳輸,另一個方向還可以繼續發送數據。在四次揮手的時候也是這樣前兩次揮手只是確認關閉了一個方向的數據,加上後面兩次揮手才真正的關閉了整個全雙工連接。
當socket在ESTABISHED狀態時,他想主動關閉連接於是向對方發送FIN請求,發送完FIN請求後它處於FIN_WAIT_1狀態,當對方確認ACK報文後則處於FIN_WAIT_2狀態。FIN_WAIT_2表示半連接,也就是有一方要求關閉連接,另一方收到請求但是告訴她我還有一些數據要發送稍後會關閉。TIME_WAIT狀態表示收到對方的FIN併發送出ACK.如果三次揮手可能在關閉後還有一個方向沒有關。

1.前倆次揮手:結束一個方向上的鏈接

2.後倆次揮手:結束另外一個方向上的鏈接

TIME_WAIT
在這裏插入圖片描述

客戶端接收到服務器端的 FIN 報文後進入此狀態,此時並不是直接進入 CLOSED 狀態,還需要等待一個時間計時器設置的時間 2MSL。這麼做有兩個理由:

1、確保最後一個確認報文7能夠到達。如果 B 沒收到 A 發送來的確認報文7,那麼就會重新發送連接釋放請求報文,A 等待一段時間就是爲了處理這種情況的發生。如果沒有TIME_WAIT,客戶端會重發RST報文段迴應服務器,服務器會認爲這是一個錯誤

2、等待一段時間是爲了讓本連接持續時間內所產生的所有報文都從網絡中消失,使得下一個新的連接不會出現舊的連接請求報文。一個TCP連接處於TIME_WAIT狀態時,將無法立即使用該連接佔用着的端口來建立一個新連接。如果不存在TIME_WAIT,應用程序能夠立即建立一個新的、擁有相同IP地址和端口號的連接(實際上客戶端端口號是隨機分配的,不太可能和上一次一樣),這樣可能會接收到上一個連接殘留的舊的報文段。

九.TCP是怎麼保證可靠性的?

這段內容來自:https://www.cnblogs.com/xiaokang01/p/10033267.html#_label0_4
寫的非常詳細形象,感謝~
1、校驗和
2、確認應答和序列號
3、超時重傳
4、連接管理
5、流量控制
6、擁塞控制
1、校驗和
發送的數據包的二進制相加然後取反,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段。
2、確認應答和序列號
接收方收到報文就會確認(累積確認:對所有按序接收的數據的確認)
TCP給發送的每一個包進行編號,接收方對數據包進行排序把有序數據傳送給應用層
3、超時重傳
當TCP發出一個段後,它啓動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。
4、連接管理
也就是三次握手和四次揮手。
5、流量控制
TCP連接的每一方都有固定大小的緩衝空間,TCP的接收端只允許發送端發送接收端緩衝區能接納的數據。當接收方來不及處理髮送方的數據,能提示發送方降低發送的速率,防止包丟失。TCP使用的流量控制協議是可變大小的滑動窗口協議。
接收方有即時窗口(滑動窗口),隨ACK報文發送
6、擁塞控制
當網絡擁塞時,減少數據的發送。

發送方有擁塞窗口,發送數據前比對接收方發過來的即使窗口,取小

慢啓動、擁塞避免、擁塞發送、快速恢復

應用數據被分割成TCP認爲最適合發送的數據塊。

TCP的接收端會丟棄重複的數據。

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

1、找到域名對應的IP
依次查找瀏覽器緩存、本機hosts,如果都沒有找到IP,會詢問DNS根服務器(即運營商,比如中國電信、中國移動等),DNS根服務器並不存儲域名-IP映射,而是告訴本機:.com域服務器在這,你去問問它。本地DNS服務器繼續向.com域服務器發出請求,.com域服務器收到請求之後,也不會直接返回域名和IP地址的映射,而是告訴本地DNS服務器,該域名的解析服務器的地址在這:也就是www.baidu.com的解析服務器地址
最後,該解析服務器總算返回給了我們IP。

2、建立TCP連接
在拿到域名對應的IP地址後,會以隨機端口(1024~~65535)向WEB服務器程序80端口(http是80,https是443)發起TCP的連接請求,這個連接請求進入到內核的TCP/IP協議棧(用於識別該連接請求,解封包,一層一層的剝開),還有可能要經過Netfilter防火牆(屬於內核的模塊)的過濾,最終到達WEB程序,最終建立了TCP/IP的連接,對於客戶端與服務器的TCP鏈接,必然要說的就是『三次握手』。

3、發起請求、解析請求

一個完整的HTTP請求過程可以參考以下:

https://blog.csdn.net/ailunlee/article/details/90600174

4、服務器處理與轉發到瀏覽器

服務器端收到請求後的由web服務器(準確說應該是http服務器)處理請求,諸如Apache、Ngnix、IIS等。web服務器解析用戶請求,知道了需要調度哪些資源文件,再通過相應的這些資源文件處理用戶請求和參數,並調用數據庫信息,將結果通過web服務器返回給瀏覽器客戶端。
在這裏插入圖片描述
5、關閉連接與頁面渲染
爲了避免服務器與客戶端雙方的資源佔用和損耗,當雙方沒有請求或響應傳遞時,任意一方都可以發起關閉請求。與創建TCP連接的3次握手類似,關閉TCP連接,需要4次握手。
將HTML代碼和靜態資源渲染後呈現給用戶

十一.瞭解交換機、路由器、網關的概念,並知道各自的用途

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地址對應着不同的端口,這樣看來就會保護子網內的用戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章