資料的傳遞 TCP UDP資料格式

2021-05-23 00:43:02 字數 1401 閱讀 5643

udp和tcp最基本的任務是,將兩個端系統間ip的交付服務擴充套件為執行在兩個端系統上的程序之間的交付服務。將運輸層報文段中的資料交付到正確的套接字,被稱為多路分解;從源主機的不同套接字收集資料塊,並為每個資料塊封裝上首部資訊從而生成報文段,然後將報文段傳遞到網路層,這一工作被稱為多路復用。

多路復用的要求:

1.套接字有唯一的標示符;

2.每個報文段有特殊欄位來指示該報文段要交付的套接字。

tcp 協議為終端裝置提供了面向連線的、可靠的網路服務;udp 協議為終端裝置提供了無連線的、不可靠的資料報服務。從上圖我們可以看出,tcp 協議為了保證資料傳輸的可靠性,相對於udp 報文,tcp 報文頭部有更多的字段選項。

首先讓我們來看一下 tcp 的報文頭部主要字段:

1.源埠號(source port)和目的埠號(destination port):用於標識和區分源端裝置和目的端裝置的應用程序。

在tcp/ip 協議棧中,源埠號和目的埠號分別與源ip 位址和目的ip 位址組成套接字(socket),唯一的確定一條tcp 連線。

2.序列號(sequence number):用來標識tcp 源端裝置向目的端裝置傳送的位元組流,它表示在這個報文段中的第乙個資料位元組。

如果將位元組流看作在兩個應用程式間的單向流動,則tcp 用序列號對每個位元組進行計數。序列號是乙個32bits 的數。

3.確認序號(acknowledgement number,32bits):既然每個傳輸的位元組都被計數,確認序號包含傳送確認的一端所期望接收到的下乙個序號。

因此,確認序號應該是上次已成功收到的資料位元組序列號加1。

4.視窗大小(windows size):tcp 的流量控制由連線的每一端通過宣告的視窗大小來提供。

視窗大小用資料報來表示,例如windows size=3, 表示一次可以傳送三個資料報。視窗大小起始於確認字段指明的值,是乙個16bits 字段。視窗大小可以調節。

5.校驗和(checksum):用於校驗tcp 報頭部分和資料部分的正確性。

6.可選字段:最常見的可選字段是 mss(maximum segment size,最大報文大小)。

mss指明本端所能夠接收的最大長度的報文段。當乙個tcp 連線建立時,連線的雙方都要通告各自的mss 協商可以傳輸的最大報文長度。我們常見的mss有1024(乙太網可達1460 位元組)位元組。

相對於 tcp 報文,udp 報文只有少量的字段:源埠號、目的埠號、長度、校驗和等,各個字段功能和tcp 報文相應字段一樣。

udp 報文沒有可靠性保證和順序保證字段,流量控制欄位等,可靠性較差。當然,使用傳輸層udp 服務的應用程式也有優勢。正因為udp 協議較少的控制選項,在資料傳輸過程中,延遲較小,資料傳輸效率較高,適合於對可靠性要求並不高的應用程式,或者可以保障可靠性的應用程式像dns、 tftp、snmp 等;udp 協議也可以用於傳輸鏈路可靠的網路。

Json資料格式

在web 系統開發中,經常會碰到客戶端和伺服器端互動的問題,比如說客戶端傳送乙個 ajax 請求,然後在伺服器端進行計算,計算後返回結果,客戶端接收到這個響應結果並對它進行處理。那麼這個結果以一種什麼資料結構返回,客戶端才能比較容易和較好的處理呢?通過幾個專案的實踐,我發現 json 格式的資料是一...

JSON資料格式

下面這段文字,摘錄自留作備忘 21世紀初,douglas crockford尋找一種簡便的資料交換格式,能夠在伺服器之間交換資料。當時通用的資料交換語言是xml,但是douglas crockford覺得xml的生成和解析都太麻煩,所以他提出了一種簡化格式,也就是json。json的規格非常簡單,只...

資料格式大全

yy mm dd 百分比00.00 12.68 13 12.68 3 23 2003 12 00 00 am 字元用於分隔格式字串中的正數 負數和零各部分。格式字串 資料 結果 12345.6789 12,345.68 12345.6789 12,345.68 12345 12345 12345 0...