當前位置:首頁 » 網路連接 » 報文的序號怎麼找計算機網路
擴展閱讀
Hoenr手機無線網路速度慢 2025-09-26 17:40:58
雷凌怎麼連無線網路 2025-09-26 16:42:11
名詞解釋網路資源共享 2025-09-26 15:44:17

報文的序號怎麼找計算機網路

發布時間: 2023-05-29 00:57:59

⑴ 網路傳輸中分組交換將數據進行分組,每個報文包里有序號,請問數據在傳到哪裡時數據按照序號開始組合

:(1)電路交換:由於電路交換在通信之前要在通信雙方之間建立一條被雙方獨占的物理通路(由通信雙方之間的交換設備和鏈路逐段連接而成),因而有以下優缺點。
優點:
①由於通信線路為通信雙方用戶專用,數據直達,所以傳輸數據的時延非常小。
②通信雙方之間的物理通路一旦建立,雙方可以隨時通信,實時性強。
③雙方通信時按發送順序傳送數據,不存在失序問題。
④電路交換既適用於傳輸模擬信號,也適用於傳輸數字信號。
⑤電路交換的交換的交換設備(交換機等)及控制均較簡單。
缺點:
①電路交換的平均連接建立時間對計算機通信來說嫌長。
②電路交換連接建立後,物理通路被通信雙方獨占,即使通信線路空閑,也不能供其他用戶使用,因而信道利用低。
③電路交換時,數據直達,不同類型、不同規格、不同速率的終端很難相互進行通信,也難以在通信過程中進行差錯控制。
(2)報文交換:報文交換是以報文為數據交換的單位,報文攜帶有目標地址、源地址等信息,在交換結點採用存儲轉發的傳輸方式,因而有以下優缺點:
優點:
①報文交換不需要為通信雙方預先建立一條專用的通信線路,不存在連接建立時延,用戶可隨時發送報文。
②由於採用存儲轉發的傳輸方式,使之具有下列優點:a.在報文交換中便於設置代碼檢驗和數據重發設施,加之交換結點還具有路徑選擇,就可以做到某條傳輸路徑發生故障時,重新選擇另一條路徑傳輸數據,提高了傳輸的可靠性;b.在存儲轉發中容易實現代碼轉換和速率匹配,甚至收發雙方可以不同時處於可用狀態。這樣就便於類型、規格和速度不同的計算機之間進行通信;c.提供多目標服務,即一個報文可以同時發送到多個目的地址,這在電路交換中是很難實現的;d.允許建立數據傳輸的優先順序,使優先順序高的報文優先轉換。
③通信雙方不是固定佔有一條通信線路,而是在不同的時間一段一段地部分佔有這條物理通路,因而大大提高了通信線路的利用率。
缺點:
①由於數據進入交換結點後要經歷存儲、轉發這一過程,從而引起轉發時延(包括接收報文、檢驗正確性、排隊、發送時間等),而且網路的通信量愈大,造成的時延就愈大,因此報文交換的實時性差,不適合傳送實時或互動式業務的數據。
②報文交換只適用於數字信號。
③由於報文長度沒有限制,而每個中間結點都要完整地接收傳來的整個報文,當輸出線路不空閑時,還可能要存儲幾個完整報文等待轉發,要求網路中每個結點有較大的緩沖區。為了降低成本,減少結點的緩沖存儲器的容量,有時要把等待轉發的報文存在磁碟上,進一步增加了傳送時延。
(3)分組交換:分組交換仍採用存儲轉發傳輸方式,但將一個長報文先分割為若干個較短的分組,然後把這些分組(攜帶源、目的地址和編號信息)逐個地發送出去,因此分組交換除了具有報文的優點外,與報文交換相比有以下優缺點:
優點:
①加速了數據在網路中的傳輸。因為分組是逐個傳輸,可以使後一個分組的存儲操作與前一個分組的轉發操作並行,這種流水線式傳輸方式減少了報文的傳輸時間。此外,傳輸一個分組所需的緩沖區比傳輸一份報文所需的緩沖區小得多,這樣因緩沖區不足而等待發送的機率及等待的時間也必然少得多。
②簡化了存儲管理。因為分組的長度固定,相應的緩沖區的大小也固定,在交換結點中存儲器的管理通常被簡化為對緩沖區的管理,相對比較容易。
③減少了出錯機率和重發數據量。因為分組較短,其出錯機率必然減少,每次重發的數據量也就大大減少,這樣不僅提高了可靠性,也減少了傳輸時延。
④由於分組短小,更適用於採用優先順序策略,便於及時傳送一些緊急數據,因此對於計算機之間的突發式的數據通信,分組交換顯然更為合適些。
缺點:
①盡管分組交換比報文交換的傳輸時延少,但仍存在存儲轉發時延,而且其結點交換機必須具有更強的處理能力。
②分組交換與報文交換一樣,每個分組都要加上源、目的地址和分組編號等信息,使傳送的信息量大約增大5%~10%,一定程度上降低了通信效率,增加了處理的時間,使控制復雜,時延增加。
③當分組交換採用數據報服務時,可能出現失序、丟失或重復分組,分組到達目的結點時,要對分組按編號進行排序等工作,增加了麻煩。若採用虛電路服務,雖無失序問題,但有呼叫建立、數據傳輸和虛電路釋放三個過程。
總之,若要傳送的數據量很大,且其傳送時間遠大於呼叫時間,則採用電路交換較為合適;當端到端的通路有很多段的鏈路組成時,採用分組交換傳送數據較為合適。從提高整個網路的信道利用率上看,報文交換和分組交換優於電路交換,其中分組交換比報文交換的時延小,尤其適合於計算機之間的突發式的數據通信。

計算機網路自學筆記:TCP

如果你在學習這門課程,僅僅為了理解網路工作原理,那麼只要了解TCP是可靠傳輸,數據傳輸丟失時會重傳就可以了。如果你還要參加研究生考試或者公司面試等,那麼下面內容很有可能成為考查的知識點,主要的重點是序號/確認號的編碼、超時定時器的設置、可靠傳輸和連接的管理。

1 TCP連接

