*************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را مبنا قرار داده است