彭大芹,項 磊,李司坤,楊彩敏 ,邱 雨
(1.“新一代信息網(wǎng)絡與終端”重慶市協(xié)同創(chuàng)新中心,重慶 400065; 2.重慶郵電大學 電子信息與網(wǎng)絡工程研究院,重慶 400065;3.中移物聯(lián)網(wǎng)有限公司,重慶 400065)
互聯(lián)網(wǎng)技術的急速發(fā)展和城市智慧化進度的不斷加快,智能家居[1]作為新型的高科技技術的衍生產(chǎn)品,在智慧城市的建設中發(fā)揮著中流砥柱的作用。近年來,智能家居作為家庭信息化的實現(xiàn)方式,已逐漸成為社會信息化發(fā)展的重要組成部分,尤其是隨著“互聯(lián)網(wǎng)+”概念的提出,海爾、TCL、美的、格力等互聯(lián)網(wǎng)與家電企業(yè)大佬都想要在智能家居爭奪戰(zhàn)中占據(jù)話語權,從而主導國內智能家居市場,因而,紛紛建立了智能家居生態(tài)圈。目前國內已經(jīng)形成海爾+阿里+魅族、美的+小米與京東等生態(tài)圈模式,這雖然反映了智能家居火熱的發(fā)展勢頭,但由于智能家居的技術涉及面很廣,這樣就導致了不同的智能家居品牌開發(fā)商有不一樣的智能家居接入技術標準和通信協(xié)議。比如,就智能家居系統(tǒng)內的無線通信技術來說,就有多種標準和協(xié)議,如Zigbee,wifi,藍牙,紅外IR和射頻RF等。這種情況下,由于不知道智能家居協(xié)議的相關信息和開發(fā)文檔,相當于零知識情況下未知協(xié)議的識別與分類,不僅造成了協(xié)議分析的難題,也給網(wǎng)絡安全信息管理帶來了危害。
傳統(tǒng)的協(xié)議識別方法難以應對現(xiàn)有的爆炸式新穎流量,因此,一些研究者紛紛結合機器學習[2]算法提出了新的協(xié)議識別方法[3]。文獻[4-6]在比特流未知的情況下,通過改進的AC(aho-corasick)算法和數(shù)據(jù)挖掘關聯(lián)規(guī)則算法,提出了未知協(xié)議的識別方法;文獻[7]提出了未知協(xié)議的幀長識別方法;文獻[8]提出了基于數(shù)據(jù)流與機器學習中聚類算法來分析未知的協(xié)議;文獻[9]根據(jù)二進制比特流的特征,提出了一種基字節(jié)熵矢量加權指紋的協(xié)議識別方法。通過實驗表明,該方法對二進制比特流協(xié)議的識別高達94%以上的召回率,并可以識別訓練數(shù)據(jù)集中未出現(xiàn)的協(xié)議。
本文從同一協(xié)議的數(shù)據(jù)對象之間具有相似度,不同協(xié)議的數(shù)據(jù)對象之間具有差異度出發(fā),利用機器學習算法中的無監(jiān)督學習的高效、快速的K-Means聚類算法,將多協(xié)議聚類成不同的單協(xié)議類型的簇集,并使用數(shù)理統(tǒng)計和向量空間模型的概念對算法的初始K值、初始聚類中心及數(shù)據(jù)對象間距離進行了改進,最后提出對未知協(xié)議的聚類評價指標。經(jīng)實驗驗證,該方法可行性和實用性極高。
在未知的情況下,根據(jù)某些特征將數(shù)據(jù)對象基于某種相似度評判規(guī)則聚類劃分成若干個類簇的集合的過程,稱之為聚類。常用的聚類算法,如K-Means,BIRCH,DBSCAN及STING等,這些聚類算法各有各的優(yōu)缺點和應用場景的局限性。而本文選擇了快速、高效的K-Means聚類算法。
K-Means算法[10]也稱為K-均值算法,它是一種基于距離的聚類算法?;舅枷胧窍戎付ㄒ粋€數(shù)據(jù)集將要劃分的類簇個數(shù)K值及初始中心,然后通過對序列間進行歐式距離計算,將序列劃分到距其最近的類簇中心,更新類簇中心,依次迭代計算,直到目標準則函數(shù)收斂,輸出K個類簇。其K-Means算法的流程如圖1所示。
圖1 K-Means算法的流程圖Fig.1 Flow chart of K-means
K-Means聚類算法的步驟描述如下。
輸入:待聚類的數(shù)據(jù)集合R={x1,x2,…,xn},要聚類劃分的簇的個數(shù)K,聚類的初始中心數(shù)據(jù)集合C={c1,c2,…,ck}。
輸出:聚類結果:K個類簇。
①先從數(shù)據(jù)集R中選取K個數(shù)據(jù)對象為初始中心點,即C={c1,c2,…,ck};
②按照歐式距離公式計算剩余數(shù)據(jù)到聚類中心點C的距離,其公式定義為
d(xi,xj)=
(1)
(1)式中:xi=(xi1,xi2,…,xip);xj=(xj1,xj2,…,xjp),分別表示2個p維度的屬性的數(shù)據(jù)對象。
(2)
(2)式中:d(xi,xj)是數(shù)據(jù)樣本點xi和xj的歐式距離。
由(2)式計算距離后,將數(shù)據(jù)對象劃分到距離其最近的簇中心所屬的類簇中,更新類簇中心;
③重復迭代上述2個步驟,直到準則目標函數(shù)收斂,聚類結束,輸出結果。其準則目標函數(shù)E公式為
(3)
(3)式中:Ni為第i個類簇集合;ci為第i個類中心。
對于K-Means算法,因為其算法簡單、易于實現(xiàn),在對大規(guī)模的數(shù)據(jù)集聚類劃分的時候,有很好的聚類效果而被廣泛應用,但是它對于初始的聚類中心的選擇甚是敏感,再加上初始中心的隨機選擇往往會造成聚類的評價函數(shù)收斂于局部最優(yōu),K值的指定有很大一部分的主觀因素,對于無任何經(jīng)驗或者先驗知識而言,是極其困難的。針對K-Means算法的2個參數(shù)的劣勢問題,各研究學者紛紛提出了不同的高效的對策。文獻[11]提出了一種新的初始中心選擇方法,實驗證明,該新提出的方法使目標函數(shù)收斂更快,聚類效果更好更穩(wěn)定;文獻[12]研究分析了算法中的不同的目標收斂函數(shù)的選擇對K均值聚類的影響;文獻[13-14]提出對聚類算法K-Means的改進,提高K-Means聚類算法的效率。
由于本文處理的數(shù)據(jù)對象是未知協(xié)議,事先無法知曉混合協(xié)議中各個協(xié)議的值分布,所以,對分類出來的單個協(xié)議也就無法使用協(xié)議識別評價指標F-Measure進行準確度評價。本文由于事先不知道多協(xié)議中智能家居協(xié)議的多少,無法對正確分類出來的智能家居協(xié)議進行準確度計算來評價本文分類方法的好壞,因此,提出采用信息熵作為未知協(xié)議分類方法的準確度評價。
信息熵[15]又稱為香農(nóng)熵。它采用數(shù)值的形式來表述系統(tǒng)中信息的分布狀態(tài),測量系統(tǒng)的純凈程度。熵值越小,則說明該系統(tǒng)中的信息越純凈或者是越單一。假設隨機變量X,其取值為{x1,x2,…,xk},xi(1≤i≤k)在X中出現(xiàn)的概率為p(xi),則信息熵H(x)定義為
(4)
本文通過對分類出來的智能家居協(xié)議類簇系統(tǒng)的信息熵值計算,來表述該類簇系統(tǒng)中信息的純凈或混亂狀態(tài),以此評價本文協(xié)議分類方法的準確度高或低。以分類出來的智能家居協(xié)議類簇中的所有協(xié)議數(shù)據(jù)幀數(shù)為行,幀長度為列,構建二維矩陣,計算二維矩陣中每列的信息熵數(shù)值,如果計算所得的熵值都接近為0或者普遍較小,則說明本文分類出來的智能家居協(xié)議類簇系統(tǒng)的信息很純凈,也即是該分類出來的類簇中只包含智能家居協(xié)議一種數(shù)據(jù)類型,進而說明本文改進的K-Means聚類效果好,協(xié)議分類方法準確度高。
本文方法的大致系統(tǒng)框圖如圖2所示。將捕獲的多協(xié)議數(shù)據(jù)幀,使用數(shù)理統(tǒng)計進行數(shù)據(jù)預處理,計算出近似的K、和初始中心,然后基于向量空間模型的概念(vector space model,VSM),使用數(shù)據(jù)對象之間的相似度計算代替K-Means聚類算法中原有歐式距離計算,最后用信息熵對聚類結果進行評價。其創(chuàng)新點如下:①用數(shù)理統(tǒng)計方法改進了算法K-Means聚類中K值和初始聚類中心的選擇的隨機性;②提出了基于向量空間模型的概念,以數(shù)據(jù)對象相似度代替數(shù)據(jù)對象間的聚類;③提出了未知協(xié)議的識別與分類評價的方法,基于信息熵的評估方法。
因為本文的輸入數(shù)據(jù)是按幀已劃分好的數(shù)據(jù)幀作為數(shù)據(jù)對象,以字節(jié)為數(shù)據(jù)處理單元。所以數(shù)據(jù)預處理基本思想是假設有n條數(shù)據(jù)幀,截取每幀數(shù)據(jù)的前m個字節(jié),以字節(jié)為元素,構建一個n行m列的矩陣a[n][m]。
此部分的目標是通過對輸入的多協(xié)議數(shù)據(jù)幀分類出智能家居協(xié)議的單類型數(shù)據(jù)幀。其關鍵技術有:①K-Means聚類初始輸入個數(shù)K值及初始聚類中心的選擇;②類簇聚類劃分的距離計算。本文針對這2個關鍵技術,分別給出了以下對應的改進思想。
1)利用數(shù)理統(tǒng)計知識,通過對數(shù)據(jù)預處理得到的數(shù)據(jù)集二維矩陣a[n][m]中每列字節(jié)頻率進行統(tǒng)計,設置閾值,篩選出每列的高頻字節(jié),包含該高頻字節(jié)的行的個數(shù)即為算法初始聚類個數(shù)K值,包含該高頻字節(jié)的行即為該算法初始聚類中心。
2)利用VSM相似度計算代替K-Means聚類算法中類簇聚類劃分的歐式距離計算,原有的以歐式距離計算的聚類類簇劃分,雖然方法簡單、直觀,但在處理未知協(xié)議幀之間的相似問題上并不適用,本文選用VSM的概念對協(xié)議幀向量化計算以相似度代替歐式計算。
圖2 零知識多協(xié)議下智能家居協(xié)議分類系統(tǒng)框圖Fig 2 Smart home protocol classification system block diagram of Zero-knowledge multi-protocol
VSM是通過將文本劃分成多個相互獨立的N個詞的集合,然后再由每個詞對文本所做的貢獻程度賦上不同的權重值,這樣一個文本就可以由{詞、權重}2個N維的向量表示,從而使得文本之間的相似度具有了簡化的計算,被廣泛應用到信息檢索領域。
本文由于是對未知的協(xié)議數(shù)據(jù)幀聚類,簡單的歐式距離作為算法聚類的評判尺度,并不能實質性地反映出各個數(shù)據(jù)對象之間的關系,會造成將相同或者相似對象聚為一類的時間較長的結果。而以相似度計算,選取未知協(xié)議數(shù)據(jù)每幀中的高頻字節(jié)及高頻字節(jié)偏移位置作為協(xié)議數(shù)據(jù)幀向量空間化的2個特征屬性,以未知協(xié)議幀自身每個字節(jié)的特性來反映各個數(shù)據(jù)對象之間的相似性,這不僅從本質上反映了數(shù)據(jù)對象之間的相似性,還可以加快相同或者相似數(shù)據(jù)對象聚為一類的速度,減少算法運行時間。
其具體步驟如下。
①將數(shù)據(jù)預處理的結果n行m列的矩陣記作矩陣a[n][m];
②按列統(tǒng)計每一個字符出現(xiàn)的次數(shù)N,然后按照公式(5)計算字節(jié)在每列中的頻率,將每一列中頻率最大的那個字節(jié)加入字節(jié)候選集合Sbyte_list,并將每列中包含此候選字節(jié)的行號加入行候選集合Rhang_list,直到循環(huán)遍歷完矩陣a[n][m];
(5)
③設置頻率閾值為[0.2,1],將字節(jié)候選集合Sbyte_list滿足該閾值范圍的字節(jié)篩選出來,即為高頻字節(jié)集Slist;
④依據(jù)篩選出來的高頻字節(jié),將候選字節(jié)對應的行候選集合Rhang_list更新為高頻字節(jié)對應的行集合Rh_list;
⑤計算高頻字節(jié)對應的行集合Rh_list中數(shù)據(jù)對象之間的相似度值,設置數(shù)據(jù)幀之間的相似度閾值,如果數(shù)據(jù)幀之間的相似度值大于設置的相似度閾值,則將其合并,否則,不合并,直到數(shù)據(jù)集中無可合并的數(shù)據(jù)幀。本文通過對高頻字節(jié)對應的行集合Rh_list中任意2個高頻字節(jié)對應的行集合進行相似度計算,設置相似度閾值,如果這2個高頻字節(jié)所對應的行集合相似度大于設置的閾值,則將該2個行集合合并組成一個新的行集合,直到集合Rh_list中無可合并的數(shù)據(jù)對象,然后更新高頻字節(jié)對應的行集合Rh_list為初始聚類中心集合Rlist,即是算法的輸入初始聚類中心,其個數(shù)即為初始聚類個數(shù)K值;
相似度距離計算方法為假設集合Rh_list中的2個數(shù)據(jù)對象為集合Si(設集合Si為篩選出來的高頻字節(jié)X所在的行號集合)、集合Sj(設集合Sj為篩選出來的高頻字節(jié)Y所在的行號集合),其相似度距離為
(6)
相似度的閾值limsimilar設定方法:因為經(jīng)過閾值篩選合并后的集合Rh_list中的數(shù)據(jù)對象就是K-Means聚類算法的初始聚類中心,其個數(shù)就是K值,所以此若limsimilar的值設置越大,小于此閾值的集合不合并,最后得到的K值越大;若limsimilar的值設置越小,大于此閾值的集合合并,最后得到的K值越小。本文根據(jù)數(shù)學中的中值定理,將limsimilar的值從0.1~1,繪制limsimilar-k函數(shù)曲線,計算曲線的平均K值作為聚類算法的初始輸入K值。
(7)
(7)式中:X1=(x11,x22,…,x1n),X2=(x21,x22,…,x2n)為n維向量。當余弦相似度取值為1時,說明數(shù)據(jù)對象X1,X2完全一樣,其每一維度的分量都是完全一樣的,當余弦度取值為0時,剛好相反。
⑦輸入K值、初始聚類中心、向量化后的n條數(shù)據(jù)幀;
⑧按照公式(7)計算數(shù)據(jù)幀x到每個聚類中心的相似度值,并將其劃分到相似度值最高的類簇中;
⑨按照公式(3)計算目標準則收斂函數(shù)E;
⑩更新聚類中心,重新計算收斂函數(shù)E。若函數(shù)E不收斂,則轉到步驟⑦繼續(xù)運算,若其收斂,則結束,輸出K個類簇。
由于未知協(xié)議的識別與分類無法使用F-Measure進行識別的準確度評價。本文選用對聚類輸出的每一個類簇,將每個類簇中的幀數(shù)據(jù)按照預處理方法構建成二維矩陣。按公式(5)統(tǒng)計每一列中每個字節(jié)出現(xiàn)的概率,再按照公式(4)計算每一列的熵值,直至循環(huán)遍歷完矩陣中所有元素。計算所得的熵值代表了聚類簇中數(shù)據(jù)集的純凈程度,如果分類出來的類簇只包含一種協(xié)議,則該類簇計算所得熵值較小及中存在信息熵值為0;如果分類出來的類簇中不是單一協(xié)議而是夾雜了其他協(xié)議,則該類簇計算所得熵值較大且?guī)缀醪淮嬖谛畔㈧刂禐?的情況。所以,可選定信息熵來評價未知協(xié)議分類識別的準確度。
本文在真實的實驗室環(huán)境下,采用抓包工具wireshark對連接有智能家居設備(該智能家居設備采用的協(xié)議類型為MQTT協(xié)議)以及其他終端設備的目標路由器進行協(xié)議流量數(shù)據(jù)采集,分別選取2組數(shù)據(jù)作為本文的實驗測試數(shù)據(jù),其所選的實驗測試數(shù)據(jù)如表1所示。
表1 測試數(shù)據(jù)表Tab.1 Test data table
1)2組數(shù)據(jù)作為輸入,先根據(jù)limsimilar-k函數(shù)曲線計算出算法初始輸入聚類個數(shù)K值和及初始聚類中心。不同的limsimilar-k取值,對應不同的K值,其第1組數(shù)據(jù)的limsimilar-k取值統(tǒng)計如表2所示,第1組數(shù)據(jù)的limsimilar-k函數(shù)曲線關系如圖3所示。
其第2組數(shù)據(jù)的limsimilar-k取值統(tǒng)計如表3所示,第2組數(shù)據(jù)的limsimilar-k函數(shù)曲線關系如圖4所示。
表2 第一組數(shù)據(jù)limsimilar-k取值統(tǒng)計Tab.2 limsimilar-k value statistics of the first data
圖3 第1組數(shù)據(jù)的limsimilar-k曲線圖Fig.3 limsimilar-k graph of the first data
表3 第二組數(shù)據(jù)limsimilar-k取值統(tǒng)計Tab.3 limsimilar-k value statistics of the second data
圖4 第2組數(shù)據(jù)的limsimilar-k曲線圖Fig.4 limsimilar-k graph of the second data
根據(jù)中值定理,將曲線的首尾相連,然后作其平行線,以最后離開曲線的那一切點,即為對應的K值。第1組數(shù)據(jù)得到的K=6;第2組數(shù)據(jù)得到的K=5。也即是指定第1組、第2組數(shù)據(jù)的初始K值分別為6和5,然后作為本文改進的K-Means的聚類算法的初始輸入。因為本文是將已知的數(shù)據(jù)作為未知的數(shù)據(jù)來算,所以仍然可以使用F-Measure進行聚類準確率的評估。
經(jīng)本文方法分類識別后,第1組數(shù)據(jù)總數(shù)據(jù)幀共500,被正確分類出了419條數(shù)據(jù)幀,其中智能家居協(xié)議MQTT為100幀被正確識別分類出了93幀,由此得到本文改進算法的準確率為
其智能家居協(xié)議MQTT協(xié)議識別的精度為
經(jīng)本文方法分類識別后,第2組數(shù)據(jù)總數(shù)據(jù)幀共500,被正確分類出了469條數(shù)據(jù)幀,其中智能家居協(xié)議MQTT為100幀被正確識別分類出了97幀,由此得到本文改進算法的準確率為
其智能家居協(xié)議MQTT協(xié)議識別的精度為
2)聚類算法效果評估分析。本文選取了100幀智能家居協(xié)議MQTT作為單協(xié)議類簇、50幀MQTT協(xié)議與50幀DNS混合協(xié)議作為另一類簇,取每一個類簇的協(xié)議幀前40字節(jié),也即二維矩陣的前40列。計算其每列信息熵值,計算結果繪圖如圖5所示。
從圖5可以看出,對于只有一種智能家居協(xié)議MQTT類簇來說,其每列的熵值都偏低于混合的MQTT和DNS協(xié)議類簇,且存在多列信息熵值為0的列,這也說明只有一種智能家居協(xié)議MQTT類簇純凈度很高,證明了使用信息熵作為未知協(xié)議聚類效果評價指標的正確性和可行性。
3)算法準確率仿真。以本文改進的方法和原有的K-Means聚類算法對這2組數(shù)據(jù)進行分類的準確率對比如圖6所示。
圖6 本文改進的方法與原有K-Means算法準確率對比Fig.6 Contrastive of accuracy rate between improvement method and
由圖6可以看出,本文改進的K-Means算法在準確率上比原有的K-Means算法平均高出約25%。
本文提出了多協(xié)議下智能家居協(xié)議的分類方法,使用數(shù)理統(tǒng)計計算K值和初始聚類中心,解決了K值和初始中心選擇的隨機性問題;基于向量空間模型的概念,使用數(shù)據(jù)對象之間的相似度代替數(shù)據(jù)對象之間的距離,加快了聚類算法中目標函數(shù)的收斂速度;最后提供了一種未知協(xié)議分類的評價指標:用信息熵作為評價聚類效果。本文只是將智能家居協(xié)議分類出來,下一步將研究在無任何先驗知識的情況,研究分析智能家居協(xié)議的具體格式、語義、參數(shù)等。
參考文獻:
[1] 朱敏玲,李寧.智能家居發(fā)展現(xiàn)狀及未來淺析[J].電視技術,2015(4):82-85+96.
ZHU Minling ,LI Ning. The present situation and future analysis of the smart home[J].Video Engineering,2015(4):82-85+96.
[2] SINGH A, THAKUR N, SHARMA A. A review of supervised machine learning algorithms[C]// 2016 3rd International Conference on Computing for Sustainable Global Development (INDIACom). India: IEEE, 2016:1310-1315.
[3] 林榮強.網(wǎng)絡協(xié)議識別關鍵技術研究[D].鄭州:解放軍信息工程大學,2015.
LIN Rongqiang. Research on key technologies of network protocol recognition[D]. Zhengzhou: Information Engineering University,2015.
[4] 王慶亮.未知協(xié)議逆向分析關鍵技術研究[D].北京:北方工業(yè)大學,2015.
WANG Qingliang. Research on key techniques of inverse protocol analysis for unknown protocol[D].Beijing: North China University of Technology,2015.
[5] 宋疆.無線網(wǎng)絡環(huán)境下未知協(xié)議發(fā)現(xiàn)探索研究[D].成都:電子科技大學,2013.
SONG Jiang. Research on unknown protocol discovery in wireless network environment[D].Chengdu:University of Electronic Science and Technology of China,2013.
[6] 王和洲. 面向比特流的鏈路協(xié)議識別與分析技術[D].合肥:中國科學技術大學,2014.
WANG Hezhou. Link protocol recognition and analysis technology facing the bitstream[D]. Hefei:University of Science and Technology of China,2014.
[7] FEN L, TONG L, CHUN-RUI Z, et al. Length Identification of Unknown Data Frame[C]//2012 Eighth International Conference on Computational Intelligence and Security. Guangzhou, China:IEEE,2012,674-677.
[8] 戴理,舒輝,黃荷潔. 基于數(shù)據(jù)流分析的網(wǎng)絡協(xié)議逆向解析技術[J]. 計算機應用,2013(5):1217-1221.
DAI Li ,SHU Hui ,HUANG Hejie. The reverse analysis technology of network protocol based on data flow analysis[J]. Journal of Computer Applications,2013(5):1217-1221.
[9] 黃笑言,陳性元,祝寧,等. 基于字節(jié)熵矢量加權指紋的二進制協(xié)議識別[J]. 計算機應用研究,2015(2):493-497.
HUANG Xiaoyan, CHENG Xingyuan, ZHU Ning, et al. Binary protocol recognition based on vector entropy of vector entropy[J]. Application Research of Computers, 2015(2):493-497.
[10] 宋建林. K-means聚類算法的改進研究[D].合肥:安徽大學,2016.
SONG Jianlin. Research on the improvement of K-means clustering algorithm[D]. Hefei:Anhui University, 2016.
[11] 趙京勝,孫夢丹,張麗. 一種有效的K-means初始中心優(yōu)化算法[J]. 信息技術與信息化,2016(5):77-79.
ZHAO Jingsheng ,SUN Mengdan ,ZHANG Li. An effective initial center optimization algorithm of K-means[J]. Information Technology & Information, 2016(5):77-79.
[12] KAPIL S, CHAWLA M. Performance evaluation of K-means clustering algorithm with various distance metrics[C]//2016 IEEE 1st International Conference on Power Electronics, Intelligent Control and Energy Systems (ICPEICES), Delhi, India: IEEE,2016, pp. 1-4.
[13] LING S, YUNFENG Q. Optimization of the distributed K-means clustering algorithm based on set pair analysis[C]//2015 8th International Congress on Image and Signal Processing (CISP). Shenyang, China: IEEE,2015,1593-1598.
[14] KAPIL S, CHAWLA M. Performance evaluation of K-means clustering algorithm with various distance metrics[C]//2016 IEEE 1st International Conference on Power Electronics, Intelligent Control and Energy Systems (ICPEICES). Delhi, India:IEEE,2016,1-4.
[15] 郭慶琳,李艷梅,唐琦. 基于VSM的文本相似度計算的研究[J]. 計算機應用研究,2008(11):3256-3258.
GUO Qinglin, LI Yanmei, TANG Qi.Research on text similarity calculation based on VSM[J]. Application Research of Computers, 2008(11):3256-3258.