{"id":2007,"date":"2007-09-02T23:32:36","date_gmt":"2007-09-02T14:32:36","guid":{"rendered":"http:\/\/pchero21.com\/?p=2007"},"modified":"2007-09-02T23:32:36","modified_gmt":"2007-09-02T14:32:36","slug":"implementing-a-new-manet-unicast-routing-protocol-in-ns2-version-0-2-%eb%b2%88%ec%97%ad%ed%8c%90","status":"publish","type":"post","link":"http:\/\/pchero21.com\/?p=2007","title":{"rendered":"Implementing a New Manet Unicast Routing Protocol in NS2 Version 0.2 \ubc88\uc5ed\ud310"},"content":{"rendered":"<p>Implementing a New Manet Unicast Routing Protocol in NS2 \ubc88\uc5ed\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc218\uc815\ud560 \ub0b4\uc6a9\uc774 \uc788\uc73c\uba74 \ubc14\ub85c \uc54c\ub824\uc8fc\uc138\uc694.<\/p>\n<p>NS2\uc5d0\uc11c \uc0c8\ub85c\uc6b4 Manet \uc720\ub2c8\uce90\uc2a4\ud2b8 \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \uad6c\ud604\ud558\uae30<\/p>\n<p><strong>1 \uc18c\uac1c<\/strong><\/p>\n<p>\uc791\ub144 \ub3d9\uc548\uc5d0, \uc6b0\ub9ac\ub294 ns-\uc720\uc800\ub4e4 \uba54\uc77c\ub9c1 \ub9ac\uc2a4\ud2b8\uc5d0\uc11c \uac19\uc740 \uc9c8\ubb38\uc744 \uc694\uad6c\ud558\ub294 \ub9ce\uc740 \uc0ac\ub78c\ub4e4\uc744 \ubaa9\uaca9\ud574\uc654\ub2e4. \ub0b4\uac00 NS2\uc5d0 \uc801\ud569\ud55c \ub0b4 \uc18c\uc720\uc758 \ud504\ub85c\ud1a0\ucf5c\uc744 \uc5b4\ub5bb\uac8c \uac1c\ubc1c\ud558\ub294\uac00? \uc774 \ubb38\uc11c\ub97c \uc791\uc131\ud568\uc73c\ub85c\uc368 \uc6b0\ub9ac\ub294 NS-2.27\uc5d0 \uc801\ud569\ud55c manet \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c \ub354\ud560 \ud544\uc694\uac00 \uc788\ub294 \uadf8\ub7f0 \uc5f0\uad6c\uc790\ub4e4\uc744 \ub3d5\uae30\ub97c \ud76c\ub9dd\ud55c\ub2e4. \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 \ubb38\uc11c\ub97c \uc720\ub2c8\uce90\uc2a4\ud2b8 \ud504\ub85c\ud1a0\ucf5c\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd98\ub2e4. \uadf8 \ubb38\uc11c\ub294 ns-2\uc5d0\uc11c \uc2dc\ubbac\ub808\uc774\uc158\ub4e4\uc744 \uc218\ud589\ud558\ub294 \uac83\uc5d0 \uadf8\ub7ed\uc800\ub7ed \uc798 \uc544\ub294 \uadf8\ub7f0 \uc0ac\ub78c\ub4e4\uc744 \ubaa9\ud45c\ub85c \ud558\uace0, \uadf8\ub4e4\uc740 \uadf8\ub4e4 \uc18c\uc720\uc758 \ud504\ub85c\ud1a0\ucf5c\ub4e4\uc744 \uad6c\ud604\ud558\uae30 \uc704\ud574\uc11c \ud55c \ub2e8\uacc4 \uc55e\uc73c\ub85c \uac00\uae30\ub97c \uc6d0\ud55c\ub2e4. \uc774 \ubb38\uc7a5\uc5d0\uc11c \uc6b0\ub9ac\uac00 \uae30\uc220\ud55c \ubaa8\ub4e0 \uac83\uc740 NS2\uc758 2.27 \ubc84\uc804\uacfc \uad00\ub828\uc774 \uc788\uc9c0\ub9cc, \uadf8\uac83\uc740 \ub2e4\ub978 \ubc84\uc804\ub4e4\uc5d0\uc11c\ub3c4 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uc720\uc6a9\ud560 \uac83\uc774\ub2e4.<\/p>\n<p>\uc6b0\ub9ac\ub294 \ub3c5\uc790\uac00 NS2 \uae30\ubcf8\ub4e4\uc744 \uc798 \uc548\ub2e4\uace0 \uac00\uc815\ud55c\ub2e4. \uadf8\uac83\uc740 \u201cMarc Greis\u2019 Tutorial\u201d [1]\uc744 \uc77d\uc5c8\uace0 \uc801\uc5b4\ub3c4 \ub300\ubd80\ubd84 \uc774\ud574\ud588\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud55c\ub2e4. \ub9cc\uc57d \ub124\uac00 \u201cThe ns Manual\u201d [2], \ud2b9\ud788 3-5, 10-12, 15-16, 23, 25 \uadf8\ub9ac\uace0 29\uc7a5\uc744 \ub610\ud55c \ud6d1\uc5b4\ubcf8\ub2e4\uba74 \ub9e4\uc6b0 \uc720\uc6a9\ud560 \uac83\uc774\ub2e4. \uc6b0\ub9ac\ub294 \uc774\ub7f0 \ubb38\uc7a5 \ucc98\uc74c\ubd80\ud130 \ub05d\uae4c\uc9c0 \uc5ec\ub7ec \ubc88 \uadf8\uac83\ub4e4\uc744 \uc5b8\uae09\ud560 \uac83\uc774\uace0 \ub124\uac00 \uadf8\uac83\ub4e4\uc744 \uc77d\ub3c4\ub85d \uaca9\ub824\ud560 \uac83\uc774\ub2e4. \ub108\uc758 \uc18c\uc720\uc758 \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \ucf54\ub529\ud558\uae30 \uc804\uc5d0, \ub108\ub294 \ub2e4\ub978 \uad6c\ud604\ub41c \ud504\ub85c\ud1a0\ucf5c\ub4e4\ub85c \uc2dc\ubbac\ub808\uc774\uc158\ub4e4\uc744 \uc5b4\ub5bb\uac8c \uc218\ud589\ud558\ub294 \uc9c0 \uc54c\uc544\uc57c \ud558\uace0 \ub108\ub294 \uc2dc\ubbac\ub808\uc774\ud130\ub97c \uc798 \uc54c\uace0 \ud3b8\uc548\ud558\uac8c \ub290\ub084 \uac83\uc73c\ub85c \uc608\uc0c1\ub41c\ub2e4. \uc774\uac83\uc740 \uc774 \ubb38\uc11c\ub97c \uc77d\ub294 \ub3d9\uc548\uc5d0 \ub9ce\uc740 \uc624\ud574\ub4e4\uacfc \uc758\uc2ec\ub4e4\uc744 \ud53c\ud560 \uac83\uc774\ub2e4.<\/p>\n<p>\uac8c\ub2e4\uac00 \uc774 tutorial\uc740 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0 \uad00\ud55c \uac83\uc774\ub2e4. \ub108\ub294 C++\uacfc (\uc870\uae08) Tcl \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0 \ub300\ud55c \uc9c0\uc2dd\uc774 \ud544\uc694\ud558\ub2e4. \ub9cc\uc57d \ub124\uac00 \uc774\ub7f0 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub4e4\uc744 \ucda9\ubd84\ud788 \uacbd\ud5d8\ub418\uc9c0 \uc54a\uc558\ub2e4\uba74, \ub108\ub294 \uc778\ud130\ub137\uc5d0\uc11c \uc790\uc720\ub85c\uc774 \uc774\uc6a9 \uac00\ub2a5\ud55c \uadf8\uac83\ub4e4\uc5d0 \uad00\ud55c \uc784\uc758\uc758 \ud6cc\ub96d\ud55c \uc790\uc6d0\ub4e4\uc744 \uccab\uc9f8\ub85c \uc77d\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n<p><strong>2 \uc2dc\uc791\ud558\uba74\uc11c<\/strong><\/p>\n<p>\uc6b0\ub9ac\ub294 protoname\uc73c\ub85c \ubd88\ub9ac\ub294 \uc0c8\ub85c\uc6b4 manet \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \ub2e8\uacc4\ubcc4\ub85c \uad6c\ud604\ud560 \uc608\uc815\uc774\ub2e4. \uc774 \ud504\ub85c\ud1a0\ucf5c\uc740 \uc720\uc6a9\ud558\uc9c0 \uc54a\uc9c0\ub9cc, \ub2e4\ub978 \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\ub4e4\uacfc \ud568\uaed8 \uba87 \uac1c\uc758 \uacf5\ud1b5\uc810\ub4e4\uc744 \uac00\uc9c0\uae30\uc5d4 \ucda9\ubd84\ud788 \uc77c\ubc18\uc801\uc774\ub2e4. \ub108\ub3c4 \uc54c \uac83\uc774\uae30 \ub54c\ubb38\uc5d0 (\ub9cc\uc57d \uc544\ub2c8\ub77c\uba74, \uc6b0\ub9ac\uac00 \ub9d0\ud588\ub358 \uac83\uc744 \uccab\uc9f8\ub85c \uc77d\uc5b4\ub77c!) \uc6b0\ub9ac\ub294 C++\ub97c \uc0ac\uc6a9\ud574\uc11c \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \uad6c\ud604\ud560 \uc608\uc815\uc774\uace0 \uadf8\ub9ac\uace0 \ub098\uc11c \uc6b0\ub9ac\ub294 Tcl \uc2a4\ud2b8\ub9bd\ud2b8\ub4e4\ub85c \uc2dc\ub098\ub9ac\uc624\ub4e4\uc744 \uae30\uc220\ud558\ub294 \uc2dc\ubbac\ub808\uc774\uc158\ub4e4\uc744 \ud560 \uac83\uc774\ub2e4.<\/p>\n<p>\uc6b0\ub9ac\uc758 \ucf54\ub4dc\ub97c \ud560\ub2f9\ud558\uae30 \uc704\ud574\uc11c \uc6b0\ub9ac\ub294 \ub108\uc758 NS2 \uae30\ubc18 \ub514\ub809\ud1a0\ub9ac \uc548\ucabd\uc5d0 <em>protoname<\/em>\uc73c\ub85c \ubd88\ub9ac\ub294 \uc0c8\ub85c\uc6b4 \ub514\ub809\ud1a0\ub9ac\ub97c \uccab\uc9f8\ub85c \uc0dd\uc131\ud560 \uac83\uc774\ub2e4. \uc6b0\ub9ac\ub294 \uac70\uae30\uc5d0 5 \uac1c\uc758 \ud30c\uc77c\ub4e4\uc744 \uc0dd\uc131\ud560 \uac83\uc774\ub2e4:<\/p>\n<p><strong>protoname.h<\/strong> \uc774\uac83\uc740 (\ub9cc\uc57d \uc788\ub2e4\uba74) \ubaa8\ub4e0 \ud544\uc694\ud55c \ud0c0\uc774\uba38\ub4e4\uc774 \uc815\uc758\ub420 \uac83\uc778 \ud5e4\ub354 \ud30c\uc77c\uc774\uace0 \ud504\ub85c\ud1a0\ucf5c\uc758 \uae30\ub2a5\uc131\uc744 \uc218\ud589\ud558\ub294 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uc774\ub2e4.<\/p>\n<p><strong>protoname.cc<\/strong> \uc774 \ud30c\uc77c \uc548\uc5d0\ub294 \ubaa8\ub4e0 \ud0c0\uc774\uba38\ub4e4, \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8 \uadf8\ub9ac\uace0 Tcl \ud6c4\ud06c\ub4e4\uc774 \uc2e4\uc81c\ub85c \uad6c\ud604\ub41c\ub2e4.<\/p>\n<p><strong>protoname_pkt.h<\/strong> \uc5ec\uae30\uc5d0\ub294 MANET\uc5d0\uc11c \ub178\ub4dc\ub4e4 \uc0ac\uc774\uc5d0 \uad50\ud658\ud560 \ud544\uc694\uac00 \uc788\ub294 \ubaa8\ub4e0 \ud328\ud0b7\ub4e4 <em>protoname<\/em> \ud504\ub85c\ud1a0\ucf5c\uc774 \uc120\uc5b8\ub41c\ub2e4.<\/p>\n<p><strong>protoname_rtable.h<\/strong> \uc6b0\ub9ac \uc18c\uc720\uc758 \ub77c\uc6b0\ud305 \ud45c\uac00 \uc120\uc5b8\ub418\ub294 \ud5e4\ub354 \ud30c\uc77c<\/p>\n<p><strong>protoname_rtable.cc<\/strong> \ub77c\uc6b0\ud305 \ud45c \uad6c\ud604<\/p>\n<p>\ub108\ub294 \uc6d0\ud558\ub294 \ub300\ub85c \ub108\uc758 \ucf54\ub4dc\ub97c \uc870\uc9c1\ud654\ud560 \uc218 \uc788\ub2e4. \uc989, \ub108\ub294 \uadf8\ub7f0 \uc774\ub984\ub4e4 \ub610\ub294 \ub2e4\ub978 \uac83\ub4e4\uacfc \ud568\uaed8 \ud30c\uc77c\ub4e4\uc744 \ub354 \ub610\ub294 \ub35c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4; \uadf8\uac83\uc740 \ub2e8\uc9c0 \ud78c\ud2b8\uc774\ub2e4. \uc6b0\ub9ac\uc758 \uc870\uc5b8\uc740 \uadf8\ub7f0 \ud30c\uc77c\ub4e4\uc744 \uc801\uc5b4\ub3c4 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\uace0 \uadf8\uac83\ub4e4\uc774 \ud544\uc694\ud55c \ub9cc\ud07c \ub354 \uc0dd\uc131\ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n<p>\uc774\uc81c \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 \u201c\ubb3c\ub9ac\uc801\uc778\u201d \uad6c\uc870 (\ud30c\uc77c\ub4e4)\ub97c \uac00\uc9c0\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0, \u201c\ub17c\ub9ac\uc801\uc778\u201d \uac83 (\ud074\ub798\uc2a4\ub4e4)\uc744 \uacc4\uc18d\ud558\uc790. NS2\uc5d0\uc11c \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \uad6c\ud604\ud558\uae30 \uc704\ud574\uc11c \ub108\ub294 <strong>\uc5d0\uc774\uc804\ud2b8<\/strong> \ud074\ub798\uc2a4\ub85c\ubd80\ud130 \ubb3c\ub824\ubc1b\uc74c\uc73c\ub85c\uc368 \uc5d0\uc774\uc804\ud2b8\ub97c \uc0dd\uc131\ud574\uc57c \ud55c\ub2e4. 10\uc7a5 [2]\uc758 \ub9e8 \ucc98\uc74c\uc5d0\uc11c \uc6b0\ub9ac\ub294 \u201c\uc5d0\uc774\uc804\ud2b8\ub4e4\uc740 \ub124\ud2b8\uc6cc\ud06c-\ub808\uc774\uc5b4 \ud328\ud0b7\ub4e4\uc774 \uad6c\uc131\ub418\uac70\ub098 \uc18c\ube44\ub418\ub294 \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub4e4\uc744 \uc758\ubbf8\ud558\uace0, \ub2e4\uc591\ud55c \ub808\uc774\uc5b4\ub4e4\uc5d0\uc11c \ud504\ub85c\ud1a0\ucf5c\ub4e4\uc758 \uad6c\ud604 \uc548\uc5d0 \uc0ac\uc6a9\ub41c\ub2e4\u201d\ub97c \uc77d\uc744 \uc218 \uc788\ub2e4. \ub124\uac00 \uc774\ud574\ud560 \uc218 \uc788\ub294 \ub300\ub85c, \uc774\uac83\uc740 \uc6b0\ub9ac\uac00 \uc6b0\ub9ac\uc758 \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \uad6c\ud604\ud558\uae30 \uc704\ud574\uc11c \ucf54\ub4dc\ub97c \ud574\uc57c\ud560 \uac83\uc778 \uc8fc\ub41c \ud074\ub798\uc2a4\uc774\ub2e4. \uac8c\ub2e4\uac00, \uc774 \ud074\ub798\uc2a4\ub294 Tcl \uc778\ud130\ud398\uc774\uc2a4\uc640 \uc5f0\uacc4\ub97c \uc81c\uacf5\ud558\uace0, \uadf8\ub798\uc11c \uc6b0\ub9ac\ub294 Tcl \uc548\uc5d0 \uc4f0\uc5ec\uc9c4 \uc2dc\ubbac\ub808\uc774\uc158 \uc2a4\ud06c\ub9bd\ud2b8\ub4e4\uc744 \ud1b5\ud574\uc11c \uc6b0\ub9ac\uc758 \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \uc81c\uc5b4\ud560 \uc218 \uc788\uc744 \uac83\uc774\ub2e4.<\/p>\n<p>\uc6b0\ub9ac\uc758 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\ub294 \ub0b4\ubd80\uc758 \uc0c1\ud0dc\uc640 (\ud56d\uc0c1 \ud544\uc694\ud558\uc9c0\ub294 \uc54a\ub294) \ub77c\uc6b0\ud305 \ud45c\ub97c \uc720\uc9c0\ud560 \uac83\uc774\ub2e4. \ub0b4\ubd80\uc758 \uc0c1\ud0dc\ub294 \uc0c8\ub85c\uc6b4 \ud074\ub798\uc2a4\ub85c\uc368 \ub610\ub294 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8 \uc548\ucabd\uc5d0 \uc18d\uc131\ub4e4\uc758 \uc9d1\ud569\uc73c\ub85c\uc368 \ub098\ud0c0\ub0bc \uc218 \uc788\ub2e4. \uc6b0\ub9ac\ub294 \uc0c8\ub85c\uc6b4 \ud074\ub798\uc2a4, <strong>protoname_rtable<\/strong>\ub85c\uc368 \ub77c\uc6b0\ud305 \ud45c\ub97c \ub2e4\ub8f0 \uc218 \uc788\uc744 \uac83\uc774\ub2e4.<\/p>\n<p>\ub610\ud55c \uc6b0\ub9ac\uc758 \uc0c8\ub85c\uc6b4 \ud504\ub85c\ud1a0\ucf5c\uc740 \uc790\uc2e0\uc758 \uc81c\uc5b4 \ud328\ud0b7\ub4e4\uc758 \ud615\uc2dd\uc744 \uc758\ubbf8\ud560 \uac83\uc778 \uc801\uc5b4\ub3c4 \ud558\ub098\uc758 \uc0c8\ub85c\uc6b4 \ud328\ud0b7 \uc720\ud615\uc744 \uc815\uc758\ud574\uc57c \ud55c\ub2e4. \uc6b0\ub9ac\uac00 \ub9d0\ud588\ub358 \ub300\ub85c \uc774\ub7f0 \ud328\ud0b7 \uc720\ud615\ub4e4\uc740 protoname\/protoname_pkt.h\uc5d0 \uc815\uc758\ub41c\ub2e4. \uadf8 \ud504\ub85c\ud1a0\ucf5c\uc774 \uc8fc\uae30\uc801\uc73c\ub85c \ub610\ub294 \uc774\ubca4\ud2b8\uc758 \ubc1c\uc0dd\uc73c\ub85c\ubd80\ud130 \uc57d\uac04\uc758 \uc2dc\uac04 \ud6c4\uc5d0 \ud328\ud0b7\ub4e4\uc744 \ubcf4\ub0bc \ud544\uc694\uac00 \uc788\uc744 \ub54c, <strong>\ud0c0\uc774\uba38<\/strong> \ud074\ub798\uc2a4\uc5d0 \uc758\uc9c0\ud558\ub294 \uac83\uc740 \ub9e4\uc6b0 \uc720\uc6a9\ud558\ub2e4. \uc6b0\ub9ac\ub294 \uaddc\uce59\uc801\uc778 \uac04\uaca9\ub4e4\uc5d0\uc11c \uc774\ub7f0 \ud328\ud0b7\ub4e4\uc744 \ubcf4\ub0b4\uae30 \uc704\ud574\uc11c \uc6b0\ub9ac \uc18c\uc720\uc758 \ud0c0\uc774\uba38\ub4e4\uc744 \ucf54\ub4dc\ud558\ub294 \uc608\ub97c \ubcf4\uc5ec\uc900\ub2e4. \ud0c0\uc774\uba38\ub4e4\uc740 \ub9ce\uc740 \ub2e4\ub978 \uacbd\uc6b0\ub4e4\uc5d0\uc11c\ub3c4 \ub610\ud55c \uc720\uc6a9\ud558\ub2e4. \uc815\ud574\uc9c4 \uc2dc\uac04\uc5d0\uc11c \uc9c0\uc6cc\uc838\uc57c \ud558\ub294 \ub0b4\ubd80 \uc815\ubcf4\uc758 \uba87 \uac00\uc9c0 \uc885\ub958\ub4e4\uc744 \uc800\uc7a5\ud560 \ud544\uc694\uac00 \uc788\ub294 protoname\uc744 \uc0c1\uc0c1\ud574\ub77c. \uac00\uc7a5 \uc88b\uc740 \ud574\uacb0\ucc45\uc740 \uadf8\ub7f0 \uc77c\uc744 \ud560 \uc218 \uc788\ub294 \ub9de\ucda4\uc758 \ud0c0\uc774\uba38\ub97c \uc0dd\uc131\ud558\ub294 \uac83\uc774\ub2e4. \ud0c0\uc774\uba38\ub294 \ub77c\uc6b0\ud305 \ud45c \uc548\uc5d0\uc11c \uc785\ub825\uc758 \uc2dc\uac04\uc218\uba85\uc744 \uba85\uc2dc\ud558\uae30 \uc704\ud574\uc11c \ub610\ud55c \uc0ac\uc6a9\ub418\uc5b4\uc57c \ud55c\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c, \uc6b0\ub9ac\uac00 \uc8fc\uc5b4\uc9c4 \uc2dc\uac04\uc5d0\uc11c \uc5c5\ubb34\ub97c \uc2a4\ucf00\uc974\ud574\uc57c\ud560 \ub54c\ub294 \uc5b8\uc81c\ub098 \ud0c0\uc774\uba38\ub97c \uc0ac\uc6a9\ud560 \uac83\uc774\ub2e4.<\/p>\n<p>\uc138\ubd80\uc801\uc778 \uac83\ub4e4\ub85c \uac00\uae30\uc804\uc5d0 \uc6b0\ub9ac\uac00 \uc54c\uc544\uc57c \ud558\ub294 \ub610 \ub2e4\ub978 \uc911\uc694\ud55c \ud074\ub798\uc2a4\uac00 \uc788\ub2e4. <strong>\ud2b8\ub808\uc774\uc2a4<\/strong> \ud074\ub798\uc2a4\ub294 \uc2dc\ubbac\ub808\uc774\uc158 \ub3d9\uc548\uc5d0 \ubb34\uc5c7\uc774 \uc77c\uc5b4 \ub0ac\ub294\uc9c0\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uac00\uc9c4 \ub85c\uadf8 \ud30c\uc77c\ub4e4\uc744 \uc4f0\uae30 \uc704\ud55c \uae30\ubc18\uc774\ub2e4.<\/p>\n<p>\uadf8\ub9ac\uace0 \ub9c8\uc9c0\ub9c9 \ud78c\ud2b8: \ub124\uac00 \ub108\uc758 \ucf54\ub4dc \uc548\uc5d0 \ub514\ubc84\uadf8 \uba54\uc2dc\uc9c0\ub97c \ud504\ub9b0\ud2b8 \ud558\uae30\ub97c \uc6d0\ud560 \ub54c, 25\uc7a5 [2]\uc5d0\uc11c \uc81c\uc548\ub418\ub294 \uac83\ucc98\ub7fc \ub514\ubc84\uadf8() \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \ub3c4\uc6c0\uc774 \ub41c\ub2e4. \uc774\uac83\uc740 \ub124\uac00 \ub108\uc758 \uc2dc\ubbac\ub808\uc774\uc158 \uc2a4\ud06c\ub9bd\ud2b8\ub4e4\ub85c\ubd80\ud130 \ub514\ubc84\uae45\uc744 \ucf1c\uac70\ub098 \ub044\ub3c4\ub85d \ud5c8\ub77d\ud558\uace0 \ub2e4\ub978 \ud504\ub85c\uadf8\ub798\uba38\ub4e4\uc774 \uc77d\ub294 \uac83\uc774 \uc27d\ub2e4.<\/p>\n<p><strong>3 \ud328\ud0b7 \uc720\ud615\ub4e4<\/strong><\/p>\n<p>\uc774\uc81c \ub124\uac00 \uae30\ucd08\ub4e4\uc744 \ubc8c\uc368 \uc54c\uae30 \ub54c\ubb38\uc5d0, \uc0c8\ub85c\uc6b4 \ud30c\uc77c\uc744 \uc0dd\uc131\ud558\uace0 \uadf8\uac83\uc744 protoname\/protoname_pkt.h \uc774\ub77c\uace0 \ubd80\ub974\uc790. \uc5ec\uae30\uc5d0\uc11c \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 \uc0c8\ub85c\uc6b4 \ud328\ud0b7(\ub4e4) \uc720\ud615\uacfc \uad00\ub828\ub41c \ubaa8\ub4e0 \ub370\uc774\ud130 \uad6c\uc870\ub4e4, \uc0c1\uc218\ub4e4, \ub9e4\ud06c\ub85c\ub4e4\uc744 \ub123\uc744 \uc608\uc815\uc774\ub2e4. \ub2e4\uc74c \uc608\uc81c\ub97c \ubcf4\uc790.<\/p>\n<p>protoname\/protoname_pkt.h<\/p>\n<p>1: #ifndef __protoname_pkt_h__<\/p>\n<p>2: #define __protoname_pkt_h__<\/p>\n<p>3:<\/p>\n<p>4: #include &lt;packet.h&gt;<\/p>\n<p>5:<\/p>\n<p>6: #define HDR_PROTONAME_PKT(p) hdr_protoname_pkt::access(p)<\/p>\n<p>7:<\/p>\n<p>8: struct hdr_protoname_pkt {<\/p>\n<p>9:<\/p>\n<p>10: nsaddr_t pkt_src_; \/\/ Node which originated this packet<\/p>\n<p>11: u_int16_t pkt_len_; \/\/ Packet length (in bytes)<\/p>\n<p>12: u_int8_t pkt_seq_num_; \/\/ Packet sequence number<\/p>\n<p>13:<\/p>\n<p>14: inline nsaddr_t&amp; pkt_src() { return pkt_src_; }<\/p>\n<p>15: inline u_int16_t&amp; pkt_len() { return pkt_len_; }<\/p>\n<p>16: inline u_int8_t&amp; pkt_seq_num() { return pkt_seq_num_; }<\/p>\n<p>17:<\/p>\n<p>18: static int offset_;<\/p>\n<p>19: inline static int&amp; offset() { return offset_; }<\/p>\n<p>20: inline static hdr_protoname_pkt* access(const Packet* p) {<\/p>\n<p>21: return (hdr_protoname_pkt*)p-&gt;access(offset_);<\/p>\n<p>22: }<\/p>\n<p>23:<\/p>\n<p>24: };<\/p>\n<p>25:<\/p>\n<p>26: #endif<\/p>\n<p>\uc904\ub4e4 8-24\ub294 \uc6b0\ub9ac\uac00 \uc815\uc758\ud558\ub294 \uc911\uc778 \uc0c8\ub85c\uc6b4 \ud328\ud0b7 \uc720\ud615\uc744 \uc758\ubbf8\ud558\ub294 <strong>hdr_protoname_pkt<\/strong>\ub97c \uc120\uc5b8\ud55c\ub2e4. \uc904\ub4e4 10-12\uc5d0\uc11c \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 \ud328\ud0b7\uc774 \uac00\uc9c0\ub294 3\uac00\uc9c0 \ucc98\ub9ac\ub418\uc9c0 \uc54a\uc740 \uc18d\uc131\ub4e4\uc744 \ubcfc \uc218 \uc788\ub2e4. \uadf8\uac83\ub4e4\uc740 \ub2e4\uc74c\uc758 \uc720\ud615\ub4e4\uc774\ub2e4:<\/p>\n<p><strong>nsaddr_t<\/strong> \ub124\uac00 NS2\uc5d0\uc11c \ub124\ud2b8\uc6cc\ud06c \uc8fc\uc18c\ub97c \uc120\uc5b8\ud558\uae30\ub97c \uc6d0\ud560 \ub54c\ub9c8\ub2e4 \ub9e4\ubc88 \ub108\ub294 \uc774 \uc720\ud615\uc744 \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p><strong>u_int16_t<\/strong> 16 \ube44\ud2b8\ub4e4 \ubd80\ud638 \uc5c6\ub294 \uc815\uc218<\/p>\n<p><strong>u_int8_t<\/strong> 8 \ube44\ud2b8\ub4e4 \ubd80\ud638 \uc5c6\ub294 \uc815\uc218<\/p>\n<p>\uc774\ub7f0 \ubaa8\ub4e0 \uc720\ud615\ub4e4\uacfc \ub354 \ub9ce\uc740 \uac83\ub4e4\uc740 \ud5e4\ub354 \ud30c\uc77c <em>config.h<\/em> \uc548\uc5d0 \uc815\uc758\ub41c\ub2e4. \uc6b0\ub9ac\ub294 \ub3c5\uc790\uac00 \uc774\ub7f0 \ud30c\uc77c\uc744 \ud6d1\uc5b4\ubcf4\uace0 \uac70\uae30\uc5d0 \uc815\uc758\ub41c \uc720\ud615\ub4e4\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc744 \uaca9\ub824\ud55c\ub2e4. \ub2e4\ub978 \ubcc0\uc218\ub4e4\uacfc \uadf8\uac83\ub4e4\uc744 \uad6c\ubcc4\ud558\uae30 \uc704\ud55c \ubc11\uc904\uacfc \ud568\uaed8 \ub05d\ub0b4\uae30\ub85c \uc608\uc0c1\ub418\ub294 \ucc98\ub9ac \ub418\uc9c0 \uc54a\uc740 \uc18d\uc131\ub4e4\uc758 \uc774\ub984\ub4e4\uc740 \ub610\ud55c \uc5b8\uae09\ud560 \ub9cc\ud55c \uac00\uce58\uac00 \uc788\ub2e4. (25\uc7a5 [2]\ub97c \ubcf4\ub77c)<\/p>\n<p>\uc904\ub4e4 14-16\uc740 \uc815\uc758\ub41c \uc18d\uc131\ub4e4\uc744 \uc704\ud55c \uba64\ubc84 \ud568\uc218\ub4e4\uc774\ub2e4. \uc774\uac83\uc740 \uc758\ubb34\uc801\uc774\uc9c0\ub294 \uc54a\uc9c0\ub9cc 12\uc7a5 [2]\uc5d0\uc11c \uc81c\uc548\ub418\ub294 \u201c\uc88b\uc740 \uc2b5\uad00\u201d\uc774\ub2e4 (\uadf8\ub9ac\uace0 \uc6b0\ub9ac\ub294 \uadf8\uac83\uc744 \uc2e4\uc81c\ub85c \uc9c0\uc6d0\ud55c\ub2e4!)<\/p>\n<p>\uc904 4\ub294 <strong>\ud328\ud0b7<\/strong> \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud558\ub294 \ud30c\uc77c <em>common\/packet.h<\/em>\ub97c \ud3ec\ud568\ud55c\ub2e4. (12\uc7a5 [2]\ub97c \ubcf4\ub77c) \ud328\ud0b7\ub4e4\uc740 \uc2dc\ubbac\ub808\uc774\uc158 \uc548\uc5d0\uc11c \uc624\ube0c\uc81d\ud2b8\ub4e4 \uc0ac\uc774\uc5d0 \uc815\ubcf4\ub97c \uad50\ud658\ud558\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub418\uace0, \uc6b0\ub9ac\uc758 \ubaa9\ud45c\ub294 \uc6b0\ub9ac\uc758 \uc0c8\ub85c\uc6b4 struct <strong>hdr_protoname_pkt<\/strong>\ub97c \uadf8\uac83\ub4e4\uc5d0 \ub354\ud558\ub294 \uac83\uc774\ub2e4. \uc6b0\ub9ac\uc758 \uc81c\uc5b4 \ud328\ud0b7\ub4e4\uc744 \uadf8\ub807\uac8c \ud558\ub294 \uac83\uc740 \uc2dc\ubbac\ub808\uc774\uc158 \uc548\uc5d0\uc11c \ub178\ub4dc\ub4e4\uc5d0 \uc758\ud574\uc11c \ubcf4\ub0b4\uc9c0\uace0 \ubc1b\uc544\ub4e4\uc5ec \uc9c8 \uc218 \uc788\uc744 \uac83\uc774\ub2e4. \uc6b0\ub9ac\uac00 \uadf8\uac83\uc744 \uc5b4\ub5bb\uac8c \ud560 \uc218 \uc788\ub294\uac00? \uc774\ub7f0 \uc9c8\ubb38\uc5d0 \ub2f5\ud558\uae30 \uc704\ud574\uc11c \uc6b0\ub9ac\ub294 \ubaa8\ub4e0 \ud328\ud0b7 \ud5e4\ub354\ub4e4\uc774 \ud328\ud0b7 \ud074\ub798\uc2a4\uc5d0 \uc758\ud574\uc11c \uc5b4\ub5bb\uac8c \uc800\uc7a5\ub418\ub294 \uc9c0\ub97c \uc54c\uc544\uc57c \ud558\uace0, \uadf8 \ub2f5\uc740 \ud328\ud0b7\ub4e4\uc758 \ud544\ub4dc\ub4e4\uc774 \ubcf4\uad00\ub418\ub294 \ubd80\ud638 \uc5c6\ub294 \ucf00\ub9ad\ud130\ub4e4\uc758 \ubc30\uc5f4 (\ube44\ud2b8\ub4e4\uc758 \uac00\ubc29)\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\ub2e4. \uad6c\uccb4\uc801\uc778 \ud328\ud0b7 \ud5e4\ub354\uc5d0 \uc811\uc18d\ud558\uae30 \uc704\ud574\uc11c \uadf8\uac83\uc774 \uc704\uce58\ub418\ub294 \uc624\ud504\uc14b\uc744 \uc81c\uacf5\ud560 \ud544\uc694\uac00 \uc788\ub2e4. \uadf8\ub9ac\uace0 \uadf8\uac83\uc740 \uc815\ud655\ud558\uac8c \uc6b0\ub9ac\uac00 \uc904\ub4e4 18-22\ub97c \ud1b5\ud574\uc11c \ud558\ub294 \uac83\uc774\ub2e4. \uc6b0\ub9ac\ub294 \uace0\uc815\ub41c (\ubaa8\ub4e0 <strong>hdr_protoname_pkt<\/strong> \uad6c\uc870\ub4e4\uc5d0 \uacf5\ud1b5\uc801\uc778) \uc624\ud504\uc14b, \uadf8\uac83\uc5d0 \uc811\uc18d\ud558\uae30 \uc704\ud55c \ud558\ub098\uc758 \uba64\ubc84 \ud568\uc218 \uadf8\ub9ac\uace0 \ud558\ub098\uc758 <strong>\ud328\ud0b7<\/strong>\uc774 \uc8fc\uc5b4\uc9c4 <strong>hdr_protoname_pkt<\/strong>\uc744 \ub418\ub3cc\ub824\ubcf4\ub0b4\ub294 \ud568\uc218\ub97c \uc815\uc758\ud55c\ub2e4. \uac8c\ub2e4\uac00, \uc904 6\uc5d0\uc11c \uc6b0\ub9ac\ub294 \uc774\ub7f0 \ub9c8\uc9c0\ub9c9 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c \ub9e4\ud06c\ub85c\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<p>\ud558\ub098\uc758 \uc5c5\ubb34\uac00 \ub0a8\uc544\uc788\ub2e4: \uc6b0\ub9ac\uc758 \ud328\ud0b7 \ud5e4\ub354\ub97c Tcl \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \ubb36\ub294 \uac83. \uc6b0\ub9ac\ub294 \ub2e4\uc74c\uc758 \ucf54\ub4dc\ub85c <em>protoname\/protoname.cc<\/em> \uc548\uc5d0 \uadf8\ub807\uac8c \ud560 \uac83\uc774\ub2e4. \uc6b0\ub9ac\uac00 \ubcfc \uc218 \uc788\ub4ef\uc774 \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 \ud328\ud0b7 \ud5e4\ub354\uc758 \uc624\ud504\uc14b\uc744 Tcl\uc744 \ud1b5\ud574\uc11c \uc811\uadfc\ud558\uae30 \uc27d\uac8c \ud558\ub294 \uc911\uc774\ub2e4.<\/p>\n<p>protoname\/protoname.cc<\/p>\n<p>1: int protoname_pkt::offset_;<\/p>\n<p>2: static class ProtonameHeaderClass : public PacketHeaderClass {<\/p>\n<p>3: public:<\/p>\n<p>4: ProtonameHeaderClass() : PacketHeaderClass(&#8220;PacketHeader\/Protoname&#8221;,<\/p>\n<p>5: sizeof(hdr_protoname_pkt)) {<\/p>\n<p>6: bind_offset(&amp;hdr_protoname_pkt::offset_);<\/p>\n<p>7: }<\/p>\n<p>8: } class_rtProtoProtoname_hdr;<\/p>\n<p><strong>4 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8<\/strong><\/p>\n<p>\uc774\uc81c \uc6b0\ub9ac\ub294 \uc5d0\uc774\uc804\ud2b8 \uc790\uccb4\uc758 \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \uc2dc\uc791\ud55c\ub2e4. <em>protoname\/protoname.h<\/em> \uc548\ucabd\uc5d0 \uc6b0\ub9ac\ub294 \uadf8\uac83\uc758 \uc791\uc5c5\uc744 \ud558\ub294\ub370 \uc788\uc5b4\uc11c \ud504\ub85c\ud1a0\ucf5c\uc744 \ub3d5\ub3c4\ub85d \uc694\uad6c\ub418\ub294 \uc18d\uc131\ub4e4\uacfc \ud568\uc218\ub4e4\uc744 \ud3ec\ud568\ud558\ub294 <strong>Protoname<\/strong>\uc774\ub77c \ubd88\ub9ac\ub294 \uc0c8\ub85c\uc6b4 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud55c\ub2e4. \ud0c0\uc774\uba38\ub4e4\uc758 \uc0ac\uc6a9\uc744 \ubb18\uc0ac\ud558\uae30 \uc704\ud574\uc11c \uc6b0\ub9ac\ub294 <em>protoname<\/em>\uc774 \uba87 \uac1c\uc758 \uc81c\uc5b4 \ud328\ud0b7\ub4e4\uc744 \uc8fc\uae30\uc801\uc73c\ub85c \ubc1c\uc0b0\ud560 \ud544\uc694\uac00 \uc788\ub294 \uc608\ubc29\uc758 \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc784\uc744 \uac00\uc815\ud55c\ub2e4. \ub2e4\uc74c \ucf54\ub4dc\ub294 \uadf8\ub7f0 \uc608\uc81c\ub97c \ubcf4\uc5ec\uc900\ub2e4.<\/p>\n<p>protoname\/protoname.h<\/p>\n<p>1: #ifndef __protoname_h__<\/p>\n<p>2: #define __protoname_h__<\/p>\n<p>3:<\/p>\n<p>4: #include &#8220;protoname_pkt.h&#8221;<\/p>\n<p>5: #include &lt;agent.h&gt;<\/p>\n<p>6: #include &lt;packet.h&gt;<\/p>\n<p>7: #include &lt;trace.h&gt;<\/p>\n<p>8: #include &lt;timer-handler.h&gt;<\/p>\n<p>9: #include &lt;random.h&gt;<\/p>\n<p>10: #include &lt;classifier-port.h&gt;<\/p>\n<p>11:<\/p>\n<p>12: #define CURRENT_TIME Scheduler::instance().clock()<\/p>\n<p>13: #define JITTER (Random::uniform()*0.5)<\/p>\n<p>14:<\/p>\n<p>15: class Protoname; \/\/ forward declaration<\/p>\n<p>16:<\/p>\n<p>17: \/* Timers *\/<\/p>\n<p>18:<\/p>\n<p>19: class Protoname_PktTimer : public TimerHandler {<\/p>\n<p>20: public:<\/p>\n<p>21: Protoname_PktTimer(Protoname* agent) : TimerHandler() {<\/p>\n<p>22: agent_ = agent;<\/p>\n<p>23: }<\/p>\n<p>24: protected:<\/p>\n<p>25: Protoname* agent_;<\/p>\n<p>7<\/p>\n<p>26: virtual void expire(Event* e);<\/p>\n<p>27: };<\/p>\n<p>28:<\/p>\n<p>29: \/* Agent *\/<\/p>\n<p>30:<\/p>\n<p>31: class Protoname : public Agent {<\/p>\n<p>32:<\/p>\n<p>33: \/* Friends *\/<\/p>\n<p>34: friend class Protoname_PktTimer;<\/p>\n<p>35:<\/p>\n<p>36: \/* Private members *\/<\/p>\n<p>37: nsaddr_t ra_addr_;<\/p>\n<p>38: protoname_state state_;<\/p>\n<p>39: protoname_rtable rtable_;<\/p>\n<p>40: int accesible_var_;<\/p>\n<p>41: u_int8_t seq_num_;<\/p>\n<p>42:<\/p>\n<p>43: protected:<\/p>\n<p>44:<\/p>\n<p>45: PortClassifier* dmux_; \/\/ For passing packets up to agents.<\/p>\n<p>46: Trace* logtarget_; \/\/ For logging.<\/p>\n<p>47: Protoname_PktTimer pkt_timer_; \/\/ Timer for sending packets.<\/p>\n<p>48:<\/p>\n<p>49: inline nsaddr_t&amp; ra_addr() { return ra_addr_; }<\/p>\n<p>50: inline protoname_state&amp; state() { return state_; }<\/p>\n<p>51: inline int&amp; accessible_var() { return accessible_var_; }<\/p>\n<p>52:<\/p>\n<p>53: void forward_data(Packet*);<\/p>\n<p>54: void recv_protoname_pkt(Packet*);<\/p>\n<p>55: void send_protoname_pkt();<\/p>\n<p>56:<\/p>\n<p>57: void reset_protoname_pkt_timer();<\/p>\n<p>58:<\/p>\n<p>59: public:<\/p>\n<p>60:<\/p>\n<p>61: Protoname(nsaddr_t);<\/p>\n<p>62: int command(int, const char*const*);<\/p>\n<p>63: void recv(Packet*, Handler*);<\/p>\n<p>64:<\/p>\n<p>65: };<\/p>\n<p>66:<\/p>\n<p>67: #endif<\/p>\n<p>\uc904\ub4e4 4-10\uc740 \uc6b0\ub9ac\uc758 \uc5d0\uc774\uc804\ud2b8\uc5d0 \uc758\ud574\uc11c \uc694\uad6c\ub418\ub294 \ud5e4\ub354 \ud30c\uc77c\ub4e4\uc744 \ud3ec\ud568\ud558\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub41c\ub2e4. \uc544\ub798\uc5d0 \uc6b0\ub9ac\ub294 \uadf8\uac83\ub4e4\uc774 \ubb34\uc5c7\uc744 \uc704\ud574 \uc720\uc6a9\ud55c\uc9c0\ub97c \uc124\uba85\ud55c\ub2e4.<\/p>\n<p><strong>protoname\/protoname_pkt.h<\/strong> \uc6b0\ub9ac\uc758 \ud328\ud0b7 \ud5e4\ub354\ub97c \uc815\uc758\ud55c\ub2e4.<\/p>\n<p><strong>common\/agent.h<\/strong> <strong>\uc5d0\uc774\uc804\ud2b8<\/strong> \uae30\ubc18 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud55c\ub2e4.<\/p>\n<p><strong>common\/packet.h<\/strong> <strong>\ud328\ud0b7<\/strong> \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud55c\ub2e4.<\/p>\n<p><strong>common\/timer-handler.h<\/strong> <strong>TimerHandler<\/strong> \uae30\ubc18 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud55c\ub2e4. \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 \ub9de\ucda4 \ud0c0\uc774\uba38\ub4e4\uc744 \uc0dd\uc131\ud558\uae30 \uc704\ud574\uc11c \uadf8\uac83\uc744 \uc0ac\uc6a9\ud560 \uac83\uc774\ub2e4.<\/p>\n<p><strong>trace\/trace.h<\/strong> \uc2dc\ubbac\ub808\uc774\uc158 \uacb0\uacfc\ub97c \ud2b8\ub808\uc774\uc2a4 \ud30c\uc77c\ub85c \uc4f0\uae30 \uc704\ud574 \uc0ac\uc6a9\ub418\ub294, <strong>\ud2b8\ub808\uc774\uc2a4<\/strong> \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud55c\ub2e4.<\/p>\n<p><strong>tools\/random.h<\/strong> \uac00\uc9dc\uc758-\ub79c\ub364 \uc22b\uc790\ub4e4\uc744 \ubc1c\uc0dd\uc2dc\ud0a4\ub294 \ub370 \uc720\uc6a9\ud55c, <strong>\ub79c\ub364<\/strong> \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud55c\ub2e4. \uc6b0\ub9ac\ub294 \uadf8\uac83\uc744 \uace7 \uc0ac\uc6a9\ud560 \uac83\uc774\ub2e4.<\/p>\n<p><strong>classifier\/classifier-port.h<\/strong> \ud328\ud0b7\ub4e4\uc744 \uc0c1\uc704 \ub808\uc774\uc5b4\ub4e4\uc5d0\uac8c \uc62c\ub824 \ubcf4\ub0b4\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub418\ub294 <strong>\ud3ec\ud2b8\ubd84\ub958\uc790<\/strong> \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud55c\ub2e4.<\/p>\n<p>\uc904 12\ub294 \uc2dc\ubbac\ub808\uc774\ud130 \uc2dc\uacc4 \uc548\uc5d0 \ud604\uc7ac \uc2dc\uac04\uc744 \uc5bb\uae30 \uc704\ud55c \uc720\uc6a9\ud55c \ub9e4\ud06c\ub85c\ub97c \uc815\uc758\ud55c\ub2e4. \uadf8\uac83\uc740 <strong>\uc2a4\ucf00\uc974\ub7ec<\/strong> \ud074\ub798\uc2a4\uc758 \ub2e8\uc77c\uc758 \uc778\uc2a4\ud134\uc2a4\uc5d0 \uc811\uc18d\ud568\uc73c\ub85c\uc368 \uc2e4\ud589\ub41c\ub2e4. \uc774 \uc624\ube0c\uc81d\ud2b8\ub294 \uc2dc\ubbac\ub808\uc774\uc158 \ub3d9\uc548\uc5d0 \uc0dd\uc0b0\ub41c \ubaa8\ub4e0 \uc774\ubca4\ud2b8\ub4e4\uacfc \uc2dc\ubbac\ub808\uc774\ud130\uc758 \ub0b4\ubd80 \uc2dc\uacc4\ub97c \uad00\ub9ac\ud55c\ub2e4. (4\uc7a5 [2]\uc744 \ubcf4\ub77c)<\/p>\n<p>\ub610 \ub2e4\ub978 \ub9e4\ud06c\ub85c\ub294 \uc904 13\uc5d0 \uc788\ub2e4. \uadf8\uac83\uc740 [0-0.5] \uac04\uaca9 \uc548\ucabd\uc5d0 \ub79c\ub364 \uc22b\uc790\ub97c \ud68d\ub4dd\ud558\uae30 \uc704\ud55c \ub2e8\uc9c0 \uc26c\uc6b4 \ubc29\ubc95\uc774\ub2e4. \uc774\uac83\uc740 \uacb0\uad6d\uc5d0 \ucda9\ub3cc\ub4e4\uc744 \uc0dd\uc0b0\ud558\uace0 \uadf8\ub798\uc11c \uc774\ub7f0 \ud328\ud0b7\ub4e4\uc744 \uc1a1\uc2e0\ud558\ub294 \uc2dc\uac04\uc5d0\uc11c \ub51c\ub808\uc774\ub418\ub294, \uc790\uc2e0\uc758 \uc774\uc6c3\ub4e4\uacfc \ud568\uaed8 \ub178\ub4dc\uc758 \ub3d9\uae30\ud654\ub97c \ud53c\ud558\uae30 \uc704\ud574 \uc81c\uc5b4 \ud328\ud0b7\ub4e4\uc758 \uc1a1\uc2e0\uc744 \ub79c\ub364\ud654\ud558\uae30 \uc704\ud574\uc11c \ubcf4\ud1b5 \uc0ac\uc6a9\ub41c\ub2e4.<a href=\"http:\/\/blog.naver.com\/PostUpdateForm.nhn?blogId=gunjunk&amp;cpage=1&amp;scode=0&amp;logNo=150019139296#_ftn1\" target=\"_blank\">[1]<\/a><\/p>\n<p>\uc904\ub4e4 19-27\uc740 \uc8fc\uae30\uc801\uc778 \uc81c\uc5b4 \ud328\ud0b7\ub4e4\uc744 \uc1a1\uc2e0\ud558\uae30 \uc704\ud55c \uc6b0\ub9ac\uc758 \ub9de\ucda4 \ud0c0\uc774\uba38\ub97c \uc120\uc5b8\ud55c\ub2e4. \uc6b0\ub9ac\uc758 <strong>Protoname_PktTimer<\/strong> \ud074\ub798\uc2a4\ub294 <strong>TimerHandler<\/strong>\ub85c\ubd80\ud130 \ubb3c\ub824\ubc1b\uace0 \uadf8\uac83\uc744 \uc0dd\uc131\ud558\ub294 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uc5d0 \uad00\uacc4\uac00 \uc788\ub2e4. \uc774\uac83\uc740 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uc5d0\uac8c \uc0c8\ub85c\uc6b4 \uc81c\uc5b4 \ud328\ud0b7\uc744 \uc804\uc1a1\ud558\uace0 \ub2e4\uc74c \uac83\uc744 \uc2a4\ucf00\uc974\ud558\ub77c\uace0 \ub9d0\ud558\uae30 \uc704\ud55c \ucf5c\ubc31\uc73c\ub85c\uc368 \uc0ac\uc6a9\ub41c\ub2e4. \uc6b0\ub9ac\ub294 expire() \ubc29\ubc95\uc5d0 \uc5b4\ub5bb\uac8c \uacfc\ubd80\ud558\uac00 \uac78\ub9ac\ub294 \uc9c0\ub97c \uae30\uc220\ud560 \ub54c, \ub4a4\uc5d0 \uc774\uac83\uc744 \ub354 \ubd10\uc57c \ud55c\ub2e4. \uc774\ub7f0 \ucf5c\ubc31\ub4e4\uc744 \uc2e4\ud589\ud558\uae30 \uc704\ud574\uc11c \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\ub294 \ub3d9\ub8cc \ud074\ub798\uc2a4\ub85c\uc368 <strong>Protoname_PktTimer<\/strong>\ub97c \ub2e4\ub8f0 \ud544\uc694\uac00 \uc788\ub2e4. (\uc904 34)<\/p>\n<p><strong>Protoname<\/strong> \ud074\ub798\uc2a4\ub294 \uc904\ub4e4 31-65 \ub0b4\uc5d0 \uc815\uc758\ub41c\ub2e4. \uadf8\uac83\uc740 \uc790\uc2e0 \uc18c\uc720\uc758 \uc8fc\uc18c, \ub0b4\ubd80\uc758 \uc0c1\ud0dc, \ub77c\uc6b0\ud305 \ud45c, Tcl\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc26c\uc6b4 \ubcc0\uc218 \uadf8\ub9ac\uace0 \uc2dc\ud000\uc2a4 \ub118\ubc84\ub4e4\uc744 \ucd9c\ub825 \ud328\ud0b7\ub4e4\uc5d0 \ud560\ub2f9\ud558\uae30 \uc704\ud55c \uce74\uc6b4\ud130 (\uc904\ub4e4 37-41)\ub97c \ucea1\uc290\ud654\ud55c\ub2e4. <em>protoname_state_<\/em>\ub294 \ud074\ub798\uc2a4 \uc790\uccb4 \ub610\ub294 \uadf8\uac83\uc758 \uc791\uc5c5\uc744 \ud558\uae30 \uc704\ud574\uc11c <strong>Protoname<\/strong> \ud074\ub798\uc2a4\uc5d0 \uc758\ud574 \uc694\uad6c\ub418\ub294 \uc18d\uc131\ub4e4\uc758 \uc9d1\ud569\uc77c \uc218 \uc788\ub2e4. <em>accessible_var_<\/em>\ub294 Tcl \uc2a4\ud06c\ub9bd\ud2b8\ub4e4 \ub610\ub294 \uc258 \uba85\ub839\uc5b4\ub4e4\ub85c\ubd80\ud130 \uc77d\ud600\uc9c0\uace0 \uc4f0\uc5ec\uc9c0\ub294 \uac83\uc73c\ub85c \uc0dd\uac01\ub41c\ub2e4. \uc774\uac83\uc740 \ub9ce\uc740 \uc0c1\ud669\ub4e4\uc5d0\uc11c \uc720\uc6a9\ud55c\ub370 \uc65c\ub0d0\ud558\uba74 \uadf8\uac83\uc740 \uc720\uc800\ub4e4\uc774 \uc2dc\ubbac\ub808\uc774\ud130\uc758 \uc7ac-\ucef4\ud30c\uc77c\uc5c6\uc774 \uc790\uc2e0\ub4e4\uc758 \uc2a4\ud06c\ub9bd\ud2b8\ub4e4\uc744 \ud1b5\ud574\uc11c \uc2dc\ubbac\ub808\uc774\uc158 \ud589\ub3d9\uc744 \ubc14\uafb8\ub294 \uac83\uc744 \ud5c8\ub77d\ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n<p><strong>\ud3ec\ud2b8\ubd84\ub958\uc790<\/strong> \uc624\ube0c\uc81d\ud2b8\ub294 \uc904 45\uc5d0\uc11c \uc120\uc5b8\ub41c\ub2e4. \ub108\ub294 \ub178\ub4dc\uc758 \uad6c\uc870\ub97c \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c 5\uc7a5 [2]\ub97c \uc77d\uc5b4\uc57c \ud55c\ub2e4. \uac70\uae30\uc11c \ub178\ub4dc\uac00 \uc8fc\uc18c \ubd84\ub958\uc790\uc640 \ud3ec\ud2b8 \ubd84\ub958\uc790\ub85c \uc5b4\ub5bb\uac8c \uad6c\uc131\ub418\ub294 \uc9c0 \ub108\ub294 \ubcfc \uc218 \uc788\uc744 \uac83\uc774\ub2e4. \uccab \ubc88\uc9f8\ub294 \uc801\uc808\ud55c \ub9c1\ud06c\ub85c \ub4e4\uc5b4\uc624\ub294 \ud328\ud0b7\ub4e4\uc744 \uc548\ub0b4\ud558\uac70\ub098 \uadf8\uac83\ub4e4\uc744 \uc0c1\uc704 \ub808\uc774\uc5b4 \uc5d0\uc774\uc804\ud2b8\uc5d0\uac8c \ucda9\ub2f9\ud558\uae30 \uc704\ud574\uc11c \uadf8\uac83\ub4e4\uc744 \uc6b4\ubc18\ud560 \uac83\uc778, \ud3ec\ud2b8 \ubd84\ub958\uc790\uc5d0\uac8c\ub85c \uadf8\uac83\ub4e4\uc744 \ud1b5\uacfc\ud558\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub41c\ub2e4. \uadf8\uac83\uc774 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uac00 \ud3ec\ud2b8 \ubd84\ub958\uc790\ub97c \ud544\uc694\ub85c \ud558\ub294 \uc774\uc720\uc774\ub2e4. \uadf8\uac83\uc774 \uc790\uc2e0\uc73c\ub85c \uc608\uc815\ub41c \ub370\uc774\ud130 \ud328\ud0b7\ub4e4\uc744 \ubc1b\uc744 \ub54c \uadf8\uac83\uc740 \uc77c\uce58\ud558\ub294 \uc5d0\uc774\uc804\ud2b8\uc5d0\uac8c \uadf8\uac83\ub4e4\uc744 \uc8fc\uae30 \uc704\ud574\uc11c dmux_\ub97c \uc0ac\uc6a9\ud560 \uac83\uc774\ub2e4.<a href=\"http:\/\/blog.naver.com\/PostUpdateForm.nhn?blogId=gunjunk&amp;cpage=1&amp;scode=0&amp;logNo=150019139296#_ftn2\" target=\"_blank\">[2]<\/a> \ubaa8\ubc14\uc77c \ub178\ub4dc\uc758 \uc138\ubd80\uc801\uc778 \uc544\ud0a4\ud14d\ucc98\ub294 [2]\uc758 16\uc7a5\uc5d0\uc11c \uc124\uba85\ub41c\ub2e4.<\/p>\n<p>\ub610 \ub2e4\ub978 \uc911\uc694\ud55c \uc18d\uc131\uc740 <strong>\ud2b8\ub808\uc774\uc2a4<\/strong> \uc624\ube0c\uc81d\ud2b8\uc774\ub2e4. (\uc904 46\uc744 \ubcf4\ub77c) \uadf8\uac83\uc740 \ud2b8\ub808\uc774\uc2a4 \ud30c\uc77c \uc548\uc5d0 \uc800\uc7a5\ub418\uae30 \uc704\ud55c \ub85c\uadf8\ub4e4\uc744 \uc0dd\uc0b0\ud558\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub41c\ub2e4. \uc6b0\ub9ac\uc758 \uc608\uc81c\uc5d0\uc11c \uc720\uc800\uac00 Tcl \uc778\ud130\ud398\uc774\uc2a4\uc5d0\uc11c \uadf8\uac83\uc744 \uc694\uccad\ud560 \ub54c\ub9c8\ub2e4 \ub77c\uc6b0\ud305 \ud45c\uc758 \ub0b4\uc6a9\ub4e4\uc744 \uc4f0\uae30 \uc704\ud574\uc11c \uc6b0\ub9ac\ub294 \uadf8\uac83\uc744 \uc0ac\uc6a9\ud55c\ub2e4. \ub9cc\uc57d \ub124\uac00 \ud328\ud0b7\ub4e4\uc5d0 \uad00\ud574\uc11c \ud2b8\ub808\uc774\uc2f1 \uc815\ubcf4\ub97c \uc4f0\ub294 \ub370\ub9cc \ub2e8\uc9c0 \uad00\uc2ec\uc774 \uc788\ub2e4\uba74 \uc774\uac83\uc774 \ud544\uc218\ub294 \uc544\ub2c8\ub2e4. \uadf8 \uacbd\uc6b0\uc5d0\uc11c, \uadf8\ub7f0 \ub85c\uae45 \ud568\uc218\ub4e4\uc740 \ub2e4\ub978 \uc704\uce58\uc5d0\uc11c \uad6c\ud604\ub41c\ub2e4. (\uc6b0\ub9ac\uac00 6\uc808\uc5d0\uc11c \ubd10\uc57c \ud560 \uac83\ucc98\ub7fc)<\/p>\n<p>\uc904 47\uc740 \uc6b0\ub9ac\uc758 \ub9de\ucda4 \ud0c0\uc774\uba38\ub97c \uc120\uc5b8\ud55c\ub2e4. \uadf8\ub9ac\uace0 \uc904\ub4e4 49-51\uc740 \uba87 \uac1c\uc758 \ub0b4\ubd80 \uc18d\uc131\ub4e4\uc5d0 \uc811\uc18d\ud558\uae30 \uc704\ud55c \uba64\ubc84 \ud568\uc218\ub4e4\uc774\ub2e4.<\/p>\n<p>\uc904 53\uc5d0\uc11c \ud568\uc218\ub294 \ub370\uc774\ud130 \ud328\ud0b7\ub4e4\uc744 \uadf8\uac83\ub4e4\uc758 \uc62c\ubc14\ub978 \ubaa9\uc801\uc9c0\ub85c \uc804\uc1a1\ud558\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub420 \uac83\uc774\ub2e4. \uc904 54\uc5d0\uc11c \ud568\uc218\ub294 \uc81c\uc5b4 \ud328\ud0b7\uc774 \ubc1b\uc544\ub4e4\uc5ec\uc9c8 \ub54c\ub9c8\ub2e4 \ud638\ucd9c\ub420 \uac83\uc774\uace0, \uc904 55\uc5d0\uc11c \uadf8\uac83\uc740 \uc81c\uc5b4 \ud328\ud0b7\uc744 \uc804\uc1a1\ud558\uae30 \uc704\ud574\uc11c \uc120\ud3ec\ub41c\ub2e4. \uc904 57\uc740 \uc6b0\ub9ac\uc758 \ub9de\ucda4 \ud0c0\uc774\uba38 \uae30\ud55c \ub9cc\ub8cc\ub97c \uc2a4\ucf00\uc974\ud558\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub418\ub294 \ud568\uc218\ub97c \uc120\uc5b8\ud55c\ub2e4.<\/p>\n<p>\uc904\ub4e4 61-63\uc740 \ud074\ub798\uc2a4 <strong>Protoname<\/strong>\uc758 \uacf5\uac1c \ud568\uc218\ub4e4\uc744 \ud3ec\ud568\ud55c\ub2e4. \uac74\uc124\uc790\ub294 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uc758 \uc8fc\uc18c\ub85c\uc368 \uc0ac\uc6a9\ub418\ub294 \uc2dd\ubcc4\uc790\ub97c \uc778\uc218\ub85c\uc368 \ubc1b\ub294\ub2e4. <strong>Protoname<\/strong>\uc740 \uad6c\ud604\ub420 \ud544\uc694\uac00 \uc788\ub294 \ub450 \uac1c\uc758 \uba54\uc778 \ud568\uc218\ub4e4\uc744 <strong>\uc5d0\uc774\uc804\ud2b8<\/strong> \uae30\ubc18 \ud074\ub798\uc2a4\ub85c\ubd80\ud130 \ubb3c\ub824\ubc1b\ub294\ub2e4: <em>recv()<\/em>\uc640 <em>command()<\/em>. <em>recv()<\/em>\ub294 \uc5d0\uc774\uc804\ud2b8\uac00 \ud328\ud0b7\uc744 \ubc1b\uc744 \ub54c\ub9c8\ub2e4 \ubd88\ub824\uc9c4\ub2e4. \ub178\ub4dc \uc790\uccb4 (\uc2e4\uc81c\ub85c\ub294 UDP \ub610\ub294 TCP\uc640 \uac19\uc740 \uc0c1\uc704 \ub808\uc774\uc5b4)\uac00 \ud328\ud0b7\uc744 \ubc1c\uc0dd\ud558\ub294 \uc911\uc774\uac70\ub098 \ub2e4\ub978 \ub178\ub4dc\ub85c\ubd80\ud130 \ud328\ud0b7\uc744 \ubc1b\ub294 \uc911\uc77c \ub54c \uc774\uac83\uc740 \uc77c\uc5b4\ub0a0 \uac83\uc774\ub2e4. <em>command()<\/em> \ud568\uc218\ub294 3\uc7a5 [2]\uc5d0\uc11c \uae30\uc220\ub41c \uac83\ucc98\ub7fc Tcl\ub85c\ubd80\ud130 \uc120\ud3ec\ub41c\ub2e4. \uadf8\uac83\uc740 \uc6b0\ub9ac\uc758 Tcl \ucf54\ub4dc\ub85c\ubd80\ud130 \uba87 \uac1c\uc758 \uc5c5\ubb34\ub97c \ud558\ub3c4\ub85d C++ \uc624\ube0c\uc81d\ud2b8\uc5d0\uac8c \uc694\uccad\ud558\uae30 \uc704\ud55c \ubc29\uc2dd\uc774\ub2e4. \ud55c\ubc88 \uc6b0\ub9ac\uac00 \uc808 4.3\uc744 \uacbd\ud5d8\ud558\uba74 \ub108\ub294 \uc774\uac83\uc744 \ub354 \uc774\ud574\ud560 \uac83\uc774\ub2e4.<\/p>\n<p>\uc774\uc81c \ub108\ub294 <strong>Protoname<\/strong>\uc758 \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc5b4\ub5bb\uac8c \uc788\ub294 \uc9c0 \uc54c\uae30 \ub54c\ubb38\uc5d0, \uadf8\uac83\uc758 \uad6c\ud604\uc744 \uacc4\uc18d\ud560 \uc2dc\uac04\uc774\ub2e4. \ub2e4\uc74c \ud558\uc704 \uc808\ub4e4\uc740 <em>protoname\/protoname.cc<\/em> \ud30c\uc77c\uacfc \uad00\ub828\ub41c\ub2e4.<\/p>\n<p><strong>4.1 Tcl hooks<\/strong><\/p>\n<p>\uc6b0\ub9ac\ub294 \uc6b0\ub9ac \uc18c\uc720\uc758 \ud328\ud0b7\uc744 Tcl\uc5d0 \ubb36\ub294 \ubc95\uc744 3\uc808\uc5d0\uc11c \ubcf4\uc558\ub2e4. \uc774\uc81c \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 \uc5d0\uc774\uc804\ud2b8 \ud074\ub798\uc2a4\ub97c \uc704\ud574 \uac19\uc740 \uac83\uc744 \ud560 \uac83\uc774\ub2e4. \uadf8 \ubaa9\uc801\uc740 <strong>Protoname<\/strong>\uc5d0\uac8c Tcl\ub85c\ubd80\ud130 \uc608\uc2dc\ub418\ub3c4\ub85d \ud558\ub294 \uac83\uc774\ub2e4. \uadf8\ub807\uac8c \ud558\uae30 \uc704\ud574\uc11c \uc6b0\ub9ac\ub294 \ub2e4\uc74c\uc758 \ucf54\ub4dc\uc5d0\uc11c \ubb18\uc0ac\ub41c \uac83\ucc98\ub7fc \ud074\ub798\uc2a4 <strong>TclClass<\/strong>\ub85c\ubd80\ud130 \ubb3c\ub824\ubc1b\uc544\uc57c \ud55c\ub2e4.<\/p>\n<p>protoname\/protoname.cc<\/p>\n<p>1: static class ProtonameClass : public TclClass {<\/p>\n<p>2: public:<\/p>\n<p>3: ProtonameClass() : TclClass(&#8220;Agent\/Protoname&#8221;) {}<\/p>\n<p>4: TclObject* create(int argc, const char*const* argv) {<\/p>\n<p>5: assert(argc == 5);<\/p>\n<p>6: return (new Protoname((nsaddr_t)Address::instance().str2addr(argv[4])));<\/p>\n<p>7: }<\/p>\n<p>8: } class_rtProtoProtoname;<\/p>\n<p>\ud074\ub798\uc2a4 \uac74\uc124\uc790\ub294 \uc904 3\uc5d0 \uc788\uace0 \uadf8\uac83\uc740 \uc778\uc218\ub85c\uc368 \uc2a4\ud2b8\ub9c1 \u201c<em>Agent\/Protoname<\/em>\u201d\uc744 \uac00\uc9c4 \uae30\ubc18 \ud074\ub798\uc2a4\ub97c \ud638\ucd9c\ud55c\ub2e4. \uc774\uac83\uc740 \ubcf8\ubb38\uc758 \ubc29\ubc95\uc5d0\uc11c \uc774 \uc5d0\uc774\uc804\ud2b8\ub97c \uc704\ud55c \ud074\ub798\uc2a4 \uacc4\uce35\uc744 \uc758\ubbf8\ud55c\ub2e4.<\/p>\n<p>\uc904\ub4e4 4-7\uc5d0\uc11c \uc6b0\ub9ac\ub294 <strong>TclObject<\/strong>\ub85c\uc368 \uc0c8\ub85c\uc6b4 <strong>Protoname<\/strong> \uc778\uc2a4\ud134\uc2a4\ub97c \ub418\ub3cc\ub824\uc8fc\ub294 <em>create()<\/em>\ub85c \ubd88\ub9ac\ub294 \ud568\uc218\ub97c \uad6c\ud604\ud55c\ub2e4. <em>argv<\/em>\ub294 \u201c<em>&lt;<\/em><em>\uc624\ube0c\uc81d\ud2b8\uc758 \uc774\ub984&gt; &lt;$self&gt; &lt;$\ud074\ub798\uc2a4&gt; &lt;$proc&gt; &lt;\uc720\uc800 \uc778\uc218&gt;<\/em>\u201d \ud615\ud0dc\uc774\ub2e4. (\ub354 \ub9ce\uc740 \uc815\ubcf4\ub97c \uc704\ud574\uc11c [2]\uc758 3\uc7a5\uc744 \ubcf4\ub77c) \uc774\ub7f0 \ud2b9\ubcc4\ud55c \uacbd\uc6b0\uc5d0\uc11c \uadf8\uac83\uc740 \u201c<em>&lt;<\/em><em>\uc624\ube0c\uc81d\ud2b8\uc758 \uc774\ub984&gt; &lt;$self&gt; Agent\/Protoname create-shadow &lt;id&gt;<\/em>\u201d\uc774\ub2e4. \uc774\uac83 \ub54c\ubb38\uc5d0, \uc904 6\uc5d0\uc11c \uc6b0\ub9ac\ub294 <em>argv[4]<\/em>\uc5d0\uc11c \uc2dc\uc791\ub418\ub294 \uc2dd\ubcc4\uc790\ub97c \uac00\uc9c4 \uc0c8\ub85c\uc6b4 <strong>Protoname<\/strong> \uc624\ube0c\uc81d\ud2b8\ub97c \ub418\ub3cc\ub824\uc900\ub2e4. \uc6b0\ub9ac\ub294 \uc2a4\ud2b8\ub9c1\uc5d0\uc11c <em>nsaddr_t<\/em> \uc720\ud615\uc744 \uc5bb\uae30 \uc704\ud574 <strong>\uc8fc\uc18c<\/strong> \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<p><strong>4.2 \ud0c0\uc774\uba38\ub4e4<\/strong><\/p>\n<p>\uc6b0\ub9ac\uac00 \ud0c0\uc774\uba38\ub4e4\uc5d0 \ub300\ud574 protoname\/protoname.cc \uc548\uc5d0\uc11c \ucf54\ub4dc\ud574\uc57c \ud558\ub294 \ubaa8\ub450\ub294 expire() \ubc29\ubc95\uc774\ub2e4. \ud0c0\uc774\uba38\ub4e4\uc740 11\uc7a5 [2]\uc5d0 \uc138\ubd80\uc801\uc73c\ub85c \ub418\uc5b4\uc788\ub2e4. \uc774\uac83\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc740 \ub9e4\uc6b0 \uc26c\uc6b4\ub370 \uc65c\ub0d0\ud558\uba74 \uc6b0\ub9ac\ub294 \ub2e8\uc9c0 \uc0c8\ub85c\uc6b4 \uc81c\uc5b4 \ud328\ud0b7\uc744 \ubcf4\ub0b4\uace0 \ud0c0\uc774\uba38 \uc790\uccb4\ub97c \ub2e4\uc2dc \uc2a4\ucf00\uc974\ud558\uae30\ub97c \ub2e8\uc9c0 \uc6d0\ud558\uae30 \ub54c\ubb38\uc774\ub2e4. \uc6b0\ub9ac\uc758 \uc124\uacc4 \uacb0\uc815\ub4e4\uc5d0 \ub530\ub77c\uc11c \ub450 \uac1c\uc758 \uc5c5\ubb34\ub4e4\uc740 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uc5d0 \uc758\ud574\uc11c \uc2e4\ud589\ub418\uc5b4\uc57c \ud558\uace0, \uadf8\ub798\uc11c \uc6b0\ub9ac\ub294 \ub2e4\uc74c\uc758 \uc608\uc81c\uc5d0\uc11c\ucc98\ub7fc \uc774\ub7f0 \ucf5c\ubc31\ub4e4\uc744 \uc120\ud3ec\ud55c\ub2e4.<\/p>\n<p>protoname\/protoname.cc<\/p>\n<p>1: void<\/p>\n<p>2: Protoname_PktTimer::expire(Event* e) {<\/p>\n<p>3: agent_-&gt;send_protoname_pkt();<\/p>\n<p>4: agent_-&gt;reset_protoname_pkt_timer();<\/p>\n<p>5: }<\/p>\n<p><strong>4.3 \uc5d0\uc774\uc804\ud2b8<\/strong><\/p>\n<p><strong>4.3.1 \uac74\uc124\uc790<\/strong><\/p>\n<p>\uac74\uc124\uc790 \uad6c\ud604\uacfc \ud568\uaed8 \uc2dc\uc791\ud574\ubcf4\uc790. \uc544\ub798 \uc904 1\uc5d0\uc11c \ubcfc \uc218 \uc788\ub294 \uac83\ucc98\ub7fc, \uc6b0\ub9ac\ub294 PT_PROTONAME\uc744 \ud1b5\uacfc\ud558\ub294 \uae30\ubc18 \ud074\ub798\uc2a4\ub97c \uc704\ud55c \uac74\uc124\uc790\ub97c \uc778\uc218\ub85c\uc368 \ud638\ucd9c\ud568\uc73c\ub85c\uc368 \uc2dc\uc791\ud55c\ub2e4. \uc774\ub7f0 \uc0c1\uc218\ub294 \ub4a4\uc5d0 \uc815\uc758\ub420 \uac83\uc774\uace0 \uadf8\uac83\uc740 \uc774\ub7f0 \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uc5d0 \uc758\ud574\uc11c \ubcf4\ub0b4\uc9c0\uace0 \ubc1b\uc544\ub4e4\uc5ec\uc9c0\ub294 \uc81c\uc5b4 \ud328\ud0b7\ub4e4\uc744 \uc2dd\ubcc4\ud558\uae30 \uc704\ud574\uc11c \uc0ac\uc6a9\ub41c\ub2e4. \uac19\uc740 \uc904\uc5d0\uc11c \uc6b0\ub9ac\ub294 \uc6b0\ub9ac\uc758 Protoname_PktTimer \uc624\ube0c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<p>\ud558\uc790\ub9c8\uc790 \uc6b0\ub9ac\ub294 \uc774\uc81c Tcl\ub85c\ubd80\ud130 \uc77d\ud600\uc9c0\uace0 \uc4f0\uc5ec\uc9c8 \uac83\uc778 \ub17c\ub9ac \uc18d\uc131\uc73c\ub85c\uc368 accessible_var_\uc744 \ubb36\ub294\ub2e4. \uc815\uc218\ub85c\uc368 \uc774 \ubcc0\uc218\ub97c \ubb36\uae30 \uc704\ud574\uc11c, \uc6b0\ub9ac\ub294 bind_bool() \ub300\uc2e0\uc5d0 bind() \ud568\uc218\ub97c \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p>\uc904 3\uc740 \uc8fc\uc5b4\uc9c4 \uc2dd\ubcc4\uc790\ub97c \ub77c\uc6b0\ud305 \uc5d0\uc774\uc804\ud2b8\uc758 \uc8fc\uc18c\ub85c \uc800\uc7a5\ud55c\ub2e4.<\/p>\n<p>protoname\/protoname.cc<\/p>\n<p>1: Protoname::Protoname(nsaddr_t id) : Agent(PT_PROTONAME), pkt_timer_(this) {<\/p>\n<p>2: bind_bool(&#8220;accessible_var_&#8221;, &amp;accessible_var_);<\/p>\n<p>3: ra_addr_ = id;<\/p>\n<p>4: }<\/p>\n<p>Tcl \uc2a4\ud06c\ub9bd\ud2b8\ub4e4\ub85c\ubd80\ud130 \uc811\uadfc\ud558\ub294 \uac83\uc740 \uaf64 \ub2e8\uc21c\ud558\ub2e4. \ub2e4\uc74c \uc608\uc81c\ub294 accessible_var_\uc758 \uac12\uc744 true\ub85c \uc124\uc815\ud55c\ub2e4.<\/p>\n<p>simulation.tcl<\/p>\n<p>1: Agent\/Protoname set accesible_var_ true<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Implementing a New Manet Unicast Routing Protocol in NS2 \ubc88\uc5ed\uc785\ub2c8\ub2e4. \uc218\uc815\ud560 \ub0b4\uc6a9\uc774 \uc788\uc73c\uba74 \ubc14\ub85c \uc54c\ub824\uc8fc\uc138\uc694. NS2\uc5d0\uc11c \uc0c8\ub85c\uc6b4 Manet \uc720\ub2c8\uce90\uc2a4\ud2b8 \ub77c\uc6b0\ud305 \ud504\ub85c\ud1a0\ucf5c\uc744 \uad6c\ud604\ud558\uae30 1 \uc18c\uac1c \uc791\ub144 \ub3d9\uc548\uc5d0, \uc6b0\ub9ac\ub294 ns-\uc720\uc800\ub4e4 \uba54\uc77c\ub9c1 \ub9ac\uc2a4\ud2b8\uc5d0\uc11c \uac19\uc740 \uc9c8\ubb38\uc744 \uc694\uad6c\ud558\ub294 \ub9ce\uc740 \uc0ac\ub78c\ub4e4\uc744 \ubaa9\uaca9\ud574\uc654\ub2e4. \ub0b4\uac00 NS2\uc5d0 \uc801\ud569\ud55c \ub0b4 &hellip; <a href=\"http:\/\/pchero21.com\/?p=2007\">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":[],"_links":{"self":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts\/2007"}],"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=2007"}],"version-history":[{"count":0,"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts\/2007\/revisions"}],"wp:attachment":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2007"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}