青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-163  評(píng)論-223  文章-30  trackbacks-0
   繼上篇TCP/IP FAQ(1),本篇涵蓋了域和協(xié)議、IP編址、插口、原始IP、unix域方面的問題與解答。

【Domain & Protocol】

1. 什么是域,它和協(xié)議有什么關(guān)系?
   域可以理解為一種容納協(xié)議的空間,它的存在便于了協(xié)議的分類;域和協(xié)議是集合與元素的關(guān)系,一個(gè)域中的每個(gè)協(xié)議使用同類地址,并且每種地址只被一個(gè)域使用,一個(gè)域能由協(xié)議族或地址族常量唯一標(biāo)識(shí)。
2. TCP/IP中有哪些域及其協(xié)議?
   internet、iso、route、ccitt、imp、network systems和unix,其中internet域含有ip,icmp,igmp,tcp和udp五種協(xié)議,unix域用于ipc通信。
3. 哪些地方會(huì)用到域?
   一個(gè)網(wǎng)絡(luò)層協(xié)議必須分用輸入數(shù)據(jù)報(bào),并交給相應(yīng)的傳輸層協(xié)議,由于域包含了協(xié)議族,因此必須從對(duì)應(yīng)的域中找到合適的協(xié)議去處理。例如IP對(duì)應(yīng)的域?yàn)閕nternet,這個(gè)域?qū)?yīng)的協(xié)議族為inetsw,當(dāng)收到IP數(shù)據(jù)報(bào)時(shí),就從inetsw中找到對(duì)應(yīng)的傳輸層協(xié)議去輸入處理。

【IP Addressing】
1. IP地址有哪幾類?
   分為5類,A、B和C類用于單播;D類用于多播;E類用于實(shí)驗(yàn)。
2. sockaddr和sockaddr_in有什么區(qū)別聯(lián)系?
   sockaddr是一種通用的用于接口編址信息的結(jié)構(gòu),它將硬件與協(xié)議的地址細(xì)節(jié)相對(duì)于接口層隱藏起來,成員依次為sa_len、sa_family和sa_data,而sockaddr_in成員依次為sin_len、sin_family、sin_port、sin_addr和sin_zero。它們的前兩個(gè)成員其實(shí)是一樣的,只是命名不同,而sockaddr_in中的sin_port標(biāo)識(shí)傳輸層的端口,sin_addr標(biāo)識(shí)IP層的地址,所以它是Internet協(xié)議的專用接口編址結(jié)構(gòu),sin_zero僅為填充用,因?yàn)閟ockaddr_in長(zhǎng)度不應(yīng)小于sockaddr。
3. 插口編址結(jié)構(gòu)允許的最大長(zhǎng)度是多少?
   sockaddr最后一個(gè)成員是可擴(kuò)展的,這是C語(yǔ)言的通用技術(shù),因?yàn)槠涞谝粋€(gè)成員為u_char類型,所以最大長(zhǎng)度是255。
4. 一個(gè)接口可以配置多個(gè)IP地址,是怎么實(shí)現(xiàn)的?
   ifaddr表示通用的接口地址,ifnet表示接口,它有個(gè)類型為ifaddr*的if_addrlist成員,表示當(dāng)前接口上的地址鏈表。in_ifaddr表示Internet協(xié)議專用的接口地址,而IP屬于Internet協(xié)議,因此用in_ifaddr表示,所有的IP地址組成一個(gè)類型為in_ifaddr*的鏈表。當(dāng)增加一個(gè)IP地址時(shí),就需要插入這兩個(gè)鏈表中;當(dāng)刪除一個(gè)IP地址時(shí),就需要從它們當(dāng)中移除。
5. 為什么配置IP主機(jī)地址和網(wǎng)絡(luò)掩碼可以是獨(dú)立的?
   因?yàn)樗鼈兪褂貌煌拿顚?shí)現(xiàn),前者用SIOCSIFADDR,后者用SIOCSIFNETMASK。當(dāng)配置IP主機(jī)地址時(shí),如果沒有指明網(wǎng)絡(luò)掩碼,那么網(wǎng)絡(luò)掩碼被設(shè)置成默認(rèn)的。
6. 為什么訪問IP接口地址使用的是UDP插口而不是原始IP插口?
   只有超級(jí)用戶用程才能創(chuàng)建原始IP插口,而通過UDP插口,任何用戶進(jìn)程都能查看接口配置。

【Socket】
1. 為什么會(huì)存在插口層?
   從概念上講,tcp/ip協(xié)議棧劃分為鏈路、網(wǎng)絡(luò)、傳輸和應(yīng)用4層;但從實(shí)現(xiàn)上講,在應(yīng)用層和其下層中間,引入了一個(gè)插口層,作為進(jìn)程和內(nèi)核通信的橋梁,主要功能是將進(jìn)程發(fā)送的與協(xié)議有關(guān)的請(qǐng)求映射到產(chǎn)生插口時(shí)指定的與協(xié)議有關(guān)的實(shí)現(xiàn),從而屏蔽了不同協(xié)議處理的細(xì)節(jié)。
2. 為什么服務(wù)器進(jìn)程總是要調(diào)用bind,客戶進(jìn)程能調(diào)用它嗎?
   bind將一個(gè)本地地址同一個(gè)插口相關(guān)聯(lián),客戶進(jìn)程需要同一個(gè)已知地址建立連接或發(fā)送數(shù)據(jù)報(bào)到已知地址,如果不調(diào)用bind,服務(wù)器進(jìn)程就無法在某個(gè)已知地址上接受TCP連接或接收UDP數(shù)據(jù)報(bào)。客戶進(jìn)程也能調(diào)用bind,這樣便可以由應(yīng)用程序而非內(nèi)核來選擇一個(gè)本地地址,其結(jié)果是只能接收目的地址為被綁定地址的數(shù)據(jù)包,但通常不必調(diào)用bind,因?yàn)閮?nèi)核會(huì)自動(dòng)決定外出地址和臨時(shí)端口。
3. 對(duì)于tcp和udp協(xié)議的插口,調(diào)用connect有什么區(qū)別聯(lián)系?
   共同點(diǎn)是設(shè)定插口的外部地址(插口的地址存儲(chǔ)在相關(guān)的協(xié)議控制塊中),不同點(diǎn)如下
   1)tcp:與遠(yuǎn)端系統(tǒng)進(jìn)行3次握手交互,如果插口是非阻塞的且連接正在進(jìn)行中,那么返回EINPROGRESS,下次再調(diào)用則返回EALREADY;如果連接成功,無論是否阻塞,那么下次再調(diào)用會(huì)返回EISCONN;如果連接失敗,那么下次再調(diào)用,則重新開始三次握手。
   2)udp:沒有3次握手交互,直接設(shè)定外部地址,無論插口是否阻塞,調(diào)用會(huì)立即返回,多次調(diào)用則會(huì)替換老的外部地址。發(fā)送數(shù)據(jù)必須使用write或目的地址為空的sendto,若sendto目的地址非空,則返回EISCONN。如果沒有事先調(diào)用connect,那么調(diào)用目的地址為空的sendto則會(huì)返回ENOTCONN。
4. 什么情況下調(diào)用close會(huì)阻塞?
   連接已建立且設(shè)置了SO_LINGER選項(xiàng)并延時(shí)值非零的阻塞插口。
5. 插口IO有哪些系統(tǒng)調(diào)用?
   發(fā)送有write、writev、sendto和sendmsg,接收有read、readv、recvfrom和recvmsg。注意,send和recv是庫(kù)函數(shù)而非系統(tǒng)調(diào)用,前者調(diào)用sendto實(shí)現(xiàn),后者調(diào)用recvfrom實(shí)現(xiàn)。
6. write、writev、read、readv與sendto、sendmsg、recvfrom、recvmsg有什么不同?
   1)前面4個(gè)適合于任何描述符,而后面4個(gè)只能用于插口。
   2)前面4個(gè)不支持標(biāo)志,而后面4個(gè)支持。
   3)前面前2個(gè)不支持目的地址、后2個(gè)不支持源地址,而后面前2個(gè)支持目的地址、后2個(gè)支持源地址。
   4)前面4個(gè)不支持控制信息,而后面第2個(gè)和第4個(gè)支持。
7. 如何斷開已連接的udp插口,允許調(diào)用sendto向其它主機(jī)發(fā)送數(shù)據(jù)?
    由于系統(tǒng)并沒有提供形如disconnect的斷連API,但connect內(nèi)部實(shí)現(xiàn)是先斷連,再調(diào)用對(duì)應(yīng)協(xié)議的PRU_CONNECT請(qǐng)求處理,因此向connect傳遞無效的外部地址結(jié)構(gòu)(如IP=0.0.0.0,Port=0),雖然這樣會(huì)導(dǎo)致結(jié)果失敗,但先前的斷連成功,對(duì)應(yīng)pcb的外部地址被設(shè)為INADDR_ANY,所以調(diào)用sendto就不會(huì)返回EISCONN。

【Raw IP】
1. 怎么使用原始IP,它有哪些用途及應(yīng)用?
   創(chuàng)建SOCK_RAW類型的原始插口,就能使用原始IP機(jī)制,它有下列用途:
   1)發(fā)送和接收ICMP和IGMP報(bào)文,如ping程序和多播路由守護(hù)程序。
   2)構(gòu)造自己的IP首部,如路由跟蹤程序。
   3)設(shè)計(jì)基于IP的新的傳輸層協(xié)議,如gated程序。
2. 協(xié)議值為PROTOCOL_RAW(255)的原始插口能收到什么類型的IP數(shù)據(jù)報(bào)?
   由于255是非零的保留值,這樣的IP數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中不會(huì)存在,原始IP輸入處理協(xié)議比較測(cè)試失敗,因此收不到任何類型的IP數(shù)據(jù)報(bào)。
3. 協(xié)議值為0的原始插口能收到什么類型的IP數(shù)據(jù)報(bào)?
   由于協(xié)議值為0,原始IP輸入處理忽略了協(xié)議比較測(cè)試,因此能收到任何類型的IP數(shù)據(jù)報(bào)。
4. 如何處理收到的IP數(shù)據(jù)報(bào)?
   遍歷Internet PCB表,依次從協(xié)議值、本地地址和外部地址三項(xiàng)來比較IP數(shù)據(jù)報(bào)和每個(gè)PCB,將IP數(shù)據(jù)報(bào)復(fù)制追加到所有匹配的PCB對(duì)應(yīng)的插口緩存中,并喚醒等待的進(jìn)程。
5. 如何發(fā)送數(shù)據(jù)?
   先填充IP首部,如果未設(shè)置IP_HDRINCL選項(xiàng),那么由內(nèi)核填充,否則由應(yīng)用程序在發(fā)送前填充,再交給IP協(xié)議輸出處理。
6. 內(nèi)核何時(shí)會(huì)調(diào)用原始輸入?
   當(dāng)收到的協(xié)議類型為除IPPROTO_TCP、IPPROTO_UDP、IPPROTO_ICMP和IPPROTO_IGMP外的IP數(shù)據(jù)報(bào)時(shí)調(diào)用。

【Unix domain】
1. 使用unix域的原因有哪些?
   1)當(dāng)通信雙方在同一主機(jī)上時(shí),使用unix域插口的速度比tcp和udp插口要快很多。
   2)支持同一主機(jī)進(jìn)程間傳遞描述符。
2. unix域和internet域有什么不同?
   1)編址結(jié)構(gòu)不同:前者是sockaddr_un,與文件系統(tǒng)路徑名關(guān)聯(lián),而后者是sockaddr_in,與IP地址和端口關(guān)聯(lián)。
   2)協(xié)議控制塊不同:前者是unpcb,沒有全局的pcb鏈表,而后者是inpcb,有全局的pcb雙向循環(huán)鏈表。
3. 如果一個(gè)unix域服務(wù)器在bind后unlink了被綁定的路徑名,會(huì)發(fā)生什么情況?
   因?yàn)閏onnect內(nèi)部實(shí)現(xiàn)查找路徑名失敗,所以連接失敗,但listen會(huì)成功,因?yàn)閎ind會(huì)創(chuàng)建新的vnode和pcb關(guān)聯(lián),且PRU_LISTEN請(qǐng)求實(shí)現(xiàn)只檢查vnode是否為空。
4. 如果一個(gè)unix域服務(wù)器在終止時(shí)沒有unlink被綁定的路徑名,會(huì)發(fā)生什么情況?
   因?yàn)閏onnect內(nèi)部實(shí)現(xiàn)雖能找到路徑名但找不到相關(guān)的插口,所以連接被拒絕。
5. 系統(tǒng)調(diào)用socketpair和pipe有什么區(qū)別聯(lián)系?
   共同點(diǎn)是使用unix域,即socket調(diào)用第1參數(shù)為AF_UNIX,不同點(diǎn)如下
   1)前者是雙工的,因?yàn)閮蓚€(gè)插口標(biāo)志都為讀寫,且它們的pcb相互指向?qū)Ψ剑缓笳呤菃喂さ模驗(yàn)橐粋€(gè)插口標(biāo)志為只讀,另一個(gè)為只寫,寫插口的pcb指向讀插口的pcb。
   2)前者支持?jǐn)?shù)據(jù)報(bào)和流式插口,后者僅支持流式插口。
6. unix域是怎么實(shí)現(xiàn)傳遞描述符的?
   描述符存儲(chǔ)在控制信息cmsghdr內(nèi),cms_level=SOL_SOCKET且cms_type=SCM_RIGHTS,unix域的發(fā)送請(qǐng)求實(shí)現(xiàn)將描述符轉(zhuǎn)換為file指針,這個(gè)過程叫內(nèi)部化,接收請(qǐng)求實(shí)現(xiàn)把file指針轉(zhuǎn)換為最小的沒有使用的描述符,這個(gè)過程叫外部化。
posted on 2013-09-03 15:52 春秋十二月 閱讀(2402) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Network

評(píng)論:
# re: TCP/IP FAQ 2[未登錄] 2013-09-04 13:22 | jacky
socket一般翻譯為套接字比較好吧  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人激情视频免费观看| 一区二区日韩| 激情成人中文字幕| 一区二区三区.www| 欧美激情国产高清| 狼人天天伊人久久| 激情婷婷欧美| 美女999久久久精品视频| 欧美一区二区高清| 国产一区二区三区在线观看免费视频 | 欧美天堂亚洲电影院在线播放| 国内久久婷婷综合| 久久精品人人做人人爽| 亚洲欧美日韩网| 国产精品嫩草99a| 亚洲欧美大片| 亚洲欧美日韩国产一区| 国产欧美日韩三区| 久久精品72免费观看| 久久精彩视频| 亚洲欧洲日本mm| 亚洲美女在线看| 欧美性一区二区| 久久久久九九九| 久久视频一区二区| 亚洲看片网站| 亚洲视频电影图片偷拍一区| 国产精品日产欧美久久久久| 欧美亚洲日本国产| 久久久久久久久久久久久女国产乱| 亚洲福利视频网站| 亚洲精品一级| 国产日韩欧美综合精品| 美女久久一区| 欧美日韩一卡二卡| 久久久精品一品道一区| 久久中文欧美| 亚洲女人天堂成人av在线| 午夜精品福利一区二区蜜股av| 狠狠入ady亚洲精品经典电影| 欧美成人一区二区三区| 欧美日韩伦理在线免费| 欧美在线欧美在线| 免费不卡在线观看| 亚洲午夜激情| 久久综合伊人77777| 亚洲深夜福利在线| 久久久精品欧美丰满| 在线亚洲成人| 久久婷婷国产综合尤物精品 | 久久久人成影片一区二区三区观看 | 欧美激情网友自拍| 久久综合九色综合欧美狠狠| 一本色道久久综合狠狠躁篇的优点 | 亚洲欧美日本另类| 最新69国产成人精品视频免费 | 国产欧美一区二区精品仙草咪 | 欧美日韩成人一区二区| 久久精品一区二区| 欧美午夜www高清视频| 久久综合激情| 国产精品视区| 99视频精品| 亚洲国产一成人久久精品| 亚洲尤物在线视频观看| 亚洲免费av网站| 久久躁日日躁aaaaxxxx| 欧美中文字幕视频在线观看| 欧美日本一区| 亚洲国产一二三| 欧美亚韩一区| 91久久精品国产91久久| 黑丝一区二区三区| 亚洲欧美日韩在线播放| 亚洲网在线观看| 欧美精品久久久久a| 免费不卡在线观看| 国产一区二区三区免费不卡| 亚洲图片你懂的| 亚洲午夜激情免费视频| 欧美激情第二页| 欧美激情一区二区三区蜜桃视频| 国产亚洲欧美日韩精品| 亚洲视频一二| 一区二区三区视频在线看| 蜜桃av综合| 久热这里只精品99re8久| 国产日韩欧美成人| 性欧美超级视频| 久久精品亚洲乱码伦伦中文 | 国产精品a级| 日韩一级二级三级| 亚洲一级二级在线| 欧美日韩在线播放| 99国产精品久久| 亚洲一区中文字幕在线观看| 欧美理论视频| 在线视频你懂得一区二区三区| 亚洲视频精品| 国产精品一区二区黑丝| 亚洲欧美日韩一区二区在线| 欧美在线视频免费观看| 国产亚洲综合性久久久影院| 欧美一级片在线播放| 老司机一区二区| 亚洲人成小说网站色在线| 欧美大片在线看免费观看| 国产一区视频在线观看免费| 在线视频亚洲一区| 欧美亚洲在线| 国产视频精品va久久久久久| 亚洲一区二区日本| 久久国产精品99国产精| 精品91视频| 欧美黄色大片网站| 一区二区三区精品视频在线观看| 亚洲视频一区在线观看| 国产精品日韩欧美一区二区三区| 亚洲欧美一区二区视频| 美女被久久久| 亚洲天天影视| 狠狠久久婷婷| 欧美视频第二页| 久久成年人视频| 亚洲精品五月天| 欧美在线三级| 亚洲精品日韩久久| 国产精品欧美激情| 免费亚洲一区二区| 亚洲在线国产日韩欧美| 久久欧美中文字幕| 一区二区三区四区五区精品| 国产精品久久久久久久久果冻传媒| 午夜在线一区| 亚洲免费观看高清完整版在线观看熊 | 亚洲免费观看高清完整版在线观看| 亚洲欧美精品| 亚洲电影av在线| 国产精品福利在线观看| 久久婷婷国产麻豆91天堂| 亚洲视频精选在线| 欧美成人精品三级在线观看| 亚洲小说春色综合另类电影| 国产欧美日韩免费| 欧美精品在线一区二区三区| 亚洲欧美变态国产另类| 亚洲日本免费| 久久一二三四| 欧美一区二区三区另类| 亚洲精品无人区| 国产一区二区剧情av在线| 欧美日韩国产系列| 欧美顶级艳妇交换群宴| 欧美主播一区二区三区美女 久久精品人| 欧美激情一区| 久久综合伊人| 久久国产一区二区| 亚洲欧美精品| 亚洲欧美三级伦理| 这里是久久伊人| 亚洲精品在线观看免费| 黄色精品在线看| 国产性做久久久久久| 国产精品男gay被猛男狂揉视频| 欧美久久电影| 欧美激情综合色| 欧美96在线丨欧| 久久一综合视频| 久久蜜桃精品| 久久久久久久综合日本| 午夜精品久久久久99热蜜桃导演| 亚洲精品美女| 亚洲人成7777| 最新69国产成人精品视频免费| 欧美+日本+国产+在线a∨观看| 久久久国产午夜精品| 亚洲午夜精品在线| 亚洲美女黄色片| 亚洲三级电影全部在线观看高清| 久久免费的精品国产v∧| 先锋影音网一区二区| 亚洲一区二区在线| 亚洲一区二区三区视频| 亚洲影音一区| 欧美一级片在线播放| 欧美在线一区二区| 久久久在线视频| 欧美www视频| 91久久综合| 亚洲精品视频免费| 一区二区精品在线| 亚洲欧美国产精品va在线观看| 亚洲影视中文字幕| 欧美一区二区日韩一区二区| 欧美在线视频播放| 老妇喷水一区二区三区| 欧美激情精品久久久六区热门 | 亚洲一区二区高清| 午夜国产不卡在线观看视频| 久久国内精品自在自线400部|