1. 程式人生 > >傳輸層--計算機網路

傳輸層--計算機網路

傳輸層

1.傳輸層提供的服務

1.1傳輸層的功能

從通訊和資訊處理的角度看,傳輸層向它上面的應用層提供通訊服務,它屬於面向通訊部分的最高層,同時也是使用者功能中的最底層。
傳輸層位於網路層之上,它為執行在不同主機上的程序之間提供了邏輯通訊,而網路層提供了主機之間的邏輯通訊。
傳輸層的功能:
1)傳輸層提供應用程序之間的邏輯通訊(即端到端的通訊)。與網路層的區別是,網路層提供的是主機之間的邏輯通訊。
2)複用和分用。複用是指傳送方不同的應用程序都可以使用同一個傳輸層協議傳送資料;分用是指接收方的傳輸層在剝去報文的首部後能夠把這些資料正確交付到目的應用程序。
3)傳輸層還要對收到的報文進行差錯檢測(首部和資料部分)。而網路層只檢查IP資料報的首部,不檢驗資料部分是否出錯。
4)提供兩種不同的傳輸協議,即面向連線的TCP和無連線的UDP。

1.2傳輸層的定址與埠

1.埠的作用
埠能夠讓應用層的各種應用程序將其資料通過埠向下交付給傳輸層,以及讓傳輸層知道應當將其報文段中的資料向上通過埠交付給應用層相應的程序。埠標識的是主機中的應用程序。硬體埠是不同硬體裝置進行互動的介面,而軟體埠是應用層的各種協議程序與傳輸實體進行層間互動的一種地址。傳輸層使用的是軟體埠。
2.埠號
1)伺服器使用的埠號
熟知埠號:0-1023,登記埠號:1024-49151
一些常用的熟知埠號如下:
這裡寫圖片描述

2)客戶端使用的埠號:49152-65535,由於這類埠號僅在客戶程序執行時才動態選擇,因此又叫短暫埠號(也稱臨時埠)。通訊結束後,剛才使用過的客戶埠號就不復存在,這個埠號就可以供其他客戶程序使用。
3.套接字


在網路中通過IP地址來標識和區別不同的主機,通過埠號來標識和區分一臺主機中的不同應用程序。在網路中採用傳送方和接收方的套接字(Socket)組合來識別端點。
套接字 = (主機IP地址,埠號)
它唯一地標識了網路中的一個主機和其上的一個應用(程序)。

1.3無連線服務與面向連線服務

面向連線的服務就是在通訊雙方進行通訊之前,必須先建立連線,在通訊過程中,整個連線的情況一直被實時地監控和管理。當通訊結束後,則應該釋放這個連線。
無連線的服務,兩個實體之間的通訊不需要先建立好連線,需要通訊的時候,直接將資訊傳送到“網路”中,讓該資訊的傳遞在網上盡力而為地往目的地傳送。

2. UDP協議

2.1UDP資料報

1.UDP概述
定義的UDP只是做了傳輸協議能夠做的最少工作,只在IP的資料報服務至上增加了兩個最基本的服務:複用和分用以及差錯檢測。如果應用程式開發者選擇UDP而不是TCP,則應用程式幾乎是直接與IP打交道。
UDP優點
1)UDP無需建立連線
2)無連線狀態
3)分組首部開銷小。TCP有20位元組的首部開銷,而UDP僅有8位元組的開銷
4)應用層能更好地控制要傳送的資料和傳送時間。
UDP提供盡最大努力的交付,即不保證可靠交付,但這並不意味著應用對資料的要求是不可靠的,因此所有維護傳輸可靠性的工作需要使用者在應用層來完成。
UDP是面向報文。
2.UDP的首部格式
UDP資料報包含兩個部分:UDP首部和使用者資料,整個UDP資料報作為IP資料報的資料部分封裝在IP資料報中。當傳輸層從IP層收到UDP資料報時,就根據手不中的目的埠,把UDP資料報通過相應的埠,上交給應用程序。如果接收方UDP發現收到的報文中的目的埠號不正確,就丟棄該報文,並由ICMP傳送“埠不可達”差錯報文給傳送方。

2.2 UDP校驗

