[發(fā)明專利]傳遞客戶端IPv6地址及端口至后端服務(wù)器的方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201210054431.7 | 申請(qǐng)日: | 2012-03-02 |
| 公開(kāi)(公告)號(hào): | CN103297407A | 公開(kāi)(公告)日: | 2013-09-11 |
| 發(fā)明(設(shè)計(jì))人: | 羅楓;吳教仁;劉濤;劉寧;張誠(chéng) | 申請(qǐng)(專利權(quán))人: | 百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司 |
| 主分類號(hào): | H04L29/06 | 分類號(hào): | H04L29/06;H04L29/12 |
| 代理公司: | 北京清亦華知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11201 | 代理人: | 宋合成 |
| 地址: | 100085 北京市*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 傳遞 客戶端 ipv6 地址 端口 后端 服務(wù)器 方法 裝置 | ||
1.一種從IPv6負(fù)載均衡設(shè)備傳遞客戶端的原始IPv6地址及端口至后端服務(wù)器的方法,其特征在于,包括以下步驟:
(A)所述客戶端向所述IPv6負(fù)載均衡設(shè)備發(fā)送數(shù)據(jù)包;
(B)所述IPv6負(fù)載均衡設(shè)備對(duì)所述客戶端的原始IPv6地址及端口進(jìn)行地址轉(zhuǎn)換,將所述客戶端的原始IPv6地址及端口存儲(chǔ)在TCP選項(xiàng)字段中并發(fā)送帶有所述TCP選項(xiàng)字段的數(shù)據(jù)包;
(C)所述后端服務(wù)器的Linux內(nèi)核層截獲syn_recv_sock鉤子,掛載tcp_v6_syn_recv_sock_ttm鉤子函數(shù),以得到所述TCP選項(xiàng)字段中的所述客戶端的原始IPv6地址及端口并存儲(chǔ);
(D)所述后端服務(wù)器的Linux內(nèi)核層截獲getname鉤子,掛載inet6_getname_ttm鉤子函數(shù),以提取所述客戶端的原始IPv6地址及端口供所述后端服務(wù)器的Linux應(yīng)用層使用。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括步驟:
(E)截獲_sk_stream_mem_rediv函數(shù),使用跳轉(zhuǎn)指令碼替換所述_sk_stream_mem_rediv函數(shù)開(kāi)始部分的指令代碼,進(jìn)而調(diào)用__sk_stream_mem_rediv_ttm函數(shù),并完成所述sock結(jié)構(gòu)體以及所述高速緩存的釋放。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在所述步驟(B)之后進(jìn)一步包括:
步驟(F),將所述TCP選項(xiàng)字段的kind號(hào)寫入作為TCPOPT_TTM并將所述TCP選項(xiàng)字段的總長(zhǎng)度寫入作為TCPOLEN_TTM。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟(C)包括:
所述服務(wù)器的Linux內(nèi)核層調(diào)用linux內(nèi)核原生的tcp_v6_syn_recv_sock函數(shù);
判斷所述TCP選項(xiàng)字段的kind號(hào)是否為TCPOPT_TTM并判斷所述TCP選項(xiàng)字段的總長(zhǎng)度是否為TCPOLEN_TTM;
如果是,則獲取存儲(chǔ)在所述TCP選項(xiàng)字段中的所述客戶端的原始IPv6地址及端口;
為所述客戶端的原始IPv6地址及端口分配高速緩存;
將sock結(jié)構(gòu)體的sk_user_data指針指向所述高速緩存;以及
將所述客戶端的原始IPv6地址及端口保存到所述高速緩存中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,進(jìn)一步包括:
如果不存在kind號(hào)為TCPOPT_TTM且長(zhǎng)度為TCPOLEN_TTM的所述TCP選項(xiàng)字段,則返回。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,進(jìn)一步包括:
如果沒(méi)有成功分配所述高速緩存,則返回。
7.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,步驟(D)包括:
調(diào)用linux內(nèi)核原生的inet6_getname函數(shù);
判斷所述sk_user_data指針指向的所述高速緩存是否為空;
如果否,則判斷所述高速緩存中是否存儲(chǔ)有所述客戶端的原始IPv6地址及端口;以及
如果所述高速緩存中存儲(chǔ)有所述客戶端的原始IPv6地址及端口,則將所述sk_user_data指針指向的所述高速緩存中存儲(chǔ)的所述客戶端的原始IPv6地址及端口賦值到uaddr的sin6_addr和sin6_port。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,進(jìn)一步包括步驟:
如果判斷所述sk_user_data指針指向的所述高速緩存為空,則返回。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,進(jìn)一步包括步驟:
如果判斷所述高速緩存中沒(méi)有存儲(chǔ)所述客戶端的原始IPv6地址及端口,則返回。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司,未經(jīng)百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210054431.7/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- IPV6報(bào)頭接收裝置和IPV6報(bào)頭處理方法
- 隧道化傳輸IPv6分組
- IPv6 SIP終端與IPv4 SIP終端通訊的方法
- 一種IPv6機(jī)頂盒動(dòng)態(tài)配置IPv6方法及其裝置
- IPv4網(wǎng)絡(luò)中傳輸IPv6報(bào)文的方法、終端及網(wǎng)關(guān)
- 使用非特定IPv6地址的IPv4/IPv6分級(jí)轉(zhuǎn)換方法
- IPv6專有承載恢復(fù)處理方法、裝置、系統(tǒng)及HSGW
- IPV6地址的匯總處理方法及裝置
- 一種IPV6地址段判斷的方法及裝置
- 用于建立IPv4-in-IPv6隧道的方法、裝置和設(shè)備





