導航:首頁 > 網路問題 > 數據包如何在網路傳輸

數據包如何在網路傳輸

發布時間:2022-08-16 15:46:51

⑴ 網路子系統在發送數據包時,數據發送流程(Linux)

從網路設備驅動程序的結構分析可知,Linux網路子系統在發送數據包時,會調用驅動程序提供的hard_start_transmit()函數,該函數用於啟動數據包的發送。在設備初始化的時候,這個函數指針需被初始化以指向設備的xxx_tx ()函數。網路設備驅動完成數據包發送的流程如下:
1)網路設備驅動程序從上層協議傳遞過來的sk_buff參數獲得數據包的有效數據和長度,將有效數據放入臨時緩沖區。
2)對於乙太網,如果有效數據的長度小於乙太網沖突檢測所要求數據幀的最小長度ETH ZLEN,則給臨時緩沖區的末尾填充0。
3)設置硬體的寄存器,驅使網路設備進行數據發送操作。
特別要強調對netif_ stop_queue()的調用,當發送隊列為滿或因其他原因來不及發送當前上層傳下來的數據包時,則調用此函數阻止上層繼續向網路設備驅動傳遞數據包。當忙於發送的數據包被發送完成後,在以TX結束的中斷處理中,應該調用netif_wake_queue ()喚醒被阻塞的上層,以啟動它繼續向網路設備驅動傳送數據包。當數據傳輸超時時,意味著當前的發送操作失敗或硬體已陷入未知狀態,此時,數據包發送超時處理函數xxx _tx _timeout ()將被調用。這個函數也需要調用由Linux內核提供的netif_wake _queue()函數以重新啟動設備發送隊列。

⑵ 數據包是如何在網路中傳輸的

我們電腦上的數據,是如何「走」到遠端的另一台電腦的呢?這是個最基礎的問題,可能很多人回答不上來,盡管我們每天都在使用網路。這里我們以一個最簡單的「ping」命令,來解釋一個數據包「旅程」。

假設:我的電腦A,向遠在外地的朋友電腦B傳輸數據,最簡單的就是「ping」一下,看看這個傢伙的那一端網路通不通。A與B之間只有一台路由器。(路由器可能放在學校,社區或者電信機房,無所謂,基本原理是一樣的)

具體過程如下------
1.「ping」命令所產生的數據包,我們歸類為ICMP協議。說白了就是向目的地發送一個數據包,然後等待回應,如果回應正常則目的地的網路就是通的。當我們輸入了「ping」命令之後,我們的機器(電腦A)就生成了一個包含ICMP協議域的數據包,姑且稱之為「小德」吧~~~~

2.「小德」已經將ICMP協議打包到數據段里了,可是還不能發送,因為一個數據要想向外面傳送,還得經過「有關部門」的批准------IP協議。IP要將你的「寫信人地址」和「收信人地址」寫到數據段上面,即:將數據的源IP地址和目的IP地址分別打包在「小德」的頭部和尾部,這樣一來,大家才知道你的數據是要送到哪裡。

3.准備工作還沒有完。接下來還有部門要審核------ARP。ARP屬於數據鏈路層協議,主要負責把IP地址對應到硬體地址。直接說吧,都怪交換機太「傻」,不能根據IP地址直接找到相應的計算機,只能根據硬體地址來找。於是,交換機就經常保留一張IP地址與硬體地址的對應表以便其查找目的地。而ARP就是用來生成這張表的。比如:當「小德」被送到ARP手裡之後,ARP就要在表裡面查找,看看「小德」的IP地址與交換機的哪個埠對應,然後轉發過去。如果沒找到,則發一個廣播給所有其他的交換機埠,問這是誰的IP地址,如果有人回答,就轉發給它。

4.經過一番折騰,「小德」終於要走出這個倒霉的區域網了。可在此之前,它們還沒忘給「小德」屁股後面蓋個「戳」,說是什麼CRC校驗值,怕「小德」在旅行途中缺胳膊少腿,還得麻煩它們重新發送。。。。。我靠~~~~註:很多人弄不清FCS和CRC。所謂的CRC是一種校驗方法,用來確保數據在傳輸過程中不會丟包,損壞等等,FCS是數據包(准確的說是frame)里的一個區域,用來存放CRC的計算結果的。到了目的地之後,目的計算機要檢查FCS里的CRC值,如果與原來的相同,則說明數據在途中沒有損壞。

