然后是发送一个数据报片函数-用TCP/IP进行网际互连

时间:2024-05-13 19:41:10
【文件属性】:

文件名称:然后是发送一个数据报片函数-用TCP/IP进行网际互连

文件大小:220KB

文件格式:PPT

更新时间:2024-05-13 19:41:10

课后习题答案

然后是发送一个数据报片函数: Int ipfsend(struct netif *pni, IPaddr nexthop, struct ep *pep, unsigned offset, unsigned maxdlen, unsigned offindg) { struct ep *pepnew; struct ip *pip, *pipnew; int hlen, len; pepnew = (struct ep *)getbuf(Net.netpool); //分配新缓冲区 if (pepnew == (struct ep *)SYSERR) return SYSERR; pepnew->ep_order = ~0; hlen = ipfhcopy(pepnew, pep, offindg); /* copy the headers */ pip = (struct ip *)pep->ep_data //复制数据; pipnew = (struct ip *)pepnew->ep_data; //分配数据格式 pipnew->ip_fragoff = IP_MF | (offindg>>3); pipnew->ip_len = len = maxdlen + hlen; //确定首部长 pipnew->ip_cksum = 0; iph2net(pipnew); pepnew->ep_order &= ~EPO_IP; pipnew->ip_cksum = cksum((WORD *)pipnew, hlen); memcpy(&pepnew->ep_data[hlen],&pep->ep_data[IP_HLEN(pip)+offset], maxdlen); //复制数据 pepnew->ep_nexthop = nexthop; return netwrite(pni, pepnew, EP_HLEN+len); } 该函数其实和iputp类似。不多说了 然后是复制数据报首部函数


网友评论