MMS-HW4,5-SpringSemester2012- V13.pdf

‫ﺑﻪ ﻧﺎم ﺧﺎﻟﻖ زﻳﺒﺎﻳﻲﻫﺎ‬
‫ﭘﺮدازش وﻳﺪﻳﻮ‪ /‬ﺷﺒﻜﻪ ﺳﺎزي‬
‫‪Multimedia Systems‬‬
‫ﺳﺎﻣﺎﻧﻪ ﻫﺎي ﭼﻨﺪ رﺳﺎﻧﻪ اﻳﻲ‬
‫ﻣﻬﻠﺖ ارﺳﺎل‪ 10 :‬ﺗﻴﺮﻣﺎه‬
‫داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫ﻣﺪرس‪ :‬دﻛﺘﺮاﻣﻴﺮي‪ -‬دﻛﺘﺮ رﺑﻴﻌﻲ‬
‫در اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬اﺑﺘﺪا ﻣﺒﺎﻧﻲ ﻓﻨﺎوري وﻳﺪﻳﻮ را ﻣﻲآﻣﻮزﻳﺪ و ﺳﭙﺲ ﻓﺸﺮده ﺳﺎزي ﺗﺼﻮﻳﺮ ﻣﺘﺤﺮك ﻳﺎ وﻳﺪﺋﻮ‪ ،‬ﭘﻴﮕﻴﺮي ﻣﻲﺷﻮد و ﺳﭙﺲ داﻧﺶ‬
‫ﺧﻮد را در ﺷﺒﻜﻪ ﺳﺎزي ﭼﻨﺪرﺳﺎﻧﻪاي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲدﻫﻴﺪ‪ .‬آﻧﭽﻪ ﻛﻪ ﺑﺎﻳﺴﺘﻲ ﺗﺤﻮﻳﻞ داده ﺷﻮد ﺷﺎﻣﻞ ﭘﺎﺳﺦ ﺳﺆالﻫﺎ ﻣﻄﺮح ﺷﺪه در‬
‫ﺻﻮرت ﺗﻤﺮﻳﻦﻫﺎ )در ﻗﺎﻟﺐ ﻳﻚ ﮔﺰارش ﺑﺎ ﻓﺮﻣﺖ ‪ ،(PDF‬ﻧﻤﻮدارﻫﺎ‪ ،‬ﺷﻜﻞﻫﺎي ﺧﺮوﺟﻲ‪ m‬ﻓﺎﻳﻞﻫﺎ و ‪m‬ﻓﺎﻳﻞﻫﺎ و ﻗﺴﻤﺘﻲ از‬
‫ﻓﺎﻳﻞﻫﺎي‪ trace‬ﻣﺮﺑﻮط ﺑﻪ آزﻣﺎﻳﺶﻫﺎﻣﻲﺑﺎﺷﺪ‪ .‬ﻟﻄﻔﺎً ﺗﻤﺎﻣﻲ ﻓﺎﻳﻞﻫﺎ را ﺑﻪ ﺻﻮرت ﻳﻚ ﻓﺎﻳﻞ ﻓﺸﺮده‪ ،‬ﻛﻪ ﻧﺎم آن در ﻗﺎﻟﺐ‬
‫‪ HW4,5_LastName_StudentID‬ﺑﺎﺷﺪ ﻛﻪ در آن ﺑﻪ ﺟﺎي ‪ LastName‬ﻧﺎم ﺧﺎﻧﻮادﮔﻲ ﺷﻤﺎ و ﺑﻪ ﺟﺎي ‪ StudentID‬ﺷﻤﺎره‬
‫داﻧﺸﺠﻮﻳﻲ ﺷﻤﺎ ﻗﺮار ﻣﻲﮔﻴﺮد‪ ،‬ﺑﻪ آدرس درس ﺑﻔﺮﺳﺘﻴﺪ‪ .‬ﻟﻄﻔﺎً ﻋﻨﻮان ‪ email‬ﺧﻮد را ‪ MM-HW4,5‬ﻗﺮار دﻫﻴﺪ‪.‬‬
‫‪1‬‬
‫ﺳﻮالﻫﺎي اﺣﺘﻤﺎﻟﻲ در ﻣﻮرد وﻳﺪﻳﻮ را از ﻧﻴﻤﺎ ﻧﺠﻒ زاده و ﺳﻮال ﻫﺎي ﺷﺒﻜﻪ را از ﻣﻬﺮداد ﻣﺮادي ﺑﭙﺮﺳﻴﺪ‪.‬‬
‫‪1‬‬
‫ﺷﻤﺎ ﻣﻲﺗﻮاﻧﻴﺪ ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ ،aviread‬ﺗﺼﺎوﻳﺮ وﻳﺪﺋﻮﻳﻲ ﺑﻪ ﻓﺮﻣﺖ ‪ AVI‬را در ‪ MATLAB‬ﺑﺎز ﻛﻨﻴﺪ‪ .‬ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ ﻣﺘﻠﺐ‬
‫ﺗﻨﻬﺎ ﻗﺎدر ﺑﻪ ﭘﺮدازش وﻳﺪﺋﻮﻫﺎي ﻏﻴﺮﻓﺸﺮده و ﺧﺎم ﺑﻪ ﻓﺮﻣﺖ ‪ AVI‬اﺳﺖ‪ .‬دﺳﺘﻮرات دﻳﮕﺮي ﭼﻮن ‪ avifile‬و ‪ frame2im‬و ‪im2frame‬‬
‫و ‪ addframe‬ﻧﻴﺰ ﺟﻬﺖ ﭘﺮدازش وﻳﺪﺋﻮ در ﻣﺘﻠﺐ ﺑﻪ ﻛﺎر ﻣﻲروﻧﺪ‪.‬‬
‫‪ -1‬دﺳﺘﻮرات ﺑﺎﻻ را در ﻣﺘﻠﺐ ﻣﺮور ﻛﺮده و ﺑﺎ اﺳﺘﻔﺎده از ‪ ،HELP‬ﺑﺎ ﮔﺰﻳﻨﻪﻫﺎي آنﻫﺎ آﺷﻨﺎ ﺷﻮﻳﺪ‪.‬‬
‫‪ -2‬ﻛﺪ زﻳﺮ‪ ،‬ﻧﺤﻮه ﺑﻪﻛﺎرﮔﻴﺮي دﺳﺘﻮرات ﻓﻮق را در ﻣﺤﻴﻂ ﻣﺘﻠﺐ ﻧﺸﺎن ﻣﻲدﻫﺪ در اﻳﻦ ﺑﺮﻧﺎﻣﻪ‪ ،‬ﻳﻚ ﻓﺎﻳﻞ وﻳﺪﺋﻮﻳﻲ در ﻣﺘﻠﺐ ﺧﻮاﻧﺪه ﺷﺪه‬
‫و ﺑﺎ ﺗﻐﻴﻴﺮ اﻧﺪازه ﻓﺮﻳﻢﻫﺎي آن دوﺑﺎره در ﻣﺘﻠﺐ ذﺧﻴﺮه ﻣﻲﮔﺮدد‪.‬‬
‫‪%***************************************/‬‬
‫‪% Example – to scale a given video to QVGA (320x240) resolution‬‬
‫;)' ‪fin = input('insert input video name:‬‬
‫;'‪fout = 'out.avi‬‬
‫;)‪fileinfo = aviinfo(fin‬‬
‫;‪nframes = fileinfo.NumFrames‬‬
‫‪aviobj = avifile(fout, 'compression', 'none',‬‬
‫;)‪'fps',fileinfo.FramesPerSecond‬‬
‫‪for i = 1:nframes‬‬
‫‪%Read frames from input video‬‬
‫;)‪mov_in = aviread(fin,i‬‬
‫;)‪im_in = frame2im(mov_in‬‬
‫‪%Do processing on each frame of the video‬‬
‫‪%In this example - scaling‬‬
‫;)‪[htwdch] = size(im_in‬‬
‫;)'‪im_out = imresize(im_in, [240 320], 'bilinear‬‬
‫‪%Write frames to output video‬‬
‫;))‪frm = im2frame(im_out, gray(256‬‬
‫;)‪aviobj = addframe(aviobj,frm‬‬
‫;‪end‬‬
‫‪nframes%Just to display frame number‬‬
‫‪%Don't forget to close output file‬‬
‫;)‪aviobj = close(aviobj‬‬
‫;‪return‬‬
‫‪%***************************************/‬‬
‫اﻳﻦ ﻛﺪ را در ﻣﺤﻴﻂ ﻣﺘﻠﺐ اﺟﺮا ﻛﻨﻴﺪ‪ .‬ﻳﻚ ﻓﻴﻠﻢ ﺑﻪ ﻓﺮﻣﺖ ‪ avi‬ﺑﻪ ﻋﻨﻮان ورودي ﺑﻪ ﺗﺎﺑﻊ داده و ﻧﺘﻴﺠﻪ ﺣﺎﺻﻞ را ﺑﺒﻴﻨﻴﺪ‪ .‬ﺑﺮاي راﺣﺘﻲ ﻣﻲ‪-‬‬
‫ﺗﻮاﻧﻴﺪ از ﻓﻴﻠﻢﻫﺎي ﻗﺮار ﮔﺮﻓﺘﻪ ﺑﺮ روي ﺳﺎﻳﺖ درس اﺳﺘﻔﺎده ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ -3‬ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﺑﻨﻮﻳﺴﻴﺪ و در آن ‪ 50‬ﻓﺮﻳﻢ اﺑﺘﺪاﻳﻲ از ﻳﻚ ﻓﻴﻠﻢ دﻟﺨﻮاه را ﺧﻮاﻧﺪه و ﺳﭙﺲ ﺑﺮ روي ﻓﺮﻳﻢﻫﺎ ﻳﻚ ﻓﻴﻠﺘﺮ ‪ median‬اﻋﻤﺎل‬
‫ﻛﻨﻴﺪ‪ .‬ﺳﭙﺲ ﻓﺮﻳﻢﻫﺎي ﭘﺮدازش ﺷﺪه را در ﻗﺎﻟﺐ ﻳﻚ ﻓﻴﻠﻢ ﺟﺪﻳﺪ ذﺧﻴﺮه ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ -4‬ﻳﻚ ﺑﻨﻮﻳﺴﻴﺪ و در آن ‪ 50‬ﻓﺮﻳﻢ اﺑﺘﺪاﻳﻲ از ﻳﻚ ﻓﻴﻠﻢ را ﺧﻮاﻧﺪه و ﺳﭙﺲ ﺑﻪ اﻧﺘﻬﺎي آن ﭼﻨﺪ ﺗﺼﻮﻳﺮ دﻟﺨﻮاه اﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﺪ‪ .‬ﺳﭙﺲ ﺣﺎﺻﻞ‬
‫اﻳﻦ ﭘﺮدازش را در ﻗﺎﻟﺐ ﻳﻚ ﻓﻴﻠﻢ ﺟﺪﻳﺪ ذﺧﻴﺮه ﻧﻤﺎﻳﻴﺪ‪ .‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﺳﺎﻳﺰ ﺗﺼﺎوﻳﺮ اﺿﺎﻓﻪ ﺷﺪه ﺑﺎﻳﺪ ﻫﻤﺎﻧﻨﺪ ﺳﺎﻳﺰ ﻓﺮﻳﻢﻫﺎي وﻳﺪﺋﻮ ﺑﺎﺷﺪ‪.‬‬
‫‪2‬‬
‫ﺗﺸﺨﻴﺺ ﻋﻮض ﺷﺪن ﺻﺤﻨﻪ در وﻳﺪﻳﻮ ﻧﻘﺶ ﻣﻬﻤﻲ در ﭘﺮدازش وﻳﺪﻳﻮ ﺑﺮ اﺳﺎس ﻣﺤﺘﻮا‪ 2‬دارد در اﻳﻦ ﻗﺴﻤﺖ ﻣﺎ ﺑﻪ دﻧﺒﺎل ﻃﺮاﺣﻲ و ﭘﻴﺎده‬
‫ﺳﺎزي ﻳﻜﺘﺸﺨﻴﺺ دﻫﻨﺪه ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪ ﻫﺴﺘﻴﻢ ﻛﻪ ﺗﻐﻴﻴﺮاﺗﻲ ﻣﺜﻞ‪Fade ،Cut‬و ‪ Wipe‬را ﺗﺸﺨﻴﺺ دﻫﺪ‪.‬‬
‫‪ : CUT‬ﻳﻚ ﺗﻐﻴﻴﺮ ﻧﺎﮔﻬﺎﻧﻲ ﺻﺤﻨﻪ اﺳﺖ‪ .‬ﺑﺮاي درك اﻳﻦ ﻣﻮﺿﻮع ﺑﺎ اﺳﺘﻔﺎده از ‪cut.mpg ،mpgread.m‬را ﺑﺨﻮاﻧﻴﺪ‪ .‬ﻣﺸﺎﻫﺪه ﺧﻮاﻫﻴﺪ‬
‫ﻛﺮد اﻧﺘﻘﺎل ﺑﻴﻦ دو ﺻﺤﻨﻪ ﺧﻴﻠﻲ ﻧﺎﮔﻬﺎﻧﻲ و ﺑﺪون ﻫﻴﭻ ﻓﺮﻳﻢ واﺳﻄﻲ اﻧﺠﺎم ﻣﻲﺷﻮد‪.‬‬
‫‪: Dissolve‬ﻳﻚ ﺗﺮﻛﻴﺐ ﺧﻄﻲ واﺑﺴﺘﻪ ﺑﻪ زﻣﺎن ﺑﺮاي دو ﺻﺤﻨﻪ اﺳﺖ‪ .‬ﺑﺮاي درك اﻳﻦ ﻣﻮﺿﻮع ﺑﺎ اﺳﺘﻔﺎده از‬
‫‪ mpgread.mdissolve.mpg‬را ﺑﺨﻮاﻧﻴﺪ‪.‬‬
‫‪: Wipe‬ﻳﻚ ﺻﺤﻨﻪ ﻗﺪﻳﻤﻲ ﺑﺎ ﻳﻚ اﻟﮕﻮي ﺧﺎص ﺑﻪ ﺻﺤﻨﻪ ﺑﻌﺪي ﻣﻲرود‪ .‬ﺑﺮاي درك ﺑﻬﺘﺮ ‪Wipe‬ﺑﺎ اﺳﺘﻔﺎده از ‪،mpgread.m‬‬
‫‪Wipe.mpg‬را ﺑﺨﻮاﻧﻴﺪ‪.‬‬
‫‪2‬‬
‫‪Content‬‬
‫‪3‬‬
‫‪ .1‬ﺑﺮاي ﻫﺮﻳﻚ ازﺳﻪ ﻧﻮع ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪ ﻳﻚ ﺗﺎﺑﻊ ﻣﺘﻠﺐ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺗﻐﻴﻴﺮ ﺻﺤﻨﻪ را ﺗﺸﺨﻴﺺ دﻫﺪ اﻳﻦ ﺗﺸﺨﻴﺺ دﻫﻨﺪه ﺑﺎﻳﺪ ﺑﺘﻮاﻧﺪ‬
‫اﻧﺪﻳﺲ ﻓﺮﻳﻤﻲ ﻛﻪ ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪ در آن رخ داده را ﻣﺸﺨﺺ ﻛﻨﺪ‪.‬‬
‫ﺗﺸﺨﻴﺺ دﻫﻨﺪه ﺧﻮد را روي ﻓﺎﻳﻞﻫﺎي ‪cut.mpg , dissolve.mpg , wipe.mpg‬اﻋﻤﺎل ﻛﻨﻴﺪ و اﻧﺪﻳﺲ ﻓﺮﻳﻢﻫﺎﻳﻲ ﻛﻪ ﺗﻐﻴﻴﺮ‬
‫ﺻﺤﻨﻪ در آن رخ ﻣﻲدﻫﺪ را ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪ .‬اﮔﺮ ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪ ﭼﻨﺪ ﻓﺮﻳﻢ ﻃﻮل ﻛﺸﻴﺪ )ﻣﺜﻼً ‪wipe‬ﻣﻤﻜﻦ اﺳﺖ ‪ 10‬ﻓﺮﻳﻢ ﻃﻮل ﺑﻜﺸﺪ‬
‫در ﺣﺎﻟﻴﻜﻪ ‪cut‬ﻓﻘﻂ ﻳﻚ ﻓﺮﻳﻢ ﻃﻮل ﻣﻲﻛﺸﺪ( ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺎزه اي ﻛﻪ در ﻃﻮل آن ﺑﺎزه ﺻﺤﻨﻪ ﺗﻐﻴﻴﺮ ﻣﻲﻛﻨﺪ را ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪.‬‬
‫‪ .2‬وﻳﺪﻳﻮ ‪cbswipe.mpg‬ﺷﺎﻣﻞ ﭼﻨﺪﻳﻦ ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪ اﺳﺖ ﺑﺎ اﺳﺘﻔﺎده از ﺳﻪ ﺗﺎﺑﻌﻲ ﻛﻪ در ﺑﺨﺶ ﻗﺒﻞ ﻧﻮﺷﺘﻴﻤﺒﺮﻧﺎﻣﻪ اي ﺑﻨﻮﻳﺴﻴﺪ‬
‫ﻛﻪ ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪﻫﺎ را در اﻳﻦ وﻳﺪﻳﻮ ﻣﺸﺨﺺ ﻛﻨﺪ و اﻧﺪﻳﺲ ﻓﺮﻳﻢ ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪ ﻳﺎ ﺑﺎزه اي ﻛﻪ ﺗﻌﻮﻳﺾ ﺻﺤﻨﻪ در آن اﻧﺠﺎم‬
‫ﻣﻲﺷﻮد را ﺑﺎزﮔﺮداﻧﺪ‪.‬‬
‫‪ MPEG-1‬ﺗﻮﺳﻂ ﮔﺮوه‪ Moving Picture Expert‬و در اﺑﺘﺪاي دﻫﻪي ‪ 90‬ﺑﻪ وﺟﻮد آﻣﺪ‪ .‬اﻳﻦ ﻓﺮﻣﺖ ﺷﺎﻣﻞ ﺳﻪ ﻧﻮع ﻓﺮﻳﻢ‪ I,B,P‬اﺳﺖ‬
‫ﻛﻪ ‪ I-frame‬ﺑﺪون ﺗﻮﺟﻪ ﺑﻪ ﺳﺎﻳﺮ ﻓﺮﻳﻢﻫﺎ و ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﻞ ﻛﺪ ﻣﻲﺷﻮد‪ P-frame‬ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻳﻢ ﻗﺒﻠﻲ و ‪ B-frame‬ﺑﺎ اﺳﺘﻔﺎده از ﻫﺮ‬
‫دو ﻓﺮﻳﻢ ﻗﺒﻞ و ﺑﻌﺪ از ﺧﻮد ﻛﺪ ﻣﻲﺷﻮد‪ .‬در اﻳﻦ ﺗﻤﺮﻳﻦ ﻗﺼﺪ دارﻳﻢ ﭘﺎراﻣﺘﺮ ﻫﺎي اﺻﻠﻲ ﺗﺄﺛﻴﺮ ﮔﺬار روي ﻛﻴﻔﻴﺖ وﻳﺪﻳﻮ را ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار‬
‫دﻫﻴﻢ‪.‬‬
‫ﺑﺎ ﻛﻤﻚ ﺗﺎﺑﻊ‪mpgwrite.m‬ﻣﻲﺗﻮان از روي ﻳﻚ دﻧﺒﺎﻟﻪ از ﺗﺼﺎوﻳﺮ ﻳﻚ ﻓﺎﻳﻞ‪ MPEG‬ﺗﻮﻟﻴﺪ ﻛﺮد‪) .‬اﻳﻦ ﺗﺎﺑﻊ ﺑﻪ ﻫﻤﺮاه ﺗﻤﺮﻳﻦ ﺑﻪ ﺷﻤﺎ داده‬
‫ﺷﺪه اﺳﺖ( ﺷﻤﺎ ﻣﻲﺗﻮاﻧﻴﺪ ﭘﺎراﻣﺘﺮﻫﺎ را آﻧﮕﻮﻧﻪ ﻛﻪ در زﻳﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ‪.‬‬
‫‪MPGWRITE(M, map, 'filename', options) Encodes M in MPEG‬‬
‫‪% format using the specified colormap and writes the result to the‬‬
‫‪% specified file. The options argument is an optional vector of‬‬
‫‪4‬‬
% 8 or fewer options where each value has the following meaning:
% 1. REPEAT:
% An integer number of times to repeat the movie
% (default is 1).
% 2. P-SEARCH ALGORITHM:
% 0 = logarithmic (fastest, default value)
% 1 = subsample
% 2 = exhaustive (better, but slow)
% 3. B-SEARCH ALGORITHM:
% 0 = simple (fastest)
% 1 = cross2 (slightly slower, default value)
% 2 = exhaustive (very slow)
% 4. REFERENCE FRAME:
% 0 = original (faster, default)
% 1 = decoded (slower, but results in better quality)
% 5. RANGE IN PIXELS:
% An integer search radius. Default is 10.
% 6. I-FRAME Q-SCALE:
% An integer between 1 and 31. Default is 8.
% 7. P-FRAME Q-SCALE:
% An integer between 1 and 31. Default is 10.
% 8. B-FRAME Q-SCALE:
% An integer between 1 and 31. Default is 25.
BR_Q_mpg.m‫اﻋﻤﺎل ﻛﻨﻴﺪ ﺗﺎ ﺑﻪ اﻫﺪاف زﻳﺮ ﺑﻪ ﻃﻮر ﺟﺪاﮔﺎﻧﻪ ﺑﺮﺳﻴﺪ اﺑﺘﺪا‬Foreman ‫ را روي دﻧﺒﺎﻟﻪ ﺗﺼﺎوﻳﺮ‬BR_Q_mpg.m‫ﺗﺎﺑﻊ‬.1
in_filename , out_filename , mpg_optionً‫را ﺑﺎز ﻛﻨﻴﺪ و ﭘﺎراﻣﺘﺮﻫﺎ را در ﻧﺰدﻳﻜﻲ ﺑﺎﻻي ﺑﺪﻧﻪ اﺳﻜﺮﻳﭙﺖ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ ﻣﺜﻼ‬
‫اﺳﺖ ﺑﺮاي ﻫﺮ ﻛﺪام از اﻫﺪاف زﻳﺮ ﻟﻴﺴﺖ ﭘﺎراﻣﺘﺮﻫﺎﻳﻲ ﻛﻪ ﺑﺮاي ﺑﺮدار‬mpgwrite ‫ﻳﻚ ورودي ﺑﺮاي ﺗﺎﺑﻊ‬mpg_option‫ﺑﺮدار ﭘﺎراﻣﺘﺮ‬
‫ اﻧﺘﺨﺎب ﻛﺮدﻳﺪ را ﻣﺸﺨﺺ ﻛﻨﻴﺪ‬mpg_option
26dB ‫ ﺑﺎﻻﺗﺮ از‬Average PSNR‫اﻟﻒ‬
400kbps ‫ﻛﻤﺘﺮ از‬bitrate ‫ب‬
.‫ ﺑﺮاي ﻧﺤﻮه ﻣﺤﺎﺳﺒﻪ ﭘﺎراﻣﺘﺮﻫﺎ اراﻳﻪ دﻫﻴﺪ‬Rule of Thumb ‫ ﻳﻚ ﻗﺎﻧﻮن ﺑﺮ ﻣﺒﻨﺎي‬.2
‫( ﭼﻴﺴﺖ؟‬Quality of Service) ‫ ﻣﻨﻈﻮر از ﻛﻴﻔﻴﺖ ﺧﺪﻣﺎت‬-1
‫ دارد؟‬1 ‫( ﭼﻴﺴﺖ و ﭼﻪ ﺗﻔﺎوﺗﻲ ﺑﺎ ﺗﻌﺮﻳﻒ‬QoS experienced by the user) ‫ ﻣﻨﻈﻮر از ﻛﻴﻔﻴﺖ ﺧﺪﻣﺎت از دﻳﺪ ﻛﺎرﺑﺮ‬-2
‫ ﺑﻪ ﻧﻈﺮ ﺷﻤﺎ ﻣﺰﻳﺖ ﺗﻌﺮﻳﻒ ﻛﻴﻔﻴﺖ ﺧﺪﻣﺎت از دﻳﺪ ﻛﺎرﺑﺮ ﻧﺴﺒﺖ ﺑﻪ ﺗﻌﺮﻳﻒ ﻣﻌﻤﻮل ﻛﻴﻔﻴﺖ ﺧﺪﻣﺎت ﭼﻴﺴﺖ؟‬-3
‫ آﺷﻨﺎ‬،‫ ﻫﺴﺘﻨﺪ‬ip ‫ ﻛﻪ دو راه ﺣﻞ ﺗﻀﻤﻴﻦ ﻛﻴﻔﻴﺖ ﺧﺪﻣﺎت ﺑﺮ روي ﺷﺒﻜﻪﻫﺎي‬DiffServ ‫ و‬IntServ ‫ﺷﻤﺎ در درس ﺑﺎ دو روش‬
.‫ﺷﺪﻳﺪ‬
:‫اﻳﻦ دو روش را از ﻧﻈﺮ ﻣﻌﻴﺎرﻫﺎي زﻳﺮ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻣﻘﺎﻳﺴﻪ ﻧﻤﺎﻳﻴﺪ‬
5
‫•‬
‫ﻣﻘﻴﺎس ﭘﺬﻳﺮي)‪(scalability‬‬
‫•‬
‫رزرو ﻣﻨﺎﺑﻊ )‪(resource reservation‬‬
‫•‬
‫ﺳﻴﮕﻨﺎل دﻫﻲ )ﺑﺮﻗﺮاري اﺗﺼﺎل‪ ،‬ﻧﮕﻬﺪاري اﺗﺼﺎل‪ ،‬ﻗﻄﻊ اﺗﺼﺎل(‬
‫•‬
‫ﻗﺎﺑﻠﻴﺖ ‪multicast‬‬
‫•‬
‫ﻗﺎﺑﻠﻴﺖ ﺗﻄﺎﺑﻖ ﺑﺎ ﭘﺮوﺗﻜﻞ ‪IPv4‬‬
‫در ﺷﺒﻜﻪﻫﺎي ﺳﻴﻤﻲ‪ ،‬ﺑﻪ اﺷﺘﺮاك ﮔﺬاري ﻛﺎﻧﺎل اﻧﺘﻘﺎل ﻣﻌﻤﻮﻻً ﻣﻨﺠﺮ ﺑﻪ ﺑﺮﺧﻮرد ﻣﻲﮔﺮدد و زﻣﺎنﺑﻨﺪي )‪ (Scheduling‬اﺻﻠﻲﺗﺮﻳﻦ‬
‫روش ﺣﻞ ﻣﺸﻜﻞ ﺑﺮﺧﻮرد در ﺷﺒﻜﻪﻫﺎﺳﺖ‪ .‬ﻫﺪف از زﻣﺎنﺑﻨﺪي ﺑﻪ اﺷﺘﺮاك ﮔﺬاري ﻣﻨﺼﻔﺎﻧﻪ ﻣﻨﺎﺑﻊ ﺑﻴﻦ ﻛﺎرﺑﺮان و ﺗﻀﻤﻴﻦ ﻛﺎراﻳﻲ اﺳﺖ‪ .‬در‬
‫واﻗﻊ ﻫﺮ ﺟﺎ ﻛﻪ ﺑﺤﺚ ﺑﻪ اﺷﺘﺮاك ﮔﺬاري ﻣﻨﺎﺑﻊ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﺑﺤﺚ زﻣﺎنﺑﻨﺪي ﻧﻴﺰ ﻣﻄﺮح ﻣﻲﺷﻮد‪ .‬ﻳﻜﻲ از ﻛﺎرﺑﺮدﻫﺎي زﻣﺎنﺑﻨﺪي‪ ،‬در‬
‫ﻣﺴﻴﺮﻳﺎبﻫﺎ و زﻣﺎﻧﻲ اﺳﺖ ﻛﻪ ﺑﺎﻓﺮﻫﺎ از ﺑﺴﺘﻪﻫﺎ ﭘﺮ ﺷﺪهاﻧﺪ و ﺑﺎﻳﺪ ﺑﻪ روﺷﻲ اﻳﻦ ﺑﺴﺘﻪﻫﺎ روي ﻛﺎﻧﺎل ارﺳﺎل ﺷﻮﻧﺪ‪ .‬ﻳﻚ روش زﻣﺎنﺑﻨﺪي دو‬
‫ﻛﺎر اﻧﺠﺎم ﻣﻲدﻫﺪ‪ :‬ﺗﺮﺗﻴﺐ ﺑﺴﺘﻪﻫﺎ را ﺗﻌﻴﻴﻦ ﻣﻲﻛﻨﺪ و ﺻﻒﻫﺎي درﺧﻮاﺳﺖ ﺳﺮوﻳﺲ را ﻣﺪﻳﺮﻳﺖ ﻣﻲﻧﻤﺎﻳﺪ‪) .‬از ﻛﺪام ﺻﻒﻫﺎ و ﺑﻪ ﭼﻪ ﺗﺮﺗﻴﺒﻲ‬
‫ﺑﺴﺘﻪ ﻓﺮﺳﺘﺎده ﺷﻮد(‪ .‬ﻳﻚ زﻣﺎنﺑﻨﺪ )‪ (Scheduler‬ﻣﻲﺗﻮاﻧﺪ ﭘﻬﻨﺎي ﺑﺎﻧﺪ‪ ،‬ﺗﺄﺧﻴﺮ و ﻳﺎ ﺣﺘﻲ اﺗﻼف ﺑﺴﺘﻪﻫﺎ را ﺑﻴﻦ ﻛﺎرﺑﺮان ﺗﺨﺼﻴﺺ دﻫﺪ‪.‬‬
‫در ﺷﻜﻞ ‪ ،1‬ﺳﺎﺧﺘﺎر دروﻧﻲ ﻳﻚ ﻣﺴﻴﺮﻳﺎب در ﺷﺒﻜﻪﻫﺎي ﻣﺒﺘﻨﻲ ﺑﺮ ﺗﻀﻤﻴﻦ ﻛﻴﻔﻴﺖ ﻧﻤﺎﻳﺶ داده ﺷﺪه اﺳﺖ‪.‬‬
‫ﺳﺎﺧﺘﺎر ﺟﺰﺋﻲ ﻳﻚ ﻣﺴﻴﺮﻳﺎب ﺑﺎ ﻗﺎﺑﻠﻴﺖ ﺗﻀﻤﻴﻦ ﻛﻴﻔﻴﺖ ﺧﺪﻣﺎت‬
‫‪ -1‬در ﻣﻮرد روشﻫﺎي زﻣﺎنﺑﻨﺪي اﻧﺤﺼﺎري )‪ (preemptive‬و ﻏﻴﺮ اﻧﺤﺼﺎري )‪ (non-preemptive‬و ﻧﻴﺰ زﻣﺎنﺑﻨﺪي‪work-‬‬
‫‪ conserving‬و ‪ non-work-conserving‬ﺗﺤﻘﻴﻖ ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪-2‬ﺗﺎﻛﻨﻮن‪ ،‬روشﻫﺎي ﻣﺨﺘﻠﻔﻲ ﺑﺮاي زﻣﺎنﺑﻨﺪي ﺗﺮاﻓﻴﻚ در ﺷﺒﻜﻪﻫﺎي ﻣﺒﺘﻨﻲ ﺑﺮ ‪ ip‬اراﺋﻪ ﺷﺪهاﻧﺪ‪ .‬ﺳﻪ ﻣﻮرد از ﻣﻌﺮوفﺗﺮﻳﻦ اﻳﻦ روشﻫﺎ‬
‫ﻛﻪ ﺑﺮاي زﻣﺎنﺑﻨﺪي ﺗﺮاﻓﻴﻚ ﺑﻲدرﻧﮓ ﻣﻨﺎﺳﺐ ﻫﺴﺘﻨﺪ را ﻧﺎم ﺑﺮده و ﺗﻮﺿﻴﺢ ﻣﺨﺘﺼﺮي از ﻫﺮ ﻳﻚ اراﺋﻪ ﻧﻤﺎﻳﻴﺪ‪ .‬ﭼﻪ وﻳﮋﮔﻲ در اﻳﻦ روشﻫﺎ‬
‫آنﻫﺎ را ﺑﺮاي زﻣﺎنﺑﻨﺪي ﺗﺮاﻓﻴﻚ ﺑﻲدرﻧﮓ ﻣﻨﺎﺳﺐ ﺳﺎﺧﺘﻪ اﺳﺖ؟‬
‫‪6‬‬
‫‪ MPLS (Multiprotocol Label Switching) -1‬ﭼﻴﺴﺖ؟ و ﭼﮕﻮﻧﻪ ﻣﻲﺗﻮاﻧﺪ ﺑﻪ ﺑﻬﺒﻮد ﻛﻴﻔﻴﺖ ﺧﺪﻣﺎت در ﺷﺒﻜﻪﻫﺎ ﻛﻤﻚ‬
‫ﻧﻤﺎﻳﺪ؟‬
‫‪ -2‬اﻳﻦ ﭘﺮوﺗﻜﻞ ﭼﻪ ﺷﺒﺎﻫﺖﻫﺎ و ﭼﻪ ﺗﻔﺎوتﻫﺎﻳﻲ ﺑﺎ روشﻫﺎي ‪ IntServ‬و ‪ DiffServ‬دارد؟‬
‫‪ -3‬ﻛﺎرﺑﺮدﻫﺎي اﻳﻦ ﭘﺮوﺗﻜﻞ ﻛﺪاﻣﻨﺪ؟‬
‫ﺑﺮاي اﻧﺠﺎم اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬اﺑﺘﺪا ﻧﺮماﻓﺰار ‪،wireshark‬را از ﻟﻴﻨﻚ ]‪ [2‬داﻧﻠﻮد و ﻧﺼﺐ ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ -1‬ﻓﺎﻳﻞ ‪ rtp-trace.raw‬را ﻛﻪ ﻳﻚ ‪ trace‬از ﻳﻚ ارﺗﺒﺎط ‪ RTP‬اﺳﺖ داﻧﻠﻮد ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ -2‬ﻧﺮم اﻓﺰار‪ wireshark‬را اﺟﺮا ﻧﻤﻮده و ﻓﺎﻳﻞ ‪ trace‬را در آن ﺑﺎز ﻛﻨﻴﺪ‪.‬‬
‫‪ -3‬ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ ﻓﻴﻠﺘﺮ ﻣﻨﺎﺳﺐ‪ ،‬ﺑﺴﺘﻪﻫﺎي ﭘﺮوﺗﻜﻞ ‪ RTP‬را ﻓﻴﻠﺘﺮ ﻛﺮده و ﻧﻤﺎﻳﺶ دﻫﻴﺪ‪.‬‬
‫‪ -4‬در ﭘﻨﺠﺮه ﻧﻤﺎﻳﺶ ﭘﺮوﺗﻜﻞﻫﺎ‪ ،‬ﻓﻴﻠﺪﻫﺎي ﭘﺮوﺗﻜﻞ ‪ RTP‬را ﺑﺒﻴﻨﻴﺪ‪.‬‬
‫‪ -5‬ﺣﺎل ﺑﺎ اﺳﺘﻔﺎده از اﺑﺰار ‪ telephony‬در ﻣﻨﻮي ﺑﺮﻧﺎﻣﻪ ‪ ،wireshark‬ﻣﺸﺨﺼﺎت آﻣﺎري ﻓﺎﻳﻞ ‪ trace‬را اﺳﺘﺨﺮاج ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪) -6‬اﺧﺘﻴﺎري( در ﻣﻮرد ﻫﺮ ﻳﻚ از ﺳﺘﻮنﻫﺎي ﺟﺪول آﻣﺎري ﺗﻮﺿﻴﺢ دﻫﻴﺪ‪.‬‬
‫‪ -7‬در اﻳﻨﺘﺮﻧﺖ ﺟﺴﺘﺠﻮ ﻛﺮده و ‪ 3‬ﻣﺤﺼﻮل ﺟﺮﻳﺎﻧﺴﺎزي وﻳﺪﺋﻮ و ﺻﺪا ﺑﺮ روي ﺷﺒﻜﻪ را ﭘﻴﺪا ﻛﻨﻴﺪ‪ .‬در ﻣﻮرد اﻳﻦ ﻣﺤﺼﻮﻻت ﺗﺤﻘﻴﻖ‬
‫ﻛﻨﻴﺪ ﻛﻪ از ﻛﺪاﻣﻴﻚ از ﭘﺮوﺗﻜﻞﻫﺎي‪ udp‬ﻳﺎ ‪ tcp‬ﺟﻬﺖ ارﺳﺎل دادهﻫﺎ اﺳﺘﻔﺎده ﻣﻲﻧﻤﺎﻳﻨﺪ و ﻧﻴﺰ آﻳﺎ از ﭘﺮوﺗﻜﻞﻫﺎي ‪ RTP‬و‬
‫‪ RTCP‬اﺳﺘﻔﺎده ﻣﻲﻛﻨﻨﺪ ﻳﺎ ﺧﻴﺮ؟‬
‫ﺑﺮاي اﻧﺠﺎم اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬اﺑﺘﺪا ﻧﺮماﻓﺰار ‪،vlcplayer‬را از ﻟﻴﻨﻚ ]‪ [3‬داﻧﻠﻮد و ﻧﺼﺐ ﻧﻤﺎﻳﻴﺪ‪ .‬دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ ﻧﺴﺨﻪ ﻣﻨﺎﺳﺐ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﺧﻮد‬
‫را داﻧﻠﻮد ﻛﻨﻴﺪ‪ .‬ﺑﺮاي اﻧﺠﺎم اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﻪ دو ﻟﭗ ﺗﺎپ ﻣﺠﻬﺰ ﺑﻪ ﻛﺎرت ﺷﺒﻜﻪ ﺑﻲﺳﻴﻢ ﻧﻴﺎزﻣﻨﺪﻳﺪ‪ .‬اﻳﻦ ﺗﻤﺮﻳﻦ را ﺑﻪ ﺻﻮرت دو ﻧﻔﺮه اﻧﺠﺎم‬
‫دﻫﻴﺪ‪ .‬در ﮔﺰارش ﻧﻬﺎﻳﻲ ﺧﻮد‪ ،‬ﻗﺴﻤﺘﻲ از ﻓﺎﻳﻞ ‪ trace‬ﺣﺎﺻﻞ از ﺟﺮﻳﺎﻧﺴﺎزي ﺻﺪا و وﻳﺪﺋﻮ را ﺑﻴﺎورﻳﺪ‪.‬‬
‫‪ -1‬اﺑﺘﺪا ﺑﻴﻦ دو راﻳﺎﻧﻪ ﻳﻚ ﺷﺒﻜﻪ ‪ ad-hoc‬اﻳﺠﺎد ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ -2‬ﻧﺮم اﻓﺰار ‪ vlc-player‬را داﻧﻠﻮد و ﺑﺮ روي ﻫﺮ دو راﻳﺎﻧﻪ ﻧﺼﺐ ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ -3‬ﻳﻜﻲ از راﻳﺎﻧﻪﻫﺎ را ﺑﻪ ﻋﻨﻮان ‪ server‬و دﻳﮕﺮي را ‪ client‬در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﻧﺮم اﻓﺰار ‪ vlc-player‬را روي ﻫﺮ دو راﻳﺎﻧﻪ اﺟﺮا‬
‫ﻛﻨﻴﺪ‪ .‬ﺑﺮ روي راﻳﺎﻧﻪ ‪ ،server‬ﻳﻚ ﻓﺎﻳﻞ وﻳﺪﺋﻮﻳﻴﺮا ﺑﻪ اﺟﺮا ﮔﺬاﺷﺘﻪ و آن را از ﻃﺮﻳﻖ ﺷﺒﻜﻪ ‪ ad-hoc‬ﺑﺮاي راﻳﺎﻧﻪ ‪client‬‬
‫ارﺳﺎل ﻛﻨﻴﺪ‪) .‬ﺑﺮاي آﺷﻨﺎﻳﻲ ﺑﺎ ﻧﺤﻮه ﺟﺮﻳﺎﻧﺴﺎزي وﻳﺪﺋﻮ ﺑﺮ روي اﻳﻦ ﻧﺮم اﻓﺰار از وب ﺳﺎﻳﺖ اﻳﻦ ﻧﺮم اﻓﺰار ﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ(‬
‫‪ -4‬ﺟﺮﻳﺎﻧﺴﺎزي وﻳﺪﺋﻮ را ﺑﺮاي ﭘﺮوﺗﻜﻞﻫﺎي ﻣﺨﺘﻠﻒ ‪rtp ،udp‬اﻧﺠﺎم دﻫﻴﺪ و ﻛﻴﻔﻴﺖ ﺟﺮﻳﺎﻧﺴﺎزي را ﺑﺮاي اﻳﻦ ﭘﺮوﺗﻜﻞﻫﺎ ﺑﺎ ﻳﻜﺪﻳﮕﺮ‬
‫ﻣﻘﺎﻳﺴﻪ ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪ -5‬ﻧﺮم اﻓﺰار ‪ wireshark‬را ﭘﻴﺶ از ﺟﺮﻳﺎﻧﺴﺎزي وﻳﺪﺋﻮ اﺟﺮا ﻧﻤﻮده و ﺗﻤﺎﻣﻲ ﺑﺴﺘﻪﻫﺎي ارﺳﺎﻟﻲ و درﻳﺎﻓﺘﻲ در ﺣﻴﻦ اﻧﺠﺎم‬
‫ﺟﺮﻳﺎﻧﺴﺎزي را ﺿﺒﻂ ﻛﻨﻴﺪ‪.‬‬
‫‪7‬‬
‫‪ -6‬ﻣﺮاﺣﻞ ‪ 3‬ﺗﺎ ‪ 5‬را ﺑﺮاي ﻳﻚ ﻓﺎﻳﻞ ﺻﻮﺗﻲ ﻧﻴﺰ اﻧﺠﺎم دﻫﻴﺪ‪ .‬دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ ﺑﺮاي ﺟﺮﻳﺎﻧﺴﺎزي از ﭘﺮوﺗﻜﻞ ﻣﻨﺎﺳﺐ اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬
‫در اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬ﺑﺎﻳﺪ ﺷﺒﻜﻪ ﺳﺎده اي ﺷﺎﻣﻞ ‪ 4‬ﻛﺎﻣﭙﻴﻮﺗﺮ و ﻳﻚ روﺗﺮ ﻛﻪ واﺳﻂ اﻳﻦ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎﺳﺖ را ﺷﺒﻴﻪ ﺳﺎزي ﻛﻨﻴﺪ‪ .‬ﺗﻮﭘﻮﻟﻮژي ﺷﺒﻜﻪ‬
‫ﻣﻮرد ﻧﻈﺮ ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﻲﺑﺎﺷﺪ‪:‬‬
‫ﺑﺮاي ﺳﻬﻮﻟﺖ ﻛﺎر‪ ،‬در اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬ﻻزم ﻧﻴﺴﺖ ﻻﻳﻪ ﻫﺎي ﻣﺨﺘﻠﻒ ﺷﺒﻜﻪ را ﺷﺒﻴﻪ ﺳﺎزي ﻛﻨﻴﺪ و ﻓﻘﻂ ﺑﺎﻳﺪ ﻛﻼس ‪ cMessage‬را ‪tendex‬‬
‫ﻛﻨﻴﺪ‪ .‬ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ ﻛﻪ ﻫﺮ ﭘﻴﺎم‪ ،‬ﺷﺎﻣﻞ ﻳﻚ ﻋﺪد از ‪ 1‬ﺗﺎ ‪ 4‬ﻛﻪ ﺷﻤﺎره ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﺒﺪأ و ﻳﻚ ﻋﺪد از ‪ 1‬ﺗﺎ ‪ 4‬ﻛﻪ ﺷﻤﺎره ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﻘﺼﺪ اﺳﺖ و‬
‫ﻳﻚ رﺷﺘﻪ ﻛﻪ ﻣﺘﻦ ﭘﻴﺎم اﺳﺖ‪ ،‬ﻣﻲﺑﺎﺷﺪ‪.‬‬
‫ﻫﺮ ﻛﺪام از ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎﻳﻴﭙﻴﺎمﻫﺎﻳﻲ را ﺑﺎ ﻓﻮاﺻﻞ زﻣﺎﻧﻲ )‪ (time Interarrival‬ﻛﻪ ﺗﻮزﻳﻊ ﻧﻤﺎﻳﻲ ﺑﺎ ﻣﻴﺎﻧﮕﻴﻦ ‪ 5‬ﺛﺎﻧﻴﻪ دارﻧﺪ‪ ،‬ﺑﻪ روﺗﺮ‬
‫ﻣﻲﻓﺮﺳﺘﻨﺪ‪) .‬در ﻟﺤﻈﻪ ﺻﻔﺮم‪ ،‬ﻫﻴﭻﻛﺲ ﻫﻴﭻ ﭘﻴﺎﻣﻲ ﻧﻤﻲﻓﺮﺳﺘﺪ( ﻣﺘﻦ اﻳﻦ ﭘﻴﺎمﻫﺎ‪ request‬ﻣﻲﺑﺎﺷﺪ و ﻣﻘﺼﺪ ﻧﻴﺰ ﺑﺎ اﺣﺘﻤﺎل ﺑﺮاﺑﺮ‪ ،‬ﻳﻜﻲ از ‪3‬‬
‫راس دﻳﮕﺮ اﺳﺖ‪.‬‬
‫ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﻳﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻳﻚ ‪ request‬را درﻳﺎﻓﺖ ﻣﻲﻛﻨﺪ‪ ،‬ﺑﻼﻓﺎﺻﻠﻪ ﻳﻚ ﭘﻴﺎم ﺑﺎ ﻣﺘﻦ ‪ response‬ﺑﺎ ﻣﻘﺼﺪ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﺒﺪأ اﻳﻦ ﭘﻴﺎم‪ ،‬ﺑﻪ‬
‫روﺗﺮ ﻣﻲﻓﺮﺳﺘﺪ‪.‬‬
‫‪8‬‬
‫اﻣﺎ روﺗﺮ ﻛﻪ ﺑﺎﻳﺪ ﭘﻴﺎمﻫﺎي ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺎي دﻳﮕﺮ را درﻳﺎﻓﺖ و ﺑﻪ ﻣﻘﺼﺪي ارﺳﺎل ﻣﻲﻛﻨﺪ‪ ،‬ﺗﻮان ﻣﺤﺪودي دارد و ﺑﺎ اﺣﺘﻤﺎل ‪ 10/n‬ﭘﻴﺎمﻫﺎي‬
‫درﻳﺎﻓﺘﻲ را ﻧﻤﻲﺗﻮاﻧﺪ ﺑﻪ ﻣﻘﺼﺪ ﻣﻮرد ﻧﻈﺮ ارﺳﺎل ﻛﻨﺪ و آن ﭘﻴﺎم از ﺑﻴﻦ ﻣﻲرود‪ .‬ﻛﻪ ‪ ،n‬ﺗﻌﺪاد ﭘﻴﺎمﻫﺎي درﻳﺎﻓﺘﻲ روﺗﺮ در ‪ 1‬ﺛﺎﻧﻴﻪ اﺧﻴﺮ ﻣﻲﺑﺎﺷﺪ‪.‬‬
‫ﺷﺒﻴﻪ ﺳﺎزي اﻳﻦ ﺷﺒﻜﻪ را ﺑﺮاي ‪ 30‬دﻗﻴﻘﻪ اﻧﺠﺎم دﻫﻴﺪ‪.‬‬
‫ﺑﺮاي ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﺤﻠﻲ‪ ،‬ﻧﺴﺒﺖ ﺗﻌﺪاد ‪ response‬ﻫﺎي ﻛﻪ درﻳﺎﻓﺖ ﻣﻲﻛﻨﺪ‪ ،‬ﺑﻪ ﺗﻌﺪاد ‪ request‬ﻫﺎﻳﻲ ﻛﻪ ﻣﻲﻓﺮﺳﺘﺪ را ﺣﺴﺎب ﻛﻨﻴﺪ‪.‬‬
‫ﺑﺎ ﺗﺸﻜﺮ از ﺗﻤﺎﻣﻲ دوﺳﺘﺎﻧﻲ ﻛﻪ ﮔﺮوه دﺳﺘﻴﺎران را در اﻳﻦ ‪ 5‬ﻣﺠﻤﻮﻋﻪ از ﺗﻤﺮﻳﻦ ﻫﻤﺮاﻫﻲ ﻛﺮدﻧﺪ‪.‬‬
‫ﻣﻬﺮداد ﻣﺮادي‬
‫ﺑﻬﺎر ﺳﺎلِ ‪ 91‬ﺧﻮرﺷﻴﺪي‬
‫‪9‬‬