5.在走出去之前,那些傢伙最後折磨了一次「小德」------把小德身上眾多的0和1,弄成了什麼「高電壓」「低電壓」,在雙絞線上傳送了出去。暈~~出趟門就這么麻煩嗎?

6.坐著雙絞線旅遊,爽!可當看到很多人坐著同軸電纜,還有坐光纖的時候,小德又感覺不是那麼爽了。就在這時,來到了旅途的中轉站------路由器。這地方可是高級場所,人家直接查看IP地址!剩下的一概不管,交給下面的人去做。夠牛吧?路由器的內部也有一張表,叫做路由表,裡面標識著哪一個網路的IP對應著路由器的哪一個埠。這個表也不是天生就有的,而是靠路由器之間互相「學習」之後生成的,當然也可以由管理員手工設定。這個「學習」的過程是依靠路由協議來完成的,比如RIP,EIGRP,OSPF等等。

7.當路由器查看了「小德」的IP地址以後,根據路由表知道了小德要去的網路,接著就把小德轉到了相應的埠了。至此,路由器的主要工作完成,下面又是打包,封裝成frame,轉換成電壓信號等一系列「折騰」的活,就由數據鏈路層和物理層的模塊去干吧。

8.小德從路由器的出口出來,便來到了目的地----電腦B----所屬的網路的默認網關。默認網關可以是路由器的一個埠,也可以是區域網里的各種伺服器。不管怎樣,下面的過程還是一樣的:到交換機里的ARP表查詢「小德」的IP地址,看看屬於哪個區域網段或埠,然後就轉發到B了。

9.進了B的網卡之後,還要層層「剝皮」,基本上和從A出來的程序是一樣的------電腦B先校驗一下CRC值,看看數據是否完整;然後檢查一下frame的封裝,看到是IP協議之後,就把「小德」交給IP「部門」了;IP協議一看目的地址,正確,再看看應用協議,是ICMP。於是知道了該怎麼做了------產生一個回應數據包,(可以命名為「回應小德」),並准備以同樣的順序向遠端的A發送。。至於剛剛收到的那個數據包就丟棄了。

10.「回應小德」這個數據包又開始了上述同樣的循環,只不過這次發送者是B而接收者是A了。

以上是一個最簡單的路由過程,任何復雜的網路都是在次基礎之上實現的。

⑶ 網路數據傳輸過程

上圖是iso的七層網路體系結構,每一層都有其相應的工作協議。

數據傳輸過程如下:(如qq)

在發送主機A上,發送的數據經過應用層時,應用層對數據進行了包裝,它在要傳輸的數據上加了一個應用層首部AH後,繼續向傳輸層傳送。

傳輸層接收到應用層的數據後,將數據+應用層AH當做數據,給它進行包裝,加上自己的首部,此時的數據變為數據+應用層AH+傳輸層PH,繼續向會話層傳送。

依此類推,數據每傳遞一層,便增加相應協議的首部。

直到傳輸至數據鏈路層,數據鏈路層將加了自己首部的數據交給物理層後,轉換為高低跳躍的比特流,這時候的數據才能在線路上傳輸。

接收端的接收過程與發送過程相反,在接收主機B上,能夠通過電信號識別出比特流識別,將收到的信息遞交給數據鏈路層。

數據鏈路層收到數據後,剝離發送時添加的數據鏈路層首部DH,把數據提取出來,遞交給網路層。

同樣的,網路層剝離自己的首部NH,還原後將數據遞交給傳輸層。依此類推,至應用層將其首部AH剝離後,即可還原成最原始的發送數據了。

⑷ 在網路中ARP協議是怎樣實現數據包傳輸的

現在用A去ping B:
看見Reply from 192.168.85.100: bytes=32 time<10ms TTL=32 這樣的信息。
然後在命令行中輸入 arp -a,會看見192.168.85.100 BB-BB-BB-BB-BB-BB dynamic這樣的信息。
這就是arp高速緩存中IP地址和MAC地址的一個映射關系,在乙太網中,數據傳遞靠的是MAC,而並不是IP地址。其實在這背後就隱藏著arp的秘密。
首先A並不知道B在哪裡,那麼A首先就會發一個廣播的ARP請求,即目的MAC為FF-FF-FF- FF-FF-FF,目的IP為B的192.168.85.100,再帶上自己的源IP,和源MAC。
如果不是,網卡會自動丟棄數據包。如果B接收到了,經過分析,目的IP是自己的,於是更新自己的ARP高速緩存,記錄下A的IP和MAC。然後B就會回應A一個ARP應答,就是把A的源IP,源MAC變成現在目的IP,和目的MAC,再帶上自己的源IP,源MAC,發送給A。
當A機接收到ARP應答後,更新自己的ARP高速緩存,即把arp應答中的B機的源IP,源MAC的映射關系記錄在高速緩存中。那麼現在A機中有B的MAC和IP,B機中也有A的MAC和IP。arp請求和應答過程就結束了。
由於arp高速緩存是會定時自動更新的,在沒有靜態綁定的情況下,IP和MAC的映射關系會隨時間流逝自動消失。

