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