*************D

Download Report

Transcript *************D

‫مهندسی فناوری اطالعات‬
‫ارائه دهنده‬
‫دکتر سيد امين حسيني‬
E.mail: [email protected]
Home page: http://hosseini.staffcms.um.ac.ir
‫اليه انتقال در شبکه اينترنت‬
‫‪‬روش برقراري ارتباط در پروتکل ‪TCP‬‬
‫‪ ‬روش کنترل جريان داده‌ها در پروتکل ‪TCP‬‬
‫‪ ‬زمان سنجها و عملکرد آنها در پروتکل ‪TCP‬‬
‫‪ ‬پروتکل ‪UDP‬‬
‫روش برقراري ارتباط در‬
‫پروتکل ‪TCP‬‬
‫روش دست تکاني سه مرحله‌اي‬
‫مرحله اول‌‪:‬‬
‫سال يک بسته ‪ TCP‬خالي از داده از طرف شروع‌کننده ارتباط با بيتهاي ‪ SYN=1‬و ‪ ACK=0‬و قراردادن عدد‬
‫• ار ِ‬
‫‪x‬درون فيلد شماره ترتيب‬
‫• اعالم شروع ترتيب داده‌هاي ارسالي از ‪ x+1‬به‬
‫ماشين طرف مقابل‬
‫• پيشگيري از مساوي بودن شماره ترتيب داده‌هاي‬
‫ارسالي با انتخاب مقدار ‪ x‬به صورت تصادفي‬
‫مرحله دوم ‪:‬‬
‫روش دست‬
‫تکاني سه‬
‫مرحلهاي‬
‫• رد تقاضاي برقراري ارتباط‪ :‬ارسال بسته‌اي خالي با بيت ‪RST=1‬‬
‫• قبول تقاضاي برقراري ارتباط‪ :‬ارسال بسته خالي با مشخصات زير از طرف گيرنده‬
‫بسته تقاضا‪:‬‬
‫• بيت ‪SYN = 1‬‬
‫• بيت ‪ACK = 1‬‬
‫• ‪Acknowledgement = x+1‬‬
‫• ‪Sequence Number = y‬‬
‫روش دست تکاني سه‬
‫مرحلهاي‬
‫مرحله سوم‪:‬‬
‫تصديق شروع ارتباط از طرف شروع‌کننده ارتباط با قراردادن مقادير زير در بيتهاي‪:‬‬
‫•‪SYN = 1‬‬
‫•‪ACK = 1‬‬
‫•‪Acknowledgement Number = y + 1‬‬
‫•‪Seq. No = x + 1‬‬
‫روند خاتمه ارتباط‬
‫‪TCP‬‬
‫• ارسال بسته ‪ TCP‬با بيت ‪ FIN = 1‬از طرف درخواست‌کننده اتمام ارسال‬
‫• موافقت طرف مقابل با اتمام ارتباط يکطرفه و ادامه ارسال داده توسط آن‬
‫• قطع ارتباط دو طرفه با يک نمودن مقدار بيت ‪ FIN‬در آخرين بسته ارسالي و‬
‫تصديق پايان ارتباط از طرف مقابل‬
‫کنترل جريان در‬
‫پروتکل ‪TCP‬‬
‫• استفاده از بافر جهت کنترل جريان داده‌ها در پروتکل ‪TCP‬‬
‫• بافرشدن داده‌ها قبل از ارسال به برنامه کاربردي اليه باالتر‬
‫• امکان عدم دريافت و ذخيره داده‌ها توسط برنامه کاربردي درمهلت مقرر و پرشدن بافر‬
‫فضاي آزاد بافر در فيلد ‪ Window‬درهنگام ارسال بسته ‪ TCP‬به طرف مقابل‬
‫اعالم حجم‬
‫• ايجاد يک ساختمان داده خاص به ازاي هر ارتباط برقرارشده ‪ TCP‬و نگهداري اطالعاتي ازآخرين وضعيت‬
‫ارسال و دريافت جريان داده‌ها = ساختمان داده بلوک نظارت بر انتقال = ‪Transmission = TCB‬‬
‫‪Control Block‬‬
‫متغيرهاي ساختمان داده‬
‫توضيح‪TCP‬‬
‫نام متغير‬
‫متغيرهاي نظارت بر ارسال دادهها‬
‫شمارة ترتيب آخرين بسته اي كه ارسال شده ولي هنوز پيغام ‪ Ack‬آن برنگشته است‪.‬‬
‫‪SND.UNA‬‬
‫شمارة ترتيب آخرين بايت كه داده ها از آن شماره به بعد در بستة بعدي كه بايد ارسال شود‪.‬‬
‫‪SND.NXT‬‬
‫ميزان فضاي آزاد در بافر ارسال‬
‫‪SND.WND‬‬
‫شمارة ترتيب آخرين داده هاي اضطراري كه تحويل برنامة كاربردي شده است‪.‬‬
‫‪SND.UP‬‬
‫مقدار فیلد ‪Sequence number‬‬
‫‪SND .WL1‬‬
‫مقدار فیلد ‪Acknowledgement number‬‬
‫‪SND.WL2‬‬
‫شمارة ترتيب آخرين داده هايي كه بايد آني به برنامة كاربردي گسيل (‪ )Push‬شود‪.‬‬
‫‪SND.PUSH‬‬
‫مقدار اولية شمارندة ترتيب داده هاي دريافتي كه در حين ارتباط بر روي آن توافق ميشود‪.‬‬
‫‪SND.ISS‬‬
‫متغيرهاي نظارت بر دريافت دادهها‬
‫شمارة ترتيب آخرين بايت در بستة بعدي كه از آن شماره به بعد انتظار دريافت آنرا دارد‪.‬‬
‫‪RCV.NXT‬‬
‫ميزان فضاي آزاد در بافر دريافت‬
‫‪RCV.WND‬‬
‫شمارة ترتيب آخرين داده هاي اضطراري كه براي برنامة طرف مقابل ارسال شده است‪.‬‬
‫‪RCV.UP‬‬
‫مقدار اولية شمارندة ترتيب داده هاي ارسالي كه در حين ارتباط بر روي آن توافق ميشود‪.‬‬
‫‪RCV.IRS‬‬
‫گيرنده‬
‫فرستنده‬
‫فضاي بافرگيرنده‬
‫‪4 Kbyte‬‬
‫ارسال ‪ 2 Kbyte‬داده‬
‫‪Window Size=2048‬‬
‫ارسال ‪ 2 Kbyte‬داده‬
‫‪Window Size=0‬‬
‫گيرنده ‪ 2KB‬از بافر ميخواند‬
‫فرستنده متوقف ميشود‬
‫‪Window‬‬
‫‪Size=2048‬‬
‫ارسال ‪ 1 Kbyte‬داده‬
‫مثال روند کنترل جريان در پروتکل ‪TCP‬‬
‫فرستنده مجددا احيا ميشود‬
‫کنترل ازدحام در‬
‫پروتکل ‪TCP‬‬
‫• برای هر فرستنده دو پنجره در نظر گرفته می شود‪.‬‬
‫• پنجره اول بر اساس اعالم گيرنده مقدار می گيرد ‪ .‬پنجره دوم پنجره ازدحام است ‪.‬‬
‫•هر یک از این پنجره ها حد اکثر تعداد بایتهایی را که فرستنده می توانند ارسال کند را مشخص می کند‪ .‬تعداد‬
‫بایتها مینیمم این دو خواهد بود‪.‬‬
‫•پنجره ازدحام در ابتذا پس از ارتباط مقدار می گيرد و مقدار آن طول جداکثر یک قطعه که موقع اتصال توافق شده‬
‫•اگر ‪ Ack‬در موقع مقرر آمد اندازه پنجره به اندازه طول حداکثر قطعه اضافه می شود(‪ 2‬برابر)‪.‬‬
‫•از آن پس هر قطعه که‬
‫‪Ack‬‬
‫آمد طول آن ‪ 2‬برابر خواهد شد به صورت صعودی رشد می کند‪.‬‬
‫•اگر بسته ای تصدیق نشود برای جلوگيری ار ازدحام طول پنجره نصف می شود که به آن الگوريتم‬
‫ژاکوبسن گویند‬
‫•‬
‫کنترل ازدحام در‬
‫پروتکل ‪TCP‬‬
‫پارامتر آستانه ‪threshold‬‬
‫•‪ TCP‬این پارامتر را عالوه بر ‪ 2‬پنجره قبلی در نظر می گيرد‪.‬‬
‫•یک پارامتر داخلی هست که مقدار اولیه آن ‪ 64‬کیلو بایت هست‪.‬‬
‫•وقتی پس از ارسال بسته ها که مهلت ارسال ‪ Ack‬گذشته باشد در این صورت مقدار آستانه نصف پنجره ازدحام‬
‫می شود و مقدار پنجره ازدحام به مقدار اولیه خودش یعنی حداکثر ‪ 1‬بسته‪.‬‬
‫•در این الگوریتم رشد نمائی ازدحام تا حد اکثر پارامتر آستانه رشد می کندو سپس به صورت خطی ادامه دارد تا‬
‫اینکه ‪ Ack‬یک بسته نرسد‪.‬‬
‫الگوريتم کنترل ازدحام‬
TCP‫پروتکل‬
‫زمان سنجها در‬
‫ به استفاده درست از زمان‬TCP ‫وابستگي عملکرد صحيح پروتکل‬
‫سنجها‬
‫زمان سنجها‬
Retransmission Timer 
Keep- Alive Timer 
Persistence Timer 
Quite Timer 
Idle Timer 
‫زمان سنج ‪Retransmission Timer‬‬
‫مقدار پيش فرض تنظيم ‌و فعال مي‌گردد ‌و‬
‫‌‬
‫پس ‌از برقراري‌ ارتباط ‌و ارسال بسته براي پروسه مقصد‪ ,‬زمان‌سنجي (‪ )RT‬با‬
‫در مهلت مقرر‌ پيغام دريافت بسته (‪ )Ack‬نرسيد رخداد انقضاي زمان تکر ‌ار‬
‫اگر ‌‬
‫شروع به شمارش معکوس مي‌نمايد که ‌‬
‫روي داده ‌و ارسال مجدد بسته صورت گيرد‪.‬‬
‫‪Retransmission‬‬
‫‪Timeout Event‬‬
‫زمان سنج ‪Retransmission Timer‬‬
‫عملکرد اين زمان سنج ‪ Retransmission Timer‬بسيار ساده است اما مشکل در اينجاست که‪:‬‬
‫‪ -1‬عمل ارسال مجدد يک بسته چند بار بايد تکرارشود؟‬
‫‪ -2‬مقدار پيش فرض زمان سنج چه مقدار باشد؟‬
‫بهترين راه تنظيم زمان سنج ‪ :‬روشهاي وفقي و پويا‬
‫الگوريتم‬
‫‪Jacobson‬‬
‫الف) ايجاد يک متغير حافظه يه نام ‪ RTT‬و مقداردهي آن هنگام‬
‫برقراري يک ارتباط ‪( TCP‬مقدار بزرگ‪-‬از حد اکثر زمان پاسخ‬
‫بزرگتر باشد)‬
‫ب) تنظيم يک زمان‌سنج به ازاي ارسال هر بسته و اندازه زمان رفت ‌و‬
‫برگشت پيغام دريافت بسته = ‪M‬‬
‫ج) بهنگام شدن مقدار پيش فرض زمان سنج از رابطه‪:‬‬
‫‪RTT =  RTT + (1-  )M‬‬
‫‪RT = β RTT‬‬
‫‪β =4, =7/8‬‬
‫|‪D=  D + (1-  ) |RTT-M‬‬
‫‪RT = RTT+ 4D‬‬
‫‪β =4, =7/8 , First D =0‬‬
‫‪Keep- Alive Timer‬‬
‫باز بودن‬
‫• توقف ارسال اطالعات ‌و عدم تبادل داده علي رغم فعال ‌و ‌‬
‫ارتباط ‪TCP‬‬
‫جهت تمايز اين دو‬
‫حالت‬
‫• قطع ارتباط يکي ‌از طرفين به دليل خرابي سخت افزاري‌ ‌و يا نرم افزاري‌‬
‫ارسال بسته ‪ TCP‬خالي از داده از طرف فرستنده اطالعات براي مقصد با استفاده از زمان سنج‬
‫‪( Keep- Alive Timer‬زمان پيش فرض بين ‪ 30‬تا ‪ 45‬ثانيه)‬
‫بازگشت پيغام دريافت از طرف مقصد‬
‫ارتباط ‪ TCP‬باز و فعال است‬
‫عدم بازگشت پيغام دريافت‬
‫قطع ارتباط به صورت يکطرفه و آزاد نمودن تمام بافرها‬
‫‪Persistence Timer‬‬
‫بافر آزاد يکي ‌از طرفين ارتباط صفر (‪)Window Size= 0‬‬
‫مقدار فضاي ‌‬
‫‌‬
‫•‬
‫متوقف شدن پروسه طرف مقابل‬
‫بافر جهت احياي پروسه بلوکه ‌و‬
‫اعالم آزادشدن فضاي ‌‬
‫پر شده بعد ‌از مدتي‬
‫بافر ‌‬
‫• خالي شدن مقداري‌ ‌از فضاي ‌‬
‫متوقف شده توسط سيستم عامل ‌و شروع ‌و ادامه ارسال پروسه متوقف شده‬
‫ارسال بسته ‪ TCP‬در فواصل زماني منظم با استفاده از زمان سنج ‪ Persistence Timer‬پس از آزاد‬
‫شدن فضاي بافر براي پروسه بلوکه‌شده جهت احيا و ادامه ارسال داده توسط آن‬
‫‪Quite Timer‬‬
‫هنگام بسته شدن يک ارتباط ‪ TCP‬با شماره پورت خاص تا مدت زمان معيني که زمان سنج ‪ Quite Timer‬تعيين‬
‫مي نمايد (مقدار پيش فرض = ‪ 30‬تا ‪ 120‬ثانيه) هيچ پروسه اي اجازه استفاده از شماره پورت بسته شده را ندارد‪.‬‬
‫جهت رسيدن بسته هاي سرگردان ناشي از ارتباط‬
‫پايان يافته موجود در شبکه به مقصد‬
‫‪Idle Timer‬‬
‫اگر تالش براي تکرار ارسال يک بسته بيش از حد متعارف انجام شود ارتباط ‪ TCP‬را بصورت يکطرفه رها کرده و قطع‬
‫مي‌نمايد‪ .‬مقدارمعمول آن ‪ 360‬ثانيه است‪.‬‬
‫پروتکل ‪UDP‬‬
‫• پروتکل بدون اتصال (‪)Connectionless‬‬
‫• پروتکل ساده و سريع‬
‫• کاربرد در سيستم هاي ‪ DNS‬و‪FTP‬‬
‫بسته ‪UDP‬‬
‫ارسال بسته به مقصد بدون اطمينان‬
‫ازبرقراري ارتباط و آماده بودن ماشين‬
‫مقصد‬
‫فيلدهاي بسته‬
‫‪UDP‬‬
‫فيلد ‪Source Port‬‬
‫• فيلد ‪ 16‬بيتي‬
‫• مشخص کننده آدرس پورت پروسه مبدأ‬
‫فيلد ‪Detination Port‬‬
‫• فيلد ‪ 16‬بيتي‬
‫• مشخص‌کننده آدرس پورت پروسه مقصد‬
‫فيلد ‪UDP Length‬‬
‫• فيلد ‪ 16‬بيتي‬
‫• طول بسته ‪ UDP‬بر حسب بايت (شامل سرآيند و داده‌ها)‬
‫فيلدهاي بسته‬
‫‪UDP‬‬
‫فيلد ‪UDP Checksum‬‬
‫• فيلد ‪ 16‬بيتي‬
‫در اين فيلد‬
‫• درج کد کشف خطا ‌‬
‫ير‬
‫• فيلد اختياري‌ (جهت ارسال ديجيتال صدا ‌و تص ‌و ‌‬
‫مقدار تمام بيتها صفر )‬
‫‌‬
‫مناسبترين کاربرد پروتکل ‪ = UDP‬پروسه هايي که عمليات آنها مبتني بريک تقاضا و يک پاسخ مي‌باشد‪.‬‬
‫مانند ‪ :‬سيستم ‪DNS‬‬
‫ماشينهاي ‪ Big Edition‬و ‪Little Edition‬‬
‫ماشين‌هاي ‪ : Big Endian‬ماشين‌هايي که ابتدا بايت پرارزش و سپس بايت کم‬
‫ارزش را ذخيره مي‌کنند مثل کامپيوترهاي سري ‪SUN‬‬
‫ماشين‌هاي ‪ : little Endian‬ماشين‌هايي که ابتدا بايت کم ارزش و سپس بايت پرارزش را ذخيره‬
‫مي‌‌کنند مثل کامپيوترهاي شخص ي با پردازنده سري ‪ 80X86‬و پنتيوم‬
‫تشکيل بسته‌هاي ‪ IP‬ابتدا در حافظه و ارسال از طريق سخت افزار شبکه‬
‫ماشين ‪ Big Endian‬به يک ماشين ‪ Little Endian‬و يا برعکس‬
‫محتوي بسته دريافتي‬
‫دريافت بسته ‪ IP‬ارسالي از يک‬
‫تعويض بايتها و فاقد ارزش بودن‬
‫پروتکل ‪ ، TCP/IP‬استاندارد ماشين‌هاي ‪ Big Endian‬را مبنا قرار داده است‬