⑸ 數據是如何在網路上傳輸的

我們電腦上的數據,是如何「走」到遠端的另一台電腦的呢?這是個最基礎的問題,可能很多人回答不上來,盡管我們每天都在使用網路。這里我們以一個最簡單的「ping」命令,來解釋一個數據包「旅程」。

假設:我的電腦A,向遠在外地的朋友電腦B傳輸數據,最簡單的就是「ping」一下,看看這個傢伙的那一端網路通不通。A與B之間只有一台路由器。(路由器可能放在學校,社區或者電信機房,無所謂,基本原理是一樣的)

具體過程如下------
1.「ping」命令所產生的數據包,我們歸類為ICMP協議。說白了就是向目的地發送一個數據包,然後等待回應,如果回應正常則目的地的網路就是通的。當我們輸入了「ping」命令之後,我們的機器(電腦A)就生成了一個包含ICMP協議域的數據包,姑且稱之為「小德」吧~~~~

2.「小德」已經將ICMP協議打包到數據段里了,可是還不能發送,因為一個數據要想向外面傳送,還得經過「有關部門」的批准------IP協議。IP要將你的「寫信人地址」和「收信人地址」寫到數據段上面,即:將數據的源IP地址和目的IP地址分別打包在「小德」的頭部和尾部,這樣一來,大家才知道你的數據是要送到哪裡。

3.准備工作還沒有完。接下來還有部門要審核------ARP。ARP屬於數據鏈路層協議,主要負責把IP地址對應到硬體地址。直接說吧,都怪交換機太「傻」,不能根據IP地址直接找到相應的計算機,只能根據硬體地址來找。於是,交換機就經常保留一張IP地址與硬體地址的對應表以便其查找目的地。而ARP就是用來生成這張表的。比如:當「小德」被送到ARP手裡之後,ARP就要在表裡面查找,看看「小德」的IP地址與交換機的哪個埠對應,然後轉發過去。如果沒找到,則發一個廣播給所有其他的交換機埠,問這是誰的IP地址,如果有人回答,就轉發給它。

4.經過一番折騰,「小德」終於要走出這個倒霉的區域網了。可在此之前,它們還沒忘給「小德」屁股後面蓋個「戳」,說是什麼CRC校驗值,怕「小德」在旅行途中缺胳膊少腿,還得麻煩它們重新發送。。。。。我靠~~~~註:很多人弄不清FCS和CRC。所謂的CRC是一種校驗方法,用來確保數據在傳輸過程中不會丟包,損壞等等,FCS是數據包(准確的說是frame)里的一個區域,用來存放CRC的計算結果的。到了目的地之後,目的計算機要檢查FCS里的CRC值,如果與原來的相同,則說明數據在途中沒有損壞。

5.在走出去之前,那些傢伙最後折磨了一次「小德」------把小德身上眾多的0和1,弄成了什麼「高電壓」「低電壓」,在雙絞線上傳送了出去。暈~~出趟門就這么麻煩嗎?

6.坐著雙絞線旅遊,爽!可當看到很多人坐著同軸電纜,還有坐光纖的時候,小德又感覺不是那麼爽了。就在這時,來到了旅途的中轉站------路由器。這地方可是高級場所,人家直接查看IP地址!剩下的一概不管,交給下面的人去做。夠牛吧?路由器的內部也有一張表,叫做路由表,裡面標識著哪一個網路的IP對應著路由器的哪一個埠。這個表也不是天生就有的,而是靠路由器之間互相「學習」之後生成的,當然也可以由管理員手工設定。這個「學習」的過程是依靠路由協議來完成的,比如RIP,EIGRP,OSPF等等。

7.當路由器查看了「小德」的IP地址以後,根據路由表知道了小德要去的網路,接著就把小德轉到了相應的埠了。至此,路由器的主要工作完成,下面又是打包,封裝成frame,轉換成電壓信號等一系列「折騰」的活,就由數據鏈路層和物理層的模塊去干吧。