TCP面向連接,在一個應用進程開始向另一個應用進程發送數據之前,這兩個進程必須先相互「握手」,即它們必須相互發送某些預備報文段,以建立連接。連接的實質是雙方都初始化與連接相關的發送/接收緩沖區,以及許多TCP狀態變數。

這種「連接」不是一條如電話網路中端到端的電路,因為它們的狀態完全保留在兩個端系統中。

TCP連接提供的是全雙工服務 ,應用層數據就可在從進程B流向進程A的同時,也從進程A流向進程B。

TCP連接也總是點對點的 ,即在單個發送方與單個接收方之間建立連接。

一個客戶機進程向伺服器進程發送數據時,客戶機進程通過套接字傳遞數據流。

客戶機操作系統中運行的 TCP軟體模塊首先將這些數據放到該連接的發送緩存里 ,然後會不時地從發送緩存里取出一塊數據發送。

TCP可從緩存中取出並放入報文段中發送的數據量受限於最大報文段長MSS,通常由最大鏈路層幀長度來決定(也就是底層的通信鏈路決定)。 例如一個鏈路層幀的最大長度1500位元組,除去數據報頭部長度20位元組,TCP報文段的頭部長度20位元組,MSS為1460位元組。

報文段被往下傳給網路層,網路層將其封裝在網路層IP數據報中。然後這些數據報被發送到網路中。

當TCP在另一端接收到一個報文段後,該報文段的數據就被放人該連接的接收緩存中。應用程序從接收緩存中讀取數據流(注意是應用程序來讀,不是操作系統推送)。

TCP連接的每一端都有各自的發送緩存和接收緩存。

因此TCP連接的組成包括:主機上的緩存、控制變數和與一個進程連接的套接字變數名,以及另一台主機上的一套緩存、控制變數和與一個進程連接的套接字。

在這兩台主機之間的路由器、交換機中,沒有為該連接分配任何緩存和控制變數。

2報文段結構

TCP報文段由首部欄位和一個數據欄位組成。數據欄位包含有應用層數據。

由於MSS限制了報文段數據欄位的最大長度。當TCP發送一個大文件時,TCP通常是將文件劃分成長度為MSS的若干塊。

TCP報文段的結構。

首部包括源埠號和目的埠號,它用於多路復用/多路分解來自或送至上層應用的數據。另外,TCP首部也包括校驗和欄位。報文段首部還包含下列欄位:

32比特的序號欄位和32比特的確認號欄位。這些欄位被TCP發送方和接收方用來實現可靠數據傳輸服務。

16比特的接收窗口欄位,該欄位用於流量控制。該欄位用於指示接收方能夠接受的位元組數量。

4比特的首部長度欄位,該欄位指示以32比特的字為單位的TCP首部長度。一般TCP首部的長度就是20位元組。

可選與變長的選項欄位,該欄位用於當發送方與接收方協商最大報文段長度,或在高速網路環境下用作窗口調節因子時使用。

標志欄位ACK比特用於指示確認欄位中的ACK值的有效性,即該報文段包括一個對已被成功接收報文段的確認。 SYN和FIN比特用於連接建立和拆除。 PSH、URG和緊急指針欄位通常沒有使用。

•序號和確認號

TCP報文段首部兩個最重要的欄位是序號欄位和確認號欄位。

TCP把數據看成一個無結構的但是有序的位元組流。TCP序號是建立在傳送的位元組流之上,而不是建立在傳送的報文段的序列之上。

一個報文段的序號是該報文段首位元組在位元組流中的編號。

例如,假設主機A上的一個進程想通過一條TCP連接向主機B上的一個進程發送一個數據流。主機A中的TCP將對數據流中的每一個位元組進行編號。假定數據流由一個包含4500位元組的文件組成(可以理解為應用程序調用send函數傳遞過來的數據長度),MSS為1000位元組(鏈路層一次能夠傳輸的位元組數),如果主機決定數據流的首位元組編號是7。TCP模塊將為該數據流構建5個報文段(也就是分5個IP數據報)。第一個報文段的序號被賦為7;第二個報文段的序號被賦為1007,第三個報文段的序號被賦為2007,以此類推。前面4個報文段的長度是1000,最後一個是500。

確認號要比序號難理解一些。前面講過,TCP是全雙工的,因此主機A在向主機B發送數據的同時,也可能接收來自主機B的數據。從主機B到達的每個報文段中的序號欄位包含了從B流向A的數據的起始位置。 因此主機B填充進報文段的確認號是主機B期望從主機A收到的下一報文段首位元組的序號。

假設主機B已收到了來自主機A編號為7-1006的所有位元組,同時假設它要發送一個報文段給主機A。主機B等待主機A的數據流中位元組1007及後續所有位元組。所以,主機B會在它發往主機A的報文段的確認號欄位中填上1007。

再舉一個例子,假設主機B已收到一個來自主機A的包含位元組7-1006的報文段,以及另一個包含位元組2007-3006的報文段。由於某種原因,主機A還沒有收到位元組1007-2006的報文段。

在這個例子中,主機A為了重組主機B的數據流,仍在等待位元組1007。因此,A在收到包含位元組2007-3006的報文段時,將會又一次在確認號欄位中包含1007。 因為TCP只確認數據流中至第一個丟失報文段之前的位元組數據,所以TCP被稱為是採用累積確認。

TCP的實現有兩個基本的選擇:

1接收方立即丟棄失序報文段;

2接收方保留失序的位元組,並等待缺少的位元組以填補該間隔。

一條TCP連接的雙方均可隨機地選擇初始序號。 這樣做可以減少將那些仍在網路中的來自兩台主機之間先前連接的報文段,誤認為是新建連接所產生的有效報文段的可能性。

•例子telnet

Telnet由是一個用於遠程登錄的應用層協議。它運行在TCP之上,被設計成可在任意一對主機之間工作。

