資料報在網路中的流轉

2022-09-10 18:06:10 字數 2972 閱讀 9564

文分為兩部分   基礎概念介紹 和資料報在網路中流轉的過程

1.啥是集線器

從0開始,當一台機器a想與機器b發訊息,連一根實體線即可完成(假設這根線很牛逼,連上就能通資訊)

兩台機器互動沒有問題,如果一台機器a想與b,c,d,e,f五颱機器通訊,他就需要扯五根線,

如果六臺機器想互相通訊那就得扯十五條,十分尷尬。 so 有了集線器,每台機器只需要和集線器扯一根線即可

機器a都發訊息到集線器中轉,再由集線器**至所有的機器。

每台機器接到訊息再通過mac位址判斷該訊息是不是自己接收。屬於無腦廣播型別,

集線器屬於網路分層中的最底層——物理層

集線器的主要問題在於每個訊息都要廣播發給所有連線的機器,開銷極大。  引入交換機來解決。

2.啥是交換機

交換機這東西可以理解為乙個plus版的集線器

交換機維護了乙份mac位址表

當機器a想發訊息給機器c,a只需要將訊息發給交換機,交換機找到c的mac位址,然後單獨發給c 而不是廣播。

交換機如何構建這個mac位址表呢?

很簡單,不知道mac位址是哪台機器還是廣播,廣播給所有連線交換機的機器,當c發現mac位址是自己然後響應,mac位址表記錄下來,就得這麼一點點構建。

單台交換機的埠有限,只能支撐那麼幾個機器連線。

那麼多台機器可以通過交換機與交換機連線

如果當一台交換機需要對接的交換機多了起來,還是會出現埠不夠用情況,因此引入了路由器。

3.啥是路由器

路由器也是作為乙個**的中轉站,每個路由器有自己獨立的mac位址。路由器的每個埠都代表了獨立的mac位址

路由器屬於網路層,通過ip位址進行**

4. 啥是子網

ip位址通過子網掩碼進行與運算後相等的,就是在同一子網,不相等就不在同一子網。

在同一子網的機器可以僅通過交換機,通過mac位址就能通訊。

不在同一子網的機器就需要通過路由器**來實現最終通訊。

5. 啥是預設閘道器

我新到手一台機器a想通過網際網路通訊,第一時間要配置預設閘道器——也就是路由器的ip

機器a發現要傳送的機器ip是外網的,直接把訊息發給預設閘道器,剩下的不用管了,預設閘道器去做**。

6.完整的流轉過程

好,依據上邊的圖,我現在擁有一台機器a,今天剛裝的寬頻 村里通了網,我想往隔壁村的 機器h發一條訊息。

我們首先要知道成功的傳送一條訊息的資料頭資訊的幾個必要字段

我現在機器a已知的資訊:  

機器a的mac位址,機器a的ip位址,機器a的子網掩碼,預設閘道器,要傳送的機器h的ip位址

第一步

那麼機器a首先通過子網掩碼,判斷機器h的ip位址是否與a是同一子網。

發現並不是,那麼把訊息丟給預設閘道器,也就是路由器。

其中mac_路由器如何知道呢?

arp協議,可通過ip位址找到對應mac位址。原理也是先廣播,後快取

第二步

機器a打包將資料報發給連線的交換機,交換機通過mac位址對映表找到具體哪台機器是路由器 (表中沒有就廣播去找),然後發出去

第三步

路由器此刻拿到這個資料報,此時通過arp協議,找到 ip_機器h 對應的mac位址  mac_機器h,填到目標mac位址的位置

看到目標ip為ip_機器h,便從路由表中查到這個ip對應路由器的哪個埠,選擇該埠發出資料報。

(路由表是路由器自己維護的表,由路由演算法+人工配置生成。通過路由表可以查到某個子網的ip對應路由器的哪個埠)

第四步

包從路由器的埠出來,發到對應的交換機上。

交換機再通過mac位址表,找到mac位址對應的機器h,最終訊息到達。

7. 再看網路分層與對應的協議

tcp/ip 五層模型是以 osi 七層優化而來

自底向上依次是  物理層,資料鏈路層,網路層,傳輸層,應用層

物理層           沒有感情的物理電訊號傳輸

資料鏈路層    通過交換機來中轉,通過mac位址來識別           主要解決的問題就是通過mac位址對映表,找到想要傳送的mac是哪台機器

網路層           通過路由器來中轉,通過ip位址來識別              典型的協議就是ip協議,arp協議                  主要解決的問題就是分清內網外網,通過下一跳準確路由到路由器,並通過ip位址找到mac位址

傳輸層           這時候就上公升到了作業系統埠,套接字等層面      典型的協議就是 tcp協議,udp協議      主要解決的問題就是資料報收發的可靠性等問題

應用層        到這包已經能完美的發到對應的機器上,問題就在於怎麼解析這個包     典型的協議就是http協議,ftp協議等     主要解決的就是千辛萬苦來的包怎麼解析成你想要的樣子                

over

找出ip資料報在網路中經過的路由

利用icmp協議,icmp協議一般用於傳遞udp tcp報文的差錯資訊,但是也有個選項可以被配置成為可以記錄沿路的路由ip的功能 在icmp報文的首部有型別和 兩個字段,被分別配置為8和0的時候 使用ping r的形式可以檢視ip記錄路由。這時候每乙個接到該資料報的路由器都會在ip資料報的選項欄位中...

IP資料報在網路中為什麼要分片和重組

一 什麼是ip分片?ip協議在傳輸資料報時會將資料報文分成若干片進行傳輸,並在目標系統中進行重組。這以過程就成為分片。二 為什麼要進行ip分片 如果ip資料報加上資料幀頭部後大於mtu,資料報文就會分成若干片進行傳輸。那麼什麼是mtu呢?每一種物理網路都會規定鏈路層資料幀的最大長度,稱為鏈路層mtu...

網路資料報

我們知道網路是通過分組交換進行通訊,是將使用者傳送的資訊資料劃分成一定的長度,每個部分叫做乙個分組。每個分組的前面有乙個分組頭,用以指明該分組發往何位址,然後由 交換機根據每個分組的位址標誌,將他們 至目的地,這一過程稱為 分組交換 osi open system interconnection,開...