天天看點

TTCN-3中SIP協定測試筆記(Eclipse TITAN)-13.1資訊處理3.2網絡解析

3.1資訊處理

該測試能操作SIP request和SIP response資訊,通過UDP和TCP收發資訊。

3.1.1編碼

編碼器可以編碼兩種資訊,可以發送整行資訊或者碎片資訊。過程是:

1. 編碼request/response line

2. 編碼header(可以是short或long格式,混合header可以被編碼成逗号分隔的list或幾個header行)

3. 添加消息body

測試port的行為受測試端口參數控制。

3.1.2解碼

所有header都收到後解析,解析器使用Bison和Flex實作,能夠接收所有格式。

測試port可以忽略所有解碼錯誤、靜默丢棄這個資訊或者以RAW資訊/描述錯誤方式通過該錯誤資訊。

解析完成後,資訊body從緩存中取出。

3.2網絡解析

測試port有兩種模式

- Basic模式

- Advanced模式

3.2.1發送資訊的源端口号

本地host和端口号可以在兩種模式中設定。

使用UDP時,端口号可以是監聽端口或任意端口,由random_udp_sending_port參數控制;使用TCP時,端口号必須是作業系統選擇的。

3.2.2Basic模式

測試port隻能處理一個TCP或UDP socket,不支援同時使用兩種協定收發,但是測試port可以選擇協定和遠端host。

start-up操作

映射時,測試port檢測初始協定和目标host名。如果初始目标host名預設,port打開一個監聽socket(sip協定決定是UDP或TCP)。

接收TCP連接配接

監聽可用時,測試port隻能接收一個TCP接入。port接入該request後,監聽socket不關閉但直到該TCP關閉前不再接入。

接收資訊

從TCP或UDP接收。

收到混合TCP包時使用buffer收集所有資訊。

發送資訊

當被請求發送資訊時,端口對比現有連接配接和要求的參數(目标host名,端口号和協定)。參數有不同,則測試port關閉現有連接配接,打開新連接配接。

如果資訊大小超過MTU(最大傳輸單元)的大小且協定是UDP,資訊将不被發送并發送一個TTCN錯誤,該檢測可以被忽略。MTU初始長為1300位元組。

3.2.3Advanced模式

該模式允許多個TCP連接配接,同時監聽UDP和TCP端口。每個連接配接以協定id、遠端host名和遠端端口号區分。

每個可以監聽socket的連接配接在運作時可以通過ASP_SIP_open打開,ASP_SIP_close關閉。

start-up操作

在映射操作時,測試port按照設定打開監聽socket,可以打開UDP或TCP或兩種同時。

如果目标host名指定且初始協定是TCP,測試port打開指定代理的TCP連接配接。

接收TCP連接配接

端口可以在監聽端口接收任意數量的連接配接請求。接收連接配接後端口可以在收發資訊或建立新的連接配接。

接收資訊

端口可以在任意時間在打開的TCP或UDP連接配接上接收資訊。

收到混合TCP包時使用buffer收集所有資訊,每個TCP有專屬記憶體。

發送資訊

當被請求發送資訊時,端口對比現有連接配接和要求的參數(目标host名,端口号和協定)。如果請求host和port沒有打開的連接配接,測試port将打開新連接配接。

如果資訊大小超過MTU(最大傳輸單元)的大小且協定是UDP,資訊将不被發送并發送一個TTCN錯誤,該檢測可以被忽略。MTU初始長為1300位元組。

傳輸錯誤處理

當傳輸層錯誤,測試port可以生成TTCN錯誤或發送ASP_SIP_error到test case(如發送/接收失敗)。測試port的行為由運作配置檔案控制。