انواع پرو تکل
آموزش DNS 1
تاریخچه DNS 2
پروتکل DNS 2
پروتکل DNS و مدل مرجع OSI 2
DNS 3
Flat NetBios NameSpace 4
اینترفیس های NetBIOS و WinSock 5
اینترفیس Winsock 5
استفاده از نام یکسان دامنه برای منابع اینترنت و اینترانت 8
استفاده از اسامی متفاوت برای دامنه ها ی اینترنت و اینترانت 9
Reverse Lookup Zones 11
آشنائی با پروتکل HTTP 12
پروتکل HTTP چیست ؟ 12
توضیحات : 13
پروتکل HTTP : یک معماری سرویس گیرنده و سرویس دهنده 15
پاسخ سرویس دهنده 15
توضیحات : 16
آشنائی با پروتکل های SLIP و PPP 17
PPP نسبت به SLIP دارای مزایای متعددی است : 17
وجه اشتراک پروتکل های PPP و SLIP 18
نحوه عملکرد یک اتصال SLIP و یا PPP 18
آشنائی با پروتکل FTP ( بخش اول ) 19
پروتکل FTP چیست ؟ 19
ویژگی های پروتکل FTP 19
اموزش FTP 23
Passive Mode 25
ملاحضات امنیتی 25
Passive Mode و یا Active Mode ؟ 25
پیکربندی فایروال 26
و اما یک نکته دیگر در رابطه با پروتکل FTP ! 26
پروتکل TCP/IP 26
پروتکل های موجود در لایه Network پروتکل TCP/IP 27
پروتکل های موجود در لایه Application پروتکل TCP/IP 27
سیستم پست الکترونیکی واقعی 28
سرویس دهنده SMTP 29
سرویس دهنده POP3 31
ضمائم 32
منابع: 32
آموزش DNS
DNS از کلمات Domain Name System اقتباس و یک پروتکل شناخته شده در عرصه شبکه های کامپیوتری خصوصا اینترنت است . از پروتکل فوق به منظور ترجمه اسامی کامپیوترهای میزبان و Domain به آدرس های IP استفاده می گردد. زمانی که شما آدرس www.srco.ir را در مرورگر خود تایپ می نمائید ، نام فوق به یک آدرس IP و بر اساس یک درخواست خاص ( query ) که از جانب کامپیوتر شما صادر می شود، ترجمه می گردد .
تاریخچه DNS
DNS ، زمانی که اینترنت تا به این اندازه گسترش پیدا نکرده بود و صرفا در حد و اندازه یک شبکه کوچک بود، استفاده می گردید. در آن زمان ، اسامی کامپیوترهای میزبان به صورت دستی در فایلی با نام HOSTS درج می گردید . فایل فوق بر روی یک سرویس دهنده مرکزی قرار می گرفت . هر سایت و یا کامپیوتر که نیازمند ترجمه اسامی کامپیوترهای میزبان بود ، می بایست از فایل فوق استفاده می نمود. همزمان با گسترش اینترنت و افزایش تعداد کامپیوترهای میزبان ، حجم فایل فوق نیز افزایش و امکان استفاده از آن با مشکل مواجه گردید ( افزایش ترافیک شبکه ). با توجه به مسائل فوق، در سال 1984 تکنولوژی DNS معرفی گردید .
پروتکل DNS
DNS ، یک بانک اطلاعاتی توزیع شده است که بر روی ماشین های متعددی مستقر می شود ( مشابه ریشه های یک درخت که از ریشه اصلی انشعاب می شوند) . امروزه اکثر شرکت ها و موسسات دارای یک سرویس دهنده DNS کوچک در سازمان خود می باشند تا این اطمینان ایجاد گردد که کامپیوترها بدون بروز هیچگونه مشکلی، یکدیگر را پیدا می نمایند . در صورتی که از ویندوز 2000 و اکتیو دایرکتوری استفاده می نمائید، قطعا از DNS به منظور ترجمه اسامی کامپیوترها به آدرس های IP ، استفاده می شود . شرکت مایکروسافت در ابتدا نسخه اختصاصی سرویس دهنده DNS خود را با نام ( WINS ( Windows Internet Name Service طراحی و پیاده سازی نمود . سرویس دهنده فوق مبتنی بر تکنولوژی های قدیمی بود و از پروتکل هایی استفاده می گردید که هرگز دارای کارایی مشابه DNS نبودند. بنابراین طبیعی بود که شرکت مایکروسافت از WINS فاصله گرفته و به سمت DNS حرکت کند .
از پروتکل DNS در مواردی که کامپیوتر شما اقدام به ارسال یک درخواست مبتنی بر DNS برای یک سرویس دهنده نام به منظور یافتن آدرس Domain می نماید ، استفاده می شود .مثلا در صورتی که در مرورگر خود آدرس www.srco.ir را تایپ نمائید ، یک درخواست مبتنی بر DNS از کامپیوتر شما و به مقصد یک سرویس دهنده DNS صادر می شود . ماموریت درخواست ارسالی ، یافتن آدرس IP وب سایت سخاروش است.
پروتکل DNS و مدل مرجع OSI
پروتکل DNS معمولا از پروتکل UDP به منظور حمل داده استفاده می نماید . پروتکل UDP نسبت به TCP دارای overhead کمتری می باشد. هر اندازه overhead یک پروتکل کمتر باشد ، سرعت آن بیشتر خواهد بود. در مواردی که حمل داده با استفاده از پروتکل UDP با مشکل و یا بهتر بگوئیم خطاء مواجه گردد ، پروتکل DNS از پروتکل TCP به منظور حمل داده استفاده نموده تا این اطمینان ایجاد گردد که داده بدرستی و بدون بروز خطاء به مقصد خواهد رسید .
فرآیند ارسال یک درخواست DNS و دریافت پاسخ آن ، متناسب با نوع سیستم عامل نصب شده بر روی یک کامپیوتر است .برخی از سیستم های عامل اجازه استفاده از پروتکل TCP برای DNS را نداده و صرفا می بایست از پروتکل UDP به منظور حمل داده استفاده شود . بدیهی است در چنین مواردی همواره این احتمال وجود خواهد داشت که با خطاهایی مواجه شده و عملا امکان ترجمه نام یک کامپیوتر و یا Domain به آدرس IP وجود نداشته باشد. پروتکل DNS از پورت 53 به منظور ارائه خدمات خود استفاده می نماید. بنابراین یک سرویس دهنده DNS به پورت 53 گوش داده و این انتظار را خواهد داشت که هر سرویس گیرنده ای که تمایل به استفاده از سرویس فوق را دارد از پورت مشابه استفاده نماید . در برخی موارد ممکن است مجبور شویم از پورت دیگری استفاده نمائیم . وضعیت فوق به سیستم عامل و سرویس دهنده DNS نصب شده بر روی یک کامپیوتر بستگی دارد.
DNS
DNS مسئولیت حل مشکل اسامی کامپیوترها ( ترجمه نام به آدرس ) در یک شبکه و مسائل مرتبط با برنامه های Winsock را بر عهده دارد. به منظور شناخت برخی از مفاهیم کلیدی و اساسی DNS ، لازم است که سیستم فوق را با سیستم دیگر نامگذاری در شبکه های مایکروسافت(NetBIOS ) مقایسه نمائیم .
قبل از عرضه ویندوز 2000 تمامی شبکه های مایکروسافت از مدل NetBIOS برای نامگذاری ماشین ها و سرویس ها ی موجود بر روی شبکه استفاده می کردند. NetBIOS در سال 1983 به سفارش شرکت IBM طراحی گردید. پروتکل فوق در ابتدا بعنوان پروتکلی در سطح لایه " حمل " ایفای وظیفه می کرد.در ادامه مجموعه دستورات NetBIOS بعنوان یک اینترفیس مربوط به لایه Session نیز مطرح تا از این طریق امکان ارتباط با سایر پروتکل ها نیز فراهم گردد. NetBEUI مهمترین و رایج ترین نسخه پیاده سازی شده در این زمینه است . NetBIOS برای شیکه های کوچک محلی با یک سگمنت طراحی شده است . پروتکل فوق بصورت Broadcast Base است . سرویس گیرندگان NetBIOS می توانند سایر سرویس گیرندگان موجود در شبکه را از طریق ارسال پیامهای Broadcast به منظور شناخت و آگاهی از آدرس سخت افزاری کامپیوترهای مقصد پیدا نمایند. شکل زیر نحوه عملکرد پروتکل فوق در یک شبکه و آگاهی از آدرس سخت افزاری یک کامپیوتر را نشان می دهد. کامپیوتر ds2000 قصد ارسال اطلاعات به کامپیوتری با نام Exeter را دارد. یک پیام Broadcast برای تمامی کامپیوترهای موجود در سگمنت ارسال خواهد شد. تمامی کامپیوترهای موجود در سگمنت مکلف به بررسی پیام می باشند. کامپیوتر Exeter پس از دریافت پیام ،آدرس MAC خود را برای کامپیوتر ds2000 ارسال می نماید.
همانگونه که اشاره گردید استفاده از پروتکل فوق برای برطرف مشکل اسامی ( ترجمه نام یک کامپیوتر به آدرس فیزیکی و سخت افزاری ) صرفا" برای شبکه های محلی با ابعاد کوچک توصیه شده و در شبکه های بزرگ نظیر شبکه های اترنت با ماهیت Broadcast Based با مشکلات عدیده ای مواجه خواهیم شد.در ادامه به برخی از این مشکلات اشاره شده است .
* بموازات افزایش تعداد کامپیوترهای موجود در شبکه ترافیک انتشار بسته های اطلاعاتی بشدت افزایش خواهد یافت .
* پروتکل های مبتنی بر NetBIOS ( نظیر NetBEUI) دارای مکانیزمهای لازم برای روتینگ نبوده و دستورالعمل های مربوط به روتینگ در مشخصه فریم بسته های اطلاعاتی NetBIOS تعریف نشده است .
* در صورتی که امکانی فراهم گردد که قابلیت روتینگ به پیامهای NetBIOS داده شود ( نظیر Overlay نمودن NetBIOS بر روی پروتکل دیگر با قابلیت روتینگ ، روترها بصورت پیش فرض بسته های NetBIOS را منتشر نخواهند کرد. ماهیت BroadCast بودن پروتکل NetBIOS یکی از دو فاکتور مهم در رابطه با محدودیت های پروتکل فوق خصوصا" در شبکه های بزرگ است . فاکتور دوم ، ساختار در نظر گرفته شده برای نحوه نامگذاری است . ساختار نامگذاری در پروتکل فوق بصورت مسطح (Flat) است .
Flat NetBios NameSpace
به منظور شناخت و درک ملموس مشکل نامگذاری مسطح در NetBIOS لازم است که در ابتدا مثال هائی در این زمینه ذکر گردد. فرض کنید هر شخص در دنیا دارای یک نام بوده و صرفا" از طریق همان نام شناخته گردد. در چنین وضعیتی اداره راهنمائی و رانندگی اقدام به صدور گواهینمامه رانندگی می نماید. هر راننده دارای یک شماره سریال خواهد شد. در صورتی که از اداره فوق سوالاتی نظیر سوالات ذیل مطرح گردد قطعا" پاسخگوئی به آنها بسادگی میسر نخواهد شد.
* چند نفر با نام احمد دارای گواهینامه هستند؟
* چند نفر با نام رضا دارای گواهینامه هستند؟
در چنین حالی اگر افسر اداره راهنمائی و رانندگی راننده ای را بخاطر تخلف متوقف نموده و از مرکز و بر اساس نام وی استعلام نماید که آیا " راننده ای با نام احمد قبلا" نیز مرتکب تخلف شده است یا خیر ؟" در صورتی که از طرف مرکز به وی پاسخ مثبت داده شود افسر مربوطه هیچگونه اطمینانی نخواهد داشت که راننده در مقابل آن همان احمد متخلف است که قبلا" نیز تخلف داشته است .
یکی از روش های حل مشکل فوق، ایجاد سیستمی است که مسئولیت آن ارائه نام بصورت انحصاری و غیرتکراری برای تمامی افراد در سطح دنیا باشد. در چنین وضعیتی افسر اداره راهنمائی و رانندگی در برخورد با افراد متخلف دچار مشکل نشده و همواره این اطمینان وجود خواهد داشت که اسامی بصورت منحصر بفرد استفاده شده است . در چنین سیستمی چه افراد و یا سازمانهائی مسئله عدم تکرار اسامی را کنترل و این اطمینان را بوجود خواهند آورند که اسامی بصورت تکراری در سطح دنیا وجود نخواهد داشت؟. بهرحال ساختار سیستم نامگذاری می بایست بگونه ای باشد که این اطمینان را بوجود آورد که نام انتخاب شده قبلا" در اختیار دیگری قرار داده نشده است . در عمل پیاده سازی اینچنین سیستم هائی غیر ممکن است.مثال فوق محدودیت نامگذاری بصورت مسطح را نشان می دهد.
سیستم نامگذاری بر اساس NetBIOS بصورت مسطح بوده و این بدان معنی است که هر کامپیوتر بر روی شبکه می بایست دارای یک نام متمایز از دیگران باشد. در صورتی که دو کامپیوتر موجود بر روی شبکه های مبتنی بر NetBIOS دارای اسامی یکسانی باشند پیامهای ارسالی از یک کامپیوتر به کامپیوتر دیگر که دارای چندین نمونه ( نام تکراری ) در شبکه است، می تواند باعث بروز مشکلات در شبکه و عدم رسیدن پیام ارسال شده به مقصد درست خود باشد.
اینترفیس های NetBIOS و WinSock
DNS مسائل فوق را بسادگی برطرف نموده است . سیستم فوق از یک مدل سلسله مراتبی برای نامگذاری استفاده کرده است . قبل از پرداختن به نحوه عملکرد و جزئیات سیستم DNS لازم است در ابتدا با نحوه دستیابی برنامه ها به پروتکل های شبکه و خصوصا" نحوه ارتباط آنها با پروتکل TCP/IP آشنا شویم .
برنامه های با قابلیت اجراء بر روی شبکه هائی با سیستم های عامل مایکروسافت، با استفاده از دو روش متفاوت با پروتکل TCP/IP مرتبط می گردنند.
* اینترفیس سوکت های ویندوز (WinSock)
* اینترفیس NetBIOS
اینترفیس های فوق یکی از مسائل اساسی در نامگذاری و ترجمه اسامی در شبکه های مبتنی بر TCP/IP را به چالش می کشانند.برنامه های نوشته شده که از اینترفیس NetBIOS استفاده می نمایند از نام کامپیوتر مقصد بعنوان " نقطه آخر" برای ارتباطات استفاده می نمایند در چنین مواردی برنامه های NetBIOS صرفا" مراقبت های لازم را در خصوص نام کامپیوتر مقصد به منظور ایجاد یک session انجام خواهند داد. در حالیکه پروتکل های TCP/IP )IP,TCP) هیچگونه آگاهی از اسامی کامپیوترهای NetBIOS نداشته و در تمامی موارد مراقبت های لازم را انجام نخواهند داد.
به منظور حل مشکل فوق( برنامه هائی که از NetBIOS بکمک اینترفیس NetBIOS با پروتکل TCP/IP مرتبط خواهند شد) از اینترفیس netBT و یا NetBIOS over TCP/IP استفاده می نمایند. زمانیکه درخواستی برای دستیابی به یک منبع در شبکه از طریق یک برنامه با اینترفیس NetBIOS ارائه می گردد و به لایه Application می رسد از طریق اینترفیس NetBT با آن مرتبط خواهد شد.در این مرحله نام NetBIOS ترجمه و به یک IP تبدیل خواهد شد. زمانیکه نام NetBIOS کامپیوتر به یک آدرس فیزیکی ترجمه می گردد درخواست مربوطه می تواند لایه های زیرین پروتکل TCP/IP را طی تا وظایف محوله دنبال گردد. شکل زیر نحوه انجام عملیات فوق را نشان می دهد.
اینترفیس Winsock
اغلب برنامه هائی که براساس پروتکل TCP/IP نوشته می گردنند، از اینترفیس Winsock استفاده می نمایند. این نوع برنامه ها نیازمند آگاهی از نام کامپیوتر مقصد برای ارتباط نبوده و با آگاهی از آدرس IP کامپیوتر مقصد قادر به ایجاد یک ارتباط خواهند بود.
کامپیوترها جهت کار با اعداد ( خصوصا" IP ) دارای مسائل و مشکلات بسیار ناچیزی می باشند.در صورتی که انسان در این رابطه دارای مشکلات خاص خود است . قطعا" بخاطر سپردن اعداد بزرگ و طولانی برای هر شخص کار مشکلی خواهد بود. هر یک از ما طی روز به وب سایت های متعددی مراجعه و صرفا" با تایپ آدرس مربوطه که بصورت یک نام خاص است (www.test.com) از امکانات سایت مربوطه بهره مند می گردیم. آیا طی این نوع ملاقات ها ما نیازمند آگاهی از آدرس IP سایت مربوطه بوده ایم؟ بهرحال بخاطر سپردن اسامی کامپیوترها بمراتب راحت تر از بخاطر سپردن اعداد ( کد ) است . از آنجائیکه برنامه های Winsock نیازمند آگاهی از نام کامپیوتر و یا Host Name نمی باشند می توان با رعایت تمامی مسائل جانبی از روش فوق برای ترجمه اسامی استفاده کرد. فرآیند فوق را ترجمه اسامی (Host Name Resoulation) می گویند.
موارد اختلاف بین NetBIOS و WinSock
برنامه های مبتنی بر NetBIOS می بایست قبل از ایجاد ارتباط با یک کامپیوتر، نام NetBIOS را به یک IP ترجمه نمایند.( قبل از ایجاد ارتباط نام NetBIOS به IP تبدیل خواهد شد.) در برنامه های مبتنی بر WinSock می توان از نام کامپیوتر (Host name) در مقابل IP استفاده کرد. قبل از عرضه ویندوز 2000 تمامی شبکه های کامپیوتری که توسط سیستم های عامل ویندوز پیاده سازی می شدند از NetBIOS استفاده می کردند. بهمین دلیل در گذشته زمان زیادی صرف ترجمه اسامی می گردید. ویندوز وابستگی به NetBIOS نداشته و در مقابل از سیستم DNS استفاده می نماید.
DNS NameSpace
همانگونه که اشاره گردید DNS از یک ساختار سلسله مراتبی برای سیستم نامگذاری خود استفاده می نماید. با توجه به ماهیت سلسله مراتبی بودن ساختار فوق، چندین کامپیوتر می توانند دارای اسامی یکسان بر روی یک شبکه بوده و هیچگونه نگرانی از عدم ارسال پیام ها وجود نخواهد داشت. ویژگی فوق درست نقطه مخالف سیستم نامگذاری NetBIOS است . در مدل فوق قادر به انتخاب دو نام یکسان برای دو کامپیوتر موجود بر روی یک شبکه یکسان نخواهیم نبود.
بالاترین سطح در DNS با نام Root Domain نامیده شده و اغلب بصورت یک "." و یا یک فضای خالی "" نشان داده می شود. بلافاصله پس از ریشه با اسامی موجود در دامنه بالاترین سطح (Top Level) برخورد خواهیم کرد. دامنه های .Com , .net , .org , .edu نمونه هائی از این نوع می باشند. سازمانهائی که تمایل به داشتن یک وب سایت بر روی اینترنت دارند، می بایست یک دامنه را که بعنوان عضوی از اسامی حوزه Top Level می باشد را برای خود اختیار نماید. هر یک از حوزه های سطح بالا دارای کاربردهای خاصی می باشند. مثلا" سازمان های اقتصادی در حوزه .com و موسسات آموزشی در حوزه .edu و … domain خود را ثبت خواهند نمود.شکل زیر ساختار سلسله مراتبی DNS را نشان می دهد.
در هر سطح از ساختار سلسله مراتبی فوق می بایست اسامی با یکدیگر متفاوت باشد. مثلا" نمی توان دو حوزه .com و یا دو حوزه .net را تعریف و یا دو حوزه Microsoft.com در سطح دوم را داشته باشیم .استفاده از اسامی تکراری در سطوح متفاوت مجاز بوده و بهمین دلیل است که اغلب وب سایت ها دارای نام www می باشند.
حوزه های Top Level و Second level تنها بخش هائی از سیستم DNS می باشند که می بایست بصورت مرکزی مدیریت و کنترل گردنند. به منظور ریجستر نمودن دامنه مورد نظر خود می بایست با سازمان و یا شرکتی که مسئولیت ریجستر نمودن را برعهده دارد ارتباط برقرار نموده و از آنها درخواست نمود که عملیات مربوط به ریجستر نمودن دامنه مورد نظر ما را انجام دهند. در گذشته تنها سازمانی که دارای مجوز لازم برای ریجستر نمودن حوزه های سطح دوم را در اختیار داشت شرکت NSI)Network Solutions Intcorporated) بود. امروزه امتیاز فوق صرفا" در اختیار شرکت فوق نبوده و شرکت های متعددی اقدام به ریجستر نمودن حوزه ها می نمایند.
مشخصات دامنه و اسم Host
هر کامپیوتر در DNS بعنوان عضوی از یک دامنه در نظر گرفته می شود. به منظور شناخت و ضرورت استفاده از ساختار سلسله مراتبی بهمراه DNS لازم است در ابتدا با FQDN آشنا شویم .
معرفی FQDN)Fully Qualified Domain Names)
یک FQDN محل یک کامپیوتر خاص را در DNS مشخص خواهد نمود. با استفاده از FQDN می توان بسادگی محل کامپیوتر در دامنه مربوطه را مشخص و به آن دستیابی نمود. FQDN یک نام ترکیبی است که در آن نام ماشین (Host) و نام دامنه مربوطه قرار خواهد گرفت . مثلا" اگر شرکتی با نام TestCorp در حوزه سطح دوم دامنه خود را ثبت نماید (TestCorp.com) در صورتی که سرویس دهنده وب بر روی TestCorp.com اجراء گردد می توان آن را www نامید و کاربران با استفاده از www.testCorp.com به آن دستیابی پیدا نمایند.
دقت داشته باشید که www از نام FQDN مثال فوق نشاندهنده یک شناسه خدماتی نبوده و صرفا" نام host مربوط به ماشین مربوطه را مشخص خواهد کرد. یک نام FQDN از دو عنصر اساسی تشکیل شده است :
* Label : شامل نام حوزه و یا نام یک host است .
* Dots : نقطه ها که باعت جداسازی بخش های متفاوت خواهد شد.
هر lable توسط نقطه از یکدیگر جدا خواهند شد. هر lable می تواند حداکثر دارای ۶۳ بایت باشد. دقت داشته باشید که طول ( اندازه ) هر lable بر حسب بایت مشخص شده است نه بر حسب طول رشته . علت این است که DNS در ویندوز 2000 از کاراکترهای UTF-8 استفاده می نماید. بر خلاف کاراکترهای اسکی که قبلا" از آنان استفاده می گردید. بهرحال FQDN می بایست دارای طولی به اندازه حداکثر 255 بایت باشد.
طراحی نام حوزه برای یک سازمان
قبل از پیاده سازی سیستم ( مدل ) DNS برای یک سازمان ، می بایست به نمونه سوالات ذیل بدرستی پاسخ داد:
* آیا سازمان مربوطه در حال حاضر برای ارتباط اینترانتی خود از DNS استفاده می نماید؟
* آیا سازمان مربوطه دارای یک سایت اینترنتی است ؟
* آیا سازمان مربوطه دارای یک حوزه( دامنه ) ثبت شده ( ریجستر شده ) است ؟
* آیا سازمان مربوطه از اسامی حوزه یکسان برای منابع مربوطه موجود بر روی اینترنت / اینترانت استفاده می نماید؟
استفاده از نام یکسان دامنه برای منابع اینترنت و اینترانت
استفاده از اسامی یکسان برای نامگذاری دامنه به منظور استفاده از منابع موجود داخلی و منابع اینترنتی در مرحله اول بسیار قابل توجه و جذاب خواهد بود. تمامی ماشین ها بعنوان عضو یک دامنه یکسان محسوب و کاربران نیاز به بخاطر سپردن دامنه های متفاوت بر اساس نوع منبع که ممکن است داخلی و یا خارجی باشد نخواهند داشت ..با توجه به وجود مزایای فوق، بکارگیری این روش می تواند باعث بروز برخی مشکلات نیز گردد. به منظور حفاظت از ناحیه (Zone) های DNS از دستیابی غیر مجاز نمی بایست هیچگونه اطلاعاتی در رابطه با منابع داخلی بر روی سرویس دهنده DNS نگهداری نمود. بنابراین می بایست برای یک دامنه از دو Zone متفاوت استفاده نمود. یکی از Zone ها منابع داخلی را دنبال و Zone دیگر مسئولیت پاسخگوئی به منابعی است که بر روی اینترنت قرار دارند. عملیات فوق قطعا" حجم وظایف مدیریت سایت را افزایش خواهد داد.
پیاده سازی نام یکسان برای منابع داخلی و خارجی
یکی دیگر از عملیاتی که می بایست در زمان پیاده سازی دامنه های یکسان برای منابع داخلی و خارجی مورد توجه قرار دارد Mirror نمودن منابع خارجی بصورت داخلی است . مثلا" فرض نمائید که Test.com نام انتخاب شده برای دستیابی به منابع داخلی ( اینترانت) و منابع خارجی ( اینترنت ) است.درچنین وضعیتی دارای سرویس دهنده وب برا یاینترانت باشیم که پرسنل سازمان از آن به منظور دستیابی به اطلاعات اختصاصی و سایر اطلاعات داخلی سازمان استفاده می نمایند.در این مدل دارای سرویس دهندگانی خواهیم بود که به منظور دستیابی به منابع اینترنت مورد استفاده قرار خواهند گرفت . ما می خواهیم از اسامی یکسان برای سرویس دهندگان استفاده نمائیم . در مدل فوق اگر درخواستی برای www.test.com صورت پذیرد مسئله به کامپیوتری ختم خواهد شد که قصد داریم برای کاربران اینترنت قابل دستیابی باشد. در چنین وضعیتی ما نمی خواهیم کاربران اینترنت قادر به دستیابی به اطلاعات شخصی و داخلی سازمان باشند. جهت حل مشکل فوق Mirror نمودن منابع اینترنت بصورت داخلی است و ایجاد یک zone در DNS برای دستیابی کاربران به منابع داخلی ضروری خواهد بود. زمانیکه کاربری درخواست www.test.com را صادر نمائید در ابتدا مسئله نام از طریق سرویس دهنده داخلی DNS برطرف خواهد شد که شامل zone داخلی مربوطه است . زمانی که یک کاربر اینترنت قصد دستیابی به www.test.com را داشته باشد درخواست وی به سرویس دهنده اینترنت DNS ارسال خواهدشد که در چنین حالتی آدرس IP سرویس دهنده خارجی DNS برگردانده خواهد شد.
استفاده از اسامی متفاوت برای دامنه ها ی اینترنت و اینترانت
در صورتی که سازمانی به اینترنت متصل و یا در حال برنامه ریزی جهت اتصال به اینترنت است می توان از دو نام متفاوت برای دستیابی به منابع اینترانتی و اینترنتی استفاده نمود. پیاده سازی مدل فوق بمراتب از مدل قبل ساده تر است . در مدل فوق نیازی به نگهداری Zone های متفاوت برای هر یک از آنها نبوده و هریک از آنها دارای یک نام مجزا و اختصاصی مربوط به خود خواهند بود. مثلا" می توان نام اینترنتی حوزه را Test.com و نام اینترانتی آن را TestCorp.com قرار داد.
برای نامگذاری هر یک از زیر دامنه ها می توان اسامی انتخابی را براساس نوع فعالیت و یا حوزه جفرافیائی انتخاب نمود.
Zones of Authority
DNS دارای ساختاری است که از آن برای گروه بندی و دنبال نمودن ماشین مربوطه براساس نام host در شبکه استفاده خواهد شد. به منظور فعال نمودن DNS در جهت تامین خواسته ای مورد نظر می بایست روشی جهت ذخیره نمودن اطلاعات در DNS وجود داشته باشد.اطلاعات واقعی در رابطه با دامنه ها در فایلی با نام Zone database ذخیره می گردد. این نوع فایل ها، فایل های فیزیکی بوده که بر روی سرویس دهنده DNS ذخیره خواهند شد. آدرس محل قرار گیری فایل های فوق %systemroot%system32dns خواهد بود. در این بخش هدف بررسی Zone های استاندارد بوده که به دو نوع عمده تقسیم خواهند شد.
* Forward Lookup Zone
* Reverse Lookup Zone
در ادامه به تشریح عملکرد هر یک از Zone های فوق خواهیم پرداخت .
Forward Lookup Zone
از این نوع Zone برای ایجاد مکانیزمی برای ترجمه اسامی host به آدرس IP برای سرویس گیرندگان DNS استفاده می گردد. Zone ها دارای اطلاعاتی هستند که بصورت رکوردهای خاص در بانک اطلاعاتی مربوطه ذخیره خواهند شد. این نوع رکوردها را " رکوردهای منبع Resource Record " می گویند. رکوردهای فوق اطلاعات مورد نیاز در رابطه با منابع قابل دسترس در هر Zone را مشخص خواهند کرد.
تفاوت بین Domain و Zone
در ابتدا می بایست به این نکته اشاره نمود که Zone ها با دامنه ها (Domain) یکسان نبوده و یک Zone می تواند شامل رکوردهائی در رابطه با چندین دامنه باشد. مثلا" فرض کنید ، دامنه www.microsoft.com دارای دو زیر دامنه با نام East , West باشد. (West.microsoft.com , East.microsoft.com ). مایکروسافت دارای دامنه اختصاصی msn.com بوده که خود شامل دارای یک زیردامنه با نام mail.microsoft.com است
دامنه های همجوار و غیر همجوار در شکل فوق نشان داده شده است . دامنه های همجوار همدیگر را حس خواهند کرد ( برای یکدیگر ملموس خواهند بود ) . در رابطه با مثال فوق دامنه های موجود در Zone Microsoft.com همجوار و دامنه های Msn.com و Microsoft.com غیر همجوار هستند.
Zone ها مجوز واگذاری مسئولیت برای پشتیبانی منابع موجود در Zone را فراهم خواهند کرد. Zone ها روشی را به منظور واگذاری مسئولیت پشتیبانی و نگهداری بانک اطلاعاتی مربوطه فراهم خواهند کرد. فرض کنید شرکتی با نام TACteam وجودداشته باشد. شرکت فوق از دامنه ای با نام tacteam.net استفاده می نماید. شرکت فوق دارای شعباتی در San Francisco, Dallas, and Boston است . شعبه اصلی در Dallas بوده که مدیران متعددی برای مدیریت شبکه در آن فعالیت می نمایند. شعبه San Francisco نیز دارای چندین مدیر ورزیده به منظور نظارت بر سایت است . شعبه Boston دارای مدیریتی کارآمد برای مدیریت DNS نمی باشد. بنابراین همواره نگرانی های مربوط به واگذاری مسئولیت نگهداری بانک اطلاعاتی به یک فرد در Boston خواهیم بود. منابع موجود بر روی سایت Dallas در حوزه tacteam.net بوده و منابع موجود در San Francisco در سایت west.tacteam.net و منابع موجود در Boston در سایت east.tacteam.net نگهداری می گردنند. در چنین وضعیتی ما صرفا" دو Zone را برای مدیریت سه دامنه ایجاد خواهیم کرد. یک Zone برای tacteam.net که مسئولیت منابع مربوط به tacteam.net و east.tacteam.net را برعهده داشته و یک Zone دیگر برای west.tacteam.net که منابع موجود بر روی سایت San Francisco را برعهده خواهد گرفت . اسامی مورد نظر برای هر Zone به چه صورت می بایست انتخاب گردنند؟ هر Zone نام خود را از طریق ریشه و یا بالاترین سطح دامنه اقتباس خواهند شد. زمانیکه درخواستی برای یک منبع موجود بر روی دامنه west.tacteam.net برای DNS واصل گردد ( سرویس دهنده DNS مربوط به tacteam.net ) سرویس دهنده tacteam.net صرفا" شامل یک Zone نخواهد بود.در چنین وضعینی سرویس دهنده فوق دارای یک Delegation ( واگذاری مسئولیت ) بوده که به سرویس دهنده DNS مربوط به west.tacteam.net اشاره خواهد کرد. بنابراین درخواست مربوطه برای ترجمه اسامی به آدرس بدرستی به سرویس دهنده مربوطه هدایت تا مشکل برطرف گردد.
Reverse Lookup Zones
Zoneها ی از نوع Forward امکان ترجمه نام یک کامپیوتر به یک IP را فراهم می نمایند..یک Reverse Lookup این امکان را به سرویس گیرندگان خواهد داد که عملیات مخالف عملیات گفته شده را انجام دهند: ترجمه یک آدرس IP به یک نام . مثلا" فرض کنید شما می دانید که آدرس IP مربوط به کامپیوتر مقصد 192.168.1.3 است اما علاقه مند هستیم که نام آن را نیز داشته باشیم . به منظور پاسخگوئی به این نوع درخواست ها سیستم DNS از این نوع Zone ها استفاده می نماید. Zone های فوق بسادگی و راحتی Forward Zone ها رفتار نمی نمایند. مثلا" فرض کنید Forward Lookup Zone مشابه یک دفترچه تلفن باشد ایندکس این نوع دفترچه ها بر اساس نام اشخاص است . در صورتی که قصد یافتن یک شماره تلفن را داشته باشید با حرکت بر روی حرف مربوطه و دنبال نمودن لیست که بترتیب حروف الفباء است قادر به یافتن نام شخص مورد نظر خواهید بود. اگر ما شماره تلفن فردی را بدانیم و قصد داشته باشیم از نام وی نیز آگاهی پیدا نمائیم چه نوع فرآیندی را می بایست دنبال نمود؟. از آنجائیکه دفترچه تلفن بر اساس نام ایندکس شده است تنها راه حرکت و جستجو در تمام شماره تلفن ها و یافتن نام مربوطه است .قطعا" روش فوق روش مناسبی نخواهد بود. به منظور حل مشکل فوق در رابطه با یافتن نام در صورتی که IP را داشته باشیم از یک دامنه جدید با نام in-addr.arpa استفاده می گردد. دامنه فوق اسامی مربوطه به دامنه ها را بر اساس شناسه شبکه (Network ID) ایندکس و باعث افزایش سرعت و کارآئی در بازیابی اطلاعات مورد نظر با توجه به نوع درخواست ها خواهد شد.
با استفاده از برنامه مدیریتی DNS می توان براحتی اقدام به ایجاد این نوع Zone ها نمود. مثلا" اگر کامپیوتری دارای آدرس 192.168.1.0 باشد یک آدرس معکوس ایجاد و Zone مربوطه بصورت زیر خواهد بود :
1.168.192.in-addr.arpa.dns
آشنائی با پروتکل HTTP
در اینترنت همانند سایر شبکه های کامپیوتری از پروتکل های متعدد و با اهداف مختلف استفاده می گردد. هر پروتکل از یک ساختار خاص برای ارسال و دریافت اطلاعات (بسته های اطلاعاتی ) استفاده نموده و ترافیک مختص به خود را در شبکه ایجاد می نماید . HTTP ( برگرفته از Hyper Text Transfer Protocol ) ، یکی از متداولترین پروتکل های لایه application است که مسئولیت ارتباط بین سرویس گیرندگان و سرویس دهندگان وب را برعهده دارد .
در ادامه با پروتکل فوق بیشتر آشنا خواهیم شد.
پروتکل HTTP چیست ؟
دنیای شبکه های کامپیوتری دارای عمری چند ساله است و بسیاری از کاربران ، ضرورت استفاده از شبکه را همزمان با متداول شدن اینترنت در اوایل سال 1990 دریافتند . عمومیت اینترنت، رشد و گسترش شبکه های کامپیوتر ی را به دنبال داشته است . اینترنت نیز با سرعتی باورنکردنی رشد و امروزه شاهد ایجاد ده ها میلیون وب سایت در طی یک سال در این عرصه می باشیم .
تمامی وب سایت های موجود بر روی اینترنت از پروتکل HTTP استفاده می نمایند . با این که پروتکل HTTP با استفاده از پروتکل های دیگری نظیر IP و TCP ماموریت خود را انجام می دهد ، ولی این پروتکل HTTP است که به عنوان زبان مشترک ارتباطی بین سرویس گیرنده و سرویس دهنده وب به رسمیت شناخته شده و از آن استفاده می گردد . در واقع مرورگر وب صدای خود را با استفاده از پروتکل HTTP به گوش سرویس دهنده وب رسانده و از وی درخواست یک صفحه وب را می نماید.
به منظور انجام یک تراکنش موفقیت آمیز بین سرویس گیرندگان وب ( نظیر IE ) و سرویس دهندگان وب ( نظیر IIS ) ، به اطلاعات زیادی نیاز خواهد بود . پس از handshake پروتکل TCP/IP ، مرورگر اطلاعات گسترده ای را برای سرویس دهنده وب ارسال می نماید .
یک بسته اطلاعاتی نمونه در شکل زیر نشان داده شده است :
توضیحات :
داده مربوط به پروتکل لایه application ( در این مورد خاص پروتکل HTTP ) ، پس از هدر TCP/IP قرار می گیرد . جدول زیر برخی اطلاعات مبادله شده بین سرویس گیرنده و سرویس دهنده وب را نشان می دهد .
عملکرد
نوع اطلاعات
سرویس گیرنده وب یک درخواست GET را برای سرویس دهنده وب ارسال و از وی درخواست اطلاعاتی را با استفاده از پروتکل HTTP 1.1 می نماید.
پروتکل HTTP دارای نسخه شماره یک نیز می باشد که امروزه عموما" از نسخه فوق استفاده نمی گردد و در مقابل از نسخه 1 . 1 استفاده می شود.
GET /HTTP/1.1
وب سایتی است که سرویس گیرنده قصد ارتباط با آن را دارد .
Host:
www.google.ca
به سرویس دهنده وب ، نوع نرم افزار سرویس گیرنده ( در این مورد خاص Mozilla version 5.0 ) و نوع سیستم عامل نصب شده بر روی کامپیوتر ( در این مورد خاص Windows version NT 5.1 و یا همان ویندوز XP ) اعلام می گردد.
User-agent:
Mozilla/5.0 (Windows; U; Windows NT 5.1;
نوع character set استفاده شده به سرویس دهنده اعلام می گردد ( در این مورد خاص از en:us و نسخه شماره 10 . 7 . 1 استفاده شده است ) .
en-US; rv: 1.7.10)
نام مرورگر استفاده شده توسط سرویس گیرنده به سرویس دهنده وب اعلام می گردد ( در این مورد خاص از مرورگر FireFox استفاده شده است ) .
Gecko/20050716 Firefox/1.0.6
سرویس گیرنده به سرویس دهنده وب فرمت اطلاعاتی را که می تواند دریافت نماید ، اعلام می نماید ( در این مورد خاص هم برای متن و هم برای application از فرمت xml استفاده می گردد ) .
Accept:
text/xml, application/xml, application/xhtml+xml
سرویس گیرنده به سرویس دهنده نوع فرمت متن دریافتی را اعلام می نماید ( در این مورد خاص html و یا plain text ) .
همچنین فرمت فایل های گرافیکی ( در این مورد خاص png . و سایر فرمت های متداول ) نیز اعلام می گردد .
text/html; q=0.9, text/plain; q=0.8, image/png, */*;q=0.5
لیست character set که سرویس گیرنده وب قادر به فهم آنان است، اعلام می گردد ( در این مورد خاص ISO-8859 , و یا utf-8 ) .
Accept-Charset:
ISO-8859-1, utf-8; q=0.7, *;q=0/7
به سرویس دهنده وب مدت زمان نگهداری session اعلام می گردد ( در این مورد خاص 300 ثانیه ) .
سرویس گیرندگان می توانند با صراحت پایان یک session را اعلام نمایند . در نسخه شماره 1 . 1 پروتکل HTTP ، ارتباط و یا اتصال برقرار شده فعال و یا open باقی خواهد ماند تا زمانی که سرویس گیرنده خاتمه آن را اعلام و یا مدت زمان حیات آن به اتمام رسیده باشد .
در نسخه شماره یک پروتکل HTTP ، پس از هر درخواست و اتمام تراکنش ، ارتباط ایجاد شده غیرفعال و یا close می گردد .
Keep-Alive:
300 Connection: keep-alive
cookie و مقدار مربوطه به آن اعلام می گردد. کوکی یک متن اسکی فلت می باشد که اطلاعات متفاوتی را در خود نگهداری می نماید .
مدت زمان حیات یک کوکی می تواند موقت ( تا زمانی که مرورگر فعال است ) و یا دائم ( ذخیره بر روی هارد دیسک کامپیوتر و در یک محدوده زمانی تعریف شده ) باشد .
Cookie: PREF=ID=01a0822454acb293: LD=en:TM=1121638094?..
User agent نوع مرورگر و سیستم عامل سرویس گیرنده را مشخص می نماید و این موضوع می تواند مواد اولیه لازم برای تدارک برخی حملات توسط مهاجمان را تامین نماید .
پروتکل HTTP : یک معماری سرویس گیرنده و سرویس دهنده
سرویس گیرنده وب ، مقادیر خاصی را با اهداف کاملا" مشخص شده برای سرویس دهنده وب ارسال می نماید ( حصول اطمینان از وجود یک زبان مشترک برای گفتگو بین سرویس گیرنده و سرویس دهنده وب ) . سرویس دهنده پس از بررسی اطلاعات ارسالی ، آنان را تفسیر و متناسب با آن اطلاعاتی را برای سرویس گیرنده ارسال می نماید . در معماری فوق یک نرم افزار در سمت سرویس گیرنده و به عنوان یک سرویس گیرنده وب ( نظیر IE و یا Mozilla Firefox ) ایفای وظیفه می نماید و در سمت سرویس دهنده یک نرم افزار به عنوان سرویس دهنده وب ( نظیر : IIS و یا Apache ) وظایف تعریف شده خود را انجام می دهد.
سناریوی فوق مدل و یا معماری سرویس گیرنده – سرویس دهنده را در ذهن تداعی می نماید ( معماری مبتنی بر درخواست و پاسخ ) .
پاسخ سرویس دهنده
شکل زیر یک بسته اطلاعاتی HTTP از مبداء یک سرویس دهنده به مقصد یک سرویس گیرنده را نشان می دهد ( پاسخ سرویس دهنده ).
توضیحات :
جدول زیر برخی اطلاعات ارسالی توسط سرویس دهنده را نشان می دهد .
عملکرد
نوع اطلاعات
به سرویس گیرنده اعلام می گردد که :
* سرویس دهنده وب از پروتکل HTTP نسخه 1 .1 استفاده می نماید.
* فایل درخواستی وی توسط سرویس دهنده پیدا شده است .
200 ، یک کد وضعیت است که وضعیت پاسخ به درخواست را مشخص می نماید .
HTTP/1.1 200 OK
مستند و یا فایل درخواستی سرویس گیرنده توسط یک پراکسی cache نخواهد شد و هدف آن صرفا" برای کاربر متقاضی فایل است .
Cache-Control:
private
فرمت ارسال فایل و یا مستند درخواستی به سرویس گیرنده وب اعلام می شود . در این مورد خاص ، اطلاعات با فرمت text/html ارسال می گردند .
سرویس گیرنده وب دارای دانش لازم به منظور بررسی و نمایش اطلاعات با فرمت اشاره شده می باشد .
Content-type:
text/html
نوع سرویس دهنده و یا نرم افزار سرویس دهنده ( سرویس دهنده وب ) مشخص می گردد .
در این مورد خاص ، سرویس دهنده وب Google نمایش داده شده است .
Server:
GWS/2.1
پروتکل HTTP نسخه شماره 1 .1 از ارسال اطلاعات به صورت chuncked حمایت می نماید. در روش فوق ، بدنه یک پیام به منظور ارسال مجموعه ای از ماژول ها اصلاح می گردد . مسولیت مشخص کردن اندازه هر ماژول ارسالی بر عهده یکی از فیلدهای موجود در این ساختار گذاشته می شود .
در صورت ارسال معمولی اطلاعات توسط پروتکل HTTP ، از یک فیلد با نام "Content-Length" به منظور مشخص نمودن حجم داده ارسالی،استفاده می گردد .
Transfer-Encoding: chunked
زمان و تاریخ سرویس دهنده وب مشخص می گردد.
Date:
Sat 30 Jul 2005 14:14:50 GMT
تگ های HTML ارسالی توسط سرویس دهنده وب به مقصد سرویس گیرنده وب می باشند که توسط سرویس گیرندگان وب ( نظیر IE ) تفسیر و نمایش داده می شوند .
با استفاده از گزینه view موجود در برنامه های مرورگر ، می توان تگ های HTML یک صفحه وب را مشاهده نمود .
<html><head><meta.http-equiv="content-type"
آشنائی با پروتکل های SLIP و PPP
مبادله اطلاعات بر روی اینترنت با استفاده از پروتکل TCP/IP انجام می شود . با این که پروتکل فوق یک راه حل مناسب در شبکه های محلی و جهانی را ارائه می نماید ، ولی به منظور ارتباطات از نوع Dial-up طراحی نشده است .
ارتباط Dail-up ، یک لینک نقطه به نقطه ( Point-To-Point ) با استفاده از تلفن است . در چنین مواردی یک روتر و یا سرویس دهنده، نقطه ارتباطی شما به شبکه با استفاده از یک مودم خواهد بود. سرویس دهنده دستیابی راه دور موجود در مراکز ISP ، مسئولیت ایجاد یک ارتباط نقطه به نقطه با سریس گیرندگان Dial-up را برعهده دارد . در ارتباطات فوق ، می بایست از امکانات خاصی به منظور ارسال IP و سایر پروتکل ها استفاده گردد . با توجه به این که لینک ایجاد شده بین دو نقطه برقرار می گردد ، آدرس دهی مشکل خاصی را نخواهد داشت.
SLIP ( اقتباس شده از Serial Line Internet Protocol ) و PPP ( اقتباس شده از Point-To-Point ) پروتکل هائی می باشند که امکان استفاده از TCP/IP بر روی کابل های سریال نظیر خطوط تلفن را فراهم می نمایند ( SLIP و PPP : دو روش متفاوت به منظور اتصال به اینترنت ). با استفاده از پروتکل های فوق ، کاربران می توانند توسط یک کامپیوتر و مودم به اینترنت متصل شوند . از پروتکل SLIP در ابتدا در سیستم عامل یونیکس استفاده می گردید ولی امروزه تعداد بیشتری از سیستم های عامل نظیر لینوکس و ویندوز نیز از آن حمایت می نمایند . در حال حاضر استفاده از پروتکل SLIP نسبت به PPP بمراتب کمتر است .
PPP نسبت به SLIP دارای مزایای متعددی است :
* امکان مبادله اطلاعات به صورت همزمان و غیر همزمان . در پروتکل SLIP صرفا" امکان مبادله اطلاعات به صورت همزمان وجود دارد .
* ارائه امکانات لازم به منظور تصحیح خطاء . تصحیح خطاء در پروتکل SLIP عموما" مبتنی بر سخت افزار استفاده شده به منظور برقراری ارتباط ( نظیر مودم ) و یا استفاده از قابلیت های پروتکل TCP/IP است .
* ارائه امکانات لازم برای فشرده سازی .پروتکل SLIP در اغلب بخش های آن چنین ویژگی را دارا نمی باشد . در این رابطه نسخه هائی از SLIP به منظور فشرده سازی نظیر Compressed SLIP و یا CSLIP طراحی شده است ولی متداول نمی باشند .
* ارائه امکانات لازم به منظور نسبت دهی آدرس ها به صورت پویا و اتوماتیک .پروتکل SLIP می بایست به صورت دستی پیکربندی گردد ( در زمان Dial-up و یا تنظیم اولیه Session ) .
* امکان استفاده از چندین پروتکل بر روی لینک های PPP وجود دارد ( نظیر IP و یا IPX ) . در پروتکل SLIP صرفا" امکان استفاده از پروتکل IP وجود خواهد داشت .
وجه اشتراک پروتکل های PPP و SLIP
* هر دو پروتکل قابل روتنیگ نمی باشند . با توجه به نوع ارتباط ایجاد شده که به صورت نقطه به نقطه است و صرفا" دو نقطه در ارتباط درگیر می شوند ،ضرورتی به استفاده از روتینگ وجود نخواهد داشت .
* هر دو پروتکل قادر به کپسوله نمودن سایر پروتکل هائی می باشند که در ادامه برای روتر و سایر دستگاه ها ارسال می گردند . در مقصد، اطلاعات مربوط به پروتکل های SLIP و یا PPP برداشته شده و پروتکل های ارسالی توسط لینک سریال نظیر IP ، در طول شبکه فرستاده می گردد .
یک کامپیوتر با استفاده از یک ارتباط SLIP و یا PPP قادر به شبیه سازی یک اتصال مستقیم به اینترنت است . در این رابطه به امکانات زیر نیاز می باشد :
* یک کامپیوتر و مودم
* یک account از نوع SLIP و یا PPP از ISP مربوطه
* نصب نرم افزارهای TCP/IP و SLIP/PPP بر روی کامپیوتر کاربر ( نرم افزارهای فوق معمولا" در زمان استقرار سیستم عامل بر روی کامپیوتر نصب خواهند شد ).
* یک آدرس IP . آدرس فوق ممکن است به صورت دائم و یا پویا ( استفاده از سرویس دهنده DHCP ) به کامپیوتر کاربر نسبت داده شود.
نحوه عملکرد یک اتصال SLIP و یا PPP
* مودم موجود بر روی کامپیوتر اقدام به شماره گیری یک کامپیوتر از راه دور در یک ISP می نماید .
* نرم افزار SLIP/PPP درخواست یک اتصال SLIP/PPP را می نماید .
* پس از برقراری ارتباط ، ISP مربوطه به کامپیوتر کاربر یک آدرس IP را اختصاص خواهد داد ( در مواردی که از یک سرویس دهنده DHCP استفاده می گردد ) .
* نرم افزار TCP/IP بر روی کامپیوتر کاربر ، کنترل و مدیریت مبادله اطلاعات بین کامپیوتر کاربر و اینترنت را برعهده خواهد گرفت .
آشنائی با پروتکل FTP
امروزه از پروتکل های متعددی در شبکه های کامپیوتری استفاده می گردد که صرفا" تعداد اندکی از آنان به منظور انتقال داده طراحی و پیاده سازی شده اند . اینترنت نیز به عنوان یک شبکه گسترده از این قاعده مستثنی نبوده و در این رابطه از پروتکل های متعددی استفاده می شود.
برای بسیاری از کاربران اینترنت همه چیز محدود به وب و پروتکل مرتبط با آن یعنی HTTP است ، در صورتی که در این عرصه از پروتکل های متعدد دیگری نیز استفاده می گردد. FTP نمونه ای در این زمینه است .
پروتکل FTP چیست ؟
تصویر اولیه اینترنت در ذهن بسیاری از کاربران، استفاده از منابع اطلاعاتی و حرکت از سایتی به سایت دیگر است و شاید به همین دلیل باشد که اینترنت در طی سالیان اخیر به سرعت رشد و متداول شده است . بسیاری از کارشناسان این عرصه اعتقاد دارند که اینترنت گسترش و عمومیت خود را مدیون سرویس وب می باشد .
فرض کنید که سرویس وب را از اینترنت حذف نمائیم . برای بسیاری از ما این سوال مطرح خواهد شد که چه نوع استفاده ای را می توانیم از اینترنت داشته باشیم ؟ در صورت تحقق چنین شرایطی ، یکی از عملیاتی که کاربران قادر به انجام آن خواهند بود ، دریافت داده ، فایل های صوتی ، تصویری و سایر نمونه فایل های دیگر با استفاده از پروتکل FTP (برگرفته از File Transfer Protocol ) است.
ویژگی های پروتکل FTP
* پروتکل FTP ، اولین تلاش انجام شده برای ایجاد یک استاندارد به منظور مبادله فایل بر روی شبکه های مبتنی بر پروتکل TCP/IP است که از اوایل سال 1970 مطرح و مشخصات استاندارد آن طی RFC 959 در اکتبر سال 1985 ارائه گردید .
* پروتکل FTP دارای حداکثر انعطاف لازم و در عین حال امکان پذیر به منظور استفاده در شبکه های مختلف با توجه به نوع پروتکل شبکه است .
* پروتکل FTP از مدل سرویس گیرنده – سرویس دهنده تبعیت می نماید . برخلاف HTTP که یک حاکم مطلق در عرصه مرورگرهای وب و سرویس دهندگان وب است ، نمی توان ادعای مشابهی را در رابطه با پروتکل FTP داشت و هم اینک مجموعه ای گسترده از سرویس گیرندگان و سرویس دهندگان FTP وجود دارد .
* برای ارسال فایل با استفاده از پروتکل FTP به یک سرویس گیرنده FTP نیاز می باشد . ویندوز دارای یک برنامه سرویس گیرنده FTP از قبل تعبیه شده می باشد ولی دارای محدودیت های مختص به خود می باشد . در این رابطه نرم افزارهای متعددی تاکنون طراحی و پیاده سازی شده است:
ulletProof FTP ، WS FTP Professional، FTP Explorer و Smart FTP نمونه هائی در این زمینه می باشند .
* پروتکل FTP را می توان به عنوان یک سیستم پرس وجو نیز تلقی نمود چراکه سرویس گیرندگان و سرویس دهندگان گفتگوی لازم به منظور تائید یکدیگر و ارسال فایل را انجام می دهند. علاوه بر این، پروتکل فوق مشخص می نماید که سرویس گیرنده و سرویس دهنده، داده را بر روی کانال گفتگو ارسال نمی نمایند . در مقابل ، سرویس گیرنده و سرویس دهنده در خصوص نحوه ارسال فایل ها بر روی اتصالات مجزا و جداگانه ( یک اتصال برای هر ارسال داده ) با یکدیگر گفتگو خواهند کرد ( نمایش لیست فایل های موجود در یک دایرکتوری نیز به عنوان یک ارسال فایل تلقی می گردد ) .
* پروتکل FTP امکان استفاده از سیستم فایل را مشابه پوسته یونیکس و یا خط دستور ویندوز در اختیار کاربران قرار می دهد .
* سرویس گیرنده در ابتدا یک پیام را برای سرویس دهنده ارسال و سرویس دهنده نیز به آن پاسخ خواهد داد و در ادامه ارتباط غیرفعال می گردد . وضعیت فوق با سایر پروتکل هائی که به صورت تراکنشی کار می کنند ، متفاوت می باشد ( نظیر پروتکل HTTP ) . برنامه های سرویس گیرنده زمانی قادر به شبیه سازی یک محیط تراکنشی می باشند که از مسائلی که قرار است در آینده محقق شوند ، آگاهی داشته باشند . در واقع ، پروتکل FTP یک دنباله stateful از یک و یا چندین تراکنش است.
* سرویس گیرندگان ، مسئولیت ایجاد و مقداردهی اولیه درخواست ها را برعهده دارند که با استفاده از دستورات اولیه FTP انجام می گردد. دستورات فوق ، عموما" سه و یا چهار حرفی می باشند (مثلا" برای تغییر دایرکتوری از دستور CWD استفاده می شود ). سرویس دهنده نیز بر اساس یک فرمت استاندارد به سرویس گیرندگان پاسخ خواهد داد ( سه رقم که به دنبال آن از space استفاده شده است به همراه یک متن تشریحی ) . سرویس گیرندگان می بایست صرفا" به کد عددی نتیجه استناد نمایند چراکه متن تشریحی تغییر پذیر بوده و در عمل برای اشکال زدائی مفید است ( برای کاربران حرفه ای ) .
* پروتکل FTP دارای امکانات حمایتی لازم برای ارسال داده با نوع های مختلف می باشد . دو فرمت متداول، اسکی برای متن ( سرویس گیرنده با ارسال دستور TYPE A ، موضوع را به اطلاع سرویس دهنده می رساند ) و image برای داده های باینری است ( توسط TYPE I مشخص می گردد) . ارسال داده با فرمت اسکی در مواردی که ماشین سرویس دهنده و ماشین سرویس گیرنده از استانداردهای متفاوتی برای متن استفاده می نمایند ، مفید بوده و یک سرویس گیرنده می تواند پس از دریافت داده آن را به فرمت مورد نظر خود ترجمه و استفاده نماید . مثلا" در نسخه های ویندوز از یک دنباله carriage return و linefeed برای نشان دادن انتهای خط استفاده می گردد در صورتی که در سیستم های مبتنی بر یونیکس صرفا" از یک linefeed استفاده می شود . برای ارسال هرنوع داده که به ترجمه نیاز نداشته باشد،می توان از ارسال باینری استفاده نمود.
* اتخاذ تصمیم در رابطه با نوع ارسال فایل ها در اختیار سرویس گیرنده است ( برخلاف HTTP که می تواند به سرویس گیرنده نوع داده ارسالی را اطلاع دهد ) . معمولا" سرویس گیرندگان ارسال باینری را انتخاب می نمایند و پس از دریافت فایل ، ترجمه لازم را انجام خواهند داد . ارسال باینری ذاتا" دارای کارآئی بیشتری است چراکه سرویس دهنده و سرویس گیرنده نیازی به انجام تراکنش های on the fly نخواهند داشت . ارسال اسکی گزینه پیش فرض انتخابی توسط پروتکل FTP است و در صورت نیاز به ارسال باینری ، سرویس گیرنده می بایست این موضوع را از سرویس دهنده درخواست نماید .
* یک اتصال پروتکل TCP/IP ( نسخه شماره چهار) شامل دو نقطه مجزا می باشد که هر نقطه از یک آدرس IP و یک شماره پورت استفاده می نماید . برقراری ارتباط بین یک سرویس گیرنده و یک سرویس دهنده منوط به وجود چهار عنصر اطلاعاتی است : آدرس سرویس دهنده ، پورت سرویس دهنده ، آدرس سرویس گیرنده و پورت سرویس گیرنده . در زمان برقراری یک ارتباط ، سرویس گیرنده از یک شماره پورت استفاده می نماید . این شماره پورت می تواند متناسب با نوع عملکرد برنامه سرویس گیرنده به صورت اختیاری و یا اجباری باشد . مثلا" برخی برنامه های سرویس گیرنده به منظور ارتباط با سرویس دهنده ، نیازمند استفاده از یک شماره پورت خاص می باشند ( نظیر برنامه های سرویس گیرنده وب و یا مرورگرهای وب که از پورت شماره 80 به منظور ارتباط با سرویس دهنده وب استفاده می نماید) . در مواردی که الزامی در خصوص شماره پورت وجود ندارد از یک شماره پورت موقتی و یا ephemeral استفاده می گردد . این نوع پورت ها موقتی بوده و توسط IP stack ماشین مربوطه به متقاضیان نسبت داده شده و پس از خاتمه ارتباط ، پورت آزاد می گردد . با توجه به این که اکثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند کرد ( تا زمانی که تمام pool تکمیل نشده باشد ) ، در صورتی که سرویس گیرنده مجددا" درخواست برقراری یک ارتباط را نماید ، یک شماره پورت موقتی دیگر به وی تخصیص داده می شود .
* پروتکل FTP منحصرا" از پروتکل TCP استفاده می نماید( هرگز از پروتکل UDP استفاده نمی شود) . معمولا" پروتکل های لایه Application ( با توجه به مدل مرجع OSI ) از یکی از پروتکل های TCP و یا UDP استفاده می نمایند ( به جزء پروتکل DNS ) . پروتکل FTP نیز از برخی جهات شرایط خاص خود را دارد و برای انجام وظایف محوله از دو پورت استفاده می نماید . این پروتکل معمولا" از پورت شماره 20 برای ارسال داده و از پورت 21 برای گوش دادن به فرامین استفاده می نماید . توجه داشته باشید که برای ارسال داده همواره از پورت 20 استفاده نمی گردد و ممکن است در برخی موارد از پورت های دیگر استفاده شود .
* اکثر سرویس دهندگان FTP از روش خاصی برای رمزنگاری اطلاعات استفاده نمی نمایند و در زمان login سرویس گیرنده به سرویس دهنده ، اطلاعات مربوط به نام و رمز عبور کاربر به صورت متن معمولی در شبکه ارسال می گردد . افرادی که دارای یک Packet sniffer بین سرویس گیرنده و سرویس دهنده می باشند ، می توانند به سادگی اقدام به سرقت نام و رمز عبور نمایند . علاوه بر سرقت رمزهای عبور ، مهاجمان می توانند تمامی مکالمات بر روی اتصالات FTP را شنود و محتویات داده های ارسالی را مشاهده نمایند . پیشنهادات متعددی به منظور ایمن سازی سرویس دهنده FTP مطرح می گردد ولی تا زمانی که رمزنگاری و امکانات حفاظتی در سطح لایه پروتکل IP اعمال نگردد ( مثلا" رمزنگاری توسط IPsecs ) ، نمی بایست از FTP استفاده گردد خصوصا" اگر بر روی شبکه اطلاعات مهم و حیاتی ارسال و یا دریافت می گردد .
* همانند بسیاری از پروتکل های لایه Application ، پروتکل FTP دارای کدهای وضعیت خطاء مختص به خود می باشد ( همانند HTTP ) که اطلاعات لازم در خصوص وضعیت ارتباط ایجاد شده و یا درخواستی را ارائه می نماید . زمانی که یک درخواست ( GET , PUT ) برای یک سرویس دهنده FTP ارسال می گردد ، سرویس دهنده پاسخ خود را به صورت یک رشته اعلام می نماید . اولین خط این رشته معمولا" شامل نام سرویس دهنده و نسخه نرم افزار FTP است .در ادامه می توان دستورات GET و یا PUT را برای سرویس دهنده ارسال نمود . سرویس دهنده با ارائه یک پیام وضعیت به درخواست سرویس گیرندگان پاسخ می دهد . کدهای وضعیت برگردانده شده را می توان در پنج گروه متفاوت تقسیم نمود :
کدهای 1xx : پاسخ اولیه
کدهای 2xx : درخواست بدون خطاء اجراء گردید .
کدهای 3xx : به اطلاعات بشتری نیاز است .
کدهای 4xx : یک خطاء موقت ایجاد شده است .
کدهای 5xx : یک خطاء دائمی ایجاد شده است .
متداولترین کدهای وضعیت FTP به همراه مفهوم هریک در جدول زیر نشان داده شده است :
کدهای وضعیت سری 100
110
Restart reply
120
Service ready in x minutes
125
Connection currently open, transfer starting
150
File status okay, about to open data
کدهای وضعیت سری 200
200
Command okay
202
Command not implemented, superfluous at this site
211
System status/help reply
212
Directory status
213
File status
214
System Help message
215
NAME system type
220
Service ready for next user.
221
Service closing control connection. Logged off where appropriate
225
Data connection open; no transfer in progress.
226
Closing data connection. Requested action successful
227
Entering Passive Mode
230
User logged in, continue
250
Requested file action okay, completed
257
"PATHNAME" created.
کدهای وضعیت سری 300
331
User name okay, need password.
332
Need account for login
350
Requested file action pending further information.
کدهای وضعیت سری 400
421
Service not available, closing control connection.
425
Can't open data connection
426
Connection closed; transfer aborted.
450
Requested file action not taken. File not available – busy etc..
451
Request aborted: error on server in processing.
452
Requested action not taken. Insufficient resources on system
کدهای وضعیت سری 500
500
Syntax error, command unrecognized
501
Syntax error in parameters or arguments.
502
Command not implemented.
503
Bad sequence of commands
504
Command not implemented for that parameter.
530
Not logged in.
532
Need account for storing files
550
Requested action not taken. File unavailable
552
Requested file action aborted. Exceeded storage allocation
553
Requested action not taken. File name not allowed
مفهوم برخی از کدهای متداول
226
دستور بدون هیچگونه خطائی اجراء گردید .
230
زمانی این کد نمایش داده می شود که یک سرویس گیرنده رمز عبور خود را به درستی درج و عملیات login با موفقیت انجام شده باشد .
231
کد فوق نشاندهنده دریافت username ارسالی سرویس گیرنده توسط سرویس دهنده می باشد و تائیدی است بر اعلام وصول Username ( نه صحت آن ) .
501
دستور تایپ شده دارای خطاء گرامری است و می بایست مجددا" دستور تایپ گردد .
530
عملیات login با موفقیت انجام نشده است . ممکن است Username و یا رمز عبور اشتباه باشد .
550
فایل مشخص شده در دستور تایپ شده نامعتبر است .
FTP ، یک پروتکل ارسال فایل است که با استفاده از آن سرویس گیرندگان می توانند به سرویس دهندگان متصل و صرفنظر از نوع سرویس دهنده اقدام به دریافت و یا ارسال فایل نمایند . پروتکل FTP به منظور ارائه خدمات خود از دو حالت متفاوت استفاده می نماید : Active Mode و Passive Mode . مهمترین تفاوت بین روش های فوق جایگاه سرویس دهنده و یا سرویس گیرنده در ایجاد و خاتمه یک ارتباط است .
همانگونه که در بخش اول اشاره گردید ، یک اتصال پروتکل TCP/IP ( نسخه شماره چهار) شامل دو نقطه مجزا می باشد که هر نقطه از یک آدرس IP و یک شماره پورت استفاده می نماید . برقراری ارتباط بین یک سرویس گیرنده و یک سرویس دهنده منوط به وجود چهار عنصر اطلاعاتی است : آدرس سرویس دهنده ، پورت سرویس دهنده ، آدرس سرویس گیرنده و پورت سرویس گیرنده . در زمان برقراری یک ارتباط ، سرویس گیرنده از یک شماره پورت استفاده می نماید . این شماره پورت می تواند متناسب با نوع عملکرد برنامه سرویس گیرنده به صورت اختیاری و یا اجباری باشد . مثلا" برخی برنامه های سرویس گیرنده به منظور ارتباط با سرویس دهنده ، نیازمند استفاده از یک شماره پورت خاص می باشند ( نظیر برنامه های سرویس گیرنده وب و یا مرورگرهای وب که از پورت شماره 80 به منظور ارتباط با سرویس دهنده وب استفاده می نماید) . در مواردی که الزامی در خصوص شماره پورت وجود ندارد از یک شماره پورت موقتی و یا ephemeral استفاده می گردد . این نوع پورت ها موقتی بوده و توسط IP stack ماشین مربوطه به متقاضیان نسبت داده شده و پس از خاتمه ارتباط ، پورت آزاد می گردد . با توجه به این که اکثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند کرد ( تا زمانی که تمام pool تکمیل نشده باشد ) ، در صورتی که سرویس گیرنده مجددا" درخواست برقراری یک ارتباط را نماید ، یک شماره پورت موقتی دیگر به وی تخصیص داده می شود .
پس از این مقدمه ، در ادامه به بررسی هر یک از روش های Active و Passive در پروتکل FTP خواهیم پرداخت . Active Mode
Active Mode ، روش سنتی ارتباط بین یک سرویس گیرنده FTP و یک سرویس دهنده می باشد که عملکرد آن بر اساس فرآیند زیر است :
* سرویس گیرنده یک ارتباط با پورت 21 سرویس دهنده FTP برقرار می نماید . پورت 21 ، پورتی است که سرویس دهنده به آن گوش فرا می دهد تا از صدور فرامین آگاه و آنان را به ترتیب پاسخ دهد . سرویس گیرنده برای برقراری ارتباط با سرویس دهنده از یک پورت تصادفی و موقتی ( بزرگتر از 1024 ) استفاده می نماید( پورت x ).
* سرویس گیرنده شماره پورت لازم برای ارتباط سرویس دهنده با خود را از طریق صدور دستور PORT N+1 به وی اطلاع می دهد ( پورت x+1 )
* سرویس دهنده یک ارتباط را از طریق پورت 20 خود با پورت مشخص شده سرویس گیرنده ( پورت x+1 ) برقرار می نماید .
لطفا" به من از طریق پورت 1931 بر روی آدرس
IP: 192.168.1.2 متصل و سپس داده را ارسال نمائید .
سرویس گیرنده
تائید دستور
سرویس دهنده
در فرآیند فوق ، ارتباط توسط سرویس گیرنده آغاز و پاسخ به آن توسط سرویس دهنده و از طریق پورت x+1 که توسط سرویس گیرنده مشخص شده است ، انجام می شود . در صورتی که سرویس گیرنده از سیستم ها و دستگاه های امنیتی خاصی نظیر فایروال استفاده کرده باشد ، می بایست تهمیدات لازم به منظور ارتباط کامپیوترهای میزبان راه دور به سرویس گیرنده پیش بینی تا آنان بتوانند به هر پورت بالاتر از 1024 سرویس گیرنده دستیابی داشته باشند . بدین منظور لازم است که پورت های اشاره شده بر روی ماشین سرویس گیرنده open باشند . این موضوع می تواند تهدیدات و چالش های امنیتی متعددی را برای سرویس گیرندگان به دنبال داشته باشد .
Passive Mode
در Passive Mode ، که به آن " مدیریت و یا اداره سرویس گیرندگان FTP" نیز گفته می شود از فرآیند زیر استفاده می گردد :
* سرویس گیرنده دو پورت را فعال می نماید ( پورت x و x+1 )
* ارتباط اولیه از طریق پورت x سرویس گیرنده با پورت 21 سرویس دهنده آغاز می گردد .
* سرویس دهنده یک پورت را فعال ( Y ) و به سرویس گیرنده شماره پورت را اعلام می نماید .
* در ادامه سرویس گیرنده یک اتصال از طریق پورت x+1 با پورت y سرویس دهنده برقرار می نماید .
لطفا" به من بگوئید که از کجا می توانم داده را دریافت نمایم
سرویس گیرنده
با من از طریق پورت 4023 بر روی آدرس
IP: 192.168.1.25 ارتباط برقرار نمائید .
سرویس دهنده
در فرآیند فوق ، سرویس گیرنده دارای نقش محوری است و فایروال موجود بر روی سرویس گیرنده می تواند درخواست های دریافتی غیرمجاز به پورت های بالاتر از 1024 را به منظور افزایش امنیت بلاک نمایند . در صورتی که بر روی کامپیوترهای سرویس دهنده نیز فایروال نصب شده باشد ، می بایست پیکربندی لازم به منظور استفاده از پورت های بالاتر از 1024 بر روی آن آنجام و آنان open گردند . باز نمودن پورت های فوق بر روی سرویس دهنده می تواند چالش های امنیتی خاصی را برای سرویس دهنده به دنبال داشته باشد .
متاسفانه تمامی سرویس گیرندگان FTP از Passive Mode حمایت نمی نمایند . اگر یک سرویس گیرنده بتواند به یک سرویس دهنده login نماید ولی قادر به ارسال داده بر روی آن نباشد ، نشاندهنده این موضوع است که فایروال و یا Gateway برای استفاده از Passive Mode به درستی پیکربندی نشده است .
ملاحضات امنیتی
در صورتی که فایروال های موجود بر روی کامپیوترهای سرویس گیرنده به درستی پیکربندی نگردند ، آنان نمی توانند از Active Mode استفاده نمایند . در Passive Mode استحکام سیستم امنیتی در سمت سرویس دهنده و توسط فایروال مربوطه انجام خواهد شد . بنابراین لازم است به سرویس دهنده اجازه داده شود که به اتصالات هر پورت بالاتر از 1024 پاسخ دهد . ترافیک فوق ، معمولا" توسط فایروال سرویس دهنده بلاک می گردد . در چنین شرایطی امکان استفاده از Passive Mode وجود نخواهد داشت .
Passive Mode و یا Active Mode ؟
با توجه به مستندات درج شده در RFC 1579 ، استفاده از Passive Mode به دلایل متعددی به Active Mode ترجیح داده می شود :
* تعداد سرویس دهندگان موجود بر روی اینترنت به مراتب کمتر از سرویس گیرندگان می باشد .
* با استفاده از امکانات موجود می توان سرویس دهندگان را پیکربندی تا بتوانند از مجموعه پورت های محدود و تعریف شده ای با در نظر گرفتن مسائل امنیتی ، استفاده نمایند.
پیکربندی فایروال
جدول زیر پیکربندی فایروال در Active Mode و Passive Mode را نشان می دهد .
Active Mode
Server Inbound
from any client port >1024 to port 21 on the server
Server Outbound
from port 20 on the client on any port > 1024
Client Inbound
ports 20 from the server to any port >1024 on client
Client Outbound
from any port >1024 to port 21 on the server
Passive Mode
Server Inbound
port 21 and any port >1024 from client/anywhere, from any port >1024
Server Outbound
port 21 and any port >1024 to client/anywhere, to any port >1024
Client Inbound
Return traffic, any port > 1024 from server using any port >1024
و اما یک نکته دیگر در رابطه با پروتکل FTP !
در صورتی که در زمان دریافت یک فایل با استفاده از پروتکل FTP مشکلات خاصی ایجاد که منجر به قطع ارتباط با سرویس دهنده FTP گردد ، سرویس گیرنده می تواند با مشخص کردن یک offset از فایل دریافتی به سرویس دهنده اعلام نماید که عملیات ارسال را از جائی که ارتباط قطع شده است ، ادامه دهد ( سرویس گیرنده از محلی شروع به دریافت فایل می نماید که ارتباط غیرفعال شده بود ) . استفاده از ویژگی فوق به امکانات سرویس دهنده FTP بستگی دارد
پروتکل TCP/IP
TCP/IP پروتکل استاندارد در اکثر شبکه های بزرگ است . با اینکه پروتکل فوق کند و مستلزم استفاده از منابع زیادی است ، ولی بدلیل مزایای بالای آن نظیر : قابلیت روتینگ ، حمایت در اغلب پلات فورم ها و سیستم های عامل همچنان در زمینه استفاده از پروتکل ها حرف اول را می زند. با استفاده از پروتکل فوق کاربران با در اختیار داشتن ویندوز و پس از اتصال به شبکه اینترنت، براحتی قادر به ارتباط با کاربران دیگر خواهند بود که از مکینتاش استفاده می کند
امروزه کمتر محیطی را می توان یافت که نیازبه دانش کافی در رابطه با TCP/IP نباشد. حتی سیستم عامل شبکه ای ناول که سالیان متمادی از پروتکل IPX/SPX برای ارتباطات استفاده می کرد، در نسخه شماره پنج خود به ضرورت استفاده از پروتکل فوق واقف و نسخه اختصاصی خود را در این زمینه ارائه نمود.
پروتکل TCP/IP در ابتدا برای استفاده در شبکه ARPAnet ( نسخه قبلی اینترنت ) طراحی گردید. وزارت دفاع امریکا با همکاری برخی از دانشگاهها اقدام به طراحی یک سیستم جهانی نمود که دارای قابلیت ها و ظرفیت های متعدد حتی در صورت بروز جنگ هسته ای باشد. پروتکل ارتباطی برای شبکه فوق ، TCP/IP در نظر گرفته شد.
اجزای پروتکل TCP/IP
پروتکل TCP/IP از مجموعه پروتکل های دیگر تشکیل شده که هر یک در لایه مربوطه، وظایف خود را انجام می دهند. پروتکل های موجود در لایه های Transport و Network دارای اهمیت بسزائی بوده و در ادامه به بررسی آنها خواهیم پرداخت .
پروتکل های موجود در لایه Network پروتکل TCP/IP
* پروتکل TCP)Transmission Control Protocol) ، مهمترین وظیفه پروتکل فوق اطمینان از صحت ارسال اطلاعات است . پروتکل فوق اصطلاحا" Connection-oriented نامیده می شود. علت این امر ایجاد یک ارتباط مجازی بین کامپیوترهای فرستنده و گیرنده بعد از ارسال اطلاعات است . پروتکل هائی از این نوع ، امکانات بیشتری رابه منظور کنترل خطاهای احتمالی در ارسال اطلاعات فراهم نموده ولی بدلیل افزایش بار عملیاتی سیستم کارائی آنان کاهش خواهد یافت . از پروتکل TCPبه عنوان یک پروتکل قابل اطمینان نیز یاد می شود. علت این امر ارسال اطلاعات و کسب آگاهی لازم از گیرنده اطلاعات به منظور اطمینان از صحت ارسال توسط فرستنده است . در صورتی که بسته های اطلاعاتی بدرستی دراختیار فرستنده قرار نگیرند، فرستنده مجددا" اقدام به ارسال اطلاعات می نماید.
* پروتکل UDP)User Datagram Protocol) . پروتکل فوق نظیر پروتکل TCP در لایه " حمل " فعالیت می نماید. UDP بر خلاف پروتکل TCP بصورت " بدون اتصال " است . بدیهی است که سرعت پروتکل فوق نسبت به TCP سریعتر بوده ولی از بعد کنترل خطاء تظمینات لازم را ارائه نخواهد داد. بهترین جایگاه استفاده از پروتکل فوق در مواردی است که برای ارسال و دریافت اطلاعات به یک سطح بالا از اطمینان ، نیاز نداشته باشیم .
* پروتکل IP)Internet Protocol) . پروتکل فوق در لایه شبکه ایفای وظیفه کرده و مهمترین مسئولیت آن دریافت و ارسال بسته های اطلاعاتی به مقاصد درست است . پروتکل فوق با استفاده از آدرس های نسبت داده شده منطقی، عملیات روتینگ را انجام خواهد داد.
پروتکل های موجود در لایه Application پروتکل TCP/IP
پروتکل TCP/IP صرفا" به سه پروتکل TCP ، UDP و IP محدود نشده و در سطح لایه Application دارای مجموعه گسترده ای از سایر پروتکل ها است . پروتکل های فوقبه عنوان مجموعه ابزارهائی برای مشاهده ، اشکال زدائی و اخذ اطلاعات و سایر عملیات مورد استفاده قرار می گیرند.در این بخش به معرفی برخی از این پروتکل ها خواهیم پرداخت .
* پروتکل FTP)File Transfer Protocol) . از پروتکل فوق برای تکثیر فایل های موجود بر روی یک کامیپیوتر و کامپیوتر دیگر استفاده می گردد. ویندوز دارای یک برنامه خط دستوری بوده کهبه عنوان سرویس گیرنده ایفای وظیفه کرده و امکان ارسال و یا دریافت فایل ها را از یک سرویس دهنده FTP فراهم می کند.
* پروتکل SNMP)Simple Network Management Protocol) . از پروتکل فوق به منظور اخذ اطلاعات آماری استفاده می گردد. یک سیستم مدیریتی، درخواست خود را از یک آژانس SNMP مطرح و ماحصل عملیات کار در یک MIB)Management Information Base) ذخیره می گردد. MIB یک بانک اطلاعاتی بوده که اطلاعات مربوط به کامپیوترهای موجود در شبکه را در خود نگهداری می نماید .( مثلا" چه میزان فضا ی هارد دیسک وجود دارد).
* پروتکل TelNet . با استفاده از پروتکل فوق کاربران قادر به log on ، اجرای برنامه ها و مشاهده فایل های موجود بر روی یک کامپیوتر از راه دور می باشند. ویندوز دارای برنامه های سرویس دهنده و گیرنده جهت فعال نمودن و استفاده از پتانسیل فوق است .
* پروتکل SMTP)simple Mail Transfer Protocol) . از پروتکل فوق برای ارسال پیام الکترونیکی استفاده می گردد.
* پروتکل HTTP)HyperText Transfer Protocol) . پروتکل فوق مشهورترین پروتکل در این گروه بوده و از آن برای رایج ترین سرویس اینترنت یعنی وب استفاده می گردد. با استفاده از پروتکل فوق کامپیوترها قادر به مبادله فایل ها با فرمت های متفاوت ( متن، تصاویر ،گرافیکی ، صدا، ویدئو و…) خواهند بود. برای مبادله اطلاعات با استناد به پروتکل فوق می بایست ، سرویس فوق از طریق نصب سرویس دهنده وب فعال و در ادامه کاربران و استفاده کنندگان با استفاده از یک مرورگر وب قادر به استفاده از سرویس فوق خواهند بود.
* پروتکل NNTP)Network News Transfer Protocol) . از پروتکل فوق برای مدیریت پیام های ارسالی برای گروه های خبری خصوصی و عمومی استفاده می گردد. برای عملیاتی نمودن سرویس فوق می بایست سرویس دهنده NNTPبه منظور مدیریت محل ذخیره سازی پیام های ارسالی نصب و در ادامه کاربران و سرویس گیرندگان با استفاده از برنامه ای موسوم به NewsReader از اطلاعات ذخیره شده استفاده خواهند کرد.
سیستم پست الکترونیکی واقعی
سیستم واقعی پست الکترونیکی دارای دو سرویس دهنده متفاوت بوده که بر روی یک ماشین اجراء می گردند. یکی از سرویس دهندگان ، سرویس دهنده SMTP)Simple Mail Transfer Protocol) بوده و مستولیت پیام های ارسالی ( خروج ) نامه های الکترونیکی، را برعهده دارد. سرویس دهنده دوم ، POP3)Post office Protocol) نامیده شده و مسدولیت پیام های دریافتی ( ورود ) را برعهده دارد. شکل زیر جایگاه هر یک از سرویس دهندگان اشاره شده را نشان می دهد.
سرویس دهنده SMTP به پورت 25 و سرویس دهنده POP3 به پورت 110 گوش خواهند داد.
سرویس دهنده SMTP
زمانیکه از طریق سرویس گیرنده خود اقدام به ارسال نامه الکترونیکی می نمائید ، برنامه سرویس گیرنده با سرویس دهنده SMTP به منظور ارسال نامه های الکترونیکی ، ارتباط برقرار می نماید. سرویس دهنده SMTP موجود ، ممکن است با سایر سرویس دهندگان SMTP به منظور ارسال ( توزیع ) نامه الکترونیکی ارتباط برقرار نماید. شکل زیر نحوه عملکرد سرویس دهنده فوق را نشان می دهد.
کاربران به منظور ارسال نامه الکترونیکی توسط برنامه سرویس گیرنده ، می بایست تنظیمات لازم را انجام دهند. فرض کنید آدرس پست الکترونیکی شما Ali@Test1.com باشد ، در زمان تنظیم پارامترهای برنامه سرویس گیرنده ( بعنوان مثال: Outlook) ، نام سرویس دهنده پست الکترونیکی می بایست مشخص گردد ( فرض کنید نام سرویس دهنده پست الکترونیکی mail.test.com باشد ) . پس از آماده نمودن نامه الکترونیکی و فشردن دکمه "ارسال" ، عملیات زیر انجام خواهد شد :
* برنامه Outlook express ، با سرویس دهنده SMTP موجود در mail.test1.com از طریق پورت 25 ، ارتباط برقرار می نماید.
* برنامه Outlook Express با سرویس دهنده SMTP مکالمه ای را برقرارو به سرویس دهنده SMTP ، آدرس های فرستنده و گیرنده و محتویات پیام را اعلان می نماید.
* سرویس دهنده SMTP آدرس گیرنده ( بعنوان مثال Reza@test1.com ) را به دو بخش مجزا تقسیم می نماید :
– نام دریافت کننده (Reza)
– نام حوزه (test1.com)
* در صورتیکه گیرنده پیام دارای صندوق پستی بر روی همان سرویس دهنده باشد ، سرویس دهنده SMTP پیام دریافت شده را بسادگی در اختیار سرویس دهنده POP3 قرار خواهد داد. در این زمینه از برنامه ای با نام "Delivery agent" ( آژانس توزیع ) استفاده می گردد. در صورتیکه گیرنده پیام بر روی حوزه ای دیگر باشد ، سرویس دهنده SMTP نیازمند برقراری ارتباط با حوزه مربوطه است .
* سرویس دهنده SMTP ، با DNS مربوط ارتباط و از او می خواهد که آدرس IP مربوط به سرویس دهنده SMTP حوزه مربوطه را به اطلاع وی برساند. ( فرض این است که گیرنده پیام دارای صندوق پستی بر روی همان کامپیوتر فرستنده نیست ). در ادامه DNS ، آدرس ( و یا آدرس های ) IP مربوط به سرویس دهنده ( سرویس دهندگان ) SMTP مربوط به حوزه مربوطه را اعلام می نماید.
* سرویس دهنده موجود در حوزه Test1.com با سرویس دهنده موجود در حوزه Test2.com از طریق پورت 25 ، ارتباط برقرار می نماید. سرویس دهنده SMTP موجود در حوزه Test2.com ، پیام ارسالی را دریافت و آن را در صندوق پستی مربوط به گیرنده قرار خواهد داد.
در صورتیکه سرویس دهنده موجود در حوزه Test1.com قادر به برقراری ارتباط با سرویس دهنده SMTP موجود در حوزه Test2.com نگردد ، پیام مورد نظر در محلی خاص در نوبت قرار می گیرد. سریس دهنده SMTP در اکثر ماشین ها از برنامه ای با نام Sendmail برای ارسال واقعی یک پیام الکترونیکی استفاده نموده و برای پیام های موجود در صف ، از صفی با نام sendmail queue استفاده می گردد. برنامه Sendmail بصورت ادواری( تکراری) سعی در ارسال مجدد پیام های موجود در صف می نماید . مثلا" ممکن است هر 15 دقیقه یکبار تلاش مجدد خود برای ارسال را انجام دهد. پس از گذشت چهار ساعت برای ارسال کننده نامه الکترونیکی ، پیامی مبنی بر وجود اشکال در ارسال نامه ، فرستاده می شود. پس از پنج روز ، اکثر برنامه های پیکربندی Sendmail پیامی مبنی بر عدم موفقیت در توزیع پیام را برای ارسال می دارند.
مبادله اطلاعاتی بین سرویس گیرنده پست الکترونیکی و سرویس دهنده SMTP با استفاده از یک زبان ساده متنی و خوانا، با یکدیگر ارتباط برقرار می نمایند. در ابتدا برنامه سرویس گیرنده خود را معرفی ، آدرس فرستنده و گیرنده و محتویات پیام را مشخص خواهد کرد. ( با استفاده از برنامه telnet می توان با سرویس دهنده پست الکترونیکی و از طریق پورت 25 ارتباط برقرار کرد).سرویس دهنده SMTP از دستورات ساده ای نظیر HELLO,MAIL,RCPT,DATA و … استفاده می نماید.
* HELLO. معرفی برنامه سرویس گیرنده
* EHLO . معرفی سرویس گیرنده و درخواست حالت توسه یافته
* MAIL FROM. مشخص کردن فرستنده
* RCPT TO . مشخص کردن گیرنده
* DATA . محتویات پیام را مشخص می کند.
* RESET . برای Reset نمودن استفاده می شود.
* QUIT . ارتباط را قطع می نماید.
* HELP . در رابطه با دستورات توضیحات لازم را ارائه می نماید.
سرویس دهنده POP3
زمانیکه با استفاده از برنامه سرویس گیرنده ، صندوق پستی خود را به منظور دریافت نامه های الکترونیکی بررسی می نمائید ، برنامه فوق با سرویس دهنده POP3 از طریق پورت 110 ارتباط برقرار می نماید. سرویس دهنده POP3 به یک نام Account و رمز عبور نیاز دارد. پس از تایید اعتبار و مجوز شما ، سرویس دهنده POP3 فایل های مربوطه را فعال و امکان دستیابی به آنان را فراهم می نماید.
سرویس دهنده POP3 از مجموعه دستورات متنی ساده ای ، استفاده می نماید :
* USER ID . برای ورود user id استفاده می شود.
* PASS . برای ورود رمز عبور استفاده می شود.
* QUIT . برای قطع ارتباط با سرویس دهنده POP3 استفاده می گردد.
* LIST . لیست پیامها بهمراه اندازه آنها را نشان خواهد داد.
* RETR . برای بازیابی یک پیام استفاده می شود.
* DELE . برای حذف یک پیام استفاده می گردد.
* TOP . برای نشان دادن X خط ابتدای پیام استفاده می شود.
برنامه سرویس گیرنده پست الکترونیکی با سرویس دهنده POP3 ارتباط و مجموعه ای از دستورات فوق را به منظور انتقال نسخه هائی از پیام های الکترونیکی بر روی ماشین شما ، انجام می دهد.
ضمائم
برنامه سرویس گیرنده پست الکترونیکی امکان افزودن ضمائم به نامه های الکترونیکی را فراهم می نماید.برنامه فوق همچنین امکان ذخیره نمودن ضمائم همراه یک نامه الکترونیکی را نیز بوجود می آورد . ضمائم یک نامه الکترونیکی می تواند شامل : یک نامه تایپ شده با واژه پرداز ، یک فرم صفحه گسترده ، فایل های صدا ، فایل های گرافیک و یا برنامه های نرم افزاری باشد. معمولا" فایل های ضمائم بصورت متن نمی باشند. ( در صورتیکه اطلاعات ضمائم بصورت متنی باشند ، می توان آنها را در بخش محتویات یک نامه الکترونیکی مستقر کرد).
منابع:
http://www.3boon.com
http://www.srco.ir/WhyHow/Contents/WhatIsDNS.htm
http://www.ictac.ir/Articles/http1.htm
http://www.ictac.ir/Articles/SLIPandPPP.htm
http://www.ictac.ir/Articles/ftp%202.htm
http://www.srco.ir/WhyHow/Contents/WhatIsTCPIP.htm
http://www.srco.ir/WhyHow/Contents/WhatIsEmail.htm
3