在計算校驗和時,要在UDP資料報之前增加12個位元組的偽首部,偽首部並不是UDP真正的首部。只是在計算校驗和時,臨時新增在UDP資料報的前面,得到一個臨時的UDP資料報。但是這個臨時的既不向上也不向下傳。UDP校驗和的計算方法和IP資料報首部校驗和的計算方法相似,都是用二進位制反碼運算求和再取反。但不同的是:IP資料報的校驗和只檢驗IP資料報的首部,但UDP的校驗和是把首部和資料部分一起都檢驗。
這種簡單的差錯檢驗方法的檢錯能力並不強,但它的好處是簡單,處理速度快。

3.TCP協議

3.1 TCP協議的特點

TCP是在不可靠的IP層之上實現的可靠的資料傳輸協議,它主要解決傳輸的可靠、有序、無丟失和不重複的問題。主要特點
1)TCP是面向連線的傳輸層協議
2)每一條TCP連線只能有兩個端點,每一條TCP連線只能是點對點的。(一對一)
3)TCP提供可靠的交付服務,保證傳送的資料無差錯、不丟失、不重複且有序。
4)TCP提供全雙工通訊,TCP允許通訊雙方的應用程序在任何時候都能傳送資料,為此TCP連線的兩端都設有傳送快取和接收快取,用來臨時存放雙向通訊的資料。
5)TCP是面向位元組流的。

3.2 TCP報文段

TCP傳送的資料單元成為報文段。一個TCP報文段分為TCP首部和TCP資料兩部分,整個TCP段作為IP資料報的資料部分封裝在IP資料報中。
這裡寫圖片描述

3.3 TCP連線管理

TCP是面向連線的協議。因此每一個TCP連線都有三個階段:諒解建立、資料傳送和連線釋放。TCP連線的埠叫做套接字(Socket)或插口。埠拼接到IP地址即構成了套接字。
每一條TCP連線唯一地被通訊兩端的兩個端點(即兩個套接字)所確定。
TCP連線的建立採用客戶/伺服器方式。主動發起連線建立的應用程序叫做客戶機,而被動等待連線建立的應用程序叫做伺服器。

TCP連線的建立:三次握手

 第一步:客戶機的TCP首先向伺服器的TCP傳送一個連線請求報文段。這個特殊的報文段中不含應用層資料,其首部中的SYN標誌位被置為1.另外,客戶機會隨機選擇一個起始序號seq=x(連線請求報文不攜帶資料,但要消耗掉一個序號)。
 第二步:伺服器的TCP收到連線請求報文段後,如同意建立連線,就向客戶機發揮確認,併為該TCP連線分配TCP快取和變數。在確認報文段中,SYN和ACK都被置為1,確認號欄位的值為x+1,並且伺服器隨機產生起始序號seq=y(確認報文不懈怠資料,但要消耗掉一個序號)。確認報文段同樣不包含應用層資料。
 第三步:當客戶機收到確認報文段後,還要向伺服器給出確認,並且也要給該連線分配快取和變數。這個報文段的ACK標誌位被置為1,序號欄位為x+1,確認號欄位ack=y+1。該報文段可以攜帶資料,如果不攜帶資料則不消耗序號。

值得注意的是,伺服器端的資源是在完成第二次握手時分配的,而客戶端的資源是在完成第三次握手時分配的。這就使得伺服器易於收到SYN洪泛攻擊。

TCP連線的釋放:四次揮手

第一步:客戶機打算關閉連線,就向TCP傳送一個連線釋放報文段,並停止再發送資料,主動關閉TCP連線,該報文段的FIN標誌位被置為1,seq =u,它等於前面已傳送過的資料的最後一個位元組的序號加1(FIN報文段即使不攜帶資料,也要消耗一個序號)。
第二步:伺服器收到連線釋放報文段後即發出確認,確認號是ack = u+1,而這個報文段自己的序號是v,等於它前面已傳送過的資料的最後一個位元組的序號加1。此時,從客戶機到伺服器這個方向的連線就釋放了,TCP連線處於瓣關閉狀態。但伺服器若傳送資料,客戶機仍要接收,即從伺服器到客戶機這個方向的連線並未關閉。
第三步,若伺服器已經沒有要向客戶機發送的資料,就通知TCP釋放連線,此時其發出FIN=1的連線釋放報文段。
第四步:客戶機搜到連線釋放報文段後,必須發出確認。在確認報文段中,ACK欄位被置為1,確認號ack=w+1,序號seq=u+1。此時TCP連線還沒有釋放掉,必須經過實踐等待計時器設定的時間2MSL後,A才進入到連線關閉狀態。

3.4 TCP可靠傳輸

TCP的任務是在IP層的不可靠的、盡力而為服務的基礎上簡歷一種可靠資料傳輸服務。TCP使用了校驗、序號、確認和重傳等機制來達到這個目的。其中,TCP的校驗機制與UDP校驗一樣。
1.序號
TCP首部的序號欄位用來保證資料能有序提交給應用層,TCP把資料看成一個無結構但是有序的位元組流,序號是建立在傳送的位元組流上。
2.確認
TCP首部的確認號是期望收到對方的下一個報文段的資料的第一個位元組的序號。TCP預設使用累計確認,即TCP只確認資料流中至第一個丟失位元組為止的位元組。
3.重傳
有兩種事件導致TCP對報文段進行重傳:超時和冗餘ACK
(1)超時
TCP每傳送一個報文段,就對這個報文段設定一次計時器。只要計時器設定的重傳事件到期但還沒有收到確認,就要重傳這一報文段。為了計算超時計時器的重傳事件,TCP採用一種自適應演算法,它記錄一個報文段發出的時間,以及收到相應確認的時間,這兩個時間之差叫做報文段的往返時間RTT。TCP保留了RTT的一個加權平均往返時間RTTs。
超時計時器設定的超時重傳事件RTO=RTTs+4*RTTd,RTTd是RTT偏差的加權平均值,它與RTTs和新的RTT樣本之差有關。
(2)冗餘ACK(冗餘確認)
超時觸發重傳存在的一個問題就是超時週期往往太長。幸運的是,傳送方通常可在超時時間發生之前通過注意所謂冗餘ACK來較好地檢測丟包情況。冗餘ACK就是再次確認某個報文段的ACK,而傳送方先前已經收到過該報文段的確認。TCP規定當傳送方收到對同一個報文段的3個冗餘ACK時,就可以認為跟在這個被確認報文段之後的報文段已經丟失。

3.5 TCP流量控制

TCP提供了流量控制服務以消除傳送方使接收方快取區溢位的可能性,因此可以說流量控制是一個速度匹配服務。(匹配發送方的傳送速率與接收方的讀取速率)。TCP提供一種基於滑動視窗協議的流量控制機制。
在通訊過程中,接收方根據自己接收快取的大小,動態地調整發送方的傳送視窗大小,這就是接收視窗rwnd,即調整TCP報文段首部中的“視窗”欄位值,來限制傳送方向網路注入報文的速率。同時,傳送方根據其對當前網路擁塞程式的估計而確定的視窗值,稱為擁塞視窗cwnd。A的傳送視窗的實際大小是取rwnd和cwnd中的最小值。

3.6 TCP擁塞控制

所謂擁塞控制就是防止過多的資料注入網路中,這樣可以使網路中的路由器或鏈路不致過載。
擁塞控制與流量控制的區別:擁塞控制是讓網路能夠承受現有的網路負荷,它是一個全域性性的過程,涉及所有的主機。所有的路由器。以及與降低網路傳輸效能有關的所有因素。相反,流量控制往往是指點對點的通訊量的控制,即接收端控制傳送端,它所要做的是一直髮送端傳送資料的速率,以便使接收端來得及接收。
為了更好地對傳輸層進行擁塞控制,因特網建議標準定義了以下四種演算法慢開始擁塞控制快重傳快恢復
1**.慢開始和擁塞避免**
(1)慢開始演算法
在TCP剛剛連線好,開始傳送TCP報文段時,先令擁塞視窗cwnd=1,即一個最大報文段長度MSS。而在每收到一個對新的報文段的確認後,將cwnd加1,即增大一個MSS。用這樣的方法逐步增大發送方的擁塞視窗cwnd。可以使分組注入到網路的速率更加合理。
使用慢開始演算法後,沒經過一個傳輸輪次(即往返時延RTT),擁塞視窗cwnd就會加倍,即cwnd的大小呈指數形式增長。這樣慢開始一直把擁塞視窗cwnd增大到一個規定的慢開始門限ssthresh(閾值),然後改用擁塞避免演算法。
(2)擁塞避免演算法
擁塞避免演算法的做法是:傳送端的擁塞視窗cwnd每經過一個往返時延RTT就增加一個MSS的大小,而不是加倍,使cwnd按線性規律緩慢增長,而當出現一次超時,則令慢開始門限ssthresh等於當前cwnd的一半。
當cwnd小於ssthresh,使用慢開始演算法
當cwnd>ssthresh,停止使用慢開始演算法而改用擁塞避免演算法
當cwnd=ssthresh,既可使用慢開始演算法,也可使用擁塞避免演算法。
(3)網路擁塞的處理
當網路出現擁塞時,無論在慢開始階段還是在擁塞避免階段,只要傳送方檢測到超時事件的發生(沒有按時收到確認,重傳計時器超時),就要把慢開始門限ssthresh設定為出現擁塞時的傳送方cwnd值的一半,但是不能小於2.然後把擁塞視窗cwnd重新設定為1,執行慢開始演算法。這樣做的目的就是要迅速減少主句傳送到網路中的分組數,使得發生擁塞的路由器有足夠時間把佇列中積壓的分組處理完畢。
這裡寫圖片描述

