240 likes | 466 Views
مهندسی فناوری اطلاعات. ارائه دهنده دکتر سيد امين حسيني hosseini@um.ac.ir E.mail: Home page: http://hosseini.staffcms.um.ac.ir. لايه انتقال در شبکه اينترنت. روش برقراري ارتباط در پروتکل TCP روش کنترل جريان دادهها در پروتکل TCP زمان سنجها و عملکرد آنها در پروتکل TCP پروتکل UDP.
E N D
مهندسی فناوری اطلاعات ارائه دهنده دکتر سيد امين حسيني hosseini@um.ac.irE.mail: Home page:http://hosseini.staffcms.um.ac.ir
لايه انتقال در شبکه اينترنت • روش برقراري ارتباط در پروتکل TCP • روش کنترل جريان دادهها در پروتکل TCP • زمان سنجها و عملکرد آنها در پروتکل TCP • پروتکل UDP
روش دست تکاني سه مرحلهاي • مرحله اول: • ارسالِ يک بسته TCP خالي از داده از طرف شروعکننده ارتباط با بيتهاي SYN=1 و ACK=0 و قراردادن عدد x درون فيلد شماره ترتيب • اعلام شروع ترتيب دادههاي ارسالي از x+1 به ماشين طرف مقابل • پيشگيري از مساوي بودن شماره ترتيب دادههاي ارسالي با انتخاب مقدار x به صورت تصادفي روش برقراري ارتباط در پروتکلTCP
مرحله دوم : • رد تقاضاي برقراري ارتباط: ارسال بستهاي خالي با بيت 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 با بيت FIN = 1 از طرف درخواستکننده اتمام ارسال • موافقت طرف مقابل با اتمام ارتباط يکطرفه و ادامه ارسال داده توسط آن • قطع ارتباط دو طرفه با يک نمودن مقدار بيت FIN در آخرين بسته ارسالي و تصديق پايان ارتباط از طرف مقابل روند خاتمه ارتباطTCP
استفاده از بافر جهت کنترل جريان دادهها در پروتکل TCP • بافرشدن دادهها قبل از ارسال به برنامه کاربردي لايه بالاتر • امکان عدم دريافت و ذخيره دادهها توسط برنامه کاربردي درمهلت مقرر و پرشدن بافر اعلام حجم فضاي آزاد بافر در فيلد Window درهنگام ارسال بسته TCP به طرف مقابل • ايجاد يک ساختمان داده خاص به ازاي هر ارتباط برقرارشده TCP و نگهداري اطلاعاتي ازآخرين وضعيت ارسال و دريافت جريان دادهها = ساختمان داده بلوک نظارت بر انتقال = TCB = Transmission Control Block کنترل جريان در پروتکل TCP
فضاي بافرگيرنده 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 به استفاده درست از زمان سنجها زمان سنجها • Retransmission Timer • Keep- Alive Timer • Persistence Timer • Quite Timer • Idle Timer زمان سنجها در پروتکلTCP
زمان سنج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 باز و فعال است
ارسال بسته TCP در فواصل زماني منظم با استفاده از زمان سنج Persistence Timer پس از آزاد شدن فضاي بافر براي پروسه بلوکهشده جهت احيا و ادامه ارسال داده توسط آن Persistence Timer • مقدار فضاي بافر آزاد يکي از طرفين ارتباط صفر (Window Size= 0) متوقف شدن پروسه طرف مقابل • خالي شدن مقداري از فضاي بافر پر شده بعد از مدتي اعلام آزادشدن فضاي بافر جهت احياي پروسه بلوکه و متوقف شده توسط سيستم عامل و شروع و ادامه ارسال پروسه متوقف شده
هنگام بسته شدن يک ارتباط TCP با شماره پورت خاص تا مدت زمان معيني که زمان سنج Quite Timer تعيين مي نمايد (مقدار پيش فرض = 30 تا 120 ثانيه) هيچ پروسه اي اجازه استفاده از شماره پورت بسته شده را ندارد. جهت رسيدن بسته هاي سرگردان ناشي از ارتباط پايان يافته موجود در شبکه به مقصد Quite Timer اگر تلاش براي تکرار ارسال يک بسته بيش از حد متعارف انجام شود ارتباط TCP را بصورت يکطرفه رها کرده و قطع مينمايد. مقدارمعمول آن 360 ثانيه است. Idle Timer
بسته UDP پروتکلUDP • پروتکل بدون اتصال(Connectionless) • پروتکل ساده و سريع • کاربرد در سيستم هاي DNS و FTP ارسال بسته به مقصد بدون اطمينان ازبرقراري ارتباط و آماده بودن ماشين مقصد
فيلد 16 بيتي • مشخص کننده آدرس پورت پروسه مبدأ فيلد Source Port • فيلد 16 بيتي • مشخصکننده آدرس پورت پروسه مقصد فيلد Detination Port فيلد UDP Length • فيلد 16 بيتي • طول بسته UDP بر حسب بايت (شامل سرآيند و دادهها) فيلدهاي بسته UDP
فيلد 16 بيتي • درج کد کشف خطا در اين فيلد • فيلد اختياري (جهت ارسال ديجيتال صدا و تصوير مقدار تمام بيتها صفر ) مناسبترين کاربرد پروتکل UDP = پروسه هايي که عمليات آنها مبتني بريک تقاضا و يک پاسخ ميباشد. مانند : سيستم DNS فيلد UDP Checksum فيلدهاي بسته UDP
ماشينهاي Big Edition و Little Edition ماشينهاي Big Endian : ماشينهايي که ابتدا بايت پرارزش و سپس بايت کم ارزش را ذخيره ميکنند مثل کامپيوترهاي سري SUN ماشينهاي little Endian : ماشينهايي که ابتدا بايت کم ارزش و سپس بايت پرارزش را ذخيره ميکنند مثل کامپيوترهاي شخصي با پردازنده سري 80X86 و پنتيوم
تشکيل بستههاي IP ابتدا در حافظه و ارسال از طريق سخت افزار شبکه دريافت بسته IP ارسالي از يک ماشين Big Endianبه يکماشين Little Endian و يا برعکس تعويض بايتها و فاقد ارزش بودن محتوي بسته دريافتي پروتکل TCP/IP ، استاندارد ماشينهاي Big Endian را مبنا قرار داده است