مهندسی فناوری اطلاعات ارائه دهنده دکتر سيد امين حسيني hosseini@um.ac.ir E.mail: Home page: http://hosseini.staffcms.um.ac.ir
لايه انتقال در شبکه اينترنت مفاهيم لايه انتقال مفهوم پورت و سوکت تشريح پروتکل TCP
لايه انتقال در شبکه اينترنت وظیفه ای لایه فراهم آوردن خدمات سازماندهيشده, مطمئن و مبتني بر اصول سيستم عامل, براي برنامههاي کاربردي در لايه بالاتر است. می توان آن را با سیستم مدیریت فایل سیستم عامل مقایسه کرد.
لایه انتقال در شبکه اینترنت User Datagram Protocol لایه انتقال در شبکه اینترنت پروتکلهاي لايه انتقال TCP Transmisson Control Protocol UDP User Datagram Protocol
مقایسه دو لایه لايه IP لايه انتقال هدايت و مسيريابي بستههاي اطلاعاتي از يک ماشين ميزبان به ماشين ديگر عدم حل مشکلات احتمالي به وجود آمده براي بستههاي IP در مسير لايه IP فراهم آوردن خدمات سازماندهيشده, مطمئن و مبتني بر اصول سيستم عامل, براي برنامههاي کاربردي در لايه بالاتر جبران کاستيهاي لايه IP لايه انتقال
راهکارهاي پروتکل TCP کاستيهاي لايه IP برقراري يک ارتباط و اقدام به هماهنگي بين مبدأ و مقصد قبل از ارسال هر گونه داده عدم تضمين درآمادهبودن ماشين مقصد جهت دريافت بسته فرض کنید پروسه A تمایل دارد به پروسه B در دو ماشین دادهها ارسال کند. A بسته در خواست خود را به B ار سال می کند. B در خواست را دریافت و بر اساس شرایط خود آمادگی یا عدم آمادگی خود را اعلام می کند در صورتی که A در یک زمان مشخص پاسخ مثبت دریافت کرد می تواند داده ار سال کند
راهکارهاي پروتکل TCP کاستيهاي لايه IP عدم تضمين در به ترتيب رسيدن بستههاي متوالي و دادهها و صحت آنها قراردادن شماره ترتيب براي دادهها تنظيم کد 16 بيتي کشف خطا در مبدأ و بررسي مجدد آن در مقصد جهت اطمينان از صحت دادهها عدم تضمين در صحت دادهها A داده خود را به صورت یک بسته آماده و در سرایند آن شماره ترتیب بسته اضافه کرده و ضمن نگهداری آن در بافر و تنظیم زمان سنج آن را ارسال می کند در خواست خود را به B ار سال می کند. همچنین جهت نظارت بر خطای احتمالی کد کشف خطا به سرایند آن اضافه می کند اگر B بسته را سالم در یافت کرد Ack به A ارسال می کند به صورت piggybacking در صورتی که A در یک زمان مشخص پاسخ مثبت دریافت کرد بافر را آزاد و در غیر آن داده را دوباره ارسال می کند.
عدم تنظيم سرعت ارسال و تحويل بستهها راهکارهاي پروتکل TCP کاستيهاي لايه IP قرار دادن شماره ترتيب در بسته ارسالي عدم تمايز در دريافت بستههاي تکراري در مقصد ( Duplication Problem) استفاده از مکانیزم پنجره و الگوريتم پويا جهت تنظيم مجموعه زمان سنجها عدم تنظيم سرعت ارسال و تحويل بستهها TCP به کمک مکانیزم پنجره و الگوريتم پويا جهت تنظيم مجموعه زمان سنجها عمل کنترل جریان و ازدحام را انکام می دهد.
راهکارهاي پروتکل TCP کاستيهاي لايه IP قراردادن آدرس پورت پروسه فرستنده و گيرنده در سرآيند بسته ارسالي عدم توزيع بستهها بين پروسههاي مختلف اجرا شده بر روي يک ماشين واحد TCP برای این منظور آدرس پورت برای هر پروسه در نظر گرفت که آدرس پورت فرستنده و گیرنده در سرایند بسته قرار می کیرد.
شماره پورتهاي استاندارد آدرس پورت شماره شناسايي مشخصکننده هر پروسه براي برقراري يک ارتباط با پروسهي ديگر بر روي شبکه شماره پورتهاي استاندارد Port Protocol Use 21 FTP File transfer 23 Telnet Remote login 25 SMTP E-mail 69 TFTP Trivial File Transfer Protocol 79 Finger Lookup info about a user 80 HTTP World Wide Web 110 POP-3 Remote e-mail access 119 NNTP USENET news
(IP Address: Port Number)= Socket Address آدرس سوکت زوج آدرس IP و آدرس پورت مشخصکننده يک پروسه يکتا و واحد بر روي هر ماشين در دنيا (IP Address: Port Number)= Socket Address 193.142.22.121 : مثال 80
آدرس دهی پروسه ها
ساختار بسته هاي پروتکل TCP TPDU = Transport Protocol Data Unit= بسته توليد شده در لايه انتقال = قطعهTCP
بسته پروتکل TCP
فیلد های بسته TCP فيلد Source Port فيلد Destination Port فيلد 16بيتي آدرس پورت پروسه مبدأ فيلد Source Port فيلد 16 بيتي آدرس پورت پروسه مقصد فيلد Destination Port
فیلد های بسته TCP فيلد Sequence Number فيلد 32 بيتي مشخص کننده شماره ترتيب آخرين بايت قرارگرفته شده در فيلد داده از بسته جاري فيلد Sequence Number اگر عدد 12345 در آن باشد معنی آن این هست که تا بایت 12345 از داده ها در آن قرار دارد. معنی آن این نیست که 12345 بایت در آن قرار دارد. شماره ترتیب اولین بایت از صفر شروع نمی شود بلمه از یک عدد تصادفی هنگام برقراری ارتباط انتخاب شده است. اگر در زمان مشخص Ack یک بسته نیاید تمام بسته های بعد آن نیر وباره ارسال خواهند شد.
فیلد های بسته TCP فيلد Acknowledgement Number فيلد TCP Header Lenght فيلد 32 بيتي مشخصکننده شماره ترتيب بايتي که فرستنده بسته منتظر دريافت آن است فيلد 4 بيتي مشخص کننده طول سرآيند بسته TCPبرمبناي کلمات 32 بيتي حداقل مقدار = 5 تعيين کننده محل شروع دادهها در بسته TCP فيلد TCP Header Lenght
فیلد های بسته TCP 6 بيت بلااستفاده بيتهاي Flag بيت URG 6 بيت بلااستفاده جهت استفاده درآينده 6 بيت بلااستفاده URG ACK PSH RST SYN FIN بيتهاي Flag بيت URG مقدار فيلد = 1 نشان دهنده معتبر بودن مقدار موجود در فيلد Urgent Pointer مقدار فيلد = 0 نشان دهنده نا معتبربودن مقدار موجود در فيلد Urgent Pointer
مقدار فيلد = 1 نشاندهنده قطع ارتباط به صورت يکطرفه و ناهماهنگ فیلد های بسته TCP مقدار فيلد = 1 نشاندهنده معتبر بودن مقدار موجود در فيلد Acknowledgement Number بيت ACK مقدار فيلد = 1 نشاندهنده تقاضاي فرستنده اطلاعات از گيرنده اطلاعات جهت بافرنکردن دادههاي موجود در بسته و تحويل سريع بسته به برنامههاي کاربردي به منظور انجام پردازشهاي بعدي بيت PSH مقدار فيلد = 1 نشاندهنده قطع ارتباط به صورت يکطرفه و ناهماهنگ بيت RST
فیلد های بسته TCP بيت SYN بيت FIN تغيير مقدار اين فيلد جهت برقراري ارتباط توسط ماشين بيت SYN مشخصکننده قطع و پايان ارسال اطلاعات هنگام اتمام دادههاي ارسالي توسط طرفين با 1 نمودن مقدار اين بيت هنگام ارسال آخرين بسته قطع کامل ارتباط: 1 نمودن مقدار اين فيلد توسط هر دو ماشين فرستنده و گيرنده قطع ارتباط يکطرفه: 1 نمودن مقدار اين فيلد توسط يکي از طرفين ارتباط بيت FIN
فیلد های بسته TCP روند برقراي ارتباط TCP الف) تنظيم بيتهاي 0ACK= و SYN=1 توسط شروع کننده ارتباط در يک بسته TCP بدون داده ( تقاضاي برقراري ارتباط = Connection Request ) ب) تنظيم بيتهايSYN=1 و ACK=1در صورت قبول طرف دريافتکننده بسته تقاضاي برقراري ارتباط به برقراري ارتباط
فیلد های بسته TCP فيلد Windows Size فيلد Checksum مشخص کننده مقدار ظرفيت خالي فضاي بافر گيرنده فيلد Windows Size فيلد Checksum فيلد 16 بيتي حاوي کد کشف خطا طريقه محاسبه کد کشف خطا تقسيم کل بسته TCP به قالبهاي 16 بيتي ( منهاي قسمت Checksum ) ايجاد يک سرآيند فرضي و تقسيم آن به صورت کلمات 16 بيتي جمع تمامي کلمات در مبناي مکمل 1 و منفي نمودن عدد حاصل در مبناي مکمل 1 و قرارگرفتن عدد حاصل در فيلد Checksum جمع کل کلمات 16 بيتي موجود در بسته TCP + سرآيند فرضي = 0 عدم بروز خطا در حين ارسال دادهها
Destination IP Address فیلد های بسته TCP ساختار سرآيند فرضي 32 بيت آدرس IP ماشين مبدأ 32 بيت آدرس IP ماشين مقصد يک فيلد 8 بيتي کاملاً صفر فيلد 8 بيتي پروتکل که براي پروتکل TCP = 6 فيلد TCP Segment Length = طول کل بسته TCP Source IP Address Destination IP Address TCP Segment Length 00000110 00000000
فیلد های بسته TCP فيلد Urgent Pointer فيلد Option فيلد اختياري شامل مقدار حداکثر طول بسته قراردادن کدهاي بي ارزش در اين فيلد به جهت آنکه طول بسته ضريبي از 4 باقي بماند