1.一種基于Linux內核驅動的網絡帶寬測速方法,其特征在于,包括以下步驟:
步驟S1,測速開始,測速應用和測速服務器建立TCP連接,測速應用和測速服務器的傳輸建立,透過HTTP或FTP協(xié)議從測速服務器找到需要下載的資料并開始下載;IP協(xié)議棧緩存部分資料;
步驟S2,測速應用立即透過信息通訊界面告知Linux內核需要測速驅動參與下載;Linux內核把與測速服務器建立的TCP連接的五元組信息告知測速驅動;測速驅動添加一條測速信息條目用于后續(xù)處理;
步驟S3,測速驅動在上行流方向檢查途徑的報文,抓取IP協(xié)議棧與測速服務器的上行ACK報文,一旦抓取到匹配的上行ACK報文后,測速驅動會學習上行ACK報文中所帶的信息;
步驟S4,學習到上行ACK報文后,測速驅動開始檢查下行資料的報文,匹配到條目后,對下行資料的報文進行分析,分析并學習下行資料報文中的信息;
然后測速驅動組建一個測速驅動回復測速服務器的ACK報文,填入學習到的信息;向測速服務器返回測速驅動回復測速服務器的ACK報文;
接下來的資料報文由測速驅動處理;
步驟S5,測速結束后,上層測速應用負責從測速驅動取回測速資料。
2.如權利要求1所述的基于Linux內核驅動的網絡帶寬測速方法,其特征在于,
步驟S1中,測速應用不實際接收資料文件。
3.如權利要求1所述的基于Linux內核驅動的網絡帶寬測速方法,其特征在于,
步驟S2中,建立的測速信息條目用于記錄:
Linux內核與測速服務器建立的TCP連接的五元組信息,學習以獲得的IP層的標識、TCP層的序號、TCP層窗口大小、及可選的時間戳標記,以及統(tǒng)計信息。
4.如權利要求1所述的基于Linux內核驅動的網絡帶寬測速方法,其特征在于,
步驟S3中,測速驅動學習到的上行ACK報文中的信息包括:IP層的標識、TCP層的序號、TCP層窗口大小、及可選的時間戳標記。
5.如權利要求1所述的基于Linux內核驅動的網絡帶寬測速方法,其特征在于,
步驟S4中,測速驅動學習到的下行資料報文中的信息包括:IP層的標識、TCP層的序號、TCP層窗口大小、及可選的時間戳標記。
6.如權利要求1所述的基于Linux內核驅動的網絡帶寬測速方法,其特征在于,
步驟S4中,測速驅動組建一個測速驅動回復測速服務器的ACK報文;資料報文由測速驅動處理。
7.如權利要求1所述的基于Linux內核驅動的網絡帶寬測速方法,其特征在于,
步驟S4中,測速驅動對收到的下行資料的報文作丟棄處理,不再發(fā)回IP協(xié)議棧以及上層的測速應用。