假設主機A發起一個與主機B的Telnet會話。因為是主機A發起該會話,因此主機A被標記為客戶機,主機B被標記為伺服器。用戶鍵入的每個字元(在客戶機端)都會被發送至遠程主機。遠程主機收到後會復制一個相同的字元發回客戶機,並顯示在Telnet用戶的屏幕上。這種「回顯」用於確保由用戶發送的字元已經被遠程主機收到並處理。因此,在從用戶擊鍵到字元顯示在用戶屏幕上之間的這段時間內,每個字元在網路中傳輸了兩次。

現在假設用戶輸入了一個字元「C」,假設客戶機和伺服器的起始序號分別是42和79。前面講過,一個報文段的序號就是該報文段數據欄位首位元組的序號。因此,客戶機發送的第一個報文段的序號為42,伺服器發送的第一個報文段的序號為79。前面講過,確認號就是主機期待的數據的下一個位元組序號。在TCP連接建立後但沒有發送任何數據之前,客戶機等待位元組79,而伺服器等待位元組42。

如圖所示,共發了3個報文段。第一個報文段是由客戶機發往伺服器,其數據欄位里包含一位元組的字元「C」的ASCII碼,其序號欄位里是42。另外,由於客戶機還沒有接收到來自伺服器的任何數據,因此該報文段中的確認號欄位里是79。

第二個報文段是由伺服器發往客戶機。它有兩個目的:第一個目的是為伺服器所收到的數據提供確認。伺服器通過在確認號欄位中填入43,告訴客戶機它已經成功地收到位元組42及以前的所有位元組,現在正等待著位元組43的出現。第二個目的是回顯字元「C」。因此,在第二個報文段的數據欄位里填入的是字元「C」的ASCII碼,第二個報文段的序號為79,它是該TCP連接上從伺服器到客戶機的數據流的起始序號,也是伺服器要發送的第一個位元組的數據。

這里客戶機到伺服器的數據的確認被裝載在一個伺服器到客戶機的數據的報文段中,這種確認被稱為是捎帶確認.

第三個報文段是從客戶機發往伺服器的。它的唯一目的是確認已從伺服器收到的數據。

3往返時延的估計與超時

TCP如同前面所講的rdt協議一樣,採用超時/重傳機制來處理報文段的丟失問題。最重要的一個問題就是超時間隔長度的設置。顯然,超時間隔必須大於TCP連接的往返時延RTT,即從一個報文段發出到收到其確認時。否則會造成不必要的重傳。

•估計往返時延

TCP估計發送方與接收方之間的往返時延是通過採集報文段的樣本RTT來實現的,就是從某報文段被發出到對該報文段的確認被收到之間的時間長度。

也就是說TCP為一個已發送的但目前尚未被確認的報文段估計sampleRTT,從而產生一個接近每個RTT的采樣值。但是,TCP不會為重傳的報文段計算RTT。

為了估計一個典型的RTT,採取了某種對RTT取平均值的辦法。TCP據下列公式來更新

EstimatedRTT=(1-)*EstimatedRTT+*SampleRTT

即估計RTT的新值是由以前估計的RTT值與sampleRTT新值加權組合而成的。

參考值是a=0.125,因此是一個加權平均值。顯然這個加權平均對最新樣本賦予的權值

要大於對老樣本賦予的權值。因為越新的樣本能更好地反映出網路當前的擁塞情況。從統計學觀點來講,這種平均被稱為指數加權移動平均

除了估算RTT外,還需要測量RTT的變化,RTT偏差的程度,因為直接使用平均值設置計時器會有問題(太靈敏)。

DevRTT=(1-β)*DevRTT+β*|SampleRTT-EstimatedRTT|

RTT偏差也使用了指數加權移動平均。B取值0.25.

•設置和管理重傳超時間隔

假設已經得到了估計RTT值和RTT偏差值,那麼TCP超時間隔應該用什麼值呢?TCP將超時間隔設置成大於等於估計RTT值和4倍的RTT偏差值,否則將造成不必要的重傳。但是超時間隔也不應該比估計RTT值大太多,否則當報文段丟失時,TCP不能很快地重傳該報文段,從而將給上層應用帶來很大的數據傳輸時延。因此,要求將超時間隔設為估計RTT值加上一定餘量。當估計RTT值波動較大時,這個余最應該大些;當波動比較小時,這個餘量應該小些。因此使用4倍的偏差值來設置重傳時間。

TimeoutInterval=EstimatedRTT+4*DevRTT

4可信數據傳輸

網際網路的網路層服務是不可靠的。IP不保證數據報的交付,不保證數據報的按序交付,也不保證數據報中數據的完整性。

TCP在IP不可靠的盡力而為服務基礎上建立了一種可靠數據傳輸服務。

TCP提供可靠數據傳輸的方法涉及前面學過的許多原理。

TCP採用流水線協議、累計確認。

TCP推薦的定時器管理過程使用單一的重傳定時器,即使有多個已發送但還未被確認的報文段也一樣。重傳由超時和多個ACK觸發。

在TCP發送方有3種與發送和重傳有關的主要事件:從上層應用程序接收數據,定時器超時和收到確認ACK。

從上層應用程序接收數據。一旦這個事件發生,TCP就從應用程序接收數據,將數據封裝在一個報文段中,並將該報文段交給IP。注意到每一個報文段都包含一個序號,這個序號就是該報文段第一個數據位元組的位元組流編號。如果定時器還沒有計時,則當報文段被傳給IP時,TCP就啟動一個該定時器。

第二個事件是超時。TCP通過重傳引起超時的報文段來響應超時事件。然後TCP重啟定時器。

第三個事件是一個來自接收方的確認報文段(ACK)。當該事件發生時,TCP將ACK的值y與變數SendBase(發送窗口的基地址)進行比較。TCP狀態變數SendBase是最早未被確認的位元組的序號。就是指接收方已正確按序接收到數據的最後一個位元組的序號。TCP採用累積確認,所以y確認了位元組編號在y之前的所有位元組都已經收到。如果Y>SendBase,則該ACK是在確認一個或多個先前未被確認的報文段。因此發送方更新其SendBase變數,相當於發送窗口向前移動。

另外,如果當前有未被確認的報文段,TCP還要重新啟動定時器。

快速重傳