2**.慢重傳和快恢復**
快重傳和快恢復演算法是對慢開始和擁塞避免演算法的改進。
(1)快重傳:使用了冗餘ACK來檢測丟包的發生。同樣,冗餘ACK也用於網路擁塞的檢測。當傳送方連續收到三個重複的ACK報文時,直接重傳對方尚未收到的報文段,而不必等待那個報文段設定的重傳計時器超時。
(2)快恢復
快恢復演算法原理:當傳送端收到連續三個冗餘ACK(即重複確認)時,就執行“乘法減小”,把慢開始門限ssthresh減半。

相關推薦

傳輸--計算機網路

傳輸層 1.傳輸層提供的服務 1.1傳輸層的功能 從通訊和資訊處理的角度看,傳輸層向它上面的應用層提供通訊服務,它屬於面向通訊部分的最高層,同時也是使用者功能中的最底層。 傳輸層位於網路層之上,它為執行在不同主機上的程序之間提供了邏輯通訊,而網路

計算機網路傳輸網路

傳輸層介紹 傳輸層是客戶程式和伺服器程式之間的聯絡人,是一個程序之間的連線。 傳輸層服務 首先了解一下傳輸層所提供的服務。 程序到程序通訊 TCP/IP協議簇的5層模型: 其中,網路層負責計算機層次的通訊(主機到主機通訊),網路層協議只把

計算機網路傳輸網路(3)

傳輸層介紹 傳輸層是客戶程式和伺服器程式之間的聯絡人,是一個程序之間的連線。 傳輸層服務 首先了解一下傳輸層所提供的服務。 程序到程序通訊 TCP/IP協議簇的5層模型: 其中,網路層負責計算機層次的通訊(主機到主機通訊),網路層協議只把報文傳遞到目的

資料鏈路--計算機網路

資料鏈路層 1.資料鏈路層的功能 資料鏈路層在物理層提供服務的基礎上向網路層提供服務,其主要作用是加強物理層傳輸原始位元流的功能,將物理層提供的可能出錯的物理連線改造成為邏輯上無差錯的資料鏈路,使之對網路層表現為一條無差錯的鏈路。 1.為網路層提供服務

傳輸網路的區別

在協議棧中,傳輸層位於網路層之上,傳輸層協議為不同主機上執行的程序提供邏輯通訊,而網路層協議為不同主機提供邏輯通訊。這個區別很微妙,但是卻非常重要。讓我們用一家人作為類比來說明一下這個區別。   設想一下有兩所房子,一個位於東海岸而另一個位於西海岸,每所房子裡

網路傳輸網路中的地位

Internet 是基於TCP/IP網路協議棧實現的。 在應用層,有眾多的應用程序,分別使用不同的應用層協議;在網路介面層,有多種資料鏈路層協議,可以和眾多的物理網連線;在網路層,只有一個IP實體。 在傳送端所有的應用程序的資訊都要匯聚到ip層,;在接收端,

計算機網路——傳輸

UDP(User Datagram Protocol): 基於Intenet IP協議(複用/分用、簡單的錯誤校驗) 儘可能的服務(可能丟失、亂序到達) 無連線(不需要握手、每個UDP段獨立於其他) 常用於流媒體應用(容忍丟失、速率敏感) UDP用於DNS、SNMP UDP上實現可靠資料傳輸:

傳輸_計算機網路原理第三章_自考本科段

概要:計算機網路原理第三章傳輸層知識點小結 1、傳輸層基本服務     識記:傳輸層基本服務     (1)傳輸層基本服務:為網路應用程序提供端到端的邏輯通訊服務;提供的服務可分為無連結服務和麵向連線服務。

計算機網路3——傳輸(下)

目錄 六、面向連線傳輸協議TCP         1、TCP可靠資料傳輸        2、TCP流量控制        3、TCP連線管