8.小德從路由器的出口出來,便來到了目的地----電腦B----所屬的網路的默認網關。默認網關可以是路由器的一個埠,也可以是區域網里的各種伺服器。不管怎樣,下面的過程還是一樣的:到交換機里的ARP表查詢「小德」的IP地址,看看屬於哪個區域網段或埠,然後就轉發到B了。

9.進了B的網卡之後,還要層層「剝皮」,基本上和從A出來的程序是一樣的------電腦B先校驗一下CRC值,看看數據是否完整;然後檢查一下frame的封裝,看到是IP協議之後,就把「小德」交給IP「部門」了;IP協議一看目的地址,正確,再看看應用協議,是ICMP。於是知道了該怎麼做了------產生一個回應數據包,(可以命名為「回應小德」),並准備以同樣的順序向遠端的A發送。。至於剛剛收到的那個數據包就丟棄了。

10.「回應小德」這個數據包又開始了上述同樣的循環,只不過這次發送者是B而接收者是A了。

以上是一個最簡單的路由過程,任何復雜的網路都是在次基礎之上實現的。

⑹ 區域網中的數據包是什麼,它的結構與傳輸過程是怎樣的

「包」(Packet)是TCP/IP協議通信傳輸中的數據單位,一般也稱「數據包」。
數據包分為前導符、數據包頭、數據、包尾4部分。
 前導符:通知接收方數據包即將到達。
 數據包頭:指明數據包從何來,到何處去,以及數據包類型。
 數據:數據包攜帶的數據。
 包尾:數據包的幀校驗碼和結束標志。
網路數據包的傳輸過程
 在網路中,發送方計算機將要發送的所有信息都分割成許多小數據包,並將這些小數據包通過連接介質及網路設備傳送至接收方計算機。
 在發送信息時,發送方的系統將把所有發送的位元組累加起來,並將這些數據添加在末尾一同發送出去。
 接受方收到數據包後,首先計算收到的數據總和,並與發送的數據總和相比較。如果二者相同操作結束。如果不同,則說明數據已損壞並丟棄,然後接收方立即向發送方發出重發請求。
 接收方然後將所有收到的小數據包重新組裝起來,從而完成信息的傳遞過程。

⑺ 數據在網路上大概是怎麼傳輸的

如果是乙太網口,必須要用到網卡的MAC地址

⑻ 網路中,數據是怎麼樣傳輸的

通過低延遲實時網路與可編程式控制制器(PLC)相連接,當其在產品線上移動時,感測器網路就能夠捕獲這些產品的信息。這些網路使用專門的工業乙太網通信協議,在數毫秒的時間內就能完成信息的發送,以確保PLC到互聯設備的傳輸操作比任何人為操作都要快。

⑼ 你理解信息在網路中被處理和被傳輸的方式嗎

摘要 您好,很高興回答你的問題。我個人覺得那樣,經過查詢可以知道,現如今電腦發送消息早已不是什麼稀奇的事了,就拿微信來說,基本上我們每天都有人再用電腦發消息,發文件,在網上進行信息互通。那麼你知道發送方的消息是如何被收到方收到的嗎?本篇就講述一下網路傳輸原理過程。

閱讀全文

與數據包如何在網路傳輸相關的資料

熱點內容
網路共享中心沒有網卡 瀏覽:527
電腦無法檢測到網路代理 瀏覽:1376
筆記本電腦一天會用多少流量 瀏覽:595
蘋果電腦整機轉移新機 瀏覽:1380
突然無法連接工作網路 瀏覽:1077
聯通網路怎麼設置才好 瀏覽:1230
小區網路電腦怎麼連接路由器 瀏覽:1054
p1108列印機網路共享 瀏覽:1215
怎麼調節台式電腦護眼 瀏覽:717
深圳天虹蘋果電腦 瀏覽:953
網路總是異常斷開 瀏覽:617
中級配置台式電腦 瀏覽:1012
中國網路安全的戰士 瀏覽:637
同志網站在哪裡 瀏覽:1420
版觀看完整完結免費手機在線 瀏覽:1464
怎樣切換默認數據網路設置 瀏覽:1113
肯德基無線網無法訪問網路 瀏覽:1290
光纖貓怎麼連接不上網路 瀏覽:1496
神武3手游網路連接 瀏覽:969
局網列印機網路共享 瀏覽:1005