超時觸發重傳存在的另一個問題是超時周期可能相對較長。當一個報文段丟失時,這種長超時周期迫使發送方等待很長時間才重傳丟失的分組,因而增加了端到端時延。所以通常發送方可在超時事件發生之前通過觀察冗餘ACK來檢測丟包情況。

冗餘ACK就是接收方再次確認某個報文段的ACK,而發送方先前已經收到對該報文段的確認。

當TCP接收方收到一個序號比所期望的序號大的報文段時,它認為檢測到了數據流中的一個間隔,即有報文段丟失。這個間隔可能是由於在網路中報文段丟失或重新排序造成的。因為TCP使用累計確認,所以接收方不向發送方發回否定確認,而是對最後一個正確接收報文段進行重復確認(即產生一個冗餘ACK)

如果TCP發送方接收到對相同報文段的3個冗餘ACK.它就認為跟在這個已被確認過3次的報文段之後的報文段已經丟失。一旦收到3個冗餘ACK,TCP就執行快速重傳 ,

即在該報文段的定時器過期之前重傳丟失的報文段。

5流量控制

前面講過,一條TCP連接雙方的主機都為該連接設置了接收緩存。當該TCP連接收到正確、按序的位元組後,它就將數據放入接收緩存。相關聯的應用進程會從該緩存中讀取數據,但沒必要數據剛一到達就立即讀取。事實上,接收方應用也許正忙於其他任務,甚至要過很長時間後才去讀取該數據。如果應用程序讀取數據時相當緩慢,而發送方發送數據太多、太快,會很容易使這個連接的接收緩存溢出。

TCP為應用程序提供了流量控制服務以消除發送方導致接收方緩存溢出的可能性。因此,可以說 流量控制是一個速度匹配服務,即發送方的發送速率與接收方應用程序的讀速率相匹配。

前面提到過,TCP發送方也可能因為IP網路的擁塞而被限制,這種形式的發送方的控制被稱為擁塞控制(congestioncontrol)。

TCP通過讓接收方維護一個稱為接收窗口的變數來提供流量控制。接收窗口用於告訴發送方,該接收方還有多少可用的緩存空間。因為TCP是全雙工通信,在連接兩端的發送方都各自維護一個接收窗口變數。 主機把當前的空閑接收緩存大小值放入它發給對方主機的報文段接收窗口欄位中,通知對方它在該連接的緩存中還有多少可用空間。

6 TCP連接管理

客戶機中的TCP會用以下方式與伺服器建立一條TCP連接:

第一步: 客戶機端首先向伺服器發送一個SNY比特被置為1報文段。該報文段中不包含應用層數據,這個特殊報文段被稱為SYN報文段。另外,客戶機會選擇一個起始序號,並將其放置到報文段的序號欄位中。為了避免某些安全性攻擊,這里一般隨機選擇序號。

第二步: 一旦包含TCP報文段的用戶數據報到達伺服器主機,伺服器會從該數據報中提取出TCPSYN報文段,為該TCP連接分配TCP緩存和控制變數,並向客戶機TCP發送允許連接的報文段。這個允許連接的報文段還是不包含應用層數據。但是,在報文段的首部卻包含3個重要的信息。

首先,SYN比特被置為1。其次,該 TCP報文段首部的確認號欄位被置為客戶端序號+1最後,伺服器選擇自己的初始序號,並將其放置到TCP報文段首部的序號欄位中。 這個允許連接的報文段實際上表明了:「我收到了你要求建立連接的、帶有初始序號的分組。我同意建立該連接,我自己的初始序號是XX」。這個同意連接的報文段通常被稱為SYN+ACK報文段。

第三步: 在收到SYN+ACK報文段後,客戶機也要給該連接分配緩存和控制變數。客戶機主機還會向伺服器發送另外一個報文段,這個報文段對伺服器允許連接的報文段進行了確認。因為連接已經建立了,所以該ACK比特被置為1,稱為ACK報文段,可以攜帶數據。

一旦以上3步完成,客戶機和伺服器就可以相互發送含有數據的報文段了。

為了建立連接,在兩台主機之間發送了3個分組,這種連接建立過程通常被稱為 三次握手(SNY、SYN+ACK、ACK,ACK報文段可以攜帶數據) 。這個過程發生在客戶機connect()伺服器,伺服器accept()客戶連接的階段。

假設客戶機應用程序決定要關閉該連接。(注意,伺服器也能選擇關閉該連接)客戶機發送一個FIN比特被置為1的TCP報文段,並進人FINWAIT1狀態。

當處在FINWAIT1狀態時,客戶機TCP等待一個來自伺服器的帶有ACK確認信息的TCP報文段。當它收到該報文段時,客戶機TCP進入FINWAIT2狀態。

當處在FINWAIT2狀態時,客戶機等待來自伺服器的FIN比特被置為1的另一個報文段,

收到該報文段後,客戶機TCP對伺服器的報文段進行ACK確認,並進入TIME_WAIT狀態。TIME_WAIT狀態使得TCP客戶機重傳最終確認報文,以防該ACK丟失。在TIME_WAIT狀態中所消耗的時間是與具體實現有關的,一般是30秒或更多時間。

經過等待後,連接正式關閉,客戶機端所有與連接有關的資源將被釋放。 因此TCP連接的關閉需要客戶端和伺服器端互相交換連接關閉的FIN、ACK置位報文段。

⑶ 計算機網路技術

好想看過這幾題 你在Google 上面搜哈 估計搜的出來

⑷ 計算機網路:主機A向主機B連續發送了兩個TCP報文段,其序號分別為70和100。

確認號指的是接收方想要接收的報文段的序號,比如我想要1-5的報文,在接收過程中我收到了2-5,而1丟了,這時候我肯定跟你說,再發一遍1,就是這個意思。
在這里序號70的丟了,所以確認號就是70,和後面的沒關系。

⑸ 計算機網路知識點

一、計算機網路概述

1.1 計算機網路的分類

按照網路的作用范圍:廣域網(WAN)、城域網(MAN)、區域網(LAN);

按照網路使用者:公用網路、專用網路。

1.2 計算機網路的層次結構

TCP/IP四層模型與OSI體系結構對比:

1.3 層次結構設計的基本原則

