500 likes | 766 Vues
فصل پنجم : لايه انتقال در شبکه اينترنت. مفاهيم لايه انتقال مفهوم پورت و سوکت تشريح پروتکل TCP روش برقراري ارتباط در پروتکل TCP روش کنترل جريان دادهها در پروتکل TCP زمان سنجها و عملکرد آنها در پروتکل TCP پروتکل UDP. هدفهاي آموزشي :.
E N D
فصل پنجم : لايه انتقال در شبکه اينترنت • مفاهيم لايه انتقال • مفهوم پورت و سوکت • تشريح پروتکل TCP • روش برقراري ارتباط در پروتکل TCP • روش کنترل جريان دادهها در پروتکل TCP • زمان سنجها و عملکرد آنها در پروتکل TCP • پروتکل UDP هدفهاي آموزشي :
مدل هفت لایه ای OSI (open system interconnection( کاربرد نمایش جلسه انتقال شبکه پیوند داده فیزیکی
مدل چهار لایه ای TCP/IP (Transmission control protocol ( کاربرد انتقال شبکه واسط شبکه
کاربرد نمایش کاربرد جلسه انتقال انتقال شبکه شبکه واسط شبکه پیوند داده TCP/IP فیزیکی OSI
پروتکلهاي لايه انتقال UDP User Datagram Protocol TCP Transmisson Control Protocol
لايه IP • هدايت و مسيريابي بستههاي اطلاعاتي از يک ماشين ميزبان به ماشين ديگر • عدم حل مشکلات احتمالي به وجود آمده براي بستههاي IP در مسير لايه انتقال • فراهم آوردن خدمات سازماندهيشده, مبتني بر اصول سيستم عامل, براي برنامههاي کاربردي در لايه بالاتر • جبران کاستيهاي لايه IP
کاستيهاي لايه IP راهکارهاي پروتکل TCP • برقراري يک ارتباط و اقدام به هماهنگي بين مبدأ و مقصد قبل از ارسال هر گونه داده • عدم تضمين درآمادهبودن ماشين مقصد جهت دريافت بسته • عدم تضمين در به ترتيب رسيدن بستههاي متوالي و دادهها و صحت آنها • قراردادن شماره ترتيب(sequence number) براي دادهها • تنظيم کد 16 بيتي کشف خطا در مبدأ و بررسي مجدد آن در مقصد جهت اطمينان از صحت دادهها
کاستيهاي لايه IP راهکارهاي پروتکل TCP • قرار دادن شماره ترتيب در بسته ارسالي • عدم تمايز در دريافت بستههاي تکراري در مقصد ( Duplication Problem) • استفاده از الگوريتم پويا جهت تنظيم مجموعه زمانسنجها • عدم توزيع بستهها بين پروسههاي مختلف اجرا شده بر روي يک ماشين واحد • قراردادن آدرس پورت پروسه فرستنده و گيرنده در سرآيند بسته ارسالي • عدم تنظيم سرعت ارسال و تحويل بستهها
آدرس پورت شماره پورتهاي استاندارد شماره شناسايي مشخصکننده هر پروسه براي برقراري يک ارتباط با پروسهي ديگر بر روي شبکه Port Protocol Use 21 FTP File transfer 23 Remote login Telnet E-mail 25 SMTP 69 TrivialFileTransferProtocol TFTP Finger Lookup info about a user 79 80 World Wide Web HTTP POP-3 110 Remote e-mail access USENET news 119 NNTP
آدرس سوکت زوج آدرس IP و آدرس پورت مشخصکننده يک پروسه يکتا و واحد بر روي هر ماشين در دنيا 193.142.22.121 : مثال 80 (IP Address: Port Number)= Socket Address
ساختار بسته هاي پروتکلTCP • TPDU = Transport Protocol Data Unit= بسته توليد شده در لايه انتقال = قطعهTCP
فيلد Source Port • فيلد 16بيتي • آدرس پورت پروسه مبدأ • Email port number : 25
فيلد 16 بيتي • آدرس پورت پروسه مقصد فيلد Destination Port
فيلد Sequence Number • فيلد 32 بيتي • مشخص کننده شماره ترتيب آخرين بايت قرارگرفته شده در فيلد داده از بسته جاري : یعنی داده ها تا بایت شماره 1343 درون فیلد داده قرار گرفته اند. این بدان معنا نیست که 1343 بایت داده در فیلد داده قرار گرفته اند. شماره ترتیب اولین بایت یک عدد تصادفیست و لزوما از 0 شروع نمیشود. 1343
فيلد Acknowledgement Number • فيلد 32 بيتي • مشخصکننده شماره ترتيب بايتي که فرستنده بسته، منتظر دريافت آن است. مثلا اگر عدد درون این فیلد 1000 باشد، فرستنده متوجه میشود که 999 بایت توسط گیرنده درست دریافت شده است و گیرنده منتظر بایتهای 1000 ام به بعد می باشد.
فيلد TCP Header Lenght • فيلد 4 بيتي • مشخص کننده طول سرآيند بسته TCPبرمبناي کلمات 32 بيتي . مثلا عدد 7 دراین بیت • مشخص میکند که طول سرایند بسته 28 بایت است. • حداقل مقدار = 5 : چون قسمت ثابت و اجباری در یک بسته TCP ، 20 بایت است. • تعيين کننده محل شروع دادهها در بسته TCP
6 بيت بلااستفاده 6 بيت بلااستفاده جهت استفاده درآينده 6 بيتي مقدار فيلد = 1 نشان دهنده معتبر بودن مقدار موجود در فيلد Urgent Pointer مقدار فيلد = 0 نشان دهنده نا معتبربودن مقدار موجود در فيلد Urgent Pointer که از آن چشمپوشی میشود. PSH RST SYN FIN URG ACK بيتهايFlag ( بیتهای کنترل یا بیتهای درخت کریسمس) بيت URG
بيت ACK بيت PSH( (PUSH مقدار فيلد = 1 نشاندهنده تقاضاي فرستنده اطلاعات از گيرنده اطلاعات جهت بافرنکردن دادههاي موجود در بسته و تحويل سريع بسته به برنامههاي کاربردي به منظور انجام پردازشهاي بعدي(تمرین : مثال بیاورید؟) مقدار فيلد = 1 نشاندهنده قطع ارتباط به صورت يکطرفه و ناهماهنگ بيت RST PSH RST SYN FIN URG ACK مقدار فيلد = 1 نشاندهنده معتبر بودن مقدار موجود در فيلد Acknowledgement Number
بيتSYN تغيير مقدار اين فيلد جهت برقراري ارتباط توسط ماشين روند برقراي ارتباط TCP الف) تنظيم بيتهاي 0ACK= و SYN=1 توسط شروع کننده ارتباط در يک بسته TCP بدون داده (تقاضاي برقراري ارتباط = Connection Request ) ب) تنظيم بيتهايSYN=1 و ACK=1در صورت قبول طرف دريافتکننده بسته تقاضاي برقراري ارتباط به برقراري ارتباط
مشخصکننده قطع و پايان ارسال اطلاعات هنگام اتمام دادههاي ارسالي توسط طرفين با 1 نمودن مقدار اين بيت هنگام ارسال آخرين بسته قطع کامل ارتباط: 1 نمودن مقدار اين فيلد توسط هر دو ماشين فرستنده و گيرنده قطع ارتباط يکطرفه: 1 نمودن مقدار اين فيلد توسط يکي از طرفين ارتباط بيتFIN فيلد Windows Size مشخص کننده مقدار ظرفيت خالي فضاي بافر گيرنده
فيلد 16 بيتي • حاوي کد کشف خطا فيلد Checksum طريقه محاسبه کد کشف خطا • تقسيم کل بسته TCP به قالبهاي 16 بيتي ( منهاي قسمت Checksum ) • ايجاد يک سرآيند فرضي و تقسيم آن به صورت کلمات 16 بيتي • جمع تمامي کلمات در مبناي مکمل 1 و منفي نمودن عدد حاصل در مبناي مکمل 1 و قرارگرفتن عدد حاصل در فيلد Checksum جمع کل کلمات 16 بيتي موجود در بسته TCP + سرآيند فرضي = 0 عدم بروز خطا در حين ارسال دادهها
ساختار سرآيند فرضي • 32 بيت آدرس IP ماشين مبدأ • 32 بيت آدرس IP ماشين مقصد • يک فيلد 8 بيتي کاملاً صفر • فيلد 8 بيتي پروتکل که براي پروتکل TCP = 6 • فيلد TCP Segment Length = طول کل بسته TCP
مشکلات checksum : • تمایز لایه ها و پنهانسازی جزئیات درونی هر لایه از لایه دیگر را درنظر نمیگیرد.
فيلد Urgent Pointer اشاره گر به موقعيت دادههاي اضطراري موجود در بسته TCP( مثل وقفه : این فیلد برای مشکلاتی مانند وقفه که غیرمنتظره هستند، راه حل ارائه میکند.) فيلدOption • فيلد اختياري • شامل مقدار حداکثر طول بسته • قراردادن کدهاي بي ارزش در اين فيلد به جهت آنکه طول بسته ضريبي از 4 باقي بماند
روش برقراري ارتباط در پروتکل 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
SYN=1 Sequence Number=x 1 SYN=1, ACK=1 Sequence Number=y Sequence Number=x+1 2 SYN=1, ACK=1 Sequence Number=x+1 Ack.Number=y+1 3 مراحل دست تكاني سه مرحله اي براي برقراري ارتباط در پروتكلTCP
روند خاتمه ارتباط TCP • ارسال بسته TCP با بيت FIN = 1 از طرف درخواستکننده اتمام ارسال • موافقت طرف مقابل با اتمام ارتباط يکطرفه و ادامه ارسال داده توسط آن • قطع ارتباط دو طرفه با يک نمودن مقدار بيت FIN در آخرين بسته ارسالي و تصديق پايان ارتباط از طرف مقابل
کنترل جريان و ازدحام در پروتکل TCP • استفاده از بافر جهت کنترل جريان دادهها در پروتکل TCP • بافرشدن دادهها قبل از ارسال به برنامه کاربردي لايه بالاتر • امکان عدم دريافت و ذخيره دادهها توسط برنامه کاربردي درمهلت مقرر و پرشدن بافر اعلام حجم فضاي آزاد بافر در فيلد Window درهنگام ارسال بسته TCP به طرف مقابل • ايجاد يک ساختمان داده خاص به ازاي هر ارتباط برقرارشده TCP و نگهداري اطلاعاتي ازآخرين وضعيت ارسال و دريافت جريان دادهها = ساختمان داده بلوک نظارت بر انتقال = TCB = Transmission Control Block
فضاي بافرگيرنده 4 Kbyte ارسال 2 Kbyteداده Window Size=2048 ارسال 2 Kbyteداده Window Size=0 فرستنده متوقف ميشود گيرنده2KB از بافر ميخواند Window Size=2048 فرستنده مجدداً احيا ميشود ارسال 1 Kbyteداده گيرنده فرستنده مثال روند کنترل جريان در پروتکل TCP
زمان سنجها در پروتکلTCP TCP Timer وابستگي عملکرد صحيح پروتکل TCP به استفاده درست از زمان سنجها زمان سنجها • Retransmission Timer • Keep- Alive Timer • Persistence Timer • Quite Timer • Idle Timer
زمان سنجRetransmission Timer پس از برقراري ارتباط و ارسال بسته براي پروسه مقصد, زمانسنجي (RT) با مقدار پيش فرض تنظيم و فعال ميگردد و شروع به شمارش معکوس مينمايد که اگر در مهلت مقرر پيغام دريافت بسته (Ack) نرسيد رخداد انقضاي زمان تکرار روي داده و ارسال مجدد بسته صورت گيرد. Retransmission Timeout Event
عملکرد اين زمان سنج Retransmission Timer بسيار ساده است اما مشکل در اينجاست که: 1- عمل ارسال مجدد يک بسته چند بار بايد تکرارشود؟ 2- مقدار پيش فرض زمان سنج چه مقدار باشد؟ در شبکه های محلی سریع زمان رفت یک بسته و برگشت پیغام دریافت آن، حدود کسری از میلی ثانیه خواهد بود. در شبکه WAN این زمان رفت و برگشت، تا چندین ثانیه ممکن است طول بکشد. اگر قرار باشد زمان پیش فرض زمانسنج RT به مقداری کم تنظیم شود، آنگاه اگر مقصد راه دوری باشد قبل از آنکه بسته بتواند به مقصد برسد مهلت زمانسنج به پایان میرسد و بسته دوباره ارسال میشود و این کار به طور متوالی انجام میشود و باعث مصرف بیهوده پهنای باند و ترافیک خط می شود. همچنین اگر مقدار زمانسنج مقدار زیادی درنظرگرفته شود در شبکه های کوچکتر هنگام بروز خطا تاخیر زیادی به وجود می آید. بهترين راه تنظيم زمان سنج : روشهاي وفقي و پويا
الف) ايجاد يک متغير حافظه يه نام RTT و مقداردهي آن هنگام برقراري يک ارتباط TCP ب) تنظيميک زمانسنج به ازاي ارسال هر بسته و اندازه زمان رفت و برگشت پيغام دريافت بسته = M ج) بهنگام شدن مقدار پيش فرض زمان سنج از رابطه: الگوريتم Jacobson RTTnew=RTTold+4*Dnew Dnew=.Dold+(1-).(RTTold-M) =7/8 مقدار اوليهD ميتواند صفر باشد.
Keep- Alive Timer • توقف ارسال اطلاعات و عدم تبادل داده علي رغم فعال و باز بودن ارتباط TCP • قطع ارتباط يکي از طرفين به دليل خرابي سخت افزاري و يا نرم افزاري جهت تمايز اين دو حالت ارسال بسته TCP خالي از داده از طرف فرستنده اطلاعات براي مقصد با استفاده از زمان سنج Keep- Alive Timer(زمانپيش فرض بين 5 تا 45 ثانيه) عدم بازگشت پيغام دريافت قطع ارتباط به صورت يکطرفه و آزاد نمودن تمام بافرها بازگشت پيغام دريافت از طرف مقصد ارتباط TCP باز و فعال است
Persistence Timer • مقدار فضاي بافر آزاد يکي از طرفين ارتباط صفر (Window Size= 0) متوقف شدن پروسه طرف مقابل • خالي شدن مقداري از فضاي بافر پر شده بعد از مدتي اعلام آزادشدن فضاي بافر جهت احياي پروسه بلوکه و متوقف شده توسط سيستم عامل و شروع و ادامه ارسال پروسه متوقف شده ارسال بسته TCP در فواصل زماني منظم با استفاده از زمان سنج Persistence Timer پس از آزاد شدن فضاي بافر براي پروسه بلوکهشده(deadlock) جهت احيا و ادامه ارسال داده توسط آن
هنگام بسته شدن يک ارتباط TCP با شماره پورت خاص تا مدت زمان معيني که زمان سنج Quite Timer تعيين مي نمايد (مقدار پيش فرض = 30 تا 120 ثانيه) هيچ پروسه اي اجازه استفاده از شماره پورت بسته شده را ندارد. جهت رسيدن بسته هاي سرگردان ناشي از ارتباط پايان يافته موجود در شبکه به مقصد Quite Timer اگر تلاش براي تکرار ارسال يک بسته بيش از حد متعارف انجام شود ارتباط TCP را بصورت يکطرفه رها کرده و قطع مينمايد. مقدارمعمول آن 360 ثانيه است. Idle Timer
پروتکل UDP • پروتکل بدون اتصال(Connectionless) • پروتکل ساده و سريع • کاربرد در سيستم هاي DNS و TFTP ارسال بسته به مقصد بدون اطمينان ازبرقراري ارتباط و آماده بودن ماشين مقصد بسته UDP
فيلدهاي بسته UDP • فيلد 16 بيتي • مشخص کننده آدرس پورت پروسه مبدأ فيلد Source Port • فيلد 16 بيتي • مشخصکننده آدرس پورت پروسه مقصد فيلد Detination Port فيلد UDP Length • فيلد 16 بيتي • طول بسته UDP بر حسب بايت (شامل سرآيند و دادهها)
فيلد 16 بيتي • درج کد کشف خطا در اين فيلد • فيلد اختياري (جهت ارسال ديجيتال صدا و تصوير مقدار تمام بيتها صفر ) مناسبترين کاربرد پروتکل UDP = پروسه هايي که عمليات آنها مبتني بريک تقاضا و يک پاسخ ميباشد. مانند : سيستم DNS فيلد UDP Checksum
ماشينهاي Big Edition و Little Edition ماشينهاي Big Endian : ماشينهايي که ابتدا بايت پرارزش و سپس بايت کم ارزش را ذخيره ميکنند مثل کامپيوترهاي سري SUN ماشينهاي little Endian : ماشينهايي که ابتدا بايت کم ارزش و سپس بايت پرارزش را ذخيره ميکنند مثل کامپيوترهاي شخصي با پردازنده سري 80X86 و پنتيوم
تشکيل بستههاي IP ابتدا در حافظه و ارسال از طريق سخت افزار شبکه دريافت بسته IP ارسالي از يک ماشين Big Endianبه يکماشين Little Endian و يا برعکس تعويض بايتها و فاقد ارزش بودن محتوي بسته دريافتي پروتکل TCP/IP ، استاندارد ماشينهاي Big Endian را مبنا قرار داده است
فصل ششم: سرويس دهندههاي نام حوزه DNSو اصول مديريت شبکه SNMP هدفهاي آموزشي : • اصول سرويس دهندههاي نام • مفهوم نام حوزه و سلسله مراتب نام • روشهاي جستجو در سرويس دهندههاي نام • پرسوجوي تکراري • پرسوجوي بازگشتي • پرسوجوي معکوس • ساختار بانک اطلاعاتي در سرويس دهندههاي نام • قالب پيام در سرويسدهندههاي نام حوزه • اصول مديريت شبکه در اينترنت • اصول پروتکل SNMP