SlideShare a Scribd company logo
1 of 4
์„œ๋ก 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% .
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
๋ฅ˜ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค ์˜ค๋ฅ˜ ๋ชจ๋ธ์€.
ํ™•๋ฅ ์ ์œผ๋กœ ์˜ค๋ฅ˜ ๋ชจ๋ธ์„ ๊ณ„์‚ฐํ•˜์—ฌ ํด๋ž˜์Šค์— ์ •์˜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] .
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

More Related Content

Similar to technical report

MutiCore 19-20
MutiCore 19-20MutiCore 19-20
MutiCore 19-20HyeonSeok Choi
ย 
Half sync/Half Async
Half sync/Half AsyncHalf sync/Half Async
Half sync/Half Asyncscor7910
ย 
[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?
[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?
[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?NAVER D2
ย 
Secure coding-c-preprocessor-2
Secure coding-c-preprocessor-2Secure coding-c-preprocessor-2
Secure coding-c-preprocessor-2Seungyong Lee
ย 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programmingihpark92
ย 
Malzilla tutorial2
Malzilla tutorial2Malzilla tutorial2
Malzilla tutorial2re4lfl0w
ย 
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌModern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌํฅ๋ฐฐ ์ตœ
ย 
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐPark JoongSoo
ย 
NLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracle
NLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracleNLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracle
NLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracle์—‘์…ˆ
ย 
Rx java essentials
Rx java essentialsRx java essentials
Rx java essentialsByeongsu Kang
ย 
ํ€ด์ฆˆ์š”์•ฝ
ํ€ด์ฆˆ์š”์•ฝํ€ด์ฆˆ์š”์•ฝ
ํ€ด์ฆˆ์š”์•ฝHyoungJun Kim
ย 
๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1
๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1
๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1dldmsmchddldmschd
ย 
MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)
MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)
MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)์ฃผ์˜ ์†ก
ย 
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•Daniel Kim
ย 
[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜
[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜
[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜arundine
ย 
Eddy_description.pptx
Eddy_description.pptxEddy_description.pptx
Eddy_description.pptxKimSanghoon10
ย 

Similar to technical report (20)

MutiCore 19-20
MutiCore 19-20MutiCore 19-20
MutiCore 19-20
ย 
๋ฌธ์žํ•จ์ˆ˜(1)
๋ฌธ์žํ•จ์ˆ˜(1)๋ฌธ์žํ•จ์ˆ˜(1)
๋ฌธ์žํ•จ์ˆ˜(1)
ย 
Half sync/Half Async
Half sync/Half AsyncHalf sync/Half Async
Half sync/Half Async
ย 
[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?
[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?
[143] Modern C++ ๋ฌด์กฐ๊ฑด ์จ์•ผ ํ•ด?
ย 
Secure coding-c-preprocessor-2
Secure coding-c-preprocessor-2Secure coding-c-preprocessor-2
Secure coding-c-preprocessor-2
ย 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programming
ย 
Malzilla tutorial2
Malzilla tutorial2Malzilla tutorial2
Malzilla tutorial2
ย 
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌModern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
ย 
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
ย 
NLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracle
NLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracleNLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracle
NLJ BATCH์™€ ๋ถ€๋ถ„๋ฒ”์œ„ ์ฒ˜๋ฆฌ_Wh oracle
ย 
Rx java essentials
Rx java essentialsRx java essentials
Rx java essentials
ย 
ํ€ด์ฆˆ์š”์•ฝ
ํ€ด์ฆˆ์š”์•ฝํ€ด์ฆˆ์š”์•ฝ
ํ€ด์ฆˆ์š”์•ฝ
ย 
๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1
๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1
๊ตญ๋ฏผ๋Œ€ํ•™๊ต ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ #1
ย 
Reproducible research(2)
Reproducible research(2)Reproducible research(2)
Reproducible research(2)
ย 
MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)
MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)
MapReduce ์‹คํ–‰ ์ƒ˜ํ”Œ (K-mer Counting, K-means Clustering)
ย 
ice_grad
ice_gradice_grad
ice_grad
ย 
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•
์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•
ย 
[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜
[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜
[170517 5์ฃผ์ฐจ]C์–ธ์–ด A๋ฐ˜
ย 
Tcp server / client
Tcp server / clientTcp server / client
Tcp server / client
ย 
Eddy_description.pptx
Eddy_description.pptxEddy_description.pptx
Eddy_description.pptx
ย 

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