各層之間是相互獨立的;

每一層需要有足夠的靈活性;

各層之間完全解耦。

1.4 計算機網路的性能指標

速率:bps=bit/s 時延:發送時延、傳播時延、排隊時延、處理時延 往返時間RTT:數據報文在端到端通信中的來回一次的時間。

二、物理層

物理層的作用:連接不同的物理設備,傳輸比特流。該層為上層協議提供了一個傳輸數據的可靠的物理媒體。簡單的說,物理層確保原始的數據可在各種物理媒體上傳輸。

物理層設備:

中繼器【Repeater,也叫放大器】:同一區域網的再生信號;兩埠的網段必須同一協議;5-4-3規程:10BASE-5乙太網中,最多串聯4個中繼器,5段中只能有3個連接主機;

集線器:同一區域網的再生、放大信號(多埠的中繼器);半雙工,不能隔離沖突域也不能隔離廣播域。

信道的基本概念:信道是往一個方向傳輸信息的媒體,一條通信電路包含一個發送信道和一個接受信道。

單工通信信道:只能一個方向通信,沒有反方向反饋的信道;

半雙工通信信道:雙方都可以發送和接受信息,但不能同時發送也不能同時接收;

全雙工通信信道:雙方都可以同時發送和接收。

三、數據鏈路層

3.1 數據鏈路層概述

數據鏈路層在物理層提供的服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層來的數據可靠地傳輸到相鄰節點的目標機網路層。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。

該層的作用包括: 物理地址定址、數據的成幀、流量控制、數據的檢錯、重發 等。

有關數據鏈路層的重要知識點:

數據鏈路層為網路層提供可靠的數據傳輸;

基本數據單位為幀;

主要的協議:乙太網協議;

兩個重要設備名稱:網橋和交換機。

封裝成幀:「幀」是 數據鏈路層 數據的基本單位:

透明傳輸:「透明」是指即使控制字元在幀數據中,但是要當做不存在去處理。即在控制字元前加上轉義字元ESC。

3.2 數據鏈路層的差錯監測

差錯檢測:奇偶校驗碼、循環冗餘校驗碼CRC

奇偶校驗碼–局限性:當出錯兩位時,檢測不到錯誤。

循環冗餘檢驗碼:根據傳輸或保存的數據而產生固定位數校驗碼。

3.3 最大傳輸單元MTU

最大傳輸單元MTU(Maximum Transmission Unit),數據鏈路層的數據幀不是無限大的,數據幀長度受MTU限制.

路徑MTU:由鏈路中MTU的最小值決定。

3.4 乙太網協議詳解

MAC地址:每一個設備都擁有唯一的MAC地址,共48位,使用十六進製表示。

乙太網協議:是一種使用廣泛的區域網技術,是一種應用於數據鏈路層的協議,使用乙太網可以完成相鄰設備的數據幀傳輸:

區域網分類:

Ethernet乙太網IEEE802.3:

乙太網第一個廣泛部署的高速區域網

乙太網數據速率快

乙太網硬體價格便宜,網路造價成本低

乙太網幀結構:

類型:標識上層協議(2位元組)

目的地址和源地址:MAC地址(每個6位元組)

數據:封裝的上層協議的分組(46~1500位元組)

CRC:循環冗餘碼(4位元組)

乙太網最短幀:乙太網幀最短64位元組;乙太網幀除了數據部分18位元組;數據最短46位元組;

MAC地址(物理地址、區域網地址)

MAC地址長度為6位元組,48位;

MAC地址具有唯一性,每個網路適配器對應一個MAC地址;

通常採用十六進製表示法,每個位元組表示一個十六進制數,用 - 或 : 連接起來;

MAC廣播地址:FF-FF-FF-FF-FF-FF。

四、網路層

網路層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括定址和路由選擇、連接的建立、保持和終止等。數據交換技術是報文交換(基本上被分組所替代):採用儲存轉發方式,數據交換單位是報文。

網路層中涉及眾多的協議,其中包括最重要的協議,也是TCP/IP的核心協議——IP協議。IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。IP協議的主要功能有:無連接數據報傳輸、數據報路由選擇和差錯控制。

與IP協議配套使用實現其功能的還有地址解析協議ARP、逆地址解析協議RARP、網際網路報文協議ICMP、網際網路組管理協議IGMP。具體的協議我們會在接下來的部分進行總結,有關網路層的重點為:

1、網路層負責對子網間的數據包進行路由選擇。此外,網路層還可以實現擁塞控制、網際互連等功能;

2、基本數據單位為IP數據報;

3、包含的主要協議:

IP協議(Internet Protocol,網際網路互聯協議);

ICMP協議(Internet Control Message Protocol,網際網路控制報文協議);

ARP協議(Address Resolution Protocol,地址解析協議);

RARP協議(Reverse Address Resolution Protocol,逆地址解析協議)。

4、重要的設備:路由器。

路由器相關協議

4.1 IP協議詳解

IP網際協議是 Internet 網路層最核心的協議。虛擬互聯網路的產生:實際的計算機網路錯綜復雜;物理設備通過使用IP協議,屏蔽了物理網路之間的差異;當網路中主機使用IP協議連接時,無需關注網路細節,於是形成了虛擬網路。

IP協議使得復雜的實際網路變為一個虛擬互聯的網路;並且解決了在虛擬網路中數據報傳輸路徑的問題。

其中,版本指IP協議的版本,佔4位,如IPv4和IPv6;首部位長度表示IP首部長度,佔4位,最大數值位15;總長度表示IP數據報總長度,佔16位,最大數值位65535;TTL表示IP數據報文在網路中的壽命,佔8位;協議表明IP數據所攜帶的具體數據是什麼協議的,如TCP、UDP。

4.2 IP協議的轉發流程

4.3 IP地址的子網劃分

A類(8網路號+24主機號)、B類(16網路號+16主機號)、C類(24網路號+8主機號)可以用於標識網路中的主機或路由器,D類地址作為組廣播地址,E類是地址保留。

4.4 網路地址轉換NAT技術

