پروتكلي براي ارتباط داخلي در شبكه با استفاده از ارسال بسته داده ها

 

VINTON G. CERF AND ROBERT E. KAHN,

MEMBER, IEEE


 

چكيده- در اين مقاله پروتكلي معرفي مي شود كه از اشتراك منابع (sharing of resources) پشتيباني مي كند و در بسياري از شبكه هاي گزينشي بسته اي (packet switching networks) وجود دارد. اين پروتكل براي تنوع وسيعي از اندازه بسته داده ها، نقص مخابره (transmission failure)، ترتيب دهي (sequencing)، كنترل جريان داده ها، بررسي خطا به صورت پيوسته، ايجاد و از بين بردن اتصالات منطقي فرآيندها به كار مي رود. بعضي از مشكلات اجراي اين پروتكل مورد توجه قرار مي گيرند و در مورد مشكلاتي همچون مسيريابي داده ها (routing) در داخل شبكه، محاسبات و وقفه (timeout) در مخابره داده ها بحث مي شود.

 

مقدمه

در چند سال گذشته تلاش قابل توجهي در زمينه طراحي و اجراي شبكه هاي گزينشي بسته اي انجام شده است [1]-[ 7],[ 14],[ 17]. يكي از دلايل اصلي براي توسعه چنين شبكه هايي، آسان تر كردن اشتراك منابع كامپيوتري است. يك شبكه ارتباطي بسته اي (packet communication network) شامل يك مكانيزم براي انتقال داده ها بين كامپيوترها يا بين كامپيوترها و ترمينال ها است. كامپيوترها و ترمينال ها از يك پروتكل مشترك استفاده مي كنند تا به وسيله آن داده ها بامعنا شوند (يعني مجموعه اي از قرادادهايي كه مورد پذيرش دو طرف است). پروتكلهاي مختلفي تاكنون براي اين منظور توسعه يافته اند [8]-[ 12],[ 16]. با اين حال، اين پروتكلها صرفاً مشكلات ارتباطي موجود در تنها يك شبكه را مد نظر قرار داده اند. در اين مقاله پيرامون نحوه كار يك نوع پروتكل و فلسفه ايجاد آن بحث مي كنيم كه از اشتراك منابع موجود در شبكه هاي گزينشي بسته اي متفاوت پشتيباني مي كند.

پس از مقدمه اي كوتاه در مورد مشكلات پروتكل بين شبكه اي، نقش گذرگاه (Gateway) در برقراري ارتباط بين شبكه ها و اهميت آن در پروتكل را توصيف مي كنيم. سپس جزئيات مختلف پروتكل را مد نظر قرار مي دهيم كه شامل آدرس دهي، فرمت كردن، بافرينگ، ترتيب دهي، كنترل جريان، كنترل خطا و غيره است. مبحث را با توضيحي پيرامون مكانيزم ارتباطات داخل فرآيند خاتمه مي دهيم و نشان مي دهيم كه چگونه اين مكانيزم توسط پروتكل داخل شبكه اي پشتيباني مي شود.

اگرچه مشكلات پيچيده و بغرنج زيادي در طراحي يك شبكه گزينشي بسته اي وجود دارند كه بايد حل شوند، ولي اين مشكلات زماني كه شبكه هاي غير مشابه به هم متصل مي شوند، تبديل به مشكلاتي پيچيده تر مي شوند. بعضي از اين مشكلات ممكن است در هيچ كدام از اين شبكه ها رخ ندهد ولي مي تواند به شدت بر ارتباطات بين شبكه اي تأثير بگذارد.

يك شبكه گزينشي بسته اي از مجموعه اي از منابع كامپيوتري با نام هاست (host)، مجموعه اي از يك يا چند سوييچ براي گزينش مسير بسته داده ها (packet switch) و مجموعه اي از رسانه هاي ارتباطي (communication media) تشكيل شده است كه با سوييچ هاي بسته داده ها در اتصال است. فرض مي كنيم كه درون هر هاست، فرآيندهايي وجود دارند كه بايد با فرآيندهاي هاست هاي خودشان يا هاست هاي ديگر ارتباط برقرار كنند. تعريفي از يك فرآيند (process) بايد ارائه دهيم [13]. اين فرآيندها به طور كلي مبدأ (Source) و مقصد (destination) نهايي داده ها در شبكه مي باشند. معمولاً در داخل يك شبكه، پروتكلي براي ارتباط بين هر فرآيند مبدأ و مقصد وجود دارد. تنها فرآيندهاي مبدأ و مقصد نياز به دانستن اين قرارداد براي برقراري ارتباط دارند. فرآيندهاي موجود در دو شبكه متمايز معمولاً از پروتكلهاي متفاوتي براي برقراري ارتباط استفاده مي كنند. به مجموعه سوييچ هاي بسته داده ها و رسانه ارتباطي، زير شبكه گزينشي بسته اي (packet switching subnet) گفته مي شود. شكل 1 اين مفاهيم را نمايش مي دهد.