HIT 計算機網路 自頂向下 複習提要 傳輸

傳輸層 為不同host上的不同程序提供 邏輯通訊 機制 多路複用&多路分解 UDP 可靠資料傳輸協議 GBN SR TCP 流量管理 擁塞控制        

計算機網路傳輸

前言 傳輸層是面向通訊部分的最頂層,是面向應用的最底層。面向通訊部分,距離傳輸層最近的網路層,因此本文會將傳輸層與網路層在必要時候進行對比。 傳輸層作用: 網路層提供的是主機之間的邏輯通訊,而傳輸層提供的是通訊雙方的程序之間的邏輯通訊。傳輸層為應用遮蔽了底層複雜的網

計算機網路——傳輸(三)

TCP協議 傳送端應用程式通過套接字介面將資料傳向傳輸層之後,這些資料就歸傳輸層管了,這裡就是TCP協議。TCP協議會管理一個傳送快取,所有通過套接字介面的資料會被放到這個傳送快取中去,然後TCP每次從這個快取中拿出資料,將資料傳遞到網路層。其實這個過程就是多路複用。 我們可以這麼理

計算機網路——傳輸(二)

傳輸層位於端系統中,也就是位於‘網路邊緣’。傳輸層也有很多協議,但目前用的比較多的是UDP協議和TCP協議。 在認識UDP協議和TCP協議之前,先介紹兩個概念——多路複用與多路分解。 多路複用與多路分解 先對傳輸層有個基本瞭解,應用層通過套接字介面向傳輸層傳遞資料,傳輸層再通過網

計算機網路——傳輸(一)

可靠資料傳輸原理(reliable data transfer protocol, rdt) rdt 1.0 rdt1.0比較簡單,上層應用呼叫rdt_send(data)向傳送端傳入資料,傳送端呼叫packet = make_pkt(data)方法產生分組,然後再通過udt_send(

計算機網路自頂向下方法》第三章 傳輸

計算機網路——傳輸層 傳輸層位於應用層和網路層之間,是分層的網路體系結構中重要的部分,該層為執行在不同主機上的應用程序提供直接的通訊服務起著至關重要的作用。在這裡我們將討論兩個大的問題:將網路層在不同端系統之間的通訊服務擴充到執行在兩個端系統上不同的應用層程序

學習筆記之計算機網路(王道考研) 第五章 傳輸

傳輸層屬於面向通訊的最高層,同時也是使用者功能中的最低層 傳輸層提供應用程序之間的邏輯通訊(即端到端的通訊),與網路層的區別是,網路層提供的是主機之間的邏輯通訊 傳輸層的複用和分用:複用是指傳送方不同的應用程序都可以使用同一個傳輸層協議傳送資料;分用是指接收方的傳輸層在剝去報文的首

計算機網路傳輸-計網(3)

前言 接著複習計算機網路的有關知識,我的小白文章。 正文 運輸層處在網路層和應用層之間,提供程序之間的邏輯通訊。 運輸層中的協議有tcp,udp。 運輸層協議 網路定址 計算機中有四種地址: 域名地址 埠地址 IP地址

計算機網路(5)-傳輸--TCP傳輸:可靠資料傳輸、流量控制、3次握手過程

TCP傳輸 TCP連線提供的服務是全雙工服務,同一連線能夠雙向傳輸資料,同時,也是點對點的連線(僅有一個傳送方和一個接收方)。 TCP報文段結構 TCP報文段由首部欄位和資料欄位組成。 首部欄位 源埠號和目的埠號:用於多路分用和多路複用 因特網檢驗和:差

計算機網路_傳輸_基本概念

1程序之間的通訊   從IP層看,通訊的兩端是兩臺主機   從傳輸層看,通訊的兩端不是主機而是主機上的程序 2傳輸層的兩個主要協議:   TCP傳輸控制協議(Transition Control Protocol) 面向連線,可靠的 傳輸資料之前必須建立連線,傳輸之後釋放連線   不支援廣播

計算機網路 學習筆記-傳輸:TCP協議簡介

概述: TCP傳輸前先要建立連線 TCP在傳輸層 點對點,一條TCP只能連線兩個端點 可靠傳輸、無差錯、不丟失、不重複、按順序 全雙工 位元組流 TCP報文段 TCP報文段的報頭前20位元組是固定的,後面4n位元組是根據需要而新增的。 20位元組的固定部分: 源埠和目的