用於多個主機通過一個公有IP訪問訪問互聯網的私有網路中,減緩了IP地址的消耗,但是增加了網路通信的復雜度。

NAT 工作原理:

從內網出去的IP數據報,將其IP地址替換為NAT伺服器擁有的合法的公共IP地址,並將替換關系記錄到NAT轉換表中;

從公共互聯網返回的IP數據報,依據其目的的IP地址檢索NAT轉換表,並利用檢索到的內部私有IP地址替換目的IP地址,然後將IP數據報轉發到內部網路。

4.5 ARP協議與RARP協議

地址解析協議 ARP(Address Resolution Protocol):為網卡(網路適配器)的IP地址到對應的硬體地址提供動態映射。可以把網路層32位地址轉化為數據鏈路層MAC48位地址。

ARP 是即插即用的,一個ARP表是自動建立的,不需要系統管理員來配置。

RARP(Reverse Address Resolution Protocol)協議指逆地址解析協議,可以把數據鏈路層MAC48位地址轉化為網路層32位地址。

4.6 ICMP協議詳解

網際控制報文協議(Internet Control Message Protocol),可以報告錯誤信息或者異常情況,ICMP報文封裝在IP數據報當中。

ICMP協議的應用:

Ping應用:網路故障的排查;

Traceroute應用:可以探測IP數據報在網路中走過的路徑。

4.7網路層的路由概述

關於路由演算法的要求:正確的完整的、在計算上應該盡可能是簡單的、可以適應網路中的變化、穩定的公平的。

自治系統AS: 指處於一個管理機構下的網路設備群,AS內部網路自治管理,對外提供一個或多個出入口,其中自治系統內部的路由協議為內部網關協議,如RIP、OSPF等;自治系統外部的路由協議為外部網關協議,如BGP。

靜態路由: 人工配置,難度和復雜度高;

動態路由:

鏈路狀態路由選擇演算法LS:向所有隔壁路由發送信息收斂快;全局式路由選擇演算法,每個路由器計算路由時,需構建整個網路拓撲圖;利用Dijkstra演算法求源端到目的端網路的最短路徑;Dijkstra(迪傑斯特拉)演算法

距離-向量路由選擇演算法DV:向所有隔壁路由發送信息收斂慢、會存在迴路;基礎是Bellman-Ford方程(簡稱B-F方程);

4.8 內部網關路由協議之RIP協議

路由信息協議 RIP(Routing Information Protocol)【應用層】,基於距離-向量的路由選擇演算法,較小的AS(自治系統),適合小型網路;RIP報文,封裝進UDP數據報。

RIP協議特性:

RIP在度量路徑時採用的是跳數(每個路由器維護自身到其他每個路由器的距離記錄);

RIP的費用定義在源路由器和目的子網之間;

RIP被限制的網路直徑不超過15跳;

和隔壁交換所有的信息,30主動一次(廣播)。

4.9 內部網關路由協議之OSPF協議

開放最短路徑優先協議 OSPF(Open Shortest Path First)【網路層】,基於鏈路狀態的路由選擇演算法(即Dijkstra演算法),較大規模的AS ,適合大型網路,直接封裝在IP數據報傳輸。

OSPF協議優點:

安全;

支持多條相同費用路徑;

支持區別化費用度量;

支持單播路由和多播路由;

分層路由。

RIP與OSPF的對比(路由演算法決定其性質):

4.10外部網關路由協議之BGP協議

BGP(Border Gateway Protocol)邊際網關協議【應用層】:是運行在AS之間的一種協議,尋找一條好路由:首次交換全部信息,以後只交換變化的部分,BGP封裝進TCP報文段.

五、傳輸層

第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。

傳輸層的任務是根據通信子網的特性,最佳的利用網路資源,為兩個端系統的會話層之間,提供建立、維護和取消傳輸連接的功能,負責端到端的可靠數據傳輸。在這一層,信息傳送的協議數據單元稱為段或報文。

網路層只是根據網路地址將源結點發出的數據包傳送到目的結點,而傳輸層則負責將數據可靠地傳送到相應的埠。

有關網路層的重點:

傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;

包含的主要協議:TCP協議(Transmission Control Protocol,傳輸控制協議)、UDP協議(User Datagram Protocol,用戶數據報協議);

重要設備:網關。

5.1 UDP協議詳解

UDP(User Datagram Protocol: 用戶數據報協議),是一個非常簡單的協議。

UDP協議的特點:

UDP是無連接協議;

UDP不能保證可靠的交付數據;

UDP是面向報文傳輸的;

UDP沒有擁塞控制;

UDP首部開銷很小。

UDP數據報結構:

首部:8B,四欄位/2B【源埠 | 目的埠 | UDP長度 | 校驗和】 數據欄位:應用數據

5.2 TCP協議詳解

TCP(Transmission Control Protocol: 傳輸控制協議),是計算機網路中非常復雜的一個協議。

TCP協議的功能:

對應用層報文進行分段和重組;

面向應用層實現復用與分解;

實現端到端的流量控制;

擁塞控制;

傳輸層定址;

對收到的報文進行差錯檢測(首部和數據部分都檢錯);

實現進程間的端到端可靠數據傳輸控制。

TCP協議的特點:

TCP是面向連接的協議;

TCP是面向位元組流的協議;

TCP的一個連接有兩端,即點對點通信;

TCP提供可靠的傳輸服務;

TCP協議提供全雙工通信(每條TCP連接只能一對一);

5.2.1 TCP報文段結構:

最大報文段長度:報文段中封裝的應用層數據的最大長度。

TCP首部:

序號欄位:TCP的序號是對每個應用層數據的每個位元組進行編號

確認序號欄位:期望從對方接收數據的位元組序號,即該序號對應的位元組尚未收到。用ack_seq標識;

TCP段的首部長度最短是20B ,最長為60位元組。但是長度必須為4B的整數倍

TCP標記的作用:

5.3 可靠傳輸的基本原理

基本原理:

不可靠傳輸信道在數據傳輸中可能發生的情況:比特差錯、亂序、重傳、丟失

基於不可靠信道實現可靠數據傳輸採取的措施:

