9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 學習電腦 > 操作系統 > Linux教程 >

Linux操作系統的TCP/IP協議棧

時間: 若木1 分享
分析tcp_v4_init,這個函數在net/ipv4/tcp_ipv4.c里面:
__initfunc(voidtcp_v4_init(structnet_proto_family*ops))
{
interr;
tcp_inode.i_mode=S_IFSOCK;
tcp_inode.i_sock=1;
tcp_inode.i_uid=0;
tcp_inode.i_gid=0;
tcp_socket->inode=&tcp_inode;
tcp_socket->state=SS_UNCONNECTED;
tcp_socket->type=SOCK_RAW;
if((err=ops->create(tcp_socket,IPPROTO_TCP))<0)
panic("FailedtocreatetheTCPcontrolsocket.\n");
tcp_socket->sk->allocation=GFP_ATOMIC;
tcp_socket->sk->num=256;
tcp_socket->sk->ip_ttl=MAXTTL;
}
tcp_inode當然就是一個inode節點了,而tcp_socket等于tcp_inode.u.socket_i,通過一個指針他們指向同一個內存.tcp_socket是用來通信使用的,可以叫TCP的controlsocket或者是communication
socket,當TCP通信沒有相應的socket的時候這個socket就充當了socket的角色.比如在一個關閉端口上收到SYN時發送RST,或者是在三次握手的時候發送SYN(還沒有accept產生新的socket)
值得注意的是ops->create函數的調用,我們前面見過對于AF_INET來說這個回調函數是net/ipv4/af_inet.c的inet_create函數,這個函數是用來創建一個socket的時候用的,由于函數比較長,這里先略過分析,這第一次的分析只是一個大致流程的熟悉而已.
由于有socket創建和通信,所以這段代碼是協議相關的,所以把這段代碼從原來的tcp.c里面提取了出來
下面是tcp_init函數,它在net/ipv4/tcp.c里面,大體上來說就是創建了幾個hash表和bucket.這段代碼創建了下面幾個全局對象:
tcp_openreq_cachep
tcp_bucket_cachep
tcp_timewait_cachep
tcp_ehash
tcp_bhash
其中ehash代表establishedhash,bhash代表bindhash,它們當然分別是所有的滿足TCP_ESTABLISHED<=sk->state
再下來就是icmp_init函數了,在net/ipv4/icmp.c里面,事實上,如果把tcp_v4_init里面的IPPROTO_TCP替換成IPPROTO_ICMP,基本都是一樣的.剩下的proc_net_register函數前面已經講過了,這里就不說了.
到這里為止,Linux下面IP棧的開始的工作我們基本應該有了個了解,其中有幾個關鍵的函數:
dev_add_pack:注冊一個鏈路層以上的處理函數,一般是用來使用新的網絡層協議的,不過如果注冊時重復也是可以的,這時候系統會設置一個copy位.如果是ETH_P_ALL則會接收所有的數據包.加入的元素保存在ptype_all鏈表和ptype_basehash鏈表中間.
inet_add_protocol:注冊一個建立在IP層以上的協議,例如TCP和UDP等
proc_net_register(還有類似的proc_register):
在/proc/net目錄下面創建一個子目錄項來使管理者能通過文件系統得到統計信息
現在迷惑的地方還有很多,一個是結構體sk_buff的每個成員的意義,一個是結構體sock的意義,不過這兩個問題應該在以后看多了就知道了.下面我就打算一個個分析每個協議的處理了,包括狀態轉化/數據發送/接收。
23803 主站蜘蛛池模板: 国内精品综合九九久久精品| 99国精品午夜福利视频不卡99| 草裙社区精品视频播放| 蜜臀AⅤ永久无码精品| 久久精品免视看国产成人| 毛片亚洲AV无码精品国产午夜| 成人性无码专区免费视频| 亚洲精品成人片在线观看精品字幕| 国产福利深夜在线播放| 日韩精品永久免费播放平台| 成人av午夜在线观看| 激情综合网激情国产av| 巨爆乳中文字幕爆乳区| 两个人免费完整高清视频| 久久婷婷大香萑太香蕉AV人| 午夜福利电影| 中文字幕日韩精品国产| 中国少妇嫖妓BBWBBW| 91久久性奴调教国产免费| 色综合激情丁香七月色综合| 亚洲人妻精品一区二区| 亚洲蜜桃av一区二区三区| 亚洲一区二区三级av| 久久精品国内一区二区三区| 亚洲偷自拍国综合| 美女一级毛片无遮挡内谢| 国产区成人精品视频| 亚洲国产精品日韩av专区| 十八禁午夜福利免费网站| 日韩欧美aⅴ综合网站发布| 东京热高清无码精品| 欧美日韩精品一区二区视频| 风流少妇树林打野战视频 | 国产午夜福利一区二区三区| 精品视频不卡免费观看| 女人被爽到高潮视频免费国产| 精品三级在线| 亚洲精品国产第一区二区| 国产宅男宅女精品A片在线观看| 囯产精品久久久久久久久久妞妞 | 国产亚洲精品视频一二区|