




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、信令流控制傳送協(xié)議SCTP技術(shù)規(guī)范Technical Specification of Stream Control Transmission Protocol(報(bào)批稿)(報(bào)批稿)中中 國(guó)國(guó) 移移 動(dòng)動(dòng) 通通 信信 企企 業(yè)業(yè) 標(biāo)標(biāo) 準(zhǔn)準(zhǔn)中國(guó)移動(dòng)通信集團(tuán)公司中國(guó)移動(dòng)通信集團(tuán)公司 發(fā)布發(fā)布-發(fā)布-實(shí)施目次1 范圍.12 規(guī)范性引用文件.13 名詞術(shù)語(yǔ)和縮略語(yǔ).13.1 定義.23.2 縮略語(yǔ).24 SCTP 的功能描述.34.1 SCTP 的結(jié)構(gòu).34.2 SCTP 的功能.44.2.1 偶聯(lián)的建立和釋放.44.2.2 流內(nèi)消息的順序遞交.44.2.3 用戶(hù)數(shù)據(jù)分段.54.2.4 證實(shí)和避免擁塞
2、.54.2.5 數(shù)據(jù)塊捆綁.54.2.6 分組的有效性驗(yàn)證.54.2.7 通路管理.65 SCTP 原語(yǔ)定義.65.1 高層協(xié)議(ULP)向 SCTP 發(fā)送的請(qǐng)求原語(yǔ).65.1.1 INITIALIZE 原語(yǔ) .75.1.2 ASSOCIATE 原語(yǔ).75.1.3 SHUTDOWN 原語(yǔ) .85.1.4 ABORT 原語(yǔ).85.1.5 SEND 原語(yǔ).85.1.6 SET PRIMARY 原語(yǔ).95.1.7 RECEIVE 原語(yǔ) .105.1.8 STATUS 原語(yǔ).115.1.9 CHANGE HEARTBEAT 原語(yǔ).115.1.10 REQUEST HEARTBEAT 原語(yǔ) .125.1
3、.11 GET SRTT REPORT 原語(yǔ) .125.1.12 SET FAILURE THRESHOLD 原語(yǔ) .125.1.13 SET PROTOCOL PARAMETERS 原語(yǔ).135.1.14 RECEIVE UNSENT MESSAGE 原語(yǔ).135.1.15 RECEIVE UNACKNOWLEDGED MESSAGE 原語(yǔ).145.1.16 DESTROY 原語(yǔ).145.2 SCTP 向高層協(xié)議發(fā)送的通知原語(yǔ).145.2.1 DATA ARRIVE 通知.145.2.2 SEND FAILURE 通知原語(yǔ).155.2.3 NETWORK STATUS CHANGE 通知原語(yǔ)
4、 .155.2.4 COMMUNICATION UP 通知原語(yǔ).155.2.5 COMMUNICATION LOST 通知原語(yǔ) .165.2.6 COMMUNICATION ERROR 通知原語(yǔ).165.2.7 RESTART 通知原語(yǔ) .175.2.8 SHUTDOWN COMPLETE 通知原語(yǔ).176 SCTP 分組的格式以及參數(shù)定義.176.1 SCTP 分組格式.176.1.1 SCTP 公共分組頭字段的格式.186.1.2 數(shù)據(jù)塊字段的格式.196.1.3 任選/可變長(zhǎng)參數(shù)的格式.216.2 SCTP 數(shù)據(jù)塊的格式.226.2.1 凈荷數(shù)據(jù)(DATA)數(shù)據(jù)塊的格式.226.2.2
5、啟動(dòng)(INIT)數(shù)據(jù)塊的格式.236.2.3 啟動(dòng)證實(shí)(INIT ACK)數(shù)據(jù)塊的格式.276.2.4 選擇證實(shí)(SACK)數(shù)據(jù)塊的格式.296.2.5 HeartBeat 請(qǐng)求(HEARTBEAT)數(shù)據(jù)塊的格式.316.2.6 HeartBeat 證實(shí)(HEARTBEAT ACK)數(shù)據(jù)塊的格式.316.2.7 中止(ABORT)數(shù)據(jù)塊的格式.326.2.8 關(guān)閉偶聯(lián)(SHUTDOWN)數(shù)據(jù)塊的格式 .336.2.9 關(guān)閉證實(shí)(SHUTDOWN ACK)數(shù)據(jù)塊的格式.336.2.10 操作差錯(cuò)(ERROR)數(shù)據(jù)塊的格式.336.2.11 狀態(tài) COOKIE(COOKIE ECHO)數(shù)據(jù)塊的格式
6、.386.2.12 COOKIE 證實(shí)(COOKIE ACK)數(shù)據(jù)塊的格式.396.2.13 關(guān)閉完成(SHUTDOWN COMPLETE)數(shù)據(jù)塊的格式.397 SCTP 端點(diǎn)的維護(hù)的參數(shù)和相關(guān)建議值.407.1 對(duì)應(yīng)每個(gè) SCTP 實(shí)例所需的參數(shù).407.2 對(duì)應(yīng)每個(gè)偶聯(lián) SCTP 端點(diǎn)所需的參數(shù).407.3 對(duì)應(yīng)每個(gè)傳送地址所需的參數(shù).417.4 需要的通用參數(shù).427.5 SCTP 參數(shù)的建議值.428 SCTP 的程序.438.1 偶聯(lián)的建立程序.438.1.1 偶聯(lián)的正常建立.438.1.2 對(duì)重復(fù)的或不期望的 INIT、INIT ACK、COOKIE ECHO 和 COOKIE A
7、CK 的處理.488.1.3 其他偶聯(lián)啟動(dòng)的問(wèn)題.518.2 數(shù)據(jù)的傳遞程序.528.2.1 DATA 數(shù)據(jù)塊的傳送.538.2.2 對(duì)接收的 DATA 數(shù)據(jù)塊的證實(shí).548.2.3 重發(fā)定時(shí)器的管理.578.2.4 多歸屬的 SCTP 端點(diǎn).598.2.5 流標(biāo)識(shí)符和流順序號(hào).608.2.6 有序的和無(wú)序的遞交.618.2.7 報(bào)告收到的 DATA 數(shù)據(jù)塊的 TSN 間隔.618.2.8 CRC-32 校驗(yàn)碼的計(jì)算.628.2.9 分段和重裝.628.2.10 捆綁機(jī)制.638.3 擁塞控制程序.648.3.1 SCTP 與 TCP 擁塞控制的區(qū)別 .648.3.2 SCTP 的慢啟動(dòng)和避免
8、擁塞.658.3.3 發(fā)現(xiàn)通路 MTU .688.4 故障管理程序.698.4.1 端點(diǎn)故障的檢出.698.4.2 通路故障的檢出.698.4.3 通路的心跳.708.4.4 對(duì) OOTB(Out of the blue)分組的處理.728.4.5 驗(yàn)證標(biāo)簽.738.5 偶聯(lián)關(guān)閉程序.748.5.1 偶聯(lián)的中止.748.5.2 偶聯(lián)的關(guān)閉.74附錄 A:.77(資料性附錄).77SCTP 的狀態(tài)轉(zhuǎn)移圖.77附錄 B:.81(資料性附錄).81SCTP 程序示例.81B.1 正常偶聯(lián)建立的示例.81B.2 偶聯(lián)重啟動(dòng)的示例.82B.3 延時(shí)證實(shí)的示例.83B.4 使用 SACK 報(bào)告間隔的示例.
9、84B.5 延時(shí)證實(shí)的示例.84附錄 C:.85(資料性附錄).85明確地?fù)砣ㄖ?85前言本技術(shù)規(guī)范是根據(jù) RFC 2960 2000 建議制定的它規(guī)定了信令流控制傳送協(xié)議 SCTP 所使用的消息格式編碼和程序 SCTP 協(xié)議主要用于在 IP 網(wǎng)中傳送 No.7 的信令消息,同時(shí) SCTP 協(xié)議還可以用于其他的信息在 IP 網(wǎng)內(nèi)傳送。本技術(shù)規(guī)范主要適用于 NO.7 信令與 IP 網(wǎng)互通的信令網(wǎng)關(guān) SG 設(shè)備 3G 移動(dòng)軟交換設(shè)備的開(kāi)發(fā)、生產(chǎn)、引進(jìn)和購(gòu)買(mǎi)。本標(biāo)準(zhǔn)的附錄 A 和附錄 B 是提示的附錄。本標(biāo)準(zhǔn)由中國(guó)移動(dòng)通信集團(tuán)公司技術(shù)部提出并歸口。本標(biāo)準(zhǔn)由標(biāo)準(zhǔn)提出并歸口部門(mén)負(fù)責(zé)解釋。本標(biāo)準(zhǔn)起草單位
10、:中國(guó)移動(dòng)通信集團(tuán)公司研發(fā)中心本標(biāo)準(zhǔn)主要起草人:魏冰、杜倩本標(biāo)準(zhǔn)解釋單位:同提出單位。YD/T 1194-20021流控制傳送協(xié)議(SCTP)技術(shù)規(guī)范(V1.0)1 范圍 本規(guī)范規(guī)定了流控制傳送協(xié)議(SCTP)所使用的消息格式編碼和程序,SCTP 協(xié)議主要用于在 IP 網(wǎng)中傳送 PSTN 的信令消息,以及在 IP 網(wǎng)內(nèi)傳送。 本技術(shù)規(guī)范主要適用于完成 NO.7 信令與 IP 網(wǎng)互通的信令網(wǎng)關(guān)(SG)設(shè)備,以及 IP 網(wǎng)用于呼叫控制的軟交換(Soft-Switch)交換機(jī)等設(shè)備的開(kāi)發(fā)、生產(chǎn)、引進(jìn)和購(gòu)買(mǎi)。2 規(guī)范性引用文件 下列文件中的條款通過(guò)在本標(biāo)準(zhǔn)中引用而成為本標(biāo)準(zhǔn)的條款,凡是注日期的引用文件
11、,其隨后所有的修改單(不包括勘誤的內(nèi)容)或修訂版均不適用于本部分,然而鼓勵(lì)根據(jù)本部分達(dá)成協(xié)議的各方研究是否可以適用這些文件的最小版本。凡是不注日期的引用文件,其最新版本適用于本標(biāo)準(zhǔn)。 RFC 793傳送控制協(xié)議(TCP) RFC 1191發(fā)現(xiàn)通路 MTU RFC 1123對(duì) INTERNET 主機(jī)的要求應(yīng)用和支持 RFC 1700分配的號(hào)碼 RFC 1750出于安全目的的隨機(jī)建議 RFC 1981用于 IPV6 的發(fā)現(xiàn)通路 MTU RFC 1982串號(hào)的算法 RFC 2373IPV6 的地址結(jié)構(gòu) RFC 2401INTERNET 協(xié)議的安全結(jié)構(gòu) RFC 2460INTERNET 協(xié)議,版本 6
12、 RCC 2481明確地?fù)砣ㄖ?RFC 2581TCP 擁塞控制 RFC 2960流傳送控制協(xié)議(SCTP)3 名詞術(shù)語(yǔ)和縮略語(yǔ) 23.1 定義SCTP 偶聯(lián):SCTP 偶聯(lián)實(shí)際上是在兩個(gè) SCTP 端點(diǎn)間的一個(gè)對(duì)應(yīng)關(guān)系,它包括了兩個(gè) SCTP端點(diǎn)、以及包括驗(yàn)證標(biāo)簽和傳送順序號(hào)碼等信息在內(nèi)的協(xié)議狀態(tài)信息,一個(gè)偶聯(lián)可以由使用該偶聯(lián)的 SCTP 端點(diǎn)用傳送地址來(lái)唯一識(shí)別,在任何時(shí)候兩個(gè) SCTP 端點(diǎn)間都不會(huì)有多于一個(gè)的偶聯(lián)。 SCTP 端點(diǎn):SCTP 端點(diǎn)是 SCTP 分組中邏輯的接收方或發(fā)送方,在一個(gè)多歸屬的主機(jī)上,一個(gè) SCTP 端點(diǎn)可以由對(duì)端主機(jī)表示為 SCTP 分組可以發(fā)送到的一組合格
13、的目的地傳送地址,或者是可以收到 SCTP 分組的一組合格的起源傳送地址。一個(gè) SCTP 端點(diǎn)使用的所有傳送地址必須使用相同的端口號(hào),但可以使用多個(gè) IP 地址。SCTP 端點(diǎn)使用的傳送地址必須是唯一的。流:流是從兩個(gè) SCTP 端點(diǎn)建立的一個(gè)單向邏輯通道,對(duì)于順序遞交業(yè)務(wù),在這個(gè)通道中所有的用戶(hù)消息都必須按照順序進(jìn)行遞交。傳送地址:傳送地址是用網(wǎng)絡(luò)層地址,傳送層協(xié)議和傳送層端口號(hào)定義的,當(dāng) SCTP 在 IP 上運(yùn)行時(shí),傳送地址就是由 IP 地址和 SCTP 端口號(hào)的組合來(lái)定義的,這里 SCTP 就充當(dāng)傳送協(xié)議。3.2 縮略語(yǔ) MAC消息鑒權(quán)碼 MTU最大的傳送單元 RTO重發(fā)超時(shí) RTT雙
14、向傳播時(shí)間 RTTVAR雙向傳播時(shí)間變化 SCTP流控制傳送協(xié)議 SRTT平滑的雙向傳輸時(shí)間 TCB傳送控制塊 TCP傳送控制協(xié)議 TLV類(lèi)型-長(zhǎng)度-取值的編碼格式 TSN傳送順序號(hào) ULP高層協(xié)議34 SCTP 的功能描述 信令傳送中應(yīng)用的 SCTP 協(xié)議主要用來(lái)在無(wú)連接的網(wǎng)絡(luò)上傳送 PSTN 信令消息,該協(xié)議可以用來(lái)在 IP 網(wǎng)上提供可靠的數(shù)據(jù)傳送協(xié)議。SCTP 具有如下功能: 在確認(rèn)方式下,無(wú)差錯(cuò)、無(wú)重復(fù)地傳送用戶(hù)數(shù)據(jù); 根據(jù)通路的 MTU 的限制,進(jìn)行用戶(hù)數(shù)據(jù)的分段; 在多個(gè)流上保證用戶(hù)消息的順序遞交; 將多個(gè)用戶(hù)的消息復(fù)用到一個(gè) SCTP 的數(shù)據(jù)塊中; 利用 SCTP 偶聯(lián)的機(jī)制(在
15、偶聯(lián)的一端或兩端提供多歸屬的機(jī)制)來(lái)提供網(wǎng)絡(luò)級(jí)的保證; SCTP 的設(shè)計(jì)中還包含了避免擁塞的功能和避免遭受泛播和匿名的攻擊。4.1 SCTP 的結(jié)構(gòu) SCTP 位于 SCTP 用戶(hù)應(yīng)用和無(wú)連接網(wǎng)絡(luò)業(yè)務(wù)層之間,這種無(wú)連接的網(wǎng)絡(luò)可以是 IP 網(wǎng)絡(luò)或者其他的網(wǎng)絡(luò)。本標(biāo)準(zhǔn)規(guī)定的 SCTP 協(xié)議主要是運(yùn)行在 IP 網(wǎng)絡(luò)上的。SCTP 協(xié)議通過(guò)在兩個(gè) SCTP 端點(diǎn)間的建立的偶聯(lián),來(lái)為兩個(gè) SCTP 用戶(hù)之間提供可靠的消息傳送業(yè)務(wù)。 SCTP 實(shí)際上是一個(gè)面向連接的協(xié)議,但 SCTP 偶聯(lián)的概念要比 TCP 的連接具有更廣的概念,SCTP 協(xié)議提供了在兩個(gè) SCTP 端點(diǎn)間的一組傳送地址之間建立偶聯(lián)的方法
16、,通過(guò)這些建立好的偶聯(lián),SCTP 端點(diǎn)可以發(fā)送 SCTP 分組。一個(gè) SCTP 偶聯(lián)可以包含用多個(gè)可能的起源/目的地地址的組合,這些組合包含在每個(gè)端點(diǎn)的傳送地址列表中。 圖 1 給出了 SCTP 偶聯(lián)在 IP 網(wǎng)絡(luò)協(xié)議中的示意。圖 1:SCTP 偶聯(lián)的示意SCTP 用戶(hù)應(yīng)用SCTP 層IP 層SCTP 用戶(hù)應(yīng)用SCTP 層IP 層一個(gè)或多個(gè) IP 地址SCTP 端點(diǎn) ASCTP 端點(diǎn) B網(wǎng)絡(luò)傳送44.2 SCTP 的功能 SCTP 傳送業(yè)務(wù)可以分解成如圖 2 所示成如下幾個(gè)功能塊,各功能塊的用途如下節(jié)所述:圖 2:SCTP 傳送業(yè)務(wù)的功能圖4.2.1 偶聯(lián)的建立和釋放 偶聯(lián)的建立是由 SCTP
17、 用戶(hù)發(fā)起請(qǐng)求來(lái)啟動(dòng)的,出于安全性考慮,為了避免遭受惡意的攻擊,在偶聯(lián)的啟動(dòng)過(guò)程中采用了 COOKIE 機(jī)制。 SCTP 提供了對(duì)激活偶聯(lián)的正常的關(guān)閉程序,它必須根據(jù) SCTP 用戶(hù)的請(qǐng)求來(lái)執(zhí)行,當(dāng)然 SCTP 也提供一種非正常的關(guān)閉程序(即:中止程序) ,中止程序的執(zhí)行既可以根據(jù)用戶(hù)的請(qǐng)求來(lái)啟動(dòng),也可以由 SCTP 協(xié)議檢出差錯(cuò)來(lái)中止。 SCTP 不支持半打開(kāi)狀態(tài)(類(lèi)似 TCP) ,即一端可以在另一端結(jié)束后繼續(xù)發(fā)送數(shù)據(jù)。無(wú)論是哪個(gè)端點(diǎn)執(zhí)行了關(guān)閉程序后,偶聯(lián)的兩端都應(yīng)停止接受從用戶(hù)發(fā)來(lái)的新數(shù)據(jù),并且只傳送隊(duì)列中的數(shù)據(jù)。4.2.2 流內(nèi)消息的順序遞交 SCTP 中的流用來(lái)指示需要按順序遞交到高層
18、協(xié)議的用戶(hù)消息的序列,在同一個(gè)流中的消息需要按照其順序進(jìn)行遞交。 SCTP 用戶(hù)可以在偶聯(lián)建立時(shí)規(guī)定在一個(gè)偶聯(lián)中所支持的流的數(shù)量,這個(gè)數(shù)量是可以進(jìn)行協(xié)商的,用戶(hù)消息通過(guò)流號(hào)來(lái)進(jìn)行關(guān)聯(lián)。在 SCTP 內(nèi)部,每個(gè)通過(guò) SCTP 的 SCTP 用戶(hù)消SCTP 用戶(hù)應(yīng)用流內(nèi)消息的順序遞交用戶(hù)數(shù)據(jù)分段數(shù)據(jù)塊捆綁偶聯(lián)的建立和釋放證實(shí)和避免擁塞分組有效性驗(yàn)證通路管理5息都分配一個(gè)流順序號(hào)碼。在接收端,SCTP 保證在給定的流中,消息可以按照順序遞交給SCTP 用戶(hù)。但當(dāng)某個(gè)流由于等待下一個(gè)連續(xù)的用戶(hù)消息造成閉塞時(shí),其他流上的順序遞交不應(yīng)受影響。 SCTP 也提供非順序遞交的業(yè)務(wù),接收到用戶(hù)消息可以使用這種方
19、式立即遞交到 SCTP用戶(hù),而不需要保證其發(fā)送時(shí)的順序。4.2.3 用戶(hù)數(shù)據(jù)分段 在需要的時(shí)候,SCTP 在發(fā)送用戶(hù)消息時(shí)可以對(duì)消息進(jìn)行分段,以確保發(fā)送到低層的SCTP 分組長(zhǎng)度符合通路 MTU 的要求。在接收方,需要把各分段重組成完整的消息后,再把消息遞交給 SCTP 用戶(hù)。4.2.4 證實(shí)和避免擁塞 SCTP 為每個(gè)用戶(hù)數(shù)據(jù)分段或未分段的消息都分配一個(gè)傳送順序號(hào)碼(TSN) ,TSN 的分配是獨(dú)立于流一級(jí)分配的流順序號(hào)碼。接收方對(duì)所有收到的 TSN 進(jìn)行證實(shí),盡管此時(shí)在接收序列中可能存在接收到的 TSN 不連續(xù)。采用這種方式,可以使可靠的遞交功能可以與流的順序遞交相分離。 證實(shí)和擁塞避免功
20、能可以在規(guī)定時(shí)間內(nèi)沒(méi)有收到證實(shí)的時(shí)候負(fù)責(zé)對(duì)分組的重發(fā)。分組的重發(fā)功能可以通過(guò)與 TCP 協(xié)議類(lèi)似的擁塞避免程序來(lái)調(diào)節(jié)的。4.2.5 數(shù)據(jù)塊捆綁 SCTP 分組在發(fā)送到低層時(shí)要包含一個(gè)公共的分組頭,其后跟著一個(gè)或多個(gè)數(shù)據(jù)塊。每個(gè)數(shù)據(jù)塊中既可以包含用戶(hù)數(shù)據(jù),也可以包含 SCTP 控制信息。SCTP 用戶(hù)具有一個(gè)選項(xiàng),可以請(qǐng)求是否把多于一個(gè)的用戶(hù)消息捆綁在一個(gè) SCTP 分組中進(jìn)行發(fā)送。SCTP 的這種數(shù)據(jù)塊捆綁的功能可以在發(fā)送端生成一個(gè)完整的 SCTP 分組,在接收端負(fù)責(zé)分解該 SCTP 分組。 當(dāng)擁塞出現(xiàn)的時(shí)候,盡管用戶(hù)可能請(qǐng)求 SCTP 不必進(jìn)行捆綁,但 SCTP 的實(shí)施仍舊可以執(zhí)行捆綁功能。
21、用戶(hù)禁止進(jìn)行捆綁只會(huì)影響到 SCTP 實(shí)施,即在傳送 SCTP 分組之前產(chǎn)生一個(gè)較小的時(shí)延。4.2.6 分組的有效性驗(yàn)證 每個(gè) SCTP 公共分組頭中都包含一個(gè)必備的驗(yàn)證標(biāo)簽字段和一個(gè) 32 比特長(zhǎng)的校驗(yàn)字段。驗(yàn)證標(biāo)簽的值由偶聯(lián)的端點(diǎn)在偶聯(lián)啟動(dòng)時(shí)選擇,如果收到的分組中未包含期望的驗(yàn)證標(biāo)簽值,則舍棄該分組。校驗(yàn)碼則由 SCTP 分組的發(fā)送方設(shè)置,以提供附加的保護(hù),用來(lái)避免由網(wǎng)絡(luò)造成的數(shù)據(jù)差錯(cuò)。接收方對(duì)包含無(wú)效校驗(yàn)碼的 SCTP 分組予以丟棄。64.2.7 通路管理 發(fā)送方的 SCTP 用戶(hù)能夠使用一組傳送地址作為 SCTP 分組的目的地。SCTP 通路管理功能可以根據(jù) SCTP 用戶(hù)的指令和當(dāng)前
22、合格的目的地集合的可達(dá)性狀態(tài),為每個(gè)發(fā)送的 SCTP分組選擇一個(gè)目的地傳送地址。當(dāng)用分組業(yè)務(wù)量不能完全表明可達(dá)性時(shí),通路管理功能可以通過(guò)心跳消息來(lái)監(jiān)視到某個(gè)目的地地址的可達(dá)性,并當(dāng)任何遠(yuǎn)端傳送地址的可達(dá)性發(fā)生變化時(shí)向 SCTP 用戶(hù)提供指示。通路管理功能也用來(lái)在偶聯(lián)建立時(shí),向遠(yuǎn)端報(bào)告合格的本地傳送地址集合,并且把從遠(yuǎn)端返回的傳送地址報(bào)告給本地的 SCTP 用戶(hù)。 在偶聯(lián)建立后,需要為每個(gè) SCTP 端點(diǎn)都定義一個(gè)首選通路,用來(lái)在正常情況下發(fā)送SCTP 分組。 在接收端,通路管理功能在處理 SCTP 分組前,用來(lái)驗(yàn)證入局的 SCTP 分組屬于的偶聯(lián)的是否存在。5 SCTP 原語(yǔ)定義 SCTP 通
23、過(guò)接收高層協(xié)議(SCTP 用戶(hù))發(fā)送的原語(yǔ)請(qǐng)求,為 SCTP 的用戶(hù)提供服務(wù),并且應(yīng)當(dāng)可以根據(jù)不同事件由 SCTP 向 SCTP 用戶(hù)發(fā)送通知。 本節(jié)章描述的原語(yǔ)和通知可以作為實(shí)施 SCTP 協(xié)議的一個(gè)參考,以下描述的高層協(xié)議接口原語(yǔ)功能只是一個(gè)說(shuō)明性的內(nèi)容,并不要求完全按照以下的說(shuō)明來(lái)實(shí)現(xiàn) SCTP 協(xié)議。不同的 SCTP 實(shí)施可以具有不同的 ULP 接口,但是 SCTP 必須提供一個(gè)最小集的業(yè)務(wù),用來(lái)保證所有的 SCTP 實(shí)施都可以支持相同的協(xié)議。5.1 高層協(xié)議(ULP)向 SCTP 發(fā)送的請(qǐng)求原語(yǔ) 本節(jié)對(duì) ULP 和 SCTP 之間的功能的進(jìn)行歸納,使用的描述方法采用了高級(jí)程序語(yǔ)言所用
24、的過(guò)程和函數(shù)調(diào)用方法。 以下描述的 ULP 原語(yǔ)規(guī)定了在 SCTP 必須支持的用于互相通信的基本功能。單獨(dú)的實(shí)施必須按照各自格式進(jìn)行對(duì)原語(yǔ)詳細(xì)定義,它可以是在一個(gè)調(diào)用中使用這些基本功能的子集或者是用這些基本功能的組合來(lái)實(shí)現(xiàn)。 以下的原語(yǔ)描述使用了如下格式:原語(yǔ)名(必備屬性,任選屬性) 返回結(jié)果:必備屬性,任選屬性75.1.1 INITIALIZE 原語(yǔ)原語(yǔ)格式: INITIALIZE (本端端口,本地合格的地址列表)返回結(jié)果: 本地 SCTP 實(shí)例名 這個(gè)原語(yǔ)允許 SCTP 啟動(dòng)其內(nèi)部的數(shù)據(jù)結(jié)構(gòu),并為建立操作環(huán)境分配所需的資源,一旦SCTP 啟動(dòng)后,則高層協(xié)議在與其它 SCTP 端點(diǎn)直接通信時(shí)
25、就不需要再調(diào)用該原語(yǔ)。 SCTP 將向高層協(xié)議返回一個(gè)本地 SCTP 實(shí)例名 必備屬性:無(wú) 任選屬性:以下屬性類(lèi)型可以通過(guò)原語(yǔ)進(jìn)行傳遞。 本地端口:SCTP 端口號(hào),如果高層協(xié)議(ULP)希望規(guī)定; 本地合格的地址列表:本地 SCTP 端點(diǎn)應(yīng)當(dāng)綁定的地址列表。如果未包含地址列表,缺省的,所有分配給主機(jī)的所有 IP 地址應(yīng)當(dāng)是作為本地端點(diǎn)(注) 。 注:如果實(shí)施支持這個(gè)任選屬性,則實(shí)施應(yīng)當(dāng)保證本端點(diǎn)發(fā)送的任何 SCTP 分組中應(yīng)當(dāng)包含一個(gè)在本地合格的地址列表中規(guī)定的 IP 地址。5.1.2 ASSOCIATE 原語(yǔ)原語(yǔ)格式: ASSOCIATE(本地 SCTP 實(shí)例名,目的地傳送地址,出局的流數(shù)
26、量)返回結(jié)果: 偶聯(lián) ID ,目的地傳送地址列表 ,出局的流數(shù)量 該原語(yǔ)用來(lái)由高層啟動(dòng)一個(gè)到特定端點(diǎn)的偶聯(lián)。對(duì)端點(diǎn)按照在該端點(diǎn)定義的傳送地址進(jìn)行規(guī)定,如果本地 SCTP 實(shí)例未啟動(dòng),則認(rèn)為該原語(yǔ)是一個(gè)差錯(cuò)。 用來(lái)進(jìn)行本地處理 SCTP 偶聯(lián)的偶聯(lián) ID,作為返回結(jié)果用來(lái)返回偶聯(lián)是否成功建立。如果偶聯(lián)建立不成功,則返回一個(gè)差錯(cuò)。如果偶聯(lián)成功建立,則返回結(jié)果中還應(yīng)包含到對(duì)端的完整的傳送地址列表以及本端點(diǎn)的出局的流數(shù)量,同時(shí)還應(yīng)從返回的目的地地址中選擇一個(gè)傳送地址作為本地端點(diǎn)向?qū)Χ税l(fā)送 SCTP 分組的首選通路。返回的“目的地傳送地址列表”可以由高層協(xié)議用來(lái)改變首選通路,或者是向一個(gè)特定傳送地址強(qiáng)制
27、發(fā)送一個(gè)分組。 注:如果 ASSOCIATE 原語(yǔ)用作模塊化的功能調(diào)用,則偶聯(lián)成功建立后,ASSOCIATE原語(yǔ)還可以返回除偶聯(lián) ID 之外的其他偶聯(lián)參數(shù);如果 ASSOCIATE 原語(yǔ)是作為一個(gè)非模塊化的功能調(diào)用,則應(yīng)當(dāng)只返回偶聯(lián) ID,其他偶聯(lián)參數(shù)應(yīng)當(dāng)用 COMMUNICATION UP 進(jìn)行通知。8 必備屬性: 本地 SCTP 實(shí)例名:從 INITIALIZE 操作中獲得; 目的地傳送地址:規(guī)定了建立的偶聯(lián)的對(duì)端點(diǎn)的一個(gè)傳送地址; 出局的流數(shù)量:高層協(xié)議希望向?qū)Χ它c(diǎn)開(kāi)放的出局的流的數(shù)量。 任選屬性:無(wú)5.1.3 SHUTDOWN 原語(yǔ)原語(yǔ)格式: SHUTDOWN(偶聯(lián) ID)返回結(jié)果:
28、結(jié)果編碼 該原語(yǔ)用來(lái)正常地關(guān)閉一個(gè)偶聯(lián),任何已在本地發(fā)送隊(duì)列中的用戶(hù)數(shù)據(jù)都將被遞交到對(duì)端。該偶聯(lián)將在收到所有發(fā)送的 SCTP 分組的證實(shí)后停止。返回結(jié)果用來(lái)指示是否成功的關(guān)閉了該偶聯(lián),如果成功則返回一個(gè)成功關(guān)閉偶聯(lián)編碼;如果試圖關(guān)閉偶聯(lián)失敗,則返回一個(gè)差錯(cuò)編碼。 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián)。 任選屬性:無(wú)5.1.4 ABORT 原語(yǔ)原語(yǔ)格式:ABORT(偶聯(lián) ID ,原因編碼)返回結(jié)果:結(jié)果編碼 該原語(yǔ)用來(lái)非正常地關(guān)閉(中止)一個(gè)偶聯(lián),本地發(fā)送隊(duì)列中的用戶(hù)數(shù)據(jù)將被丟棄,并發(fā)送一個(gè) ABORT 數(shù)據(jù)塊到對(duì)端。返回結(jié)果用來(lái)指示是否成功的中止了該偶聯(lián),如果偶聯(lián)中止成功,則返回
29、一個(gè)成功編碼,如果試圖中止偶聯(lián)失敗,則返回一個(gè)差錯(cuò)編碼。 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián)。 任選屬性: 原因編碼:傳遞給對(duì)端的中止原因。5.1.5 SEND 原語(yǔ)原語(yǔ)格式: SEND(偶聯(lián) ID,緩沖區(qū)地址,字節(jié)計(jì)數(shù) ,上下文,流 ID ,存活時(shí)間 ,目的地傳送地址,無(wú)序標(biāo)志,無(wú)綁定標(biāo)志 ,凈荷協(xié)議 ID)返回結(jié)果: 結(jié)果編碼9 SCTP 用戶(hù)使用該原語(yǔ)通知 SCTP 發(fā)送數(shù)據(jù),返回結(jié)果用來(lái)指示是否成功的發(fā)送了數(shù)據(jù)。這是通過(guò) SCTP 發(fā)送用戶(hù)數(shù)據(jù)的主要方法 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 緩沖區(qū)地址:需要發(fā)送的用戶(hù)消息存儲(chǔ)的位置; 字節(jié)計(jì)數(shù):用戶(hù)數(shù)據(jù)
30、的字節(jié)數(shù)。 任選屬性: 上下文:一個(gè)任選的 32 比特整數(shù),如果這個(gè)用戶(hù)消息傳送失敗,則在向高層協(xié)議通知發(fā)送失敗時(shí)攜帶; 流 ID:用來(lái)指示數(shù)據(jù)需要在哪個(gè)流上發(fā)送,如果未規(guī)定,則缺省認(rèn)為流 ID 為 0; 存活時(shí)間:規(guī)定用戶(hù)數(shù)據(jù)的存活時(shí)間,用戶(hù)數(shù)據(jù)不應(yīng)在存活時(shí)間之后由 SCTP 發(fā)送。這個(gè)參數(shù)可以避免傳送一個(gè)過(guò)期的用戶(hù)消息,如果用戶(hù)數(shù)據(jù)不能在存活時(shí)間內(nèi)啟動(dòng)傳送(即通過(guò) SCTP 的 SEND 原語(yǔ)發(fā)送到目的地) ,則 SCTP 應(yīng)當(dāng)通知高層用戶(hù)。如果 SCTP 已經(jīng)嘗試在存活時(shí)間超時(shí)前傳送數(shù)據(jù)塊,則用戶(hù)數(shù)據(jù)就可以認(rèn)為是被發(fā)送了。 注:為了更好的支持?jǐn)?shù)據(jù)塊的存活時(shí)間選項(xiàng),發(fā)送方可以暫停給一個(gè)出局
31、的 DATA 數(shù)據(jù)塊分配 TSN 號(hào)碼。為了簡(jiǎn)化實(shí)施,一旦 TSN 號(hào)碼由發(fā)送方分配,則認(rèn)為這個(gè) DATA 數(shù)據(jù)塊已經(jīng)被發(fā)送,并且不受這個(gè) DATA 數(shù)據(jù)塊的存活時(shí)間選項(xiàng)的限制了。 目的地傳送地址:規(guī)定了分組要傳送到已建立的偶聯(lián)的對(duì)端點(diǎn)的一個(gè)傳送地址,只要可能,SCTP 將使用這個(gè)目的地傳送地址來(lái)發(fā)送分組,而不使用當(dāng)前的首選通路; 無(wú)序的標(biāo)志:如果這個(gè)標(biāo)志存在,則指示用戶(hù)允許把數(shù)據(jù)按照無(wú)序的方式遞交給對(duì)端(即:攜帶這個(gè)這個(gè)消息的所有 DATA 數(shù)據(jù)塊的 U 標(biāo)志位設(shè)置為 1) ; 無(wú)綁定標(biāo)志:指示 SCTP 不要把這個(gè)用戶(hù)數(shù)據(jù)同其他出局的 DATA 數(shù)據(jù)塊捆綁在一個(gè) SCTP 分組中。當(dāng)網(wǎng)絡(luò)擁
32、塞時(shí),SCTP 可以不考慮這個(gè)標(biāo)志位是否存在而直接進(jìn)行捆綁; 凈荷協(xié)議 ID:一個(gè) 32 比特的無(wú)符號(hào)整數(shù),它用來(lái)指示被傳送到對(duì)端的凈荷協(xié)議數(shù)據(jù)的類(lèi)型,這個(gè)值由 SCTP 作為透明的數(shù)據(jù)進(jìn)行傳遞。5.1.6 SET PRIMARY 原語(yǔ)原語(yǔ)格式:SETPRIMARY(偶聯(lián) ID,目的地傳送地址,起源傳送地址 )返回結(jié)果:結(jié)果編碼 高層協(xié)議用該原語(yǔ)指示本地 SCTP 把給定的目的地傳送地址作為發(fā)送分組的首選通路。10該操作的返回結(jié)果用來(lái)指示這個(gè)操作是否成功執(zhí)行。 如果規(guī)定的目的地傳送地址沒(méi)包含在先前在 ASSOCIATE 原語(yǔ)或 COMMUNICATION UP 通知返回的“目的地傳送地址列表”
33、中,則返回一個(gè)差錯(cuò)。 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 目的地傳送地址:規(guī)定了分組要傳送到已建立的偶聯(lián)的對(duì)端點(diǎn)的一個(gè)傳送地址,這個(gè)地址將作為今后發(fā)送分組的首選地址,這個(gè)地址將修改本地 SCTP 地址維護(hù)的當(dāng)前首選地址信息。 任選屬性: 起源傳送地址:一些實(shí)施可以允許任選的把放在所有的出局 IP 數(shù)據(jù)報(bào)中的地址設(shè)置為缺省起源地址。5.1.7 RECEIVE 原語(yǔ)原語(yǔ)格式: RECEIVE(偶聯(lián) ID,緩沖區(qū)地址,緩沖區(qū)容量 ,流 ID)返回結(jié)果: 字節(jié)計(jì)數(shù) ,傳送地址 ,流 ID ,流順序號(hào)碼 ,部分標(biāo)志位 ,遞交號(hào)碼 ,凈荷協(xié)議 ID 該原語(yǔ)用來(lái)把在 SCTP 隊(duì)列中的可用
34、的用戶(hù)消息讀到由高層協(xié)議規(guī)定的緩沖區(qū)中。所讀消息的字節(jié)數(shù)將作為結(jié)果返回,如果有可能根據(jù)特定的實(shí)施,也可以返回其他信息,如發(fā)送方的地址、收到的消息的流 ID,以及是否有消息可以進(jìn)行恢復(fù)等,對(duì)于順序的消息,他們的流順序號(hào)碼也可以被返回。 根據(jù)實(shí)施,如果在調(diào)用這個(gè)原語(yǔ)時(shí),隊(duì)列中沒(méi)有消息可用,則可以返回一個(gè)這種情況的指示,或者是先禁止執(zhí)行該調(diào)用進(jìn)程,直到隊(duì)列中有新消息可用為止。 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 緩沖區(qū)地址:高層協(xié)議指示的接收的用戶(hù)消息存儲(chǔ)的內(nèi)存位置; 緩沖區(qū)容量:將要收到的數(shù)據(jù)的最大長(zhǎng)度,以字節(jié)為單位。 任選屬性: 流 ID:用來(lái)指示接收到的數(shù)據(jù)所在的流; 流順序
35、號(hào)碼:由對(duì)端 SCTP 發(fā)送方分配的流順序號(hào)碼; 部分標(biāo)志位:如果返回的這個(gè)標(biāo)志位設(shè)置為 1,則這個(gè) RECEIVE 原語(yǔ)中只包含了整11個(gè)消息的一部分,如果這個(gè)標(biāo)志位被設(shè)置,則流 ID 和流順序號(hào)碼必須也包含在這個(gè)RECEIVE 原語(yǔ)中,如果這個(gè)標(biāo)志位設(shè)置為 0,則表示對(duì)這個(gè)流順序號(hào)碼而言已經(jīng)沒(méi)有更多需要遞交的內(nèi)容; 凈荷協(xié)議 ID:一個(gè) 32 比特的無(wú)符號(hào)整數(shù),它用來(lái)指示收到的對(duì)端的凈荷協(xié)議數(shù)據(jù)的類(lèi)型,這個(gè)值由 SCTP 作為透明的數(shù)據(jù)進(jìn)行傳遞。5.1.8 STATUS 原語(yǔ)原語(yǔ)格式: STATUS(偶聯(lián) ID)返回結(jié)果: 狀態(tài)數(shù)據(jù) 該原語(yǔ)用來(lái)要求 SCTP 返回一個(gè)包含以下信息的數(shù)據(jù)塊:
36、 偶聯(lián)連接狀態(tài); 目的地傳送地址表; 目的傳送地址的可達(dá)性狀態(tài); 當(dāng)前的接收方窗口大??; 當(dāng)前的擁塞窗口大??; 未確認(rèn)的 DATA 數(shù)據(jù)塊的數(shù)量; 收到的 DATA 數(shù)據(jù)塊的數(shù)量; 首選通路; 首選通路上最近收到的 SRTT; 首選通路的 RTO; 其它目的地地址的 SRTT 和 RTO 等。 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián)。 任選屬性:無(wú)5.1.9 CHANGE HEARTBEAT 原語(yǔ)原語(yǔ)格式: CHANGEHEARTBEAT(偶聯(lián) ID,目的地傳送地址,新?tīng)顟B(tài) ,周期)返回結(jié)果: 結(jié)果編碼 高層協(xié)議用該原語(yǔ)指示本地端點(diǎn)允許或禁止向指定的目的地傳送地址發(fā)送心跳消息。返回
37、原因用來(lái)指示該操作的執(zhí)行情況。如果可能,當(dāng)目的傳送地址未空閑時(shí),心跳程序也不執(zhí)行。12 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 目的地傳送地址:規(guī)定了到偶聯(lián)的對(duì)端點(diǎn)的一個(gè)傳送地址; 新?tīng)顟B(tài):用來(lái)指示對(duì)該目的地傳送地址的心跳狀態(tài)(允許或禁止) 。 任選屬性: 周期:如果該參數(shù)存在,且允許對(duì)端目的地傳送地址進(jìn)行心跳測(cè)試,則用來(lái)指示心跳測(cè)試的頻率,該參數(shù)的缺省值為設(shè)置值加上到目的地地址的 RTO,這個(gè)參數(shù)對(duì)所有目的地起作用。5.1.10 REQUEST HEARTBEAT 原語(yǔ)原語(yǔ)格式: REQUESTHEARTBEAT(偶聯(lián) ID,目的地傳送地址)返回結(jié)果: 結(jié)果編碼 高層協(xié)議用該原
38、語(yǔ)指示本地端點(diǎn)對(duì)給定偶聯(lián)的特定目的地傳送地址執(zhí)行心跳程序,返回結(jié)果用來(lái)指示傳送給目的地地址的 HEARTBEAT 數(shù)據(jù)塊是否成功。 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 目的地傳送地址:HEARTBEAT 消息需要發(fā)送去的偶聯(lián)傳送地址。5.1.11 GET SRTT REPORT 原語(yǔ)原語(yǔ)格式: GETSRTTREPORT(偶聯(lián) ID,目的地傳送地址)返回結(jié)果: SRTT 的取值 高層協(xié)議用該原語(yǔ)指示本地 SCTP 報(bào)告對(duì)給定偶聯(lián)上規(guī)定的目的地傳送地址的當(dāng)前SRTT 測(cè)量值,返回結(jié)果應(yīng)當(dāng)是一個(gè)包含最近 SRTT 的毫秒值(整數(shù)) 。 必備屬性: 偶聯(lián) ID:本地處理的 SCTP
39、 偶聯(lián); 目的地傳送地址:需要報(bào)告的 SRTT 測(cè)量的偶聯(lián)傳送地址。5.1.12 SET FAILURE THRESHOLD 原語(yǔ)原語(yǔ)格式: SETFAILURETHRESHOLD(偶聯(lián) ID,目的地傳送地址,故障門(mén)限)返回結(jié)果: 結(jié)果編碼 該原語(yǔ)允許本地 SCTP 定制到給定目的地地址的可達(dá)性故障檢出的門(mén)限“Path.Max.Retrans” ,返回結(jié)果用來(lái)指示該操作是否成功。13 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 目的地傳送地址:設(shè)置故障檢出門(mén)限的的偶聯(lián)傳送地址。 故障門(mén)限:對(duì)該目的地地址的 Path.Max.Retrans 參數(shù)的新取值。5.1.13 SET PROT
40、OCOL PARAMETERS 原語(yǔ)原語(yǔ)格式: SETPROTOCOLPARAMETERS(偶聯(lián) ID ,目的地傳送地址, 協(xié)議參數(shù)列表)返回結(jié)果: 結(jié)果編碼 該原語(yǔ)允許本地 SCTP 定制協(xié)議參數(shù),返回結(jié)果用來(lái)指示該操作是否成功 必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 協(xié)議參數(shù)列表:SCTP 用戶(hù)希望定制的協(xié)議參數(shù)的名稱(chēng)和取值(如: Association.Max.Retrans 等) 。 任選屬性: 目的地傳送地址:針對(duì)每個(gè)目的地傳送地址可以對(duì)相關(guān)的協(xié)議參數(shù)進(jìn)行設(shè)置。5.1.14 RECEIVE UNSENT MESSAGE 原語(yǔ)原語(yǔ)格式: RECEIVE_UNSENT(數(shù)據(jù)
41、恢復(fù) ID,緩沖區(qū)地址,緩沖區(qū)容量,流 ID,流順序號(hào)碼,部分標(biāo)志位,凈荷協(xié)議 ID 必備屬性: 數(shù)據(jù)恢復(fù) ID:在故障(failure)通知中傳遞給高層的標(biāo)識(shí); 緩沖區(qū)地址:高層協(xié)議指示的接收的消息存儲(chǔ)的內(nèi)存位置; 緩沖區(qū)容量:將要收到的數(shù)據(jù)的最大長(zhǎng)度,以字節(jié)為單位。 任選屬性: 流 ID:這個(gè)返回值它被設(shè)置用來(lái)指示數(shù)據(jù)需要發(fā)送到哪個(gè)流; 流順序號(hào)碼:這個(gè)值返回用來(lái)指示與該消息相關(guān)的流順序號(hào)碼; 部分標(biāo)志位:如果返回的這個(gè)標(biāo)志位設(shè)置為 1,則這個(gè) Receive 原語(yǔ)中只包含了整個(gè)消息的一部分,如果這個(gè)標(biāo)志位被設(shè)置,則流 ID 和流順序號(hào)碼必須也包含在這個(gè) Receive 原語(yǔ)中,如果這個(gè)標(biāo)
42、志位設(shè)置為 0,則表示對(duì)這個(gè)流順序號(hào)碼而言已經(jīng)沒(méi)有更多需要遞交的內(nèi)容;14 凈荷協(xié)議 ID:一個(gè) 32 比特的無(wú)符號(hào)整數(shù),它用來(lái)指示收到的對(duì)端的凈荷協(xié)議數(shù)據(jù)的類(lèi)型,這個(gè)值由 SCTP 作為透明的數(shù)據(jù)進(jìn)行傳遞。5.1.15 RECEIVE UNACKNOWLEDGED MESSAGE 原語(yǔ)原語(yǔ)格式: RECEIVE_UNACKED(數(shù)據(jù)恢復(fù) ID,緩沖區(qū)地址,緩沖區(qū)容量,流 ID,流順序號(hào)碼,部分標(biāo)志位,凈荷協(xié)議 ID) 必備屬性: 數(shù)據(jù)恢復(fù) ID:在故障(failure)通知中傳遞給高層的標(biāo)識(shí); 緩沖區(qū)地址:高層協(xié)議指示的接收的消息存儲(chǔ)的內(nèi)存位置; 緩沖區(qū)容量:將要收到的數(shù)據(jù)的最大長(zhǎng)度,以字節(jié)
43、為單位。 任選屬性: 流 ID:這個(gè)返回值它被設(shè)置用來(lái)指示數(shù)據(jù)需要發(fā)送到哪個(gè)流; 流順序號(hào)碼:這個(gè)值返回用來(lái)指示與該消息相關(guān)的流順序號(hào)碼; 部分標(biāo)志位:如果返回的這個(gè)標(biāo)志位設(shè)置為 1,則這個(gè) Receive 原語(yǔ)中只包含了整個(gè)消息的一部分,如果這個(gè)標(biāo)志位被設(shè)置,則流 ID 和流順序號(hào)碼必須也包含在這個(gè) Receive 原語(yǔ)中,如果這個(gè)標(biāo)志位設(shè)置為 0,則表示對(duì)這個(gè)流順序號(hào)碼而言已經(jīng)沒(méi)有更多需要遞交的內(nèi)容; 凈荷協(xié)議 ID:一個(gè) 32 比特的無(wú)符號(hào)整數(shù),它用來(lái)指示收到的對(duì)端的凈荷協(xié)議數(shù)據(jù)的類(lèi)型,這個(gè)值由 SCTP 作為透明的數(shù)據(jù)進(jìn)行傳遞。5.1.16 DESTROY 原語(yǔ)原語(yǔ)格式: DESTRO
44、Y(本地 SCTP 實(shí)例名) 必備屬性: 本地 SCTP 實(shí)例名:這個(gè)值是在 initialize 原語(yǔ)中傳遞給應(yīng)用的,它用來(lái)指示哪個(gè)SCTP 實(shí)例要進(jìn)行破壞。5.2 SCTP 向高層協(xié)議發(fā)送的通知原語(yǔ) 假定 SCTP 提供了一種由 ULP 異步處理信號(hào)的方法,當(dāng) SCTP 發(fā)一個(gè)信號(hào)給 ULP 處理時(shí),也需要把特定的信息傳遞給 ULP。5.2.1 DATA ARRIVE 通知 當(dāng)一個(gè)用戶(hù)消息被成功的接收,并且準(zhǔn)備向高層遞交時(shí),SCTP 將用該原語(yǔ)通知高層協(xié)15議。 原語(yǔ)格式:DATA ARRIVE(,偶聯(lián) ID ,流 ID) 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中可以包含以下任選屬性: 偶聯(lián) ID:
45、本地處理的 SCTP 偶聯(lián); 流 ID:用來(lái)指示數(shù)據(jù)是從哪個(gè)流上收到的。5.2.2 SEND FAILURE 通知原語(yǔ) 當(dāng)一個(gè)消息不能被遞交時(shí),SCTP 將發(fā)送該原語(yǔ)通知高層協(xié)議。 原語(yǔ)格式:SEND FAILURE(,偶聯(lián) ID ,數(shù)據(jù)恢復(fù) ID ,原因編碼 ,上下文) 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中可以包含以下任選屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 數(shù)據(jù)恢復(fù) ID:用來(lái)恢復(fù)未發(fā)送和未證實(shí)數(shù)據(jù)的標(biāo)識(shí); 原因編碼:用來(lái)指示故障的原因,例如:長(zhǎng)度過(guò)長(zhǎng),消息存活時(shí)間過(guò)期等; 上下文與該消息相關(guān)的任選信息(見(jiàn) 5.1.1 節(jié)) 。5.2.3 NETWORK STATUS CHANGE
46、通知原語(yǔ) 當(dāng)目的地傳送地址被標(biāo)記為未激活時(shí) (例如,當(dāng) SCTP 檢測(cè)出故障) ,或標(biāo)記為激活時(shí)(當(dāng) SCTP 檢出故障恢復(fù)) ,SCTP 將用該原語(yǔ)通知高層協(xié)議。 原語(yǔ)格式:NETWORK STATUS CHANGE(偶聯(lián) ID,目的地傳送地址,新?tīng)顟B(tài)) 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中必須包含以下必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 目的地傳送地址:它用來(lái)指示由于狀態(tài)變化而受影響的對(duì)端點(diǎn)的目的地傳送地址; 新?tīng)顟B(tài):用來(lái)指示新的狀態(tài)。5.2.4 COMMUNICATION UP 通知原語(yǔ) SCTP 用該原語(yǔ)通知高層協(xié)議本地 SCTP 已經(jīng)準(zhǔn)備好發(fā)送或接收用戶(hù)數(shù)據(jù),或者是一個(gè)丟失
47、通信的端點(diǎn)又已經(jīng)恢復(fù)。 實(shí)施的注:如果 ASSOCIATE 是作為一個(gè)模塊化功能調(diào)用,則偶聯(lián)參數(shù)都作為ASSOCIATE 原語(yǔ)的返回結(jié)果,在這種情況下,COMMUNICATION UP 通知原語(yǔ)作為偶聯(lián)的16發(fā)起方是任選的。 原語(yǔ)格式:COMMUNICATION UP(偶聯(lián) ID,狀態(tài),目的地傳送地址列表,出局的流數(shù)量,入局流數(shù)量) 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中必須包含以下必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 狀態(tài):用來(lái)指示發(fā)生了哪種類(lèi)型的事件; 目的地傳送地址列表:對(duì)端點(diǎn)的一個(gè)完整的傳送地址集合; 出局的流數(shù)量:偶聯(lián)高層允許使用的最大的流數(shù)量; 入局流數(shù)量:對(duì)端點(diǎn)對(duì)該偶聯(lián)所
48、請(qǐng)求的流數(shù)量(這個(gè)值可以與出局的流數(shù)量的取值不同) 。5.2.5 COMMUNICATION LOST 通知原語(yǔ) 當(dāng) SCTP 完全丟失了到一個(gè)端點(diǎn)的通信時(shí)(用心跳消息) ,或者是檢出端點(diǎn)已經(jīng)執(zhí)行了中止操作,則 SCTP 將使用該原語(yǔ)通知高層協(xié)議。 原語(yǔ)格式:COMMUNICATION LOST(偶聯(lián) ID,狀態(tài) ,數(shù)據(jù)恢復(fù) ID,最后證實(shí)的TSN,最后發(fā)送的 TSN) 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中必須包括以下必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 狀態(tài):用來(lái)指示發(fā)生了哪種類(lèi)型的事件。狀態(tài)可以指示故障或者是響應(yīng) SHUTDOWN 或 ABORT 請(qǐng)求的正常的中止事件。 在該通知
49、原語(yǔ)中可以包括以下任選屬性: 數(shù)據(jù)恢復(fù) ID:用來(lái)恢復(fù)未發(fā)送或未證實(shí)數(shù)據(jù)的表示; 最后證實(shí)的 TSN:由對(duì)端點(diǎn)最后證實(shí)的 TSN; 最后發(fā)送的 TSN:發(fā)送到對(duì)端的最后一個(gè) TSN。5.2.6 COMMUNICATION ERROR 通知原語(yǔ) 當(dāng) SCTP 從對(duì)端收到了一個(gè) ERROR 數(shù)據(jù)塊,并且確定需要向高層協(xié)議通知時(shí),才使用該通知原語(yǔ)。 原語(yǔ)格式:COMMUNICATION ERROR(偶聯(lián) ID,錯(cuò)誤信息)17 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中必須包括以下必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián); 錯(cuò)誤信息:用來(lái)指示錯(cuò)誤類(lèi)型并且可以任選地包含一些從 ERROR 數(shù)據(jù)塊中收到的附
50、加信息。5.2.7 RESTART 通知原語(yǔ) 當(dāng) SCTP 檢出其對(duì)端已經(jīng)重新啟動(dòng)時(shí),則可以用該原語(yǔ)通知高層協(xié)議。 原語(yǔ)格式:RESTART(偶聯(lián) ID) 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中必須包括以下必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián)5.2.8 SHUTDOWN COMPLETE 通知原語(yǔ) 當(dāng) SCTP 已經(jīng)完成了關(guān)閉程序后,則用該原語(yǔ)通知高層協(xié)議。 原語(yǔ)格式:SHUTDOWN COMPLETE(偶聯(lián) ID) 返回結(jié)果: 無(wú) 在該通知原語(yǔ)中必須包括以下必備屬性: 偶聯(lián) ID:本地處理的 SCTP 偶聯(lián)。6 SCTP 分組的格式以及參數(shù)定義6.1 SCTP 分組格式 SCTP 分組
51、由公共的分組頭和若干數(shù)據(jù)塊組成,每個(gè)數(shù)據(jù)塊中既可以包含控制信息,也可以包含用戶(hù)數(shù)據(jù)。除了 INIT,INIT ACK,和 SHUTDOWN COMPLETE 數(shù)據(jù)塊外,其他類(lèi)型的多個(gè)數(shù)據(jù)塊可以捆綁在一個(gè) SCTP 分組中,當(dāng)然必須要滿(mǎn)足偶聯(lián)對(duì) MTU 的要求。當(dāng)然這些數(shù)據(jù)塊也可以不與其它數(shù)據(jù)塊捆綁在一個(gè)分組中。如果一個(gè)用戶(hù)消息不能放在一個(gè)SCTP 分組中,則這個(gè)消息可以被分成若干個(gè)數(shù)據(jù)塊。 SCTP 分組的格式如圖 3 所示:18圖 3 SCTP 分組的格式6.1.1 SCTP 公共分組頭字段的格式 SCTP 公共分組頭字段的格式如圖 4 所示。圖 4 SCTP 公共分組頭的格式 SCTP 公
52、共分組頭的各字段含義如下所述: 起源端口號(hào)(16 比特的無(wú)符號(hào)整數(shù)):該端口號(hào)用來(lái)識(shí)別 SCTP 發(fā)送方的端口號(hào)碼,接收方使用起源端口號(hào)和起源 IP 地址,以及目的地端口號(hào)和可能的目的地 IP 地址來(lái)識(shí)別屬于某個(gè)偶聯(lián)的分組。 目的端口號(hào)(16 比特的無(wú)符號(hào)整數(shù)):該 SCTP 端口號(hào)用來(lái)確定分組的去向。接收方主機(jī)將利用該端口號(hào)把 SCTP 分組解復(fù)用到正確的接收端點(diǎn)或應(yīng)用。 驗(yàn)證標(biāo)簽(32 比特的無(wú)符號(hào)整數(shù)):接收到分組的接收方使用驗(yàn)證標(biāo)簽來(lái)判別發(fā)送方的這個(gè) SCTP 分組的有效性。在發(fā)送方該驗(yàn)證標(biāo)簽必須設(shè)置為在偶聯(lián)啟動(dòng)階段中從對(duì)端點(diǎn)收到的啟動(dòng)標(biāo)簽中的值,以下情況除外: 包含 INIT 數(shù)據(jù)塊
53、的分組中驗(yàn)證標(biāo)簽必須為 0,攜帶 INIT 塊的 SCTP 的分組中不能包含其他數(shù)據(jù)塊; 在包含 SHUTDOWN-COMPLETE 數(shù)據(jù)塊且設(shè)置了 T 比特的分組中,驗(yàn)證標(biāo)簽必須要從包含 SHUTDOWN-ACK 數(shù)據(jù)塊的分組中復(fù)制; 在包含 ABORT 數(shù)據(jù)塊的分組中,驗(yàn)證標(biāo)簽必須要從觸發(fā)這個(gè) ABORT 發(fā)送的分組中01230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1公共的分組頭:數(shù)據(jù)塊 1數(shù)據(jù)塊 n01230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
54、5 6 7 8 9 0 1校驗(yàn)碼目的地端口號(hào)起源端口號(hào)分組有效性驗(yàn)證標(biāo)簽19復(fù)制; 校驗(yàn)碼(32 比特的無(wú)符號(hào)整數(shù)):該字段用來(lái)傳送 SCTP 分組的校驗(yàn)碼。6.1.2 數(shù)據(jù)塊字段的格式 SCTP 分組中數(shù)據(jù)塊字段的格式如圖 5 所示,每個(gè)數(shù)據(jù)塊中都包括數(shù)據(jù)塊類(lèi)型字段、數(shù)據(jù)塊特定的標(biāo)志位字段、數(shù)據(jù)塊長(zhǎng)度字段和取值字段。圖 5 SCTP 分組中數(shù)據(jù)塊字段的格式 SCTP 分組的數(shù)據(jù)塊字段中各字段含義如下所述: 數(shù)據(jù)塊類(lèi)型(8 比特?zé)o符號(hào)整數(shù)):該字段用來(lái)在數(shù)據(jù)塊中內(nèi)容字段的信息類(lèi)型,該參數(shù)的取值范圍為 0254,255 留作今后的擴(kuò)展。 數(shù)據(jù)塊類(lèi)型字段的編碼分配如下: 類(lèi)型編碼 含義 0 凈荷數(shù)
55、據(jù)(DATA) 1 啟動(dòng)(INIT) 2 啟動(dòng)證實(shí) (INIT ACK) 3 選擇證實(shí) (SACK) 4 Heartbeat 請(qǐng)求 (HEARTBEAT) 5 Heartbeat 證實(shí)(HEARTBEAT ACK) 6 中止 (ABORT) 7 關(guān)閉 (SHUTDOWN) 8 關(guān)閉證實(shí) (SHUTDOWN ACK) 9 操作差錯(cuò) (ERROR) 10 狀態(tài) Cookie (COOKIE ECHO) 11 Cookie 證實(shí) (COOKIE ACK)01230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1數(shù)據(jù)塊類(lèi)型數(shù)據(jù)
56、塊標(biāo)志位數(shù)據(jù)塊長(zhǎng)度:數(shù)據(jù)塊內(nèi)容:20 12 為明確擁塞通知響應(yīng)(ECNE)預(yù)留 13 為降低擁塞窗口(CWR)預(yù)留 14 關(guān)閉完成 (SHUTDOWN COMPLETE) 15 to 62 IETF 預(yù)留 63 IETF 定義的數(shù)據(jù)塊擴(kuò)展 64 to 126 IETF 預(yù)留 127 IETF 定義的數(shù)據(jù)塊擴(kuò)展 128 to 190 IETF 預(yù)留 191 IETF 定義的數(shù)據(jù)塊擴(kuò)展 192 to 254 IETF 預(yù)留 255 IETF 定義的數(shù)據(jù)塊擴(kuò)展 采用這種方式編碼,可以使用數(shù)據(jù)塊類(lèi)型字段中高兩位的比特用來(lái)指示當(dāng)端點(diǎn)收到不識(shí)別該數(shù)據(jù)塊類(lèi)型時(shí)所要采取的特定動(dòng)作。 00:停止處理該分組并舍棄
57、該分組,不處理分組中任何隨后的數(shù)據(jù)塊; 01:停止處理該分組并舍棄該分組,不處理分組中任何隨后的數(shù)據(jù)塊,并在 ERROR 的“不識(shí)別的數(shù)據(jù)塊類(lèi)型”字段中報(bào)告不識(shí)別的數(shù)據(jù)塊。 10:跳過(guò)該數(shù)據(jù)塊并繼續(xù)處理; 11:跳過(guò)該數(shù)據(jù)塊并繼續(xù)處理, 在 ERROR 數(shù)據(jù)塊中報(bào)告差錯(cuò)原因?yàn)椴蛔R(shí)別的參數(shù)類(lèi)型。注:ECNE 和 CWR 數(shù)據(jù)塊類(lèi)型預(yù)留給“明確擁塞通知”備用。 數(shù)據(jù)塊標(biāo)志位:8 比特。這些比特的使用根據(jù)數(shù)據(jù)塊類(lèi)型的取值,除非特殊規(guī)定,否則這個(gè)字段設(shè)置為 0,并在接收方忽略。 數(shù)據(jù)塊長(zhǎng)度(16 比特的無(wú)符號(hào)整數(shù)):該值用來(lái)表示包含數(shù)據(jù)塊類(lèi)型字段、數(shù)據(jù)塊標(biāo)志位字段、數(shù)據(jù)塊長(zhǎng)度字段和取值字段在內(nèi)的字節(jié)數(shù)
58、。因此如果數(shù)據(jù)塊取值部分的長(zhǎng)度為 0,則該長(zhǎng)度字段應(yīng)設(shè)置為 4。數(shù)據(jù)塊長(zhǎng)度字段不計(jì)算該數(shù)據(jù)塊中最后一個(gè)參數(shù)中包含的填充字節(jié)。 數(shù)據(jù)塊內(nèi)容:可變長(zhǎng)度。數(shù)據(jù)塊內(nèi)容字段包含在該數(shù)據(jù)塊中傳送的真正的信息,該字段的使用和格式取決于數(shù)據(jù)塊類(lèi)型。 數(shù)據(jù)塊的總長(zhǎng)度(包括類(lèi)型、長(zhǎng)度和取值字段)必須是 4 字節(jié)的整數(shù)倍,如果該長(zhǎng)度不21是 4 字節(jié)的整數(shù)倍,則發(fā)送方應(yīng)當(dāng)向數(shù)據(jù)塊中填充全 0 的字節(jié),這些填充的字節(jié)不計(jì)入數(shù)據(jù)塊長(zhǎng)度字段。發(fā)送方填充的字節(jié)數(shù)應(yīng)不超過(guò) 3 個(gè)字節(jié),在接收方忽略所有的填充字節(jié)。除最后一個(gè)參數(shù)外,其它參數(shù)中的填充字段則作為數(shù)據(jù)塊長(zhǎng)度進(jìn)行計(jì)算。6.1.3 任選/可變長(zhǎng)參數(shù)的格式 SCTP 控制
59、數(shù)據(jù)塊的內(nèi)容取值包含了特定數(shù)據(jù)塊類(lèi)型所要求的字段,即隨后是一個(gè)或多個(gè)參數(shù)。這些包含在一個(gè)數(shù)據(jù)塊中的任選/可變長(zhǎng)參數(shù)都是按照參數(shù)類(lèi)型、參數(shù)長(zhǎng)度和參數(shù)取值的方式定義的,其格式如圖 6 所示。圖 6 任選/可變長(zhǎng)參數(shù)格式 數(shù)據(jù)塊的參數(shù)類(lèi)型(16 比特?zé)o符號(hào)整數(shù)):參數(shù)類(lèi)型字段用來(lái)識(shí)別參數(shù)的類(lèi)型,取值范圍可以從 0 到 65534。65535 預(yù)留給 IETF 進(jìn)行擴(kuò)展 數(shù)據(jù)塊的參數(shù)長(zhǎng)度(16 比特?zé)o符號(hào)整數(shù)):參數(shù)長(zhǎng)度字段包含參數(shù)類(lèi)型、參數(shù)長(zhǎng)度和參數(shù)取值字段在內(nèi)所有字段的字節(jié)數(shù)。因此一個(gè)參數(shù)的取值字段為 0,則該長(zhǎng)度字段應(yīng)設(shè)置為4。參數(shù)長(zhǎng)度字段不計(jì)算填充字節(jié)。 數(shù)據(jù)塊的參數(shù)值:可變長(zhǎng)度,參數(shù)取值字段
60、包含在該參數(shù)中傳送的實(shí)際信息。 參數(shù)的總長(zhǎng)度(包括類(lèi)型、長(zhǎng)度和取值字段)必須是 4 字節(jié)的整數(shù)倍,如果該長(zhǎng)度不是4 字節(jié)的整數(shù)倍,則發(fā)送方應(yīng)當(dāng)向數(shù)據(jù)塊中填充全 0 的字節(jié),這些填充的字節(jié)不計(jì)入?yún)?shù)長(zhǎng)度字段。發(fā)送方填充的字節(jié)數(shù)應(yīng)不超過(guò) 3 個(gè)字節(jié),接收方忽略所有的填充字節(jié)。 采用這種方式編碼,可以使用參數(shù)類(lèi)型字段中高兩位的比特指示當(dāng)端點(diǎn)收到不識(shí)別參數(shù)類(lèi)型時(shí)所要采取的特定動(dòng)作。 00:表示停止處理該分組并舍棄該分組,不處理分組中任何隨后的數(shù)據(jù)塊; 01:表示停止處理該分組并舍棄該分組,不處理分組中任何隨后的數(shù)據(jù)塊,并在ERROR 或 INIT ACK 的“不識(shí)別的參數(shù)類(lèi)型”字段中報(bào)告不識(shí)別的參數(shù)類(lèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【課件】大氣壓強(qiáng)教學(xué)課件2024-2025學(xué)年初中物理人教版(2024)八年級(jí)下冊(cè)+
- 中小學(xué)教師思政課培訓(xùn)
- 腫瘤介入術(shù)后護(hù)理
- 2024年度青海社區(qū)工作者練習(xí)題庫(kù)及答案
- 員工入職安全培訓(xùn)大綱
- 生產(chǎn)工藝研發(fā)培訓(xùn)課件
- 2.0信息技術(shù)培訓(xùn)
- 護(hù)理循環(huán)系統(tǒng)
- 襯衫制作流程
- 腫瘤放療病人心理護(hù)理
- 加氣站反恐怖防范安全風(fēng)險(xiǎn)評(píng)價(jià)報(bào)告
- 2025年吉林國(guó)資委出資企業(yè)招聘筆試參考題庫(kù)含答案解析
- 慢性病健康教育
- 金融營(yíng)銷(xiāo)宣傳八不得
- 2024年中國(guó)燈影牛肉市場(chǎng)調(diào)查研究報(bào)告
- 2024年高中生物學(xué)業(yè)水平合格考及答案
- 車(chē)給別人開(kāi)的協(xié)議書(shū)
- 1.3探索三角形全等的條件第7課時(shí) 蘇科版八年級(jí)數(shù)學(xué)上冊(cè)
- 蘇教版四年級(jí)科學(xué)下冊(cè)復(fù)習(xí)方法
- 壯族文化宣傳介飲食服飾建筑風(fēng)俗習(xí)慣特點(diǎn)傳統(tǒng)節(jié)日課件
- 牛津譯林版英語(yǔ)八年級(jí)下冊(cè)期末復(fù)習(xí)各單元話(huà)題寫(xiě)作范文背誦
評(píng)論
0/150
提交評(píng)論