差錯檢測:利用編碼實現數據包傳輸過程中的比特差錯檢測 確認:接收方向發送方反饋接收狀態 重傳:發送方重新發送接收方沒有正確接收的數據 序號:確保數據按序提交 計時器:解決數據丟失問題;

停止等待協議:是最簡單的可靠傳輸協議,但是該協議對信道的利用率不高。

連續ARQ(Automatic Repeat reQuest:自動重傳請求)協議:滑動窗口+累計確認,大幅提高了信道的利用率。

5.3.1TCP協議的可靠傳輸

基於連續ARQ協議,在某些情況下,重傳的效率並不高,會重復傳輸部分已經成功接收的位元組。

5.3.2 TCP協議的流量控制

流量控制:讓發送方發送速率不要太快,TCP協議使用滑動窗口實現流量控制。

5.4 TCP協議的擁塞控制

擁塞控制與流量控制的區別:流量控制考慮點對點的通信量的控制,而擁塞控制考慮整個網路,是全局性的考慮。擁塞控制的方法:慢啟動演算法+擁塞避免演算法。

慢開始和擁塞避免:

【慢開始】擁塞窗口從1指數增長;

到達閾值時進入【擁塞避免】,變成+1增長;

【超時】,閾值變為當前cwnd的一半(不能<2);

再從【慢開始】,擁塞窗口從1指數增長。

快重傳和快恢復:

發送方連續收到3個冗餘ACK,執行【快重傳】,不必等計時器超時;

執行【快恢復】,閾值變為當前cwnd的一半(不能<2),並從此新的ssthresh點進入【擁塞避免】。

5.5 TCP連接的三次握手(重要)

TCP三次握手使用指令:

面試常客:為什麼需要三次握手?

第一次握手:客戶發送請求,此時伺服器知道客戶能發;

第二次握手:伺服器發送確認,此時客戶知道伺服器能發能收;

第三次握手:客戶發送確認,此時伺服器知道客戶能收。

建立連接(三次握手):

第一次: 客戶向伺服器發送連接請求段,建立連接請求控制段(SYN=1),表示傳輸的報文段的第一個數據位元組的序列號是x,此序列號代表整個報文段的序號(seq=x);客戶端進入 SYN_SEND (同步發送狀態);

第二次: 伺服器發回確認報文段,同意建立新連接的確認段(SYN=1),確認序號欄位有效(ACK=1),伺服器告訴客戶端報文段序號是y(seq=y),表示伺服器已經收到客戶端序號為x的報文段,准備接受客戶端序列號為x+1的報文段(ack_seq=x+1);伺服器由LISTEN進入SYN_RCVD (同步收到狀態);

第三次: 客戶對伺服器的同一連接進行確認.確認序號欄位有效(ACK=1),客戶此次的報文段的序列號是x+1(seq=x+1),客戶期望接受伺服器序列號為y+1的報文段(ack_seq=y+1);當客戶發送ack時,客戶端進入ESTABLISHED 狀態;當服務收到客戶發送的ack後,也進入ESTABLISHED狀態;第三次握手可攜帶數據;

5.6 TCP連接的四次揮手(重要)

釋放連接(四次揮手)

第一次: 客戶向伺服器發送釋放連接報文段,發送端數據發送完畢,請求釋放連接(FIN=1),傳輸的第一個數據位元組的序號是x(seq=x);客戶端狀態由ESTABLISHED進入FIN_WAIT_1(終止等待1狀態);

第二次: 伺服器向客戶發送確認段,確認字型大小段有效(ACK=1),伺服器傳輸的數據序號是y(seq=y),伺服器期望接收客戶數據序號為x+1(ack_seq=x+1);伺服器狀態由ESTABLISHED進入CLOSE_WAIT(關閉等待);客戶端收到ACK段後,由FIN_WAIT_1進入FIN_WAIT_2;

第三次: 伺服器向客戶發送釋放連接報文段,請求釋放連接(FIN=1),確認字型大小段有效(ACK=1),表示伺服器期望接收客戶數據序號為x+1(ack_seq=x+1);表示自己傳輸的第一個位元組序號是y+1(seq=y+1);伺服器狀態由CLOSE_WAIT 進入 LAST_ACK (最後確認狀態);

第四次: 客戶向伺服器發送確認段,確認字型大小段有效(ACK=1),表示客戶傳輸的數據序號是x+1(seq=x+1),表示客戶期望接收伺服器數據序號為y+1+1(ack_seq=y+1+1);客戶端狀態由FIN_WAIT_2進入TIME_WAIT,等待2MSL時間,進入CLOSED狀態;伺服器在收到最後一次ACK後,由LAST_ACK進入CLOSED;

為什麼需要等待2MSL?

最後一個報文沒有確認;

確保發送方的ACK可以到達接收方;

2MSL時間內沒有收到,則接收方會重發;

確保當前連接的所有報文都已經過期。

六、應用層

為操作系統或網路應用程序提供訪問網路服務的介面。應用層重點:

數據傳輸基本單位為報文;

包含的主要協議:FTP(文件傳送協議)、Telnet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議(Hyper Text Transfer Protocol)。

6.1 DNS詳解

DNS(Domain Name System:域名系統)【C/S,UDP,埠53】:解決IP地址復雜難以記憶的問題,存儲並完成自己所管轄范圍內主機的 域名 到 IP 地址的映射。

域名解析的順序:

【1】瀏覽器緩存,

【2】找本機的hosts文件,

【3】路由緩存,

【4】找DNS伺服器(本地域名、頂級域名、根域名)->迭代解析、遞歸查詢。

IP—>DNS服務—>便於記憶的域名

域名由點、字母和數字組成,分為頂級域(com,cn,net,gov,org)、二級域(,taobao,qq,alibaba)、三級域(www)(12-2-0852)

6.2 DHCP協議詳解

DHCP(Dynamic Configuration Protocol:動態主機設置協議):是一個區域網協議,是應用UDP協議的應用層協議。作用:為臨時接入區域網的用戶自動分配IP地址。

6.3 HTTP協議詳解

文件傳輸協議(FTP):控制連接(埠21):傳輸控制信息(連接、傳輸請求),以7位ASCII碼的格式。整個會話期間一直打開。