در يك زير شبكه گزينشي بسته اي، داده هايي كه اندازه ماكزيمم آنها ثابت است به همراه آدرس هاست مقصد گرفته مي شود. اين آدرس به صورت فرمت شده در مي آيد و براي مسيريابي داده ها به صورت ذخيره و ارسال استفاده مي شود. زمان مخابره براي اين داده ها معمولاً به پارامترهاي داخلي شبكه همچون ميزان مخابره داده ها در رسانه ارتباطي، بافرينگ و روشهاي فرستادن سيگنال، مسيريابي، تأخير در انتشار (propagation delay) و غيره بستگي دارد. به علاوه به طور كلي مكانيزمهايي براي رفع خطا و تعيين وضعيت اجزاي شبكه ارائه مي شوند.

1) هر شبكه ممكن است روشهاي مختلفي براي دادن آدرس به گيرنده داده ها استفاده كند، بنابراين نياز به قوانيني يكسان براي آدرس دهي احساس مي شود، به طوري كه تمامي شبكه ها بتوانند آدرس دريافت شده را درك كنند.

2) هر شبكه ممكن است داده هايي با اندازه ماكزيمم متفاوتي را قبول كند و بنابراين نياز به شبكه هايي با كوچكترين اندازه ماكزيمم (كه ممكن است غير عملي باشد) دارد يا نياز به روالهايي دارد كه به داده هايي كه از ميان يك مرز شبكه عبور مي كنند اجازه دهد دوباره فرمت بندي شوند و به تكه هاي كوچكتري در آيند.

3) موفقيت يا عدم موفقيت يك مخابره و عملكرد آن در هر شبكه توسط تأخير زماني در پذيرش، تحويل و انتقال داده ها تعيين مي شود. اين كار نياز به ايجاد روالهايي براي زمان بندي اين فرآيندها در داخل شبكه دارد تا اطمينان حاصل كنيم كه داده ها مي توانند با موفقيت در ميان شبكه ها تبادل شوند.

4) به خاطر از بين رفتن داده ها و داده هاي مفقود ممكن است ارتباطات داخل شبكه گسيخته شود. روالهاي پشت سر هم براي بازگرداني اين داده ها مي توانند اين مشكل را برطرف كنند.

 

 

شكل 1: يك شبكه گزينشي بسته اي

 

5) اطلاعات مربوط به وضعيت اجزاي شبكه، مسيريابي، كشف عيب (fault detection) و جداسازي شبكه ها (Isolation) معمولاً در هر شبكه متفاوت هستند. بنابراين، براي بررسي شرايط معيني همچون مقصد غير قابل دسترسي (inaccessible destination) يا مقصد كور (dead destination)، انواع مختلفي از هماهنگ سازي بايد بين شبكه هاي ارتباطي فراخواني شوند.

اگر بتوانيم اختلافات بين شبكه ها را با برقراري ارتباط ميان آنها در نقاط مرزي از بين ببريم و اين روش از لحاظ اقتصادي مقرون به صرفه باشد، كار بزرگي انجام داده ايم. بسياري از ناهماهنگي ها و ناسازگاريها را مي توان با اين روش از بين برد. به هر حال، از لحاظ فني و اقتصادي بايد رابطي به كار ببريم كه ساده و قابل اعتماد باشد. اين رابط براي عبور داده ها بين شبكه هايي استفاده مي شود كه از استراتژيهاي متفاوت گزينشي بسته اي استفاده مي كنند.

پرسشي كه اكنون مطرح مي شود اين است كه آيا نقش رابط برطرف كردن ناهماهنگي در ميان پروتكلهاي سطح هاست يا پروتكلهاي سطح فرآيند بوسيله مخابره قراردادهاي مبدأ به قراردادهاي مقصد مطابق با آن است. هدف ما اين است كه تبديل بين استراتژيهاي گزينشي بسته اي را در رابط امكان پذير سازيم و امكان اتصال شبكه هاي موجود طراحي شده را فراهم سازيم. با اين حال، پيچيدگي و عدم شباهت پروتكلهاي سطح هاست يا سطح فرآيند باعث مي شوند كه دوست داشته باشيم از تبديل بين آنها در رابط جلوگيري كنيم، حتي اگر اين تبديل هميشه امكان پذير باشد. علاوه بر اين، پروتكلهاي سطح هاست و سطح فرآيند كه با هم سازگار هستند بايد توسعه پيدا كنند تا اينكه بتوانيم اشتراك منابع را به صورت مؤثر در داخل شبكه برقرار كنيم. به جاي اين كار مي توانيم روشي ديگر به كار ببريم. البته چنين روشي زياد قابل قبول نيست. در اين روش جايگزين مي توانيم هر پروتكل هاست يا شبكه را براي ارتباط با ساير شبكه ها به كار بيندازيم. رابط بين شبكه ها بايد تا آنجا كه ممكن است در اين پروتكل نقش كمتري داشته باشد.