{"id":500,"date":"2008-02-15T02:23:51","date_gmt":"2008-02-15T02:23:51","guid":{"rendered":"http:\/\/pchero21.com\/?p=500"},"modified":"2008-02-15T02:23:51","modified_gmt":"2008-02-15T02:23:51","slug":"ns-tutorial-vii-ping-protocol-%ec%a0%9c%ec%9e%91%ec%8b%9c-%eb%ac%b8%ec%a0%9c%ec%a0%90","status":"publish","type":"post","link":"http:\/\/pchero21.com\/?p=500","title":{"rendered":"NS Tutorial VII &#8211; Ping protocol \uc81c\uc791\uc2dc \ubb38\uc81c\uc810"},"content":{"rendered":"<p>&nbsp;NS Tutorial VII. A new protocol for ns \uc139\uc158\uc744 \uadf8\ub300\ub85c \ub530\ub77c\ud558\uba74 \ubb38\uc81c\uc810\uc774 \ubc1c\uc0dd\ud55c\ub2e4.<\/p>\n<p>&nbsp;\uc544\ub9c8\ub3c4&#8230;Tutorial\uc744 \uc4f4 \uc2dc\uc810\uc774\ub791 \uc9c0\uae08\uc758 ns2 \ubc84\uc804\uc774\ub791 \ub9de\uc9c0 \uc54a\uc544\uc11c \uc0dd\uae30\ub294 \ubb38\uc81c\uc778 \uac83 \uac19\ub2e4.<\/p>\n<p>&nbsp;ping.cc \uc640 ping.h \uc744 \ub098\ub984\ub300\ub85c \ubc14\uafd4\ubcf4\uc558\ub2e4.<\/p>\n<p>&nbsp;\uc774\ub984\ub9cc \ubc14\uafb8\uc5c8\uace0 \ub098\uba38\uc9c0 \ubd80\ubd84\uc740 \ubaa8\ub450 ping.cc, ping.h\uc640 \ub3d9\uc77c\ud558\ub2e4.<\/p>\n<p>&nbsp;\uc8fc\uc758\ud574\uc11c \ubcfc \ubd80\ubd80\uc740 <\/p>\n<blockquote style=\"font-weight: bold;\"><p>hdr_ip* hdrip = hdr_ip::access(pkt);<\/p>\n<p>hdr_pong* hdr = hdr_pong::access(pkt);<\/p><\/blockquote>\n<p>\ubd80\ubd84\uc774\ub2e4. <\/p>\n<fieldset class=\"geshi r2 g_hascaption\">\n<legend><span class=\"g_caption\">pong.h<\/span> <span class=\"g_lang\" style=\"color: rgb(170, 170, 170);\">(Language : c)<\/span><\/legend>\n<ol class=\"code\">\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#ifndef ns_pong_h<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#define ns_pong_h<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#include &#8220;agent.h&#8221;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#include &#8220;tclcl.h&#8221;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#include &#8220;packet.h&#8221;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#include &#8220;address.h&#8221;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#include &#8220;ip.h&#8221;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ pong header\uc758 \uad6c\uc870\ub97c \uc120\uc5b8<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ ret : \ubcf4\ub0b4\ub294 \uac83(0)\uc778\uc9c0 \ubc1b\ub294 \uac83(1)\uc778\uc9c0\ub97c \uad6c\ubd84\ud558\uae30 \uc704\ud55c \uc6a9\ub3c4\ub85c \uc0ac\uc6a9\ub428.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ send_time : round-trip-time\uc744 \uad6c\ud558\uae30 \uc704\ud55c \uc6a9\ub3c4\ub85c \uc0ac\uc6a9\ub428.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw4\">struct<\/span> hdr_pong <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw4\">char<\/span> ret;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw4\">double<\/span> send_time;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ Header acces methods<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw4\">static<\/span> <span class=\"kw4\">int<\/span> offset_; <span class=\"co1\">\/\/ required by PacketHeaderManager<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ inline \ud568\uc218\ub294 \ucc98\ub9ac \uc624\ubc84\ud5e4\ub4dc\ub97c \uac70\uc758 \uc5c6\uc560\ub294 \ubc29\ubc95\uc73c\ub85c \uc0ac\uc6a9\ub428.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ compile\ub41c size\ub294 \ucee4\uc9c0\uc9c0\ub9cc \uc131\ub2a5\uc774 \ub192\uc544\uc9d0. \ub530\ub77c\uc11c \uac04\ub2e8\ud55c \ud568\uc218\ub294 inline\uc73c\ub85c \uc815\uc758\ud558\ub294 \uac83\uc774 \ud6a8\uc728\uc801\uc784<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw2\">inline<\/span> <span class=\"kw4\">static<\/span> int&amp; offset<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span> <span class=\"kw1\">return<\/span> offset_; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw2\">inline<\/span> <span class=\"kw4\">static<\/span> hdr_pong* access<span class=\"br0\">(<\/span><span class=\"kw4\">const<\/span> Packet* p<span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"br0\">(<\/span>hdr_pong*<span class=\"br0\">)<\/span>p-&gt;access<span class=\"br0\">(<\/span>offset_<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ Agent\ub97c \uc0c1\uc18d\ubc1b\uc544 PongAgent \uc0dd\uc131\uc790\uc640 \uc0ac\uc6a9\ub420 \uba54\uc18c\ub4dc\ub97c \uc120\uc5b8<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ PongAgnet() : \uc0dd\uc131\uc790<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ command() : sned\uc77c \ub54c \uc0ac\uc6a9\ub418\ub294 \uba54\uc18c\ub4dc<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ recv() : receive\uc77c \ub54c \uc0ac\uc6a9\ub418\ub294 \uba54\uc18c\ub4dc, \uc774\uac83\uc740 \uc790\ub3d9\uc73c\ub85c \ud638\ucd9c\ub428<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ off_pong_ : pong header\uc758 offset\uc744 \ub098\ud0c0\ub0b4\uae30 \uc704\ud574 \uc0ac\uc6a9\ub428.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">class PongAgent : public Agent <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">public:<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; PongAgent<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw4\">int<\/span> command<span class=\"br0\">(<\/span><span class=\"kw4\">int<\/span> argc, <span class=\"kw4\">const<\/span> <span class=\"kw4\">char<\/span>*<span class=\"kw4\">const<\/span>* argv<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw4\">void<\/span> recv<span class=\"br0\">(<\/span>Packet*, Handler*<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#endif<\/span><\/div>\n<\/li>\n<\/ol>\n<\/fieldset>\n<p><\/p>\n<fieldset class=\"geshi r2 g_hascaption\">\n<legend><span class=\"g_caption\">pong.cc<\/span> <span class=\"g_lang\" style=\"color: rgb(170, 170, 170);\">(Language : c)<\/span><\/legend>\n<ol class=\"code\">\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co2\">#include &#8220;pong.h&#8221;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw4\">int<\/span> hdr_pong::<span class=\"me2\">offset_<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ PacketHeaderClass\ub97c \uc0c1\uc18d\ubc1b\uc544 PongHeaderClass\ub97c \uc120\uc5b8<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ \uc774\ubbf8 \ub9ce\uc740 protocol header\ub4e4\uc774 PacketHeaderClass\ub97c \uc0c1\uc18d\ubc1b\uc544 \uc815\uc758\ub418\uc5b4 \uc788\ub2e4.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ \ub3d9\uc77c\ud55c \ubc29\ubc95\uc73c\ub85c PacketHeader \uc544\ub798\uc5d0 Pong header\ub97c \ub454\ub2e4.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ pong.h \uc5d0\uc11c \uc815\uc758\ud55c hdr_pong\uc758 offset\ub97c \uc5f0\uacb0\ud55c\ub2e4.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw4\">static<\/span> class PongHeaderClass : public PacketHeaderClass <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">public:<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; PongHeaderClass<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span> : PacketHeaderClass<span class=\"br0\">(<\/span><span class=\"st0\">&#8220;PacketHeader\/Pong&#8221;<\/span>, <span class=\"kw4\">sizeof<\/span><span class=\"br0\">(<\/span>hdr_pong<span class=\"br0\">)<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; bind_offset<span class=\"br0\">(<\/span>&amp;hdr_pong::<span class=\"me2\">offset_<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span> class_ponghdr;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ TclClass\ub97c \uc0c1\uc18d\ubc1b\uc544 PongClass\ub97c \uc120\uc5b8<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ Agent \ud558\uc704\uc5d0 Pong\uc744 \ub450\uae30 \uc704\ud574 &#8220;Agent\/Pong&#8221;\uc744 \uc9c0\uc815<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ \uc774 \ubd80\ubd84\uc740 tcl \ud30c\uc77c\uc744 \uc791\uc131\ud560 \ub54c &#8220;set p0 [new Agent\/Pong]&#8221;\uc640 \uac19\uc774 \uc0ac\uc6a9\ub428<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ PongAgent\ub97c TclObject\ub85c \uc0dd\uc131\ud558\uc5ec \ubc18\ud658<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw4\">static<\/span> class PongClass : public TclClass <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">public:<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; PongClass<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span> : TclClass<span class=\"br0\">(<\/span><span class=\"st0\">&#8220;Agent\/Pong&#8221;<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span> <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; TclObject* create<span class=\"br0\">(<\/span><span class=\"kw4\">int<\/span>, <span class=\"kw4\">const<\/span> <span class=\"kw4\">char<\/span>*<span class=\"kw4\">const<\/span>*<span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"br0\">(<\/span>new PongAgent<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span> class_pong;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ PongAgent\uc758 \uc0dd\uc131\uc790\ub97c \uad6c\uccb4\uc801\uc73c\ub85c \uc815\uc758\ud558\ub294 \ubd80\ubd84<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ \uc0dd\uc131\uc790\uc5d0\uc11c\ub294 C++\uacfc Tcl\uc744 \ubc14\uc778\ub4dc\ud558\ub3c4\ub85d \ud568.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">PongAgent::<span class=\"me2\">PongAgent<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span> : Agent<span class=\"br0\">(<\/span>PT_PONG<span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; bind<span class=\"br0\">(<\/span><span class=\"st0\">&#8220;packetSize_&#8221;<\/span>, &amp;size_<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ PongAgent\uc758 command \uba54\uc18c\ub4dc\ub97c \uc815\uc758<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ \uad81\uadf9\uc801\uc73c\ub85c \uc774 \ubd80\ubd84\uc740 pong packet\uc744 send\ud558\ub294 \ubd80\ubd84\uc774\ub2e4.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ Packet\uc744 \uc0dd\uc131\ud558\uace0, pong header\uc758 \uc2dc\uc791\uc9c0\uc810\uc73c\ub85c \uc774\ub3d9\ud558\uc5ec,<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ ret\ub97c 0\uc73c\ub85c \uc124\uc815\ud558\uace0, \uc2dc\uac04\uc744 \uc124\uc815\ud55c \ub2e4\uc74c, Packet\uc744 \uc804\uc1a1\ud55c\ub2e4.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw4\">int<\/span> PongAgent::<span class=\"me2\">command<\/span><span class=\"br0\">(<\/span><span class=\"kw4\">int<\/span> argc, <span class=\"kw4\">const<\/span> <span class=\"kw4\">char<\/span>*<span class=\"kw4\">const<\/span>* argv<span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">(<\/span>argc == <span class=\"nu0\">2<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">(<\/span>strcmp<span class=\"br0\">(<\/span>argv<span class=\"br0\">[<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">]<\/span>, <span class=\"st0\">&#8220;send&#8221;<\/span><span class=\"br0\">)<\/span> == <span class=\"nu0\">0<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ \uc0c8\ub85c\uc6b4 packet\uc744 \uc900\ube44<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Creaqte a new packet<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Packet* pkt = allocpkt<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc758 pong header \uc2dc\uc791 \uc9c0\uc810\uc73c\ub85c \uc774\ub3d9<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Access the Pong header for the new packet<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hdr_pong* hdr = hdr_pong::<span class=\"me2\">access<\/span><span class=\"br0\">(<\/span>pkt<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ pong header\uc758 ret\ub97c 0\uc73c\ub85c \uc124\uc815<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Set the &#8216;ret&#8217; field to 0, so the receiving node<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ knows that it to generate an echo packet<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hdr-&gt;ret = <span class=\"nu0\">0<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ pong header\uc758 send time\uc744 \ud604\uc7ac\uc758 \uc2dc\uac04\uc73c\ub85c \uc124\uc815<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Store the current time in the &#8216;send_time&#8217; field<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hdr-&gt;send_time = Scheduler::<span class=\"me2\">instance<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>.<span class=\"me1\">clock<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ \ub9cc\ub4e4\uc5b4\uc9c4 packet\uc744 \uc804\uc1a1<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Send the packet<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; send<span class=\"br0\">(<\/span>pkt, <span class=\"nu0\">0<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Return TCL_OK, so the calling function knows that<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ the command has been procoessed<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"br0\">(<\/span>TCL_OK<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ If the command hasn&#8217;t been proceesed by PongAgent()::command,<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ call the command() function for the base class<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"br0\">(<\/span>Agent::<span class=\"me2\">command<\/span><span class=\"br0\">(<\/span>argc, argv<span class=\"br0\">)<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ PongAgent\uc758 recv() \uba54\uc18c\ub4dc\ub97c \uc815\uc758<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ Pong Packet\uc744 \uc218\uc2e0\ud558\uc600\uc744 \ub54c \uc218\ud589\ud558\ub294 \ubd80\ubd84\uc744 \uc815\uc758<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw4\">void<\/span> PongAgent::<span class=\"me2\">recv<\/span><span class=\"br0\">(<\/span>Packet* pkt, Handler*<span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ ip header\uc758 \uc2dc\uc791 \uc9c0\uc810\uc73c\ub85c \uc774\ub3d9<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ Access the IP header for the received packet<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; hdr_ip* hdrip = hdr_ip::<span class=\"me2\">access<\/span><span class=\"br0\">(<\/span>pkt<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ pong header\uc758 \uc2dc\uc791 \uc9c0\uc810\uc73c\ub85c \uc774\ub3d9<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ Access the pong header for the received packet<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; hdr_pong* hdr = hdr_pong::<span class=\"me2\">access<\/span><span class=\"br0\">(<\/span>pkt<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"co1\">\/\/ ret = 0 \uc774\uba74, \uc989 \ucc98\uc74c \uc218\uc2e0\ud55c packet\uc77c \ub54c \ucc98\ub9ac\ud558\ub294 \ubd80\ubd84<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">(<\/span>hdr-&gt;ret == <span class=\"nu0\">0<\/span><span class=\"br0\">)<\/span> <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc5d0 \uc788\ub294 \uc2dc\uac04\uc744 stime\uc5d0 \ud560\ub2f9<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw4\">double<\/span> stime = hdr-&gt;send_time;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc744 \ud3d0\uae30<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; Packet::<span class=\"me2\">free<\/span><span class=\"br0\">(<\/span>pkt<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ \uc751\ub2f5\uc744 \uc704\ud55c packet\uc744 \uc0dd\uc131<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; Packet* pktret = allocpkt<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc758 pong header \uc2dc\uc791\uc9c0\uc810\uc73c\ub85c \uc774\ub3d9<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; hdr_pong* hdrret = hdr_pong::<span class=\"me2\">access<\/span><span class=\"br0\">(<\/span>pktret<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc758 ret\ub97c 1\ub85c \uc124\uc815<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; hdrret-&gt;ret = <span class=\"nu0\">1<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc758 send_time\uc5d0 packet\uc744 \uc218\uc2e0\ud55c \uc2dc\uac04\uc744 \uc124\uc815<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; hdrret-&gt;send_time = stime;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc744 \uc804\uc1a1<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; send<span class=\"br0\">(<\/span>pktret, <span class=\"nu0\">0<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"br0\">}<\/span> <span class=\"kw1\">else<\/span> <span class=\"br0\">{<\/span>&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ ret = 1 \uc774\uba74, \uc989 \ubcf4\ub0b8 packet\uc774 \ub2e4\uc2dc \ub418\ub3cc\uc544\uc654\uc744 \ub54c \ucc98\ub9ac\ud558\ub294 \ubd80\ubd84<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ \ucd9c\ub825\uc744 \uc704\ud55c \ubcc0\uc218 out\uc744 \uc120\uc5b8<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw4\">char<\/span> out<span class=\"br0\">[<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">]<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ out \ubcc0\uc218\uc5d0 \ub0b4\uc6a9\uc744 \uae30\ub85d<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ &#8220;\uc774\ub984(Agent\/Pong) recv from(Source address) rtt(round-trip-time)&#8221;\uc758 \ud615\ud0dc\ub97c \uac16\ucd94\uc5b4 \uae30\ub85d<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; sprintf<span class=\"br0\">(<\/span>out, <span class=\"st0\">&#8220;%s recv %d %3.1f&#8221;<\/span>,<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ %s\uc5d0 \ud574\ub2f9\ud558\ub294 \ubd80\ubd84(\ub178\ub4dc \uc774\ub984)<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; name<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>,<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ %d\uc5d0 \ud574\ub2f9\ud558\ub294 \ubd80\ubd84(\ub178\ub4dc \uc8fc\uc18c)<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; hdrip-&gt;src_.<span class=\"me1\">addr_<\/span> &gt;&gt; Address::<span class=\"me2\">instance<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>.<span class=\"me1\">NodeShift_<\/span><span class=\"br0\">[<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">]<\/span>,<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ %3.1f\uc5d0 \ud574\ub2f9\ud558\ub294 \ubd80\ubd84(\uc751\ub2f5\uc2dc\uac04)<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ (\ud604\uc7ac\uc2dc\uac04 &#8211; send_time * 1000) &#8211;&gt; round-trip-time<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">(<\/span>Scheduler::<span class=\"me2\">instance<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>.<span class=\"me1\">clock<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span> &#8211; hdr-&gt;send_time<span class=\"br0\">)<\/span> * <span class=\"nu0\">1000<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ tcl instance\ub97c \uc0dd\uc131<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; Tcl&amp; tcl =Tcl::<span class=\"me2\">instance<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ tcl instance\ub85c out\uc744 \ubc18\ud658<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; tcl.<span class=\"me1\">eval<\/span><span class=\"br0\">(<\/span>out<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ packet\uc744 \ud3d0\uae30<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; Packet::<span class=\"me2\">free<\/span><span class=\"br0\">(<\/span>pkt<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span><\/div>\n<\/li>\n<\/ol>\n<\/fieldset>\n<p>&nbsp;\uadf8\ub9ac\uace0 VII.3 Necessary changes \uc758<\/p>\n<blockquote style=\"font-weight: bold;\"><p>{ SRMEXT off_srm_ext_ }<br \/>{ Ping off_ping_ }} {<br \/>set cl PacketHeader\/[lindex $pair 9]<\/p><\/blockquote>\n<p>&nbsp;\ubd80\ubd84\uc740 \uc548\ud574\uc918\ub3c4 \ub41c\ub2e4.<\/p>\n<p>&nbsp;\ud574\ub2f9 \uc18c\uc2a4\ub97c \ucc3e\uc544\ubcf4\uba74 &#8216;tcl\/lib\/ns-packet.tcl&#8217; \ud30c\uc77c\uc744 \ucc3e\uc544\ubcf4\uba74<\/p>\n<blockquote><p><span style=\"font-weight: bold;\"># XXX Old code. Do NOT delete for now. &#8211; Aug 30, 2000<\/span><\/p><\/blockquote>\n<p>\ub77c\uace0 \uc801\ud600\uc788\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\ub2e4.<\/p>\n<p>&nbsp;\uc989, \uac74\ub4dc\ub9ac\uc9c0 \uc54a\ub294 \uac83\uc774 \uc88b\ub2e4. : )<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;NS Tutorial VII. A new protocol for ns \uc139\uc158\uc744 \uadf8\ub300\ub85c \ub530\ub77c\ud558\uba74 \ubb38\uc81c\uc810\uc774 \ubc1c\uc0dd\ud55c\ub2e4. &nbsp;\uc544\ub9c8\ub3c4&#8230;Tutorial\uc744 \uc4f4 \uc2dc\uc810\uc774\ub791 \uc9c0\uae08\uc758 ns2 \ubc84\uc804\uc774\ub791 \ub9de\uc9c0 \uc54a\uc544\uc11c \uc0dd\uae30\ub294 \ubb38\uc81c\uc778 \uac83 \uac19\ub2e4. &nbsp;ping.cc \uc640 ping.h \uc744 \ub098\ub984\ub300\ub85c \ubc14\uafd4\ubcf4\uc558\ub2e4. &nbsp;\uc774\ub984\ub9cc \ubc14\uafb8\uc5c8\uace0 \ub098\uba38\uc9c0 \ubd80\ubd84\uc740 \ubaa8\ub450 ping.cc, ping.h\uc640 \ub3d9\uc77c\ud558\ub2e4. &nbsp;\uc8fc\uc758\ud574\uc11c &hellip; <a href=\"http:\/\/pchero21.com\/?p=500\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[30],"tags":[285,286,294],"_links":{"self":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts\/500"}],"collection":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=500"}],"version-history":[{"count":0,"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts\/500\/revisions"}],"wp:attachment":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=500"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}