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

計算機網路-傳輸層詳解

一、傳輸層的服務基本原理

1.多路複用和解複用(分路)技術

複用是指:傳送方的不同的應用程序都可以使用同一個傳輸層協議傳送資料;

分路技術是指:接收方的傳輸層剝去報文首部之後能把這些資料正確的傳輸到正確的應用程序上。

2.可靠資料傳輸

3.流量控制和擁塞控制

二、傳輸層提供的服務

2.1傳輸層定址和埠

傳輸層主要是提供不同主機上的程序之間的邏輯通訊(端到端的通訊),即使在不可靠的網路層(主機之間的邏輯通訊)傳輸下,傳輸層也能提供可靠的傳輸。(所謂的邏輯通訊就是指:傳輸層之間看似是在水平方向傳送資料,但是事實上這兩個傳輸層之間並沒有水平方向上的物理連線

傳輸層的定址最重要的就是程序的埠號了。那麼什麼是埠和埠號呢?

埠簡言之就是為其臨近層的應用層的各個應用程序的資料通過這個“門”向下傳遞給傳輸層,反過來呢就是讓傳輸層知道接受到的報文資料如何正確傳遞交付到對應的應用層上的程序上。

埠號就是用來標識應用程序的數字標識。其埠號的長度為16Bit;也就是能夠標識2^16個不同的埠號。另外埠號根據埠範圍分為2類。

1.服務端使用的埠號:1、熟知埠號:0-1023範圍。由IANA(網際網路地址指派機構分配給TCP/IP最重要的一些應用程序,為固定格式)。2、登記埠號:1024-49151為沒有熟知埠號的應用程式使用的,需要給IANA註冊登記,防止重複。

常見的熟知埠號:

應用程序 FTP TELNET SMTP DNS TFTP HTTP SNMP
埠號 21  23 25 53 69 80 161

2.客戶端使用的埠號:數值範圍為49152-65535.也叫作短暫埠號。是在客戶端程序執行成功後動態選擇的。

另外需要注意 是埠號只具有本地意義,即埠號只是標誌本地計算機應用層的各程序。在因特網中,不同的計算機的相同埠號是沒有聯絡的。

補充:套接字(socket)。我們知道在網路中通過Ip來唯一標識一個主機。而通過埠號來標識一臺主機中的不同應用程序。所以在網路連線中就出現了Socket套接字來標識一個主機上的某程序。其實際是一個通訊端點。

套接字(Socket) = (Host IP , port)

2.2無連線服務和麵向連線服務

面向連線和無連線服務的區別在於在通訊雙方通訊之前,是否需要先建立連線。換句話說就是,通訊雙方之間的資料傳輸是否基於雙方需要建立連線。那麼,面向連線就是在雙方通訊之前,必須建立連線,在通訊過程中,整個連線的過程一直被監控和管理,在通訊結束之後,則釋放這個連線。相反,無連線服務是。兩個實體之間的通訊不需要建立好連線,需要通訊時,直接將資訊傳送到“網路”上,讓該資訊在網上盡力傳輸到目的方。

在TCP/IP協議簇中,在IP層中使用了這兩種協議服務。其中TCP提供面向連線的可靠的傳輸服務,它不提供廣播和組播機制,包括了確認-重傳機制、流量控制、計時定時器、連線管理等等。這一方面使得TCP連線適用在可靠性高的傳輸場合,如HTTP何FTP、TELNET等 。但是,另一方面呢就是也因此增加了開銷。例如資料報的報頭增大。

UDP協議是非連線的不可靠傳輸機制。它在Ip之上僅提供了多路複用和資料差錯檢查服務。由於UDP服務不需要建立連線,執行速度快,實時性好,只要用於小檔案的傳輸協議*(DNS,SNMP,RTP,TFTP)

補充:

1.IP資料報和UDP資料報的區別:IP資料報在網路層要經過路由的儲存轉發;而UDP資料報是在傳輸層的端到端的邏輯通道中傳輸,而封裝成IP資料報在網路傳輸中,UDP資料報對於路由是不可見的。

2.TCP和網路層的虛電路的區別:TCP報文段在傳輸層抽象的邏輯通道中傳輸,對路由器不可見;虛電路所經過的交換節點都必須儲存虛電路狀態資訊。在網路層若採用虛電路方式,則無法提供無連線服務;而傳輸層採用TCP協議不影響網路層提供無連線服務。

三、UDP協議

3.1UDP的首部格式

UDP資料報有兩個部分組成,分為UDP首部和使用者資料。首部部分有8個位元組,4個2位元組的欄位組成,整個UDP資料報作為IP資料報的資料部分封裝在IP資料報中。其UDP資料報組成圖解如下:

其中checkSum校驗和表示簡單的校驗和來進行差錯檢測。有錯就丟棄。該欄位是可選的。


以下是UDP資料報首部和偽首部(12位,為了計算檢驗和)和IP資料報的圖解

偽首部僅僅是為了計算校驗和,而不進行傳送和遞交服務。這樣的校驗和,既檢查了UDP資料報,

又同時對IP資料報的源IP地址和目的IP地址進行了校驗。

四、TCP協議

TCP協議只要解決傳輸的可靠、有序、無丟失和不重複的問題,它主要特點是:

1.是面向連線的傳輸層協議。

2.是端對端的,只能是一對一連線。

3.可靠的交付服務。無差錯、無重複、且有序。

4.面向位元組流

4.1、TCP報文報

同樣的,TCP資料報分為資料首部和TCP資料兩部分。其首部格式圖解:


欄位解釋:

  • 來源連線埠(16位長)-辨識傳送連線埠
  • 目的連線埠(16位長)-辨識接收連線埠
  • 序列號(seq,32位長)
  • 確認號(ack,32位長) —期望收到的資料的開始序列號。也即已經收到的資料的位元組長度加1。 
    • 如果含有同步化旗標(SYN),則此為最初的序列號;第一個資料位元的序列碼為本序列號加一。
    • 如果沒有同步化旗標(SYN),則此為第一個資料位元的序列碼。
  • 報頭長度 —以4位元組(如果不這樣根本不夠)為單位計算出的資料段開始地址的偏移值。
  • 保留 —須置0
  • 標誌符 
    • URG —為1表示高優先順序資料包,緊急指標欄位有效。
    • ACK —為1表示確認號欄位有效
    • PSH —為1表示是帶有 PUSH標誌的資料,指示接收方應該儘快將這個報文段交給應用層而不用等待緩衝區裝滿(很少使用)
    • RST —為1表示出現嚴重差錯。可能需要重現建立TCP連線。還可以用於拒絕非法的報文段和拒絕連線請求。
    • SYN —為1表示這是連線請求或是連線接受請求,用於建立連線和使順序號同步
    • FIN —為1表示傳送方沒有資料要傳輸了,要求釋放連線。
  • 視窗(WIN) —表示從確認號開始,本報文的源方可以接收的位元組數,即源方接收視窗大小。用於流量控制
  • 校驗和 —對整個的TCP報文段,包括TCP頭部和TCP資料,以16位字進行計算所得。這是一個強制性的欄位。
  • 緊急指標 —本報文段中的緊急資料的最後一個位元組的序號。
  • 選項欄位 —最多40位元組。每個選項的開始是1位元組的kind欄位,說明選項的型別。

序列號:

  • 序列號指的是Segment中第一個位元組的編號,而不是Segment的編號
  • 建立TCP連線時,雙方隨機選擇序列號

ACKs:

  • 希望收到的下一個位元組的序列號
  • 累積確認:該序列號之前的所有位元組均已被正確接收到

五、可靠資料傳輸的基本原理:


可靠資料傳輸的基本結構-介面


3.可靠傳輸協議Rdt版本

3.1、rdt1.0

基本特性:

  • 底層通道完全可靠
  • 不會丟棄分組
有限狀態機Finite State Machine互相獨立

3.2、Rdt2.0(引入差錯控制-接收發送反饋-重傳機制)


下面是Rdt2.0下的有限狀態機的簡圖表示:採用停等協議


我們再看看當通訊中無錯誤存在下的有限狀態機FSM的簡圖


下面是有錯誤存在的FSM簡圖


總結:在rdt2.0中我們很好的引入了檢驗和來檢驗差錯,同時引入ACK和NAK進行反饋給傳送方,告知接收是否成功,如果不成功傳送NAK給sender,sender重傳。但是我們考慮:如果反饋資訊ACK和NAK存在錯誤呢?那麼傳送方收到的反饋就是錯誤的或者接收不到呢?所以引入rdt2.1


Rdt2.1的sender和rev方對Rdt2.1的有限狀態機表示:

Sender


Receiver2.1

總體來說Rdt2.1相比,具有以下改進:


我們可以發現在Rdt2.1中,我們只是針對ACK進行了檢驗,加入了序列號解決分組重傳重複問題,那麼NAK就不需要了,所以Rdt2.2的做法就是不採用NAK。

我們再考慮到如果傳輸通道極可能發生錯誤嗎,也可能發生分組丟失,那麼Rdt2.2上採用的“序號+檢驗和+ACK+重傳機制就不能實際解決問題了。那麼也就出現了Rdt3.0,引入定時器”


rdt3.0舉例:


六、TCP連線管理:

TCP是面向連線的,所以每一個TCP都會有三個階段狀態:連線建立、資料傳送、連線拆除。連線管理就是使運輸連線的建立和釋放都正常執行。

6.1、TCP的連線建立

典型的“三次握手”:

第一次握手

當客戶端向伺服器發起連線請求時,客戶端會發送同步序列標號SYN到伺服器,在這裡我們設SYN為m,等待伺服器確認,這時客戶端的狀態為SYN_SENT。

第二次握手

當伺服器收到客戶端傳送的SYN後,伺服器要做的是確認客戶端傳送過來的SYN,在這裡伺服器傳送確認包ACK,這裡的ACK為m+1,意思是說“我收到了你傳送的SYN了”,同時,伺服器也會向客戶端傳送一個SYN包,這裡我們設SYN為n。這時伺服器的狀態為SYN_RECV。在此時,伺服器為該TCP連線分配TCP快取和變數。伺服器資源在此時分配(而客戶端在第三次完成時才分配資源)。記錄了客戶端的請求資訊,如果沒有收到來自客戶端的第三次回話,就會在一段時間內快取TCP資訊,這也是黑客攻擊伺服器的SYN洪泛攻擊

一句話,伺服器端傳送SYNACK兩個包。

第三次握手

客戶端收到伺服器傳送的SYNACK包後,需向伺服器傳送確認包ACK,“我也收到你傳送的SYN了,我這就給你發個確認過去,然後我們即能合體了”,這裡的ACK為n+1,傳送完畢後,客戶端和伺服器的狀態為ESTABLISH,即TCP連線成功。

在三次握手中,客戶端和伺服器端都發送兩個包SYNACK,只不過伺服器端的兩個包是一次性發過來的,客戶端的兩個包是分兩次傳送的

圖解三次握手:


6.2、TCP連線的釋放

典型“四次揮手”

四次揮手

當A端和B端要斷開連線時,需要四次握手,這裡稱為四次揮手。

斷開連線請求可以由客戶端發出,也可以由伺服器端發出,在這裡我們稱A端向B端請求斷開連線。

第一次揮手

A端向B端請求斷開連線時會向B端傳送一個帶有FIN標記的報文段,這裡的FINFINish的意思。

第二次揮手

B端收到A傳送的FIN後,B段現在可能現在還有資料沒有傳完,所以B端並不會馬上向A端傳送FIN,而是先發送一個確認序號ACK,意思是說“你發的斷開連線請求我收到了,但是我現在還有資料沒有發完,請稍等一下唄”。

第三次揮手

當B端的事情忙完了,那麼此時B端就可以斷開連線了,此時B端向A端傳送FIN序號,意思是這次可以斷開連線了。

第四次揮手

A端收到B端傳送的FIN後,會向B端傳送確認ACK,然後經過兩個MSL時長後斷開連線。

MSL是Maximum Segment Lifetime,最大報文段生存時間,2個MSL是報文段傳送和接收的最長時間。
四次揮手圖解


TCP連線管理總結:

1、連線建立

  1. 客戶端:syn= 1,seq=x;
  2. 服務端:syn = 1,ACK = 1,seq = y, ack = x+1;
  3. 客戶端:ACK = 1,seq = x+1,ack = y+1;

2、連線釋放

  1. 客戶端:FIN = 1,seq = u;
  2. 服務端:ACK = 1, seq = v,ack = u+1;
  3. 服務端:FIN= 1,ACK = 1,seq  =w,ack = u+1;
  4. 客戶端:ACK= 1,seq = u+1,ack = w+1;
七、TCP的可靠傳輸 TCP提供的可靠傳輸就是要保證接收方從快取中讀取的位元組流和傳送方發出點的位元組流是完全一致的。TCP使用了校驗和、=序號、確認、重傳機制來得到結果目的。 7.1、序號 TCP首部的序號存在的價值在於讓資料能夠有序的交付給應用層。TCP把資料看成是無結構但是有序的位元組流。序號是建立在位元組流上的。TCP中的每個資料流的位元組都附加上一個序號。序號欄位的值是該傳送資料的第一個位元組的序號。如圖:假設A-B之間建立了一條TCP連線,A的傳送快取區有0-9的十個位元組。第一個報文為0-2;則該報文段的序號為0;第二報文段序號為3.
0 1 2 3 4 5 6 7 8 9
7.2、確認號 TCP首部的確認號是期望對方下一次報文段的資料的第一個位元組的序號。如上圖所示,如果B成功接收了0-2的第一報文段,則B傳送給A的報文中確認號為3.傳送方會繼續儲存那些已經發送,但是未收到確認的報文段,以便需要的時候進行重傳。 TCP你、預設使用的是累計確認。即TCP中只確認資料流中至第一個丟失位元組為止的位元組。比如,B收到A傳送的包含位元組0-2和6-7的報文段。由於某種原因,沒有收到3-5的報文段。此時B仍然在等待位元組3和後面的位元組。因此,B到A的下一個報文段將確認號置為3。 7.3、重傳 導致重傳的事件:超時和冗餘ACK. 7.3.1、超時 TCP每傳送一個報文段的同時就會啟動該報文段的計時器。只要計時器設定的重傳時間到期但還沒有收到確認時,就重傳該報文段。 TCP採用自適應的演算法確認時間RTT(Round-Trip-Time),計算公式為: 新的RTTs = (1-a)*(舊的RTTs)+a*(新的RTT樣本)          a 的典型取值為0.125 計時器設定的超時重傳時間RTO(Retransmission Time-Out)時間的取值應該大於加權平均RTT,取值為RTO  = RTTs +4*RTTd RTTd是RTT的偏差加權平均值。RTTd = (1-B)*(舊的RTTd)+B*[RTTs-新的RTT樣本]  B = 0.25 7.3.2、冗餘ACK 快速重傳’ 演算法:就是在收到對同一個報文段的三次ACK時, 就會迅速的重傳相應的報文段。
八、流量控制 防止傳送方使接收方快取區溢位的可能性。換句話說就是流量控制是一個速度匹配服務(匹配發送方的傳送速率和接收方的讀取速率) 流量控制是通過滑動視窗協議的控制原理的,在通訊過程中,接收方根據自己的快取區大小,動態的調整發送方的傳送視窗大小,這就是接受視窗rwnd。也就是調整TCP報文段的首部的“視窗”欄位值。來限制傳送方網路注入報文的速率。同時,傳送方根據當前網路擁塞程式情況而確定視窗值,成為擁塞視窗cwnd,其大小與網路的頻寬和時延密切相關。其實,在傳送端的視窗大小是取rwnd和cwnd中的最小值。 利用滑動視窗進行流量控制的圖解:

如上圖所示A向B傳送資料。在連線建立時,B告訴A接收視窗rwndreceiver window= 400,單位位元組,因此傳送方A的傳送視窗不能400

(可以看出,B向A傳送的三個報文段都設定了 ACK = 1以保證欄位有效,後面的rwnd值就是接收方對傳送方的三次流量控制。)

第一次把視窗設定為300 ,第二次100 ,最後一次為 0,即不允許傳送方再發送資料的狀態。

但是當某個ACK報文丟失了,就會出現A等待B確認,並且B等待A傳送資料的死鎖狀態。為了解決這種問題,TCP引入了持續計時器(Persistence timer,當A收到rwnd=0時,就啟用該計時器,時間到了則傳送一個1位元組的探測報文,詢問B是很忙還是上個ACK丟失了,然後B迴應自身的接收視窗大小,返回仍為0(A重設持續計時器繼續等待)或者會重發rwnd=x。


九、TCP擁塞控制 所謂的擁塞控制就是防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致於過載。網路中的鏈路容量、交換結點中的快取、處理機等等都有著工作的極限,當網路的需求超過它們的工作極限時,就出現了擁塞。 擁塞控制是一個全域性性的過程,和流量控制不同,流量控制指點對點通訊量的控制。
因特網建議標準定義了四種演算法來進行擁塞控制:慢啟動、擁塞避免、快重傳和快恢復 9.1慢啟動演算法 在剛開始啟動TCP連線時,先令擁塞視窗cwnd=1,即最大的報文段長度MSS,每收到一個對新的報文段的確認後,將cwnd加1.用這樣的方法逐步增大發送方的擁塞視窗cwnd,可以使分組注入網路的效率更高。成指數型增長,直到達到一個閾值後再改用擁塞控制演算法 9.2、擁塞避免演算法 擁塞控制的做法是:傳送端的擁塞視窗cwnd每經過一個往返時延RTT就增加一個MSS的大小。而不是加倍。使cwnd呈現線性增長(即加法增大),而當出現一次超時(網路擁塞),則讓慢啟動的門限閾值減少為當前cwnd的一半(乘法減小)。

慢開始演算法是指開始傳送資料時,並不清楚網路的負荷情況,會先發送一個1位元組的試探報文,當收到確認後,就傳送2個位元組的報文,繼而4個,8個以此指數類推。

需要注意的是,慢開始的“慢”並不是指擁塞視窗的增長速率慢,而是指在TCP開始傳送報文時先設定擁塞視窗=1

擁塞避免演算法是讓擁塞視窗緩慢地增大,即cwnd加1,而不是如慢開始演算法一樣加倍。


兩種擁塞處理的例項:

根據上圖的例項進行分析,一開始的慢開始演算法的指數增長是很恐怖的,所以為了防止擁塞視窗cwnd增長過快需要設定一個門限ssthresh,這裡是16

(1)當 cwnd < ssthresh 時,使用上述的慢開始演算法。

(2)當 cwnd > ssthresh 時,停止使用慢開始演算法而改用擁塞避免演算法。

(3)當 cwnd = ssthresh 時,既可使用慢開始演算法,也可使用擁塞控制避免演算法。(通常做法)

無論在慢開始階段還是在擁塞避免階段,只要傳送方沒有收到確認,就認為這時候擁塞了,就要把慢開始門限ssthresh設定為此時傳送方視窗值的一半(上例中是把傳送方視窗值24修改為12)。然後把擁塞視窗cwnd重新設定為1,執行慢開始演算法

這樣做的目的就是要迅速減少主機發送到網路中的分組數,使得發生擁塞的路由器有足夠時間把佇列中積壓的分組處理完畢。

在慢開始和擁塞避免演算法中,使用了“乘法減小”和“加法增大”方法。

其中”乘法減小“是指不論在慢開始還是擁塞避免階段,只要出現一次超時(很有可能出現了擁塞),就把慢啟動的初始閾值調整為當前擁塞視窗的一半值。當網路中頻繁出現擁塞時,初始閾值就會下降的很快。以大大減少注入網路中的分組數。

”加法增大“是指在執行擁塞避免演算法後,在收到對所有報文段的確認後(即經過一個RTT),就把擁塞視窗cwnd增加一個MSS大小,使得擁塞視窗緩慢增大,以避免網路的過早出現擁塞。


9.3 快恢復和快重傳

快重傳是指,如果傳送端接收到3個以上的重複ACK,不需要等到重傳定時器溢位就重新傳遞,所以叫做快速重傳,而快速重傳以後,因為走的不是慢啟動而是擁塞避免演算法,所以這又叫做快速恢復演算法。

如果沒有快速重傳和快速恢復,TCP將會使用定時器來要求傳輸暫停。在暫停這段時間內,沒有新的資料包被髮送。所以快速重傳和快速恢復旨在快速恢復丟失的資料包

快重傳圖解


快恢復是配合快重傳的


有以下兩個要點:

①當傳送方連續收到三個重複確認時,就執行“乘法減小”演算法,把ssthresh門限減半。但是接下去並不執行慢開始演算法。

②考慮到如果網路出現擁塞的話就不會收到好幾個重複的確認,所以傳送方現在認為網路可能沒有出現擁塞。所以此時不執行慢開始演算法,而是將cwnd設定為ssthresh的大小,然後執行擁塞避免演算法。


相關推薦

計算機網路-傳輸

一、傳輸層的服務基本原理 1.多路複用和解複用(分路)技術 複用是指:傳送方的不同的應用程序都可以使用同一個傳輸層協議傳送資料; 分路技術是指:接收方的傳輸層剝去報文首部之後能把這些資料正確的傳輸到正確的應用程序上。 2.可靠資料傳輸 3.流量控制和擁塞控制 二、傳輸層提

網路程式設計_傳輸

tcp協議 又稱之為 流式協議 需要管道 建立通道(單向流通) 網路程式設計 先建立管道 建連線,只需要三次握手 syn=1 seq=x ack=1+x syn=1 seq=y ac

計算機網路——傳輸

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

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

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地址

Linux Windows下USB RNDIS網路傳輸方式

 在介紹USB的驅動開發時,我通常會用用Linux的的USB網路來演示,它相容RNDIS網路,一臺Linux即可充當USB的device端,也可以由另一臺Linux來充當USB的Host端,Host端的也可以由安裝的微軟的標準的Rndis驅動來充當.   這種網路有相

java面試-計算機網路傳輸知識點全覆蓋

傳輸層概述作用:傳輸層為它上面的應用層提供通訊服務。在OSI七層參考模型中,傳輸層是面向通訊的最高層,也是使用者功能的最底層。傳輸層兩大重要的功能:複用 和 分用。 複用:在傳送端,多個應用程序公用一個傳輸層;分用:在接收端,傳輸層會根據埠號將資料分派給不同的應用程序。和網路

計算機網路傳輸的功能

1).傳輸層提供程序之間的邏輯通訊(即端到端的通訊)。 2).複用和分用。複用是指傳送方不同的應用程序都可以使用同一個傳輸層協議傳輸資料; 分用是指接收方的傳輸層在接收到報文將其報頭剝去之後能將資料正

計算機網路結構自頂向下

今天在研究生現代網路原理課程上期末答辯中以《高併發大流量網站設計應對技術》奪冠,這是來校三個月來唯一順心順意的事情了,很久沒有寫部落格了,今天寫兩篇,分別是自頂向下解釋網際網路五層結構,自底向上解釋網際網路五層結構;為什麼做這兩個題目呢?第一篇解釋你的qq訊息是如何傳送到另外一個人那裡去的,第二

網路協議分為哪幾---物理,連線網路傳輸,應用

訊號的傳輸總要符合一定的協議(protocol)。比如說長城上放狼煙,是因為人們已經預先設定好狼煙這個物理訊號代表了“敵人入侵”這一抽象訊號。這樣一個“狼煙=敵人入侵”就是一個簡單的協議。協議可以更復雜,比如摩爾斯碼(Morse Code),使用簡訊號和長訊號的組合,

OSI七之四 傳輸(Transport)

http 計算機 地址 包括 分組 tcp aik 全部 滿足 一、簡介   第四層的數據單元也稱作數據包(packets)。但是,當你談論TCP等具體的協議時又有特殊的叫法,TCP的數據單元稱為段(segments)而UDP協議的數據單元稱為“數據報(datagrams)

LSTM網路及其應用例項

上一節我們介紹了RNN網路層的記憶性原理,同時使用了keras框架聽過的SimpleRNN網路層到實際運用中。然而使用的效果並不理想,主要是因為simpleRNN無法應對過長單詞串的輸入,在理論上,當它接收第t個輸入時,它應該能把前面好幾個單詞的處理資訊記錄下來,但實際上它無法把前面已經

iOS網路和優化

HTTPHTTP方法HTTP屬於應用層。具有以下方法:GET 最常見HEAD 伺服器只返回頭部。比如可用於瞭解資源情況,看看某個物件是否存在,測試資源是否被修改了。PUT 向伺服器寫入文件POST 寫伺服器提交資料,通常是表單TRACE 允許客戶端在最終將請求傳送給伺服器時,

win10下caffe快速配置(包括PythonCaffe)+Caffe官方教程中譯本及caffe網路模型各教程

借鑑: 文章1:http://www.cnblogs.com/love6tao/p/5706830.html 文章2:http://www.itdadao.com/articles/c15a26208

網路程式設計之TCP/IP各

網路程式設計之TCP/IP各層詳解 我們將應用層,表示層,會話層並作應用層,從TCP/IP五層協議的角度來闡述每層的由來與功能,搞清楚了每層的主要協議,就理解了整個物聯網通訊的原理。 首先,使用者感知到的只是最上面一層——應用層,自上而下每層都依賴於下一層,所以我們從最下層開始切入,比較好理解。 每層都執行特

OSI七之五 會話(Session)

獲得 組合 兩個 功能 建立連接 用戶數 進行 qos session 一、簡介 這一層也可以稱為會晤層或對話層,在會話層及以上的高層次中,數據傳送的單位不再另外命名,統稱為報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制。如服務

OSI七之二 數據鏈路(DataLinkLayer)

必須 sdl -s 通過 鏈路層 family ram style ora 一、簡介   在物理層提供比特流服務的基礎上,建立相鄰結點之間的數據鏈路,通過差錯控制提供數據幀(Frame)在信道上無差錯的傳輸,並進行各電路上的動作系列。    數據鏈路層在不可靠的物理介質上提

TCP數據傳輸過程

握手 ron 布爾 位域 fcm 打開 數據段 2個 處理 在學習三次握手的時候,我們知道其中有seq、ack兩個序列號。 如果不仔細了解,那麽可能只知道發回去的時候要加一。 下文將著重介紹,關於序列號的傳輸過程。 最關鍵的一句話:序列號為當前端成功發送的數據位數,確認號為