HTTP(HyperText Transfer Protocol:超文本傳輸協議)【TCP,埠80】:是可靠的數據傳輸協議,瀏覽器向伺服器發收報文前,先建立TCP連接,HTTP使用TCP連接方式(HTTP自身無連接)。

HTTP請求報文方式:

GET:請求指定的頁面信息,並返回實體主體;

POST:向指定資源提交數據進行處理請求;

DELETE:請求伺服器刪除指定的頁面;

HEAD:請求讀取URL標識的信息的首部,只返回報文頭;

OPETION:請求一些選項的信息;

PUT:在指明的URL下存儲一個文檔。

6.3.1 HTTP工作的結構

6.3.2 HTTPS協議詳解

HTTPS(Secure)是安全的HTTP協議,埠號443。基於HTTP協議,通過SSL或TLS提供加密處理數據、驗證對方身份以及數據完整性保護

原文地址:https://blog.csdn.net/Royalic/article/details/119985591

⑹ 計算機網路

A發送的tcp報文序號為43說明第一個bit的序號為43,而Ack=103,這是對上一次B發送過來的tcp報文的確認,上一次B發送衫汪衫過來的報文的最後一個bit的序列號為102,因此確認號陵粗ACK=103,現在A發送報文或腔後,B回送的報文的確認號ACK=57,說名A發送的數據的最後一個bit的序列號為56,在不發生傳輸差錯的情況下,可知A的tcp報文段的有效載荷為56-43+1=14。

⑺ TCP/IP和UDP報文結構和報頭包含的內容!

UDP包

UDP報頭由4個域組成,其中每個域各佔用2個位元組,具體如下:

源埠號

目標埠號

數據報長度

校驗值

UDP協議使用埠號為不同的應用保留其各自的數據傳輸通道。UDP和TCP協議正是採用這一機制實現對同一時刻內多項應用同時發送和接收數據的支持。數據發送一方(可以是客戶端或伺服器端)將UDP數據報通過源埠發送出去,而數據接收一方則通過目標埠接收數據。有的網路應用只能使用預先為其預留或注冊的靜態埠;而另外一些網路應用則可以使用未被注冊的動態埠。因為UDP報頭使用兩個位元組存放埠號,所以埠號的有效范圍是從0到65535。一般來說,大於49151的埠號都代表動態埠。
TCP包
每個tcp都包含源埠號和目標埠號,加上ip頭中的源ip和目的ip,唯一確定一個tcp連接。序號用來標識從tcp發端向tcp收端發送的數據位元組流,它表示在這個報文段中的第一個數據位元組。序號欄位包含由這個主機選擇的該連接的初始序號isn(Initial Sequence Number)。該主機要發送數據的第一個位元組,序號為isn+1,因為syn佔用了一個序號。

IP包
IPV4報頭有12個必需的欄位和可選IP選項欄位,位於要發送的數據之前。如果使用IP層已有的庫或其他組件,一般不必考慮報頭中的大多數欄位,但程序代碼需要提供源端和目的端地址。
1、版本(4比特)
IP協議版本已經經過多次修訂,1981年的RFC0791描述了IPV4,RCF2460中介紹了IPV6。
2、報頭長度(4比特)
報頭長度是報頭數據的長度,以4位元組表示,也就是以32位元組為單位。報頭長度是可變的。必需的欄位使用20位元組(報頭長度為5,IP選項欄位最多有40個附加位元組(報頭長度為15)。
3、服務類型(8比特)
該欄位給出發送進程建議路由器如何處理報片的方法。可選擇最大可靠性、最小延遲、最大吞吐量和最小開銷。路由器可以忽略這部分。
4、數據報長度(16比特)
該欄位是報頭長度和數據位元組的總和,以位元組為單位。最大長度為65535位元組。
5、標識符(16比特)
原是數據的主機為數據報分配一個唯一的數據報標識符。在數據報傳向目的地址時,如果路由器將數據報分為報片,那麼每個報片都有相同的數據標識符。
6、標志(3比特)
標志欄位中有2為與報片有關。
位0:未用。
位1:不是報片。如果這位是1,則路由器就不會把數據報分片。路由器會盡可能把數據報傳給可一次接收整個數據報的網路;否則,路由器會放棄數據報,並返回 差錯報文,表示目的地址不可達。IP標准要求主機可以接收576位元組以內的數據報,因此,如果想把數據報傳給未知的主機,並想確認數據報沒有因為大小的原 因而被放棄,那麼就使用少於或等於576位元組的數據。
位2:更多的報片。如果該位為1,則數據報是一個報片,但不是該分片數據報的最後一個報片;如果該位為0,則數據報沒有分片,或者是最後一個報片。
7、報片偏移(13比特)
該欄位標識報片在分片數據報中的位置。其值以8位元組為單位,最大為8191位元組,對應65528位元組的偏移。
例如,將要發送的1024位元組分為576和424位元組兩個報片。首片的偏移是0,第二片的偏移是72(因為72×8=576)。
8、生存時間(8比特)
如果數據報在合理時間內沒有到達目的地,則網路就會放棄它。生存時間欄位確定放棄數據報的時間。
生存時間表示數據報剩餘的時間,每個路由器都會將其值減一,或遞減需要數理和傳遞數據報的時間。實際上,路由器處理和傳遞數據報的時間一般都小於1S,因此該值沒有測量時間,而是測量路由器之間跳躍次數或網段的個數。發送數據報的計算機設置初始生存時間。
9、協議(8比特)
該欄位指定數據報的數據部分所使用的協議,因此IP層知道將接收到的數據報傳向何處。TCP協議為6,UDP協議為17。
10、報頭檢驗和(16比特)
該字端使數據報的接收方只需要檢驗IP報頭中的錯誤,而不校驗數據區的內容或報文。校驗和由報頭中的數值計算而得,報頭校驗和假設為0,乙太網幀和TCP報文段以及UDP數據報中的可選項都需要進行報文檢錯。
11、源IP地址(32比特)
表示數據報的發送方。
12、目的IP地址(32比特)
表示數據報的目的地。