亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 6612 | 回復(fù): 7
打印 上一主題 下一主題

內(nèi)核構(gòu)造udp數(shù)據(jù)包,計(jì)算校驗(yàn)和需要注意的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-11-05 14:35 |只看該作者 |倒序?yàn)g覽
其中涉及到兩個(gè)函數(shù)

skb_checksum(const struct sk_buff *skb, int offset,
int len, __wsum csum)
四個(gè)參數(shù)解釋:
skb:不用說了
offset:IP Header長度
len:IP payload長度
csum:0,計(jì)算校驗(yàn)和時(shí)為0

csum_tcpudp_magic(__be32 saddr, __be32 daddr,
unsigned short len,
unsigned short proto,
__wsum sum)

saddr:源IP
daddr:目的IP
proto:傳輸協(xié)議
sum:IP payload校驗(yàn)和

兩個(gè)函數(shù)配合使用,前者是計(jì)算UDP payload校驗(yàn)和,后者是計(jì)算整個(gè)IP payload校驗(yàn)和。

兩個(gè)注意的問題:
因?yàn)樾r?yàn)和不涉及鏈路層,如果skb是直接從網(wǎng)卡驅(qū)動取出來的話,就需要把skb->data設(shè)置為iph
在調(diào)用skb_checksum以前必須設(shè)置udph->check為0。這是協(xié)議規(guī)定的


我就是因?yàn)橄旅嫣岬降膬蓚(gè)問題,花了很久才弄明白。
網(wǎng)上也能搜到一些相關(guān)的內(nèi)容,可惜說的不是很明白,詳細(xì)參考了《TCP/IP詳解第一卷》才弄明白

[ 本帖最后由 印隨 于 2009-11-5 14:38 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-11-05 14:40 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
3 [報(bào)告]
發(fā)表于 2009-11-05 15:26 |只看該作者
兩個(gè)函數(shù)配合使用,前者是計(jì)算UDP payload校驗(yàn)和,
skb_checksum(const struct sk_buff *skb, int offset,
int len, __wsum csum)

你的是那個(gè)版本,記得通常時(shí)使用csum_partial來計(jì)算數(shù)據(jù)部分的

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-11-05 18:07 |只看該作者
kernel  2.6.28.10

PS:
聽同事說 這兩個(gè)函數(shù)接口好像經(jīng)常變,

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
5 [報(bào)告]
發(fā)表于 2009-11-05 19:28 |只看該作者
原帖由 印隨 于 2009-11-5 18:07 發(fā)表
kernel  2.6.28.10

PS:
聽同事說 這兩個(gè)函數(shù)接口好像經(jīng)常變,


記得前兩天看了2.6.30.9的,接口好像用的還是csum_partial。難道是有變化了,還是我記錯(cuò)了

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-11-05 20:49 |只看該作者
skb_checksum調(diào)用csum_partial,算是高級一點(diǎn)的接口

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-11-10 10:32 |只看該作者
隨便是不是還要checkip頭呀!
skb->csum = skb_checksum()
iph->check = ip_fast_csum()
udph->check = csum_tcpudp_magic()
:wink:

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2012-07-09 09:39 |只看該作者
我感覺LZ你說的不對吧,skb_checksum應(yīng)該是整個(gè)SKB結(jié)構(gòu)的校驗(yàn)和,csum_tcpudp_magic是計(jì)算UDP和TCP偽首部的校驗(yàn)和。我想計(jì)算UDP和TCP的校驗(yàn)和有沒有直接的接口呢?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP