⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 node110.html

📁 相关搜索: ns2仿真结果分析 all-awk ns2 ns2 无限网络中awk文件 ... [2.tcl.rar] - 在ns2平台上实现对AODV协议的模拟
💻 HTML
字号:
<html><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><!--Converted with jLaTeX2HTML 2002 (1.62) JA patch-1.4patched version by:  Kenshi Muto, Debian Project.LaTeX2HTML 2002 (1.62),original version by:  Nikos Drakos, CBLU, University of Leeds* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan* with significant contributions from:  Jens Lippmann, Marek Rouchal, Martin Wilck and others --><HTML><HEAD><TITLE>10.5.3 Processing Input at Receiver</TITLE><META NAME="description" CONTENT="10.5.3 Processing Input at Receiver"><META NAME="keywords" CONTENT="everything"><META NAME="resource-type" CONTENT="document"><META NAME="distribution" CONTENT="global"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"><META NAME="Generator" CONTENT="jLaTeX2HTML v2002 JA patch-1.4"><META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"><LINK REL="STYLESHEET" HREF="everything.css" tppabs="http://www.isi.edu/nsnam/ns/doc/everything.css"><LINK REL="next" HREF="node111.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node111.html"><LINK REL="previous" HREF="node109.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node109.html"><LINK REL="up" HREF="node107.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node107.html"><LINK REL="next" HREF="node111.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node111.html"></HEAD><BODY ><!--Navigation Panel--><A NAME="tex2html2998"  HREF="node111.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node111.html"><IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="file:/usr/share/latex2html/icons/next.png"></A> <A NAME="tex2html2992"  HREF="node107.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node107.html"><IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="file:/usr/share/latex2html/icons/up.png"></A> <A NAME="tex2html2986"  HREF="node109.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node109.html"><IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="file:/usr/share/latex2html/icons/prev.png"></A> <A NAME="tex2html2994"  HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html"><IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="file:/usr/share/latex2html/icons/contents.png"></A> <A NAME="tex2html2996"  HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html"><IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="file:/usr/share/latex2html/icons/index.png"></A> <BR><B> Next:</B> <A NAME="tex2html2999"  HREF="node111.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node111.html">10.5.4 Processing Responses at</A><B> Up:</B> <A NAME="tex2html2993"  HREF="node107.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node107.html">10.5 Examples: Tcp, TCP</A><B> Previous:</B> <A NAME="tex2html2987"  HREF="node109.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node109.html">10.5.2 Starting the Agent</A> &nbsp <B>  <A NAME="tex2html2995"  HREF="node1.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node1.html">Contents</A></B>  &nbsp <B>  <A NAME="tex2html2997"  HREF="node590.html" tppabs="http://www.isi.edu/nsnam/ns/doc/node590.html">Index</A></B> <BR><BR><!--End of Navigation Panel--><H2><A NAME="SECTION03753000000000000000"></A><A NAME="sec:tcpsink"></A><BR>10.5.3 Processing Input at Receiver</H2><P>Many of the TCP agents can be used with theTCPSink../ns-2/tcp-sink.h as the peer.This class defines the []recv and []ack methods as follows:<PRE>        void TcpSink::recv(Packet* pkt, Handler*)        {                hdr_tcp *th = (hdr_tcp*)pkt-\&gt;access(off_tcp_);                acker_-\&gt;update(th-\&gt;seqno());                ack(pkt);                Packet::free(pkt);        }        void TcpSink::ack(Packet* opkt)        {                Packet* npkt = allocpkt();                        hdr_tcp *otcp = (hdr_tcp*)opkt-\&gt;access(off_tcp_);                hdr_tcp *ntcp = (hdr_tcp*)npkt-\&gt;access(off_tcp_);                ntcp-\&gt;seqno() = acker_-\&gt;Seqno();                ntcp-\&gt;ts() = otcp-\&gt;ts();                        hdr_ip* oip = (hdr_ip*)opkt-\&gt;access(off_ip_);                hdr_ip* nip = (hdr_ip*)npkt-\&gt;access(off_ip_);                nip-\&gt;flowid() = oip-\&gt;flowid();                        hdr_flags* of = (hdr_flags*)opkt-\&gt;access(off_flags_);                hdr_flags* nf = (hdr_flags*)npkt-\&gt;access(off_flags_);                nf-\&gt;ecn_ = of-\&gt;ecn_;                        acker_-\&gt;append_ack((hdr_cmn*)npkt-\&gt;access(off_cmn_),                                   ntcp, otcp-\&gt;seqno());                send(npkt, 0);        }</PRE>The []recv method overrides the []Agent::recv method(which merely discards the received packet).It updates some internal state with the sequence number of thereceived packet (and therefore requires the <TT>off_tcp_</TT> variableto be properly initialized.It then generates an acknowledgment for the received packet.The []ack method makes liberal use of access to packet headerfields including separate accesses to the TCP header, IP header,Flags header, and common header.The call to []send invokes the []Connector::send method.<P><BR><HR><ADDRESS>2003-09-23</ADDRESS></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -