More Related Content
Similar to technical report
Similar to technical report (20)
technical report
- 1. ์๋ก 1.
๋ ๋คํธ์ํฌ ์ฐ๊ตฌ์์ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฎฌ๋ ์ดns-2[1]
ํฐ์ด๋ค ๊ทธ๋ฌ๋ ์ ๊ตฌํ๋ ์ ๋ชจ๋์ ๋ฒ๊ทธ๋ฅผ. ns 802.11 DCF
๋น๋กฏํ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋ค ์ ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ ์ ์ ๋ค. ns
์๊ณผ ๊ฐ๋ค.
์ฒซ ๋ฒ์งธ ์๋ฎฌ๋ ์ดํฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ ๊ฒ์ฆ์ ์ํด ๋ง,
๋ค์ด์ง ์ํํธ์จ์ด์ด๋ฏ๋ก ํ์ค์ ์์ ๋ช
์ํ ๊ฒ๊ณผ ๊ฐ์[2]
์๋ฏธ๋ก ์์ฑ๋์ด ์์ด์ผ ํ๋ค ๊ทธ๋ฌ๋ ์ ๋ฐฑ์คํ. ns
์๊ณ ๋ฆฌ์ฆ์ ํ์ค์์์ ๋ช
์ํ ์๊ณ ๋ฆฌ์ฆ๋๋ก ์(backoff)
์ฑ๋์ง ์์๋ค ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ํ์ค์์์. 802.11
์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๊ฒ ์ฝ๋๋ฅผ ์์ ํ์๋ค.
๋ ๋ฒ์งธ ์๋ฎฌ๋ ์ดํฐ๋ ์์ธ์ ์ธ ์ด๋ฒคํธ๋ฅผ ์ถ๋ ฅํ์ฌ ์ค,
ํ์๊ฐ ํผ๋ํ์ง ์๋๋ก ํด์ผ ํ๋ค ๊ทธ๋ฌ๋ ๋ ์ถฉ๋์. ns
ํน๋ณํ ์ํฉ์ ๋ํ์ฌ ๋ฌด์ํ์ฌ ์๋ฎฌ๋ ์ด์
๋ถ์์ ํผ๋
์ ์ฃผ๊ณ ์๋ค ๋ณธ ๋
ผ๋ฌธ์ ํ๋๊ทธ ๋ฅผ ์ ์ํ์ฌ ํธ๋ ์ด. (flag)
์ค ํ์ผ์ ์ถ๋ ฅํ๋๋ก ํ๋ ๋ฐฉ์์ ์ ์ํ๋ค.
์ธ ๋ฒ์งธ ์๋ฎฌ๋ ์ดํฐ๋ ํ๊ฒฝ์ค์ ์ ๋ง๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด,
์ผ ํ๋ค ๊ทธ๋ฌ๋ ๋ ์ ํ ์ค๋ฅ ๋ชจ๋์ ์ฝ์
ํ์ฌ๋ ํจํท. ns
์ ์ค๋ฅ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ์ง ์์ ์ ํ ์ค๋ฅ๋ฅผ ๊ณ ๋ คํ ์คํ
์ ์ํํ ๋ ์ด๋ ค์์ ์ฃผ๊ณ ์๋ค ๋ณธ ๋
ผ๋ฌธ์ ์ ํ ์ค๋ฅ๋ก.
๋ฒ๋ ค์ง ํจํท์ ์ถ๋ ฅํ๋๋ก ํ์๋ค.
๋ง์ง๋ง์ผ๋ก ๋ฒ์ฉ ์๋ฎฌ๋ ์ดํฐ๋ ๊ณผ ๊ฐ์ ๋จ์ผ ๊ณ์ธต, MAC
๋ง์ ํ
์คํธ ํ ์ ์๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ค ๊ทธ๋ฌ๋ ๋. ns
์ ๋์์ ๋๋ ๊ธฐ๋ฅ์ARP(Address Resolution Protocol)
์ ๊ณตํ์ง ์์ ์ ์ฑ๋ฅ ๋ถ์์ ์ํฅ์ ์ค๋ค ์ด๋ฅผ ์MAC .
ํ์ฌ ์์ ์ ์ํ๋ ๋ฐฉ์์ ํ์ฅํ์๋ค[3] .
ํจ์น๋ฅผ ์ ์ฉํ์ฌ ์คํํ ๊ฒฐ๊ณผ ๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ์ ์์
์ ์ฑ๋ฅ ์ฒ๋ ๋ถ์์ ๋ณํ๋ฅผ ์ฃผ์ง ์์๋ค ๊ทธ๋ฌ๋ ์ถฉ๋๊ณผ.
์ค๋ฅ ์ด๋ฒคํธ ์ถ๋ ฅ ์๊ณ ๋ฆฌ์ฆ์ ํ๊ท ์ ์ค์ฐจ๋ก ๋ ๋4.6%
์ ์ถฉ๋๋ฅ ์ ๋ณด์ธ๋ค.
๋
ผ๋ฌธ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค ์ฅ์์ ์ ๋ฒ๊ทธ์ ๋ฌธ์ ์ . 2 ns
์ ๊ธฐ์ ํ๊ณ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ ์ํ๋ค ์ฅ์ ํจ์น๋ฅผ ์ ์ฉํ. 3
์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค ๊ทธ๋ฆฌ๊ณ ์ฅ์์ ๊ฒฐ๋ก ์ ๋งบ๋๋ค. 4 .
๋ฒ๊ทธ ์์ 2.
๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ2.1
๊ทธ๋ฆผ ์ ์ ์ํ๋ ์ ๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ์ ๋์ํํ( 1) ns
๊ฒ์ด๋ค ์์๋ ํ๋์ ํจ์์ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ฉฐ ์ทจ์. ,
์ค์ ์ ํ์ค ๋ช
์ธ์ ๋ง์ง ์๋ ๋ถ๋ถ์ด๋ค ์ ๋ฐฑ802.11 . ns
์คํ ์๊ณ ๋ฆฌ์ฆ์ send()๋ถํฐ ์์ํ์ฌ tx_resume()์์ ๋
๋๋ค ํ์ ๋ฐํ์ ์์๋ ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋๋ฉด ํธ์ถ๋๋ ํจ.
์์ด๋ค ์ฆ. , backoffHandler()๋ ๋ฐฑ์คํ ํ์ด๋จธ ๋ง๋ฃ ์,
deferHandler()๋ ์ง์ฐ ํ์ด๋จธ ๋ง๋ฃ ์, send_timer()๋ ์ ์ก
ํ์ด๋จธ ๋ง๋ฃ์ ํธ์ถ๋๋ค. CW๋ ๊ฒฝ์ ์๋์ฐ(Contention
Window), random์ ๋๋ค ํจ์๋ก ์์ฑ๋ ์์์ ์์ด๋ค.
๊ทธ๋ฆผ ์์ ์์ ๋ ์ฝ๋์ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ถ์ ๋จ์ผ ์ทจ์( 1)
์ ์ผ๋ก ๋ํ๋ด์์ผ๋ฉฐ ์ด๋ฅผ ๋์ฒดํ๋ ์ ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์,
์์์ ํ์ดํ ๋ก ํ์ํ์๋ค(โ=>โ) .
์ง์ฐ๊ณผ ๋ฐฑ์คํ์ ํผ์ฉ2.1.1 DIFS
์ ๋ชจ๋์ ์ง์ฐ๊ณผ ๋ฐฑ์คํ ์ง์ฐ์ ๊ฐ์ns 802.11 DIFS
๊ธฐ๋ฒ์ผ๋ก ๊ฐ์ ํ์ฌ ์ฌ์ฉํ๋ค ๊ทธ๋ฌ๋ ์ด ๋ ๊ฐ์ง์ ์ง์ฐ์.
์๋ก ๋ถ๋ฆฌ๋์ด ๊ตฌํ๋์ด์ผ ํ๋ค ๋ ์ผ์ ์๊ฐ๋์. DIFS
๋๊ธฐํ๋ ๊ธฐ๋ฒ์ด๋ฉฐ ๋ฐฑ์คํ๋ ์ฑ๋์ด ์ฌ์ฉ ์ค ์ผ ๋ ๋ฐฑ์ค, ,
ํ ํ์ด๋จธ๋ฅผ ์ค์ง์ํค๋ ๊ธฐ๋ฒ์ด๋ค ๊ทธ๋ฌ๋ ๋ ๋ฐฑ์คํ์. ns
๋ฅผ ํผ์ฉํ์ฌ ์ฌ์ฉํ์๋ค ์ด๋ฌํ ์ค๋ฅ๋ ๊ทธ๋ฆผ ์DIFS . ( 1)
send()์ ๊ณผs2-1 tx_resume()์ ์์ ํ์ธํ ์ ์๋คtr1-2 .
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๊ทธ๋ฆผ ์ ๊ณผ( 1) s2-1 tr1-2
๋ถ๋ถ์ ๋ค์๊ณผ ๊ฐ์ด ๊ณ ์ณ์ผํ๋ค ์ฒซ์งธ ์ง์ฐ ํ์ด๋จธ๋ฅผ ์ด. ,
์ฉํ์ฌ ๋์๋ง ๋๊ธฐํ๋๋ก ํ๋ค ๋์งธ ์ ๋ฐฑ์คDIFS . , DIFS
ํ ํ์ ๋ค๋ฅด๊ฒ ๋์ํ๋๋ก ํด์ผ ํ๋ค ์ ์์ ํด๊ฒฐ์.
send()์ tx_resume()์ ์์ ์ผ๋ก ๊ฐ๋ฅํ๋ค ํ์๋.
์ ๋ชจ๋ ๋ฒ๊ทธns-2.31 IEEE 802.11
์ ๋์ฒ ์์ข
์,
๋๊ตญ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ
e-mail:{op1000, jahn}@dgu.edu
Bugs on the IEEE 802.11 Module of ns-2.31
Nak-Cheon Jung, Jong-Suk Ahn
Dept of Computer Engineering, Dong-Guk University
์ ์ฝ
๋ณธ ๋
ผ๋ฌธ์ ๊ณต๊ฐ ๋คํธ์ํฌ ์๋ฎฌ๋ ์ดํฐ ์ ๋ชจ๋์์ ๋ฒ๊ทธns-2.31(Network Simulator 2.31) 802.11 DCF
๋ฅผ ์๊ฐํ๊ณ ์ด์ ์ํฅ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ๋ค ์ ๋ชจ๋์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ์ ์ ๊ฐ์ง๊ณ (bug) . ns 802.11 DCF
์๋ค ์ฒซ์งธ ๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ์ ํ์ค์์์ ๋ช
์ํ ์๊ณ ๋ฆฌ์ฆ๋๋ก ์์ฑ๋์ง ์์๋ค ๋์งธ ํน์ . , (backoff) . ,
์กฐ๊ฑด์ ํด๋น๋๋ ์ถฉ๋์ ๋ํ์ฌ ํธ๋ ์ด์ค ํ์ผ์ ์ถ๋ ฅํ์ง ์๋๋ค ์
์งธ ์ ํ ์ค๋ฅ ๋ชจ๋์ ์ฝ์
ํ์ฌ. ,
๋ ์ ํ ์ค๋ฅ ๊ฒฐ๊ณผ๋ฅผ ํธ๋ ์ด์ค ํ์ผ์ ์ถ๋ ฅํ์ง ์๋๋ค ๋ท์งธ ์๊ณ ๋ฆฌ์ฆ. , MAC(Medium Access Control)
๋ง์ ํ๊ฐํ ์ ์๋ ๊ธฐ๋ฒ์ ์ ๊ณตํ์ง ์๋๋ค ์ด๋ฌํ ๋ฌธ์ ์ ์ ์์ ํ ์ ์์ ์ ์ ์ ํ๊ท . ns-2 ns-2
์ ์ถฉ๋๋ฅ ์ฐจ์ด๋ฅผ ๋ณด์ธ๋ค4.6% .
- 2. backoffHandler()๊ฐ check_ptkTx()๋ฅผ ํธ์ถํ๋ ๋์
check_pktTx_after_backoff()๋ฅผ ํธ์ถํ๋๋ก ํ์์ผ๋ฉฐ,
deferHandler()๋ check_ptkTx() ํธ์ถํ๋ ๋์
check_pktTx_after_defer()๋ฅผ ํธ์ถํ๋๋ก ํ์๋ค.
๊ทธ๋ฆผ ์์ ๋ ์ ๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ( 1) ns
์ง์ฐ ์ดํ์ ๋์2.1.2 DIFS
ํ์ค์ ์ ์ ๊ณผ ์ ์ ๋ช
์ธ์ ์ํ๋ฉด ์คํ
์ด[2] 9.2.3 9.2.5
์
์ ์ง์ฐ ์ดํ์ ๋ฐ๋ก ์ฑ๋์ ๊ฐ์งํ ์ ์๋ค ์ฑDIFS .
๋์ด ์ฌ์ฉ ์ค์ด๋ฉด ์ฑ๋์ด ์ฌ์ฉ๋์ง ์์ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค
๊ฐ ๋์ ํ ๋ฒ ๋ ๋๊ธฐํ๊ณ ๋ฐฑ์คํ ์ง์ฐ์ ์ํํDIFS
๋ค ์ฆ ์ฒซ ๋ฒ์งธ ์ง์ฐ ์ดํ์๋ ์ฑ๋์ ์ฌ์ฉ์ฌ๋ถ๋ฅผ. , DIFS
๊ฒ์ฌํ๊ณ ๋ ๋ฒ์งธ ์ง์ฐ ์ดํ์๋ ์ฑ๋์ ์ฌ์ฉ์ฌ๋ถDIFS
๋ฅผ ๊ฒ์ฌํ์ง ์๋๋ค ๊ทธ๋ฌ๋ ์์๋ ์ด์ ๋ํ ๊ตฌํ ๋ถ. ns
๋ถ์ ์ฐพ์ ๋ณผ ์ ์๋ค.
์ ๊ตฌํ์ ๊ทธ๋ฆผ ์DIFS ( 1) check_pktTx_after_defer()์์
์ฐพ์ ์ ์๋ค. defercounter๋ผ๋ ๋ณ์๋ฅผ ์๋ก ์ ์ํ์ฌ ์ด
์ ์ ๊ฐ ์ํ ๋์๋์ง ํ์ธํ ์ ์๋๋ก ํ์์ผ๋ฉฐDIFS ,
์ฑ๋์ ๊ฒ์ฌํ๋ ์ฝ๋์ defercounter์ ์กฐํฉ์ผ๋ก ์กฐ๊ฑด๋ฌธ์
๋ง๋ค์ด ๊ตฌํํ์๋ค.
๋ฐฑ์คํ ์ง์ฐ ์ดํ์ ๋์2.1.3
ํ์ค์ ์ ์ ์ ๋ช
์ธ์ ์ํ๋ฉด ๋ฐฑ์คํ ํ์ด๋จธ[2] 9.2.5.2
๊ฐ ์ ๋๋ฌํ๋ฉด ์คํ
์ด์
์ ํจํท ์ ์ก์ ๋ฐ๋ก ์์ํ๋ค0 .
๊ทธ๋ฌ๋ ๊ทธ๋ฆผ ์( 1) check_pktTx()์์ ๋ณด๋ฏ์ด ์ ๊ตฌํ์ns
๋ฐฑ์คํ ํ์ด๋จธ๊ฐ ๋ง๋ฃํ ํ ์ฑ๋์ ์ํ๋ฅผ ๊ฐ์งํ๊ณ ๊ทธ์
๋ฐ๋ผ ๋ค๋ฅธ ๋์์ ํ๋ค.
์ด์ ๋ํ ํด๊ฒฐ์ check_pktTx_after_backoff()์์ ํ์ธํ
์ ์๋ค ํ์ค์์ ๋ง๋๋ก ์ฑ๋ ๊ฐ์ง๋ถ๋ถ์ ์ญ์ ํ๊ณ ํจํท.
์ ์ ์กํ๋ ๋ถ๋ถ๋ง์ ๋จ๊ฒจ๋์ผ๋ฉด ๋๋ค.
๋ฐฑ์คํ ์ง์ฐ ์๊ฐ2.1.4
ํ์ค์ ์ ์ ์ ๋ช
์ธ์ ์ํ๋ฉด ๋ฐฑ์คํ ์ง์ฐ ์๊ฐ[2] 9.2.4
์ ๊ธฐ์ค์ด ๋๋ CW๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค ์ฒซ.
์งธ ์ฌ์ ์ก ํ์๊ฐ, long retry limit ๋ณด๋ค ์์ผ๋ฉด CW๋ฅผ ๋
๋ฐฐ ๋๋ฆฐ๋ค ๋์งธ ์ฌ์ ์ก ํ์๊ฐ. , long retry limit์ short
retry limit์ฌ์ด์ ์์ผ๋ฉด CW๋ฅผ ๋๋ฆฌ์ง ์๋๋ค ์
์งธ ์ฌ์ . ,
์ก ํ์๊ฐ short retry limit๋ณด๋ค ํฌ๋ฉด ์ ์ก์ ํฌ๊ธฐํ๊ณ CW
๋ฅผ ์ด๊ธฐํํ๋ค ๊ทธ๋ฌ๋ ์ ๊ตฌํ์ ํ์ค์๊ณผ ์ ํ ๋ค๋ฅด. ns
๋ค ์ด์ ๋ํ ์์ ์ ๊ทธ๋ฆผ ์. ( 1) RetransmitDATA()์์ ํ
์ธํ ์ ์๋ค.
์ค๋ฅ ์ด๋ฒคํธ ๋น์ถ๋ ฅ2.2
๋ฌด์ ๋์์ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ ์ด๋ฒคํธ๋ ์ถฉ๋802.11 ,
์ ํ์ค๋ฅ ์ ํธ ๊ฐ์ ๋ก ์ธํ ํจํท ๋ฌด์ ๊ฐ ์๋ค, (Capture) .
์ด ์ํฉ๋ค์ ์์ ์คํ
์ด์
์ด ํจํท์ ์์ ํ ์ ์๋ ์ค
๋ฅ ์ํฉ์ด๋ค ์ฆ ๋ฐ์ดํฐ ์์ ์คํ
์ด์
์ด ํจํท์ ์ . , ACK
์กํ์ง ์๋ ์ํ์ด๋ค ์๋ฎฌ๋ ์ดํฐ๋ ํธ๋ ์ด์ค์ ๋ถ์์.
์ํํ๊ฒ ํ๊ธฐ ์ํด์ ํจํท์ด ์ ์ก๋์ง ์์ ์ด์ ๋ฅผACK
์ถ๋ ฅํด์ผ ํ๋ค ๊ทธ๋ ์ง๋ง ๋ ์ผ๋ถ์ ์ด๋ฒคํธ๋ง ์ถฉ๋์ํฉ. ns
์ ์ถ๋ ฅํ๋ค.
์ถฉ๋ ์ด๋ฒคํธ ๋น์ถ๋ ฅ2.2.1
๋ฌด์ ๋์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์ถฉ๋๋ก ํ๋จ802.11
ํ๋ค ์ฒซ์งธ ๋ ๊ฐ ์ด์์ ์คํ
์ด์
์ด ํจํท์ ๋์์ ์ ์ก. ,
ํ ๊ฒฝ์ฐ ๋์งธ ํจํท์ ์ ์ก์ค์ธ ์คํ
์ด์
์ ๋ค๋ฅธ ์คํ
์ด. ,
์
์ผ๋ก ๋ถํฐ ํจํท์ ๋ฐ์ ๊ฒฝ์ฐ ์
์งธ ํจํท์ ๋ค๋ฅธ ์คํ
์ด. ,
์
์ผ๋ก๋ถํฐ ํจํท์ ๋ฐ๊ณ ์์ ๋ ์์ ์ด ํจํท์ ์ ์กํ
๊ฒฝ์ฐ์ด๋ค ์ ์๋ ๋ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ ์ํฉ์ ์ ์ก ๋ชจ๋์. โ
์์ ์์ ํจํท ๋ฌด์ ๋ก ๋ถ๋ฅด๊ฒ ๋ค(TGN:TX mode ignore)โ .
inline void Mac802_11::transmit(Packet *p, double timeout) {
if(rx_state_ != MAC_IDLE) { ch->error() = 1; }}
void Mac802_11::recv(Packet *p, Handler *h) {
if(tx_active_ && hdr->error() == 0) { hdr->error() = 1; }}
void Mac802_11::recv_timer() {
if(tx_active_) { Packet::free(pktRx_); }}
์ฝ๋ ์ถฉ๋ ์ด๋ฒคํธ๋ฅผ ๋ฌด์ํ ์ ์ฝ๋[ 1] ns
๋ ์ ์ก ๋ชจ๋์์์ ์์ ํจํท ๋ฌด์ ์ํฉ์ ๋ฌด์ํns
๋ค ๊ทธ ๊ฒฐ๊ณผ ํธ๋ ์ด์ค ํ์ผ์ ์ถฉ๋ ์ฌ๋ถ๊ฐ ์ถ๋ ฅ๋์ง ์๋.
๋ค ์ด๋ฅผ ์
์ฆํ๋ ์ฝ๋๋ ์ฝ๋ ์ ์๋ค ๋ํ ์ฝ๋. [ 1] . , [ 1]
์ ํจ์์์ ์ฌ์ฉํ๋ error()๋ Packet ํด๋์ค์ ๋ฉ์๋๋ก
ํจํท์ ์ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ๋ก ์ค์ ํ๋๋ก ์ค๊ณ1
๋ ๊ฒ์ด๋ค ๊ทธ๋ฌ๋ ์ฝ๋ ์์ ๋ณด๋ฏ์ด ๋ ์ถฉ๋ ์ํฉ์. [ 1] ns
์ error()๋ฅผ ์ฌ์ฉํ์ฌ ์ค๊ณ ์๋๋ฅผ ๋ฌด์ํ๊ณ ์๋ค.
ํจํท์ ์ ํ ์ค๋ฅ ์ด๋ฒคํธ ๋น์ถ๋ ฅ2.2.2
์ ํ ์ค๋ฅ ์ด๋ฒคํธ๋ ์ ํ์ผ์ ์ ์๋ ์คerrmodel.h cc
- 3. ๋ฅ ๋ชจ๋ธ์ ์ฌ์ฉํจ์ผ๋ก์จ ๋ฐ์์ํฌ ์ ์๋ค ์ค๋ฅ ๋ชจ๋ธ์.
ํ๋ฅ ์ ์ผ๋ก ์ค๋ฅ ๋ชจ๋ธ์ ๊ณ์ฐํ์ฌ ํด๋์ค์ ์ ์Packet
๋ error() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ error_ ํ๋์ ์ ๋์
ํ๋ค1 .
๊ทธ๋ฌ๋ ๋ ์ฝ๋ ์์ ๋ณด๋ ๋ฐ์ ๊ฐ์ดns [ 2] discard()์์
error_์ ์ด ๋์
๋ ํจํท์ ์ญ์ ํ์ฌ ํธ๋ ์ด์ค ํ์ผ์์ด1
๋ฒคํธ๋ฅผ ์ถ๋ ฅํ์ง ์๋๋ค.
void Mac802_11::discard(Packet *p, const char* why) {
if(ch->error() != 0) { Packet::free(p); }}
์ฝ๋ ์ ํ ์ค๋ฅ ์ด๋ฒคํธ๋ฅผ ๋ฌด์ํ ์ ์ฝ๋[ 2] ns
์ ํธ ๊ฐ์ ๋ก ์ธํ ํจํท ๋ฌด์ ์ด๋ฒคํธ ๋น์ถ๋ ฅ2.2.3
์ ํธ ๊ฐ์ ๋ก ์ธํ ํจํท ๋ฌด์ ํ์์ ์บก์ณ ํ(Capture)
์์ด๋ผ ๋ถ๋ฆฌ๋ฉฐ ์์ ๋ณด๊ณ ๋ ๋ฐ ์๋ค ์์๋ ์ ์ [4] . ns [4]
์ํ ๋ฐฉ๋ฒ์ ์ ์ฉํ์ฌ ์บก์ณ ํ์์ ๊ตฌํํ์๋ค ๊ทธ๋ฌ๋.
์ฝ๋ ์[ 3] capture()์์ ๋ณด๋ฏ์ด ํธ๋ ์ด์ค ํ์ผ์ ์ถ๋ ฅํ
์ง ์๋๋ค.
void Mac802_11::capture(Packet *p) { Packet::free(p); }
์ฝ๋ ์บก์ณ ํ์์ ๋ฌด์ํ ์ ์ฝ๋[ 3] ns
์ค๋ฅ ์ด๋ฒคํธ ๋น์ถ๋ ฅ ํ์ ํด๊ฒฐ2.2.4
ํ์ฌ๊น์ง์ ์ค๋ฅ ์ด๋ฒคํธ ๋น์ถ๋ ฅ ํ์ ๋ถ์์ผ๋ก ๋ค์๊ณผ
๊ฐ์ ๊ฒฐ๋ก ์ ๋ผ ์ ์๋ค ์ ๊ตฌํ์ ์ถฉ๋ ์ค๋ฅ ์บก์ณ ํ. ns , ,
์์ด ์์ฌ ๋ถ์ ํํ ์ฑ๋ฅ ์ธก์ ์ ํ ์ ๋ฐ์ ์๋ค ๋ณธ ๋
ผ.
๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ ์ํ๋ค.
์ ํ์ค๋ฅ
(ERR)
์ถฉ๋
(COL)
์ ์ก ๋ชจ๋์์์ ์
์ ํจํท ๋ฌด์ (TGN)
ํธ๋ ์ด์ค ํ์ผ์
์ถ๋ ฅ๋๋ ๋ฌธ์์ด
1 1 1 ERRCOLTGN
1 1 0 ERRCOL
1 0 1 ERRTGN
1 0 0 ERR
0 1 1 COLTGN
0 1 0 COL
0 0 1 TGN
0 0 0 ๋ฌธ์์ด ์์
ํ ํจํท์ ๋ฐ์ ๊ฐ๋ฅํ ์ค๋ฅ ์ด๋ฒคํธ์ ์กฐํฉ< 1>
์ฒซ์งธ ์ถฉ๋ ์ ์ก ๋ชจ๋ ํจํท ๋ฌด์ ์ค๋ฅ ์ด๋ฒคํธ๊ฐ ํ๋์, , ,
ํจํท์ ๋์์ ๋ฐ์ํ ์ ์๋ค๋ ์ ์ ์ฐฉ์ํ์๋ค ์ ์ก๋.
ํจํท์ ํ ๊ณผ ๊ฐ์ด ๊ฐ์ ์ํ๋ฅผ ๊ฐ์ง ์ ์๋ค ํจํท< 1> 8 .
์ ์ํ์ ๋ฐ๋ผ์ ํ ์ ์ค๋ฅธ์ชฝ์ ๋ช
์ํ ๋ฌธ์์ด์ด< 1>
ํธ๋ ์ด์ค ํ์ผ์ด ์ถ๋ ฅ๋๋ค ์ธ๋ถ์ ์ธ ์ค๋ฅ ์ด๋ฒคํธ ์ถ๋ ฅํ.
๋ ๊ฒ์ด ๋ถ์ ์ ํผ๋์ ์ฃผ์ง ์๋ค.
๋์งธ ์ด๋ฒคํธ ์ถ๋ ฅ์ ์์ ์คํ
์ด์
์์๋ง ์ฒ๋ฆฌํ๋ค, .
๊ทธ๋ฆผ ์์ ๋ณด๋ฏ์ด( 2) recv_timer()๋ฅผ ์ ์ธํ ํจ์๋ค์ ์ค๋ฅ
์ด๋ฒคํธ ๋ฐ๊ฒฌ ์ ํด๋นํ๋ ์ด๋ฒคํธ ํ๋๊ทธ๋ฅผ ๋ก ๋์
ํ๋ค1 .
๊ทธ๋ฆฌ๊ณ recv_timer()์์ ์ด๋ฒคํธ๋ฅผ ์ถ๋ ฅํ๋ค.
๊ทธ๋ฆผ ์ ์ํ๋ ์ค๋ฅ ์ด๋ฒคํธ ์ถ๋ ฅ ์๊ณ ๋ฆฌ์ฆ( 5)
๊ทธ๋ฆผ ๋ ์ ์ํ๋ ์ค๋ฅ ์ด๋ฒคํธ ๊ฒ์ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค( 2) .
transmit()์ ์ก์ ์คํ
์ด์
์์ ํธ์ถ๋๋ฉฐ ๋๋จธ์ง ํจ์๋ค์
์์ ์คํ
์ด์
์์ ๋์ํ๋ค. recv()๋ ์์ ์คํ
์ด์
์ ํจ
ํท์ ์ฒซ ๋นํธ๊ฐ ๋์ฐฉํ์ ๋, recv_timer()๋ ํจํท ์ ์ฒด๊ฐ
์์ ์คํ
์ด์
์ ๋์ฐฉํ์ ๋ ํธ์ถ๋๋ค ๋ฐ์ค์ ์ด๋ฒคํธ ๋ด.
์ฉ์ ์ถ๋ ฅํ๋ ๋ถ๋ถ์ ํ์ํ ๊ฒ์ด๋ค.
๋ชจ์์ ์ถ๋ ฅํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ธ๋ ๋ค์๊ณผ ๊ฐ๋ค ์ฒซ์งธ. ,
์บก์ณ ํ์์ ์ฒ๋ฆฌํ๋ capture()๋ ์ฒซ ๋นํธ ์์ ์ ์ ํธ์
๊ฐ๋๋ฅผ ์ ์ ์์ผ๋ฏ๋ก ๋ฐ๋ก ์ด๋ฒคํธ๋ฅผ ์ถ๋ ฅํ๋ค ๋์งธ. ,
collision()์์ ์คํ
์ด์
์ ํ๋์ ํจํท๋ง์ ์์ ํ ์ ์
์ผ๋ฏ๋ก ์์ ์ง๊ฐ ๊ฐ์ ๋ ๊ฐ ์ด์์ ํจํท์ด ์์ ๋ ๊ฒฝ์ฐ
๋ ํ๋๋ง์ ๋จ๊ธฐ๊ณ ๋ค๋ฅธ ํจํท์ ์ญ์ ํด์ผ ํ๋ค.
์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ๋ง์ ์ธก์ ํ๊ธฐ ์ํ ๊ธฐ๋ฒ2.3 MAC
์ ํ๋กํ ์ฝ์ ๋น ํ์ฑํํ๋ ์ฝ๋๋ฅผ ์ฝ์
ํ๋ns ARP
๊ธฐ๋ฒ ์ ์ฐ๊ตฌ์๋ค ์ฌ์ด์์ ์๋ ค์ง ๊ธฐ์ ์ด๋ค ์ฝ[3] MAC . [
๋ ๋ ์์ ์ ์ํ ๊ธฐ๋ฒ์ด๋ค4] [3] .
- 4. int ARPTable::arpresolve(nsaddr_t dst, Packet *p, LL *ll) {
hdr_cmn *ch = HDR_CMN(p);
mac_->hdr_dst( (char*) HDR_MAC(p), ch->next_hop() );
return 0; }
์ฝ๋ ์ ๊ธฐ๋ฅ ๋๋ ์ฝ๋[ 4] [3] ARP
์ฝ๋ ๋ ๋ผ์ฐํ
ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ง ์๋๋ก[ 4]
DumbAgent ํด๋์ค๋ฅผ ๊ฐ์ด ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์๋ฎฌ๋ ์ด์
์ํ
์ ์ค๋ฅ๋ฅผ ๋ฐ์ํ๋ค ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ฝ๋ ์ ๊ฐ์ด ํ. [ 5]
์ฅํด์ผ ํ๋ค ์ฝ๋ ๋ ํ
์ด๋ธ์ ๋ชฉ์ ์ง์ ๋ํ ์. [ 5] ARP
ํธ๋ฆฌ ๊ฐ ์๋์ง ํ์ธํ๊ณ ์์ผ๋ฉด ์ํธ๋ฆฌ๋ฅผ ์ถ๊ฐํ(entry)
๋ค. ARPNextHop์ ์คํฌ๋ฆฝํธ์์tcl true์ด๋ฉด ๋ฅผ ๋๊ณ ARP ,
false์ด๋ฉด ๋ฅผ ํค๋๋ก ์ถ๊ฐํ ๋ณ์์ด๋คARP .
int ARPTable::arpresolve(nsaddr_t dst, Packet *p, LL *ll) {
if (ARPNextHop_ == true) {
ARPEntry *llinfo; llinfo = arplookup(dst);
if(llinfo == 0) {
llinfo = new ARPEntry(&arphead_, dst);
llinfo->macaddr_ = dst; llinfo->up_ = 1;
llinfo->count_ = 0; llinfo->hold_ = 0; }
mac_->hdr_dst((char*) HDR_MAC(p), dst);
return 0 ; }}
์ฝ๋ ์ ์ํ๋ ๊ธฐ๋ฅ ๋๋ ์ฝ๋[ 5] ARP
์คํ ๋ฐ ๊ฒฐ๊ณผ3.
์คํ ํ๊ฒฝ ์ค์ 3.1
์์ ๋ ๋ชจ๋์ ๊ฒ์ฆํ๊ธฐ ์ํ ํ๊ฒฝ์ค์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ฐ์ ์คํ
์ด์
์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ฉฐ ์ ๋ผ์ฐ33 UDP , ARP
ํ
ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ง ์๋๋ค ์ฆ ๋ณธ ๋
ผ๋ฌธ์์ ์ ์ํ. ,
๋ฐฉ๋ฒ์ผ๋ก ๋ฅผ ๋น ํ์ฑํํ์์ผ๋ฉฐARP , DumbAgent๋ฅผ ์ฌ์ฉํ
์ฌ ๋ผ์ฐํ
ํ๋กํ ์ฝ์ ๋์์ ๋น ํ์ฑํํ์๋ค.
์คํ์ ํธ๋ํฝ์ ์์ฑํ์ฌ ํธCBR(Constant Bit Rate)
๋ํฝ ๋ถํ ๋ฅผ ๋์ฌ๊ฐ๋ฉด์ ์ํํ์๋ค ํจํท์(offered load) .
๋ฐ์ดํฐ ํฌ๊ธฐ๋ ์ด๋ฉฐ ํจํท ์ ์ก ์๋๋ก ํธ๋ํฝ1000byte ,
๋ถํ๋ฅผ ์กฐ์ ํ์๋ค ์๋ฎฌ๋ ์ด์
์ ์ด ๋์ ๋ฒ ๋ฐ๋ณตํ. 300 10
์์ผ๋ฉฐ ๋ถ์์ ๋ฒ์ ํ๊ท ์ ์ด์ฉํ์๋ค ๋์ญํญ์, 10 .
๋ฌผ๋ฆฌ ๊ณ์ธต์2Mbps, DSSS (Direct-Sequence Spread
์ก์ ๊ธฐ์ ๊ทธ ์ธ ํ๋กํ ์ฝ ์ธ์๋ค์ ํSpectrum) , 802.11
์ค์์์ ๋ช
์ํ ๊ฐ์ ์ฌ์ฉํ์๋ค.
๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ ์์ ๊ฒ์ฆ3.2
๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ์ ์ํฅ๋ง์ ๊ณ ๋ คํ๊ธฐ ์ํด์ ์ธ ๊ฐ์
ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์๋ค ์๋ ๋ณธ ๋
ผ๋ฌธ์์ ์ ์ํns . ns-A
๋ ๋ชจ๋ ํจ์น๋ฅผ ์ ์ฉํ์์ผ๋ฉฐ ์๋ ๋ฐฑ์คํ ํจ์น๋ง, ns-B
์ ์ธ ๋ ํจ์น๋ง์ ์ ์ฉํ ๊ฒ์ด๋ค ์ค๋ฅ ๋ชจ๋ธ์, ns-C ARP .
์ํฅ์ ๋ฐฐ์ ํ๊ธฐ ์ํด์ ์ค๋ฅ ๋ชจ๋ธ์ ์ฝ์
ํ์ง ์์๋ค.
๊ทธ๋ฆผ ์ ์ธ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋ํด์ ์ถฉ๋๋ฅ ์ ๋์( 3)
ํ ๊ฒ์ด๋ค ๋ถ์์ ํธ๋ ์ด์ค ํ์ผ์ ๊ณผ ๋ฌธ. "COL" "TGN"
์์ด์ด ๋ณด์ด๋ฉด ์ถฉ๋๋ก ์ธ์์ผ๋ฉฐ ๊ณ์ฐ์ ์ถฉ๋ ํ์๋ฅผ ํจํท,
์ ์ก ํ์๋ก ๋๋์๋ค.
๊ทธ๋ฆผ ๊ฒฐ๊ณผ์์ ๋ณด๋ฏ์ด ๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ์ ์์ ์ ์ถฉ( 3)
๋๋ฅ ๋ณํ์ ์ํฅ์ ์ฃผ์ง ์์๋ค.
์ค๋ฅ ์ด๋ฒคํธ ์ถ๋ ฅ ์๊ณ ๋ฆฌ์ฆ ๊ฒ์ฆ3.3
์ค๋ฅ ์ด๋ฒคํธ์ ๊ฒ์ฆ ์๊ณ ๋ฆฌ์ฆ์ ์ํฅ๋ง์ ๊ณ ๋ คํ๊ธฐ ์
ํด์ ์ธ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์๋ค ์ ๋ns . ns-A ns-C
์ ์์ ์ฌ์ฉํ ํ๋ก๊ทธ๋จ๊ณผ ๋์ผํ๋ฉฐ ์๋ ์ถฉ๋๋ฅ 3.2 , ns-B
๊ฒ์ฆ ํจ์น๋ง ์ํ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์๋ค.
๊ทธ๋ฆผ ์ ์ธ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋ํด์ ์ถฉ๋๋ฅ ์ ๋์ํ( 4)
๊ฒ์ด๋ค ๊ทธ๋ฆผ ์ ๊ฒฐ๊ณผ์์ ๋ณด๋ฏ์ด ์์ ๋ ์๊ณ ๋ฆฌ์ฆ์. ( 4)
์ถฉ๋๋ฅ ์ ๊ธฐ์กด์ ์ ์ถฉ๋๋ฅ ๋ณด๋ค ๋๊ฒ ๋์์ผ๋ฉฐ ๊ทธns-2.31
์ค์ฐจ๋ ํ๊ท ์ด๋ค ํธ๋ ์ด์ค ํ์ผ์ ๋ถ์๊ณผ ์ถฉ๋๋ฅ ์4.6% .
๊ณ์ฐ์ ์ ๊ณผ ๋์ผํ๋ค3.2 .
๊ทธ๋ฆผ ๋ฐฑ์คํ ์์ ๊ฒฐ๊ณผ( 3)
๋ถ์ ๊ทธ๋ํ
๊ทธ๋ฆผ ์ค๋ฅ ์ด๋ฒคํธ ์์ ( 4)
๊ฒฐ๊ณผ ๋ถ์ ๊ทธ๋ํ
๊ฒฐ๋ก 4.
๋ณธ ๋
ผ๋ฌธ์ ๋คํธ์ํฌ ์๋ฎฌ๋ ์ดํฐ ์ ๋ฒ๊ทธ๋ฅผ ๋ณด๊ณ ns-2.31
ํ๊ณ ์์ ๋ฐฉ์์ ์ ์ํ๋ค ๊ฒฐ๋ก ์ ์ผ๋ก ๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ์.
๊ฒฝ์ฐ ์ ์ํ๋ ์์ ๋ฐฉ์์ ๊ธฐ์กด์ ๋ฐฑ์คํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ฒฐ
๊ณผ๊ฐ ๊ฐ์์ ํจ์น์ ์๋ฏธ๊ฐ ์์๋ค ๊ทธ๋ฌ๋ ์ ์ค. ns-2.31
๋ฅ ์ด๋ฒคํธ์ ๋ถ์ ํํ ์ถ๋ ฅ ์๊ณ ๋ฆฌ์ฆ์ ์ค์ ๋ก ์ค์ฐจ๋ฅผ ๋ฐ
์์ํค๊ณ ์์์ ํ์ธํ์์ผ๋ฉฐ ๋ฅผ ๋๊ณ ํค๋ ๊ธฐ๋ฒ์, ARP
ํธ๋ ์ด์ค ํ์ผ์ ๋ถ์ ๋๊ตฌ์ ์์ฑ์ ์ฝ๊ฒ ํ์๋ค.
์ถํ ์ฐ๊ตฌ๋ก๋ ์ฌ๋ฌ ๊ฐ์ง ์ฑ๋ฅ ์ฒ๋๋ฅผ ๊ณ์ฐํ๊ณ ์ ์
๋ ค์ง ์ํ๋ชจ๋ธ๊ณผ ๋น๊ตํ์ฌ ์์ ์๋ชป ๊ตฌํ๋ ์๊ณ ns-2.31
๋ฆฌ์ฆ์ ๊ณ์ ์ฐพ์๋ผ ๊ฒ์ด๋ค.
์ฐธ๊ณ ๋ฌธํ
[1] "Network Simulator ns-2",
http://www.isi.edu/nsnam/ns/
[2] ANSI/IEEE Std 802.11, Part 11: Wireless LAN
Medium Access Control (MAC) and Physical Layer
(PHY) Specifications, 1999
[3] "Nabble Free Forum for ns-2",
ht tp://www .n ab ble .com/Re% 3A- AOMDV-for-n s-2.2 9-A
vailable-p10379709.html
[4] A. Kochut, A. Vasan, A. U. Shankar, and A.
Agrawala, "Sniffing out the correct Physical Layer
Capture model in 802.11b", pp. 252-261, Proc. of
ICNP'04, Oct. 2004