freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡(luò)協(xié)議分析習(xí)題解答參考思路-資料下載頁(yè)

2025-05-17 13:32本頁(yè)面
  

【正文】 題3:TCP的差錯(cuò)控制體現(xiàn)在以下幾方面:序號(hào)、確認(rèn)重傳機(jī)制,相關(guān)字段為tcb_suna、tcb_snext、tcb_slast、tcb_rexmt、tcb_rexmtcount,體現(xiàn)在tcpxmit()、tcpackit()、tcpacked()、tcprexmt()等函數(shù)中;擁塞控制,相關(guān)字段有tcb_cwnd、tcb_ssthresh、tcb_srt、tcb_rtde,體現(xiàn)在tcpxmit()、tcprtt()、tcprexmt()等函數(shù)中;流量控制機(jī)制,相關(guān)字段有tcb_swindow、tcb_lwseq、tcb_lwack、tcb_smss,體現(xiàn)在tcpxmit()、tcprexmt()、tcpsndlen()、tcpswindow()、tcprwindow()等函數(shù)中。習(xí)題4:首先注冊(cè)一個(gè)定時(shí)輸出事件來(lái)設(shè)定TCP定時(shí)器。TCP定時(shí)器進(jìn)程周期性地遍歷所有定時(shí)結(jié)構(gòu),回收到期的定時(shí)結(jié)構(gòu)并通過系統(tǒng)內(nèi)部的消息通道向TCP輸出進(jìn)程發(fā)送一個(gè)消息。消息進(jìn)入系統(tǒng)內(nèi)部消息隊(duì)列。輸出模塊從系統(tǒng)內(nèi)部消息隊(duì)列中獲取消息,對(duì)消息進(jìn)行分類并根據(jù)當(dāng)前狀態(tài)進(jìn)行相應(yīng)的消息處理。消息驅(qū)動(dòng)是圍繞消息的產(chǎn)生與處理展開的,并依靠消息循環(huán)機(jī)制來(lái)實(shí)現(xiàn)。它能夠很好地處理不確定時(shí)延的操作。習(xí)題5:。習(xí)題6:緊急指針的數(shù)據(jù)應(yīng)該盡快提交給用戶,可以考慮設(shè)置緊急數(shù)據(jù)緩沖區(qū),當(dāng)收到帶有緊急指針的TCP報(bào)文時(shí),將緊急數(shù)據(jù)復(fù)制到緊急數(shù)據(jù)緩沖區(qū)。習(xí)題7:該題可以查找有關(guān)TCP序號(hào)環(huán)繞的相關(guān)資料。習(xí)題8:TCP是面向連接的,所以就會(huì)出現(xiàn)只連接不傳送數(shù)據(jù)的“半開放連接”,服務(wù)器當(dāng)然要檢測(cè)到這種連接并且在某些情況下釋放這種連接,這就是?;疃〞r(shí)器的作用。數(shù)據(jù)傳送中,在收到對(duì)端確認(rèn)時(shí),設(shè)置保活定時(shí)器。若雙方長(zhǎng)時(shí)間無(wú)數(shù)據(jù)交互,即?;疃〞r(shí)器超時(shí),則發(fā)送?;顖?bào)文,對(duì)端對(duì)保活報(bào)文進(jìn)行確認(rèn),在收到對(duì)端確認(rèn)后重置?;疃〞r(shí)器,釋放連接。習(xí)題9:XINU操作系統(tǒng)源代碼tcpd目錄下主要包括tcpinit(),tcpmopen(),tcpserver(),tcpcon(),tcpread(),tcpwrite()函數(shù),用于完成XINU操作系統(tǒng)中的TCP套接字實(shí)現(xiàn)。其中,tcpinit()函數(shù)完成TCP設(shè)備初始化;Tcpmopen()函數(shù)用于TCP設(shè)備打開;Tcpserver()函數(shù)完成TCP被動(dòng)打開;Tcpcon()函數(shù)用于初始化TCP連接;Tcpread()函數(shù)用于TCP讀數(shù)據(jù);Tcpwrite()函數(shù)用于TCP寫數(shù)據(jù)。
第10章習(xí)題解答參考思路習(xí)題1:該題考查對(duì)UNIX內(nèi)核關(guān)于BSD套接字的數(shù)據(jù)結(jié)構(gòu)struct socket和struct sock的掌握程度。socket結(jié)構(gòu)描述了高層文件套接字接口的屬性,sock結(jié)構(gòu)描述了底層網(wǎng)絡(luò)套接字接口的屬性。每一個(gè)sock結(jié)構(gòu)都存放著一個(gè)與底層協(xié)議相關(guān)的信息。習(xí)題2:該題考查對(duì)套接字接口工作原理的理解程度。在UNIX內(nèi)核中,一個(gè)套接字描述了高層文件套接字接口和低層網(wǎng)絡(luò)套接字接口的一對(duì)結(jié)構(gòu)。底層網(wǎng)絡(luò)套接字?jǐn)?shù)據(jù)結(jié)構(gòu)定義了與具體協(xié)議相對(duì)應(yīng)的不同的操作表。例如,對(duì)PF_INET協(xié)議棧來(lái)說(shuō),SOCK_STREAM類型的文件套接字操作表為inet_stream_ops,網(wǎng)絡(luò)套接字操作表為tcp_prot;報(bào)文類型(SOCK_DGRAM)的文件套接字操作表為inet_dgram_ops,網(wǎng)絡(luò)套接字操作表為udp_prot;原始套接字類型(SOCK_RAW)的文件套接字操作表為inet_dgram_ops,網(wǎng)絡(luò)套接字操作表為raw_prot。習(xí)題3:該題考查對(duì)IPv4的套接字地址結(jié)構(gòu)和IPv6的套接字地址結(jié)構(gòu)。在UNIX系統(tǒng)中,IPv4的套接字地址結(jié)構(gòu)為struct sockaddr_in,IPv6的套接字地址結(jié)構(gòu)為struct sockaddr_in6。通用套接字地址結(jié)構(gòu)為struct sockaddr。地址轉(zhuǎn)換參考代碼如下:void sock_set_addr(struct sockaddr *sa, socklen_t salen, const void *addr){ switch (sasa_family) { case AF_INET: { struct sockaddr_in *sin = (struct sockaddr_in *) sa。 memcpy(amp。sinsin_addr, addr, sizeof(struct in_addr))。 return。 } case AF_INET6: { struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) sa。 memcpy(amp。sin6sin6_addr, addr, sizeof(struct in6_addr))。 return。 } }}習(xí)題4:該題考查對(duì)原始套接字編程的掌握程度。通過SOCK_RAW類型套接字可以操作數(shù)據(jù)鏈路層協(xié)議。例如,使用SOCK_RAW套接字發(fā)送以太網(wǎng)ARP請(qǐng)求幀。習(xí)題5:該題考查對(duì)套接字I/O編程的掌握程度,有多種實(shí)現(xiàn)套接字I/O超時(shí)方法,例如:SIGALRM中斷處理;select方法;設(shè)置SO_SNDTIMEO/SO_RCVTIMEO選項(xiàng);等等。習(xí)題6:該題考查對(duì)TCP帶外數(shù)據(jù)傳輸知識(shí)的掌握程度。TCP有帶外數(shù)據(jù)的概念(有時(shí)稱為加速數(shù)據(jù))。帶外數(shù)據(jù)在排隊(duì)等待發(fā)送的普通數(shù)據(jù)之前發(fā)送,但帶外數(shù)據(jù)是映射到現(xiàn)有的連接中的,而不是另外建立一個(gè)新的連接。發(fā)送方可以調(diào)用帶緊急數(shù)據(jù)標(biāo)志的發(fā)送函數(shù),例如send( fd,’a’,1,MSG_OOB)。接收方可以調(diào)用recv()、recvfrom()或者recvmsg()函數(shù),并指定MSG_OOB標(biāo)志來(lái)接收數(shù)據(jù)。習(xí)題7:該題考查對(duì)getaddrinfo()函數(shù)用法的掌握程度。getaddrinfo()函數(shù)處理名稱到地址以及服務(wù)到端口的轉(zhuǎn)換,它返回一個(gè)addrinfo的結(jié)構(gòu)指針,該addrinfo結(jié)構(gòu)可被套接口函數(shù)直接使用。getaddrinfo()函數(shù)是協(xié)議無(wú)關(guān)的,既可用于IPv4,也可用于IPv6,把協(xié)議相關(guān)性安全隱藏在函數(shù)內(nèi)部??梢栽诙嗑€程中使用。習(xí)題8:該題考查對(duì)多線程編程知識(shí)的掌握程度。實(shí)現(xiàn)多線程之間數(shù)據(jù)共享的方法有多種:互斥鎖、條件變量、信號(hào)量等。第11章習(xí)題解答參考思路習(xí)題1:該題主要考查對(duì)套接字選項(xiàng)SO_REUSEADDR的理解程度。定義套接字選項(xiàng)SO_REUSEADDR可以防止在服務(wù)器出現(xiàn)意外時(shí),由于地址和端口沒有釋放而不能重新使用。SO_REUSEADDR可以用于在以下4種情況。(1)當(dāng)有一個(gè)有著相同本地地址和端口的socket1處于TIME_WAIT狀態(tài),而所啟動(dòng)的程序的socket2要占用該地址和端口時(shí),就要用到該選項(xiàng)。(2)SO_REUSEADDR允許在同一個(gè)端口上啟動(dòng)同一服務(wù)器的多個(gè)實(shí)例(多個(gè)進(jìn)程)。但每個(gè)實(shí)例綁定的IP地址是不能相同的。在有多塊網(wǎng)卡或用IP Alias技術(shù)的機(jī)器可能出現(xiàn)這種情況。(3)SO_REUSEADDR允許單個(gè)進(jìn)程綁定相同的端口到多個(gè)套接字上,但每個(gè)套接字綁定的IP地址不同。這和(2)相似。(4)SO_REUSEADDR允許完全相同的地址和端口重復(fù)綁定。但這只用于UDP的多播,不能用于TCP。習(xí)題2:該題主要考查對(duì)套接字選項(xiàng)SO_DONTROUTE的理解程度。SO_DONTROUTE選項(xiàng)規(guī)定發(fā)出的報(bào)文將旁路底層協(xié)議的正常路由機(jī)制。也就是,SO_DONTROUTE選項(xiàng)將導(dǎo)致報(bào)文不經(jīng)由網(wǎng)關(guān)(繞過路由表)發(fā)送,而是發(fā)往直接相連的主機(jī)。該選項(xiàng)經(jīng)常由路由守護(hù)進(jìn)程(routed和gated)來(lái)旁路路由表(路由表不正確的情況下),強(qiáng)制一個(gè)報(bào)文從某個(gè)特定接口發(fā)出。習(xí)題3:該題主要考查對(duì)套接字?jǐn)?shù)據(jù)傳輸?shù)睦斫獬潭?。在不讀出數(shù)據(jù)的情況下,有三種方法知道一個(gè)套接字接收隊(duì)列中可讀的數(shù)據(jù):(1)如果在沒有數(shù)據(jù)可讀時(shí)還有其他事情要做,則可以使用非阻塞I/O。(2)如果想檢查一下數(shù)據(jù)而使數(shù)據(jù)仍留在接收隊(duì)列中,則可以使用MSG_PEEK標(biāo)志。如果想這樣做,但又不能肯定是否有數(shù)據(jù)可讀,則可以把這個(gè)標(biāo)志和非阻塞接口相結(jié)合,或與MSG_DONTWAIT標(biāo)志結(jié)合使用。(3)一些實(shí)現(xiàn)支持ioctl()函數(shù)的FIONREAD命令。ioctl()函數(shù)的第三個(gè)參數(shù)是一個(gè)指向整數(shù)的指針,在該整數(shù)中返回的值是套接字接收隊(duì)列中數(shù)據(jù)的字節(jié)數(shù)。習(xí)題4:該題考查對(duì)UDP工作原理的理解程度。在BSD環(huán)境下,當(dāng)一個(gè)到來(lái)的UDP數(shù)據(jù)報(bào)長(zhǎng)度大于應(yīng)用程序緩沖區(qū)時(shí),recvmsg設(shè)置MSG_TRUNC標(biāo)志,不同實(shí)現(xiàn)有不同的處理方式:(1)LINUX系統(tǒng)丟掉超出的字節(jié)并給應(yīng)用程序返回標(biāo)志;(2)Solaris系統(tǒng)丟掉超出的字節(jié)但不通知應(yīng)用程序;(3)UNIX SVR4保留超出的字節(jié)并在隨后這個(gè)套接字上的讀操作中返回這些數(shù)據(jù)。習(xí)題5:利用UDP套接字實(shí)現(xiàn)廣播通信的參考代碼如下:includeincludeincludeincludeincludesys/includenetinet/includesys/includesys/includesys/includeincludeinclude arpa/includedefine PORT 7773define MAXDATASIZE 256int main(int argc,char *argv[]){ int socket_fd。 struct sockaddr_in my_addr,user_addr。 char buf[MAXDATASIZE]。 int broadcast=1。 socklen_t size。 char my_ip[12]。 =AF_INET。 =htons(PORT)。 =inet_addr()。 bzero(amp。(),8)。 =AF_INET。 =htons(PORT)。 =htonl(INADDR_ANY)。 bzero(amp。(),8)。 if((socket_fd=(socket(AF_INET,SOCK_DGRAM,0)))==1) { perror(socket)。 exit(1)。 } setsockopt(socket_fd,SOL_SOCKET,SO_BROADCAST,amp。broadcast,sizeof(broadcast))。 if((bind(socket_fd,(struct sockaddr *)amp。user_addr,sizeof(struct sockaddr)))== 1) { perror(bind)。 exit(1)。 } strcpy(buf,Hello,I39。m on line!)。 sendto(socket_fd,buf,strlen(buf),0,(struct sockaddr)amp。my_addr,sizeof(my_addr))。 size=sizeof(user_addr)。 recvfrom(socket_fd,buf,MAXDATASIZE,0,(struct sockaddr *)amp。user_addr,amp。size)。 strcpy(my_ip,inet_ntoa())。 while(1) { bzero(buf, sizeof(buf))。 size=sizeof(user_addr)。 recvfrom(socket_fd,buf,MAXDATASIZE,0,(struct sockaddr *)amp。user_addr,amp。size)。 bzero(buf, sizeof(buf))。 if(strcmp(buf,I39。m off line,bye!)==0) { strcpy(buf,ok,I know,bye!)。 } else { strcpy(buf,send,Hello,I get you!)。 sleep(1)。 } if((sendto(socket_fd,buf,strlen(buf),0,(struct sockaddr*)amp。user_addr,sizeof(user_addr)))==1) { perror(sendto)。 } } return 0。}習(xí)題6:該題考查對(duì)UDP并發(fā)通信的理解程度。有兩種實(shí)現(xiàn)UDP服務(wù)器并發(fā)通信的方法。第一種是簡(jiǎn)單的UDP服務(wù)器,它讀入一個(gè)客戶請(qǐng)求,發(fā)送應(yīng)答,然后與這個(gè)客戶就無(wú)關(guān)了。對(duì)這種情況,服務(wù)器可以調(diào)用fork()函數(shù)的一個(gè)子進(jìn)程去處理請(qǐng)求,子進(jìn)程可以從內(nèi)存映像中獲得客戶地址,從而將處理結(jié)果返回給客戶。第二種是與客戶交換多個(gè)數(shù)據(jù)報(bào)的UDP服務(wù)器。問題是客戶只知道服務(wù)器的眾所周知的端口??蛻舭l(fā)送請(qǐng)求的第一個(gè)數(shù)據(jù)報(bào)到達(dá)這個(gè)端口,服務(wù)器又如何能區(qū)分這是那個(gè)客戶的后續(xù)數(shù)據(jù)報(bào)還是新請(qǐng)求呢?這種問題的典型解決方法是讓服務(wù)器給每個(gè)客戶創(chuàng)建一個(gè)新的套接字,綁定一個(gè)臨時(shí)端口到那個(gè)套接字,并且對(duì)該客戶的所有回答都使用這個(gè)套接口。同時(shí)要求客戶查看服務(wù)器第一個(gè)應(yīng)答中的端口號(hào),并且向那個(gè)端口發(fā)送請(qǐng)求的后續(xù)數(shù)據(jù)報(bào)。習(xí)題7:以原始套接字構(gòu)造偽造的IP數(shù)據(jù)報(bào)為例,參考步驟如下:第一步,創(chuàng)建socket。int sock_fd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)。第二步,調(diào)整IP_HDRINCL開關(guān)。int bs = 1。setsockopt(sock_fd, IPPROTO_IP, IP_HDRINCL, (char *)amp。bs, sizeof(bs))。第三步,綁定真實(shí)網(wǎng)口。該網(wǎng)口必須是本機(jī)存在的,可以使用INADDR_ANY。struct sockaddr_in my
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1