麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 系統(tǒng) > Unix > 正文

UNIX網(wǎng)絡(luò)編程讀書(shū)筆記:原始套接口

2024-06-28 13:27:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
UNIX網(wǎng)絡(luò)編程讀書(shū)筆記:原始套接口紅心概述

應(yīng)用程序可以繞過(guò)傳輸層而直接使用ipv4和IPv6,這稱為原始套接口(raw socket)。http://www.CUOXin.com/nufangrensheng/p/3583435.html。

原始套接口是一種對(duì)原始網(wǎng)絡(luò)報(bào)文進(jìn)行處理的套接口。原始套接口主要應(yīng)用在底層網(wǎng)絡(luò)編程上,同時(shí)也是網(wǎng)絡(luò)黑客的必備手段。例如sniffer、拒絕服務(wù)(DoS)、IP地址欺騙等都需要在原始套接字的基礎(chǔ)上實(shí)現(xiàn)。

與原始套接字對(duì)應(yīng),之前的TCP/UDP的套接字稱為標(biāo)準(zhǔn)套接字,如下圖所示,為標(biāo)準(zhǔn)套接字與原始套接字之間的關(guān)系。標(biāo)準(zhǔn)套接字與網(wǎng)絡(luò)協(xié)議棧的TCP、UDP層打交道,而原始套接字則與IP層級(jí)網(wǎng)絡(luò)協(xié)議棧核心打交道。

image

原始網(wǎng)絡(luò)套接口提供普通的TCP和UDP套接口不提供的以下3個(gè)功能:

1、有了原始套接口,進(jìn)程可以讀與寫(xiě)ICMPv4、IGMPv4和ICMPv6等分組。

2、有了原始套接口,進(jìn)程可以讀與寫(xiě)內(nèi)核不處理其協(xié)議字段的IPv4數(shù)據(jù)報(bào)。

3、有了原始套接口,進(jìn)程還可以使用IP_HDRINCL套接口選項(xiàng)自行構(gòu)造IPv4頭部。

紅心原始套接口的創(chuàng)建

創(chuàng)建一個(gè)原始套接口涉及如下步驟:

1、把第2個(gè)參數(shù)指定為SOCK_RAW調(diào)用socket函數(shù),以創(chuàng)建一個(gè)原始套接口。第3個(gè)參數(shù)(協(xié)議類型)通常不為0。

image

燈泡只有超級(jí)用戶才能創(chuàng)建原始套接口。

2、可以在這個(gè)原始套接口上如下開(kāi)啟IP_HDRINCL套接口選項(xiàng):

const int on = 1;if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0)    出錯(cuò)處理

3、可以在這個(gè)原始套接口上調(diào)用bind函數(shù),不過(guò)比較少見(jiàn)。bind函數(shù)僅僅設(shè)置本地地址,因?yàn)樵继捉涌诓淮嬖诙丝诘母拍睢?/p>

4、可以在這個(gè)原始套接口上調(diào)用connect函數(shù),不過(guò)也比較少見(jiàn)。connect函數(shù)僅僅設(shè)置遠(yuǎn)地地址,同樣因?yàn)樵继捉幼植淮嬖诙丝诘母拍睢?/p>紅心原始套接口輸出

原始套接口的輸出遵循以下規(guī)則:

1、普通輸出通過(guò)調(diào)用sendto或sendmsg并指定宿IP地址完成。如果套接口已經(jīng)連接,那么也可以調(diào)用write、writev或send。

2、如果IP_HDRINCL套接口選項(xiàng)未開(kāi)啟,那么由進(jìn)程讓內(nèi)核發(fā)送的數(shù)據(jù)的起始地址指的是IP頭部之后的第一個(gè)字節(jié),因?yàn)閮?nèi)核將構(gòu)造IP頭部并把它置于來(lái)自進(jìn)程的數(shù)據(jù)之前。內(nèi)核把所構(gòu)造的IPv4頭部的協(xié)議字段設(shè)置成來(lái)自socket調(diào)用的第3個(gè)參數(shù)。

3、如果IP_HDRINCL套接口選項(xiàng)已開(kāi)啟,那么由進(jìn)程讓內(nèi)核發(fā)送的數(shù)據(jù)的起始地址指的是IP頭部的第一個(gè)字節(jié)。進(jìn)程調(diào)用輸出函數(shù)寫(xiě)出的數(shù)據(jù)量必須包括IP頭部的大小。整個(gè)IP頭部由進(jìn)程構(gòu)造,不過(guò):(a)IPv4標(biāo)識(shí)字段可置為0,從而告知內(nèi)核設(shè)置該值;(b)IPv4頭部校驗(yàn)和字段總是由內(nèi)核計(jì)算并存儲(chǔ);(c)IPv4選項(xiàng)字段是可選的。

4、內(nèi)核對(duì)于超出外出接口MTU的原始分組執(zhí)行分片。

紅心原始套接口輸入

原始套接口輸入遵循以下規(guī)則:

1、接收到的UDP分組和TCP分組絕不傳遞到任何原始套接口。如果一個(gè)進(jìn)程想要讀取含有UDP分組或TCP分組的IP數(shù)據(jù)報(bào),它就必須在數(shù)據(jù)鏈路層讀取這些分組。

2、大多數(shù)ICMP分組在內(nèi)核完成處理其中的ICMP消息后傳遞到原始套接口。

3、所有IGMP分組在內(nèi)核完成處理其中的IGMP消息后傳遞到原始套接口。

4、內(nèi)核不認(rèn)識(shí)其協(xié)議字段的所有IP數(shù)據(jù)報(bào)傳遞到原始套接口。內(nèi)核對(duì)這些分組執(zhí)行的唯一處理是針對(duì)某些IP頭部字段的最小驗(yàn)證:IP版本、IPv4頭部校驗(yàn)和、頭部長(zhǎng)度以及宿IP地址。

5、如果某個(gè)數(shù)據(jù)報(bào)以片段形式到達(dá),那么在它的所有片段均到達(dá)且重組出該數(shù)據(jù)報(bào)之前,不傳遞任何片段分組到原始套接口。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品久久久久久久久久久久久久 | 91精品国产乱码久久桃 | 久久爽久久爽久久av东京爽 | 青青国产在线视频 | 日本aaaa片毛片免费观蜜桃 | 国产成人高潮免费观看精品 | 韩国十九禁高潮床戏在线观看 | 一区二区三区在线视频观看58 | 成人激情综合网 | 鲁人人人鲁人人鲁精品 | 国产一级毛片视频在线! | av播播 | 黄色高清av| 黄色一级电影网 | 黄色片免费在线 | 久草免费新视频 | h视频免费在线观看 | 蜜桃av鲁一鲁一鲁一鲁 | 久久精品电影网 | 久久av免费 | 欧美亚洲一区二区三区四区 | 久久生活片| 亚洲精品一二三区 | 九九热视频在线免费观看 | 色骚综合| 亚洲精品com | 久久成人激情视频 | 72pao成人国产永久免费视频 | 亚洲情视频 | 91久久九色 | 国产精品美女久久久免费 | 国产一级一国产一级毛片 | 亚洲精品成人18久久久久 | 国产91九色视频 | 成人店女老板视频在线看 | 欧美伦理一区二区 | 中文字幕在线观看视频www | 成人区精品一区二区婷婷 | 国产精品免费小视频 | 久久成人综合网 | 在线成人免费视频 |