PDA

View Full Version : بخش دوم مقاله TCP/IP



الهام تفریشی
سه شنبه 13 آبان 1382, 11:19 صبح
در بخش اول این مقاله ،پروتکل TCP/IP بهمراه لایه های آن معرفی گردیید . در این بخش ، به بررسی پروتکل های موجود در TCP/IPخواهیم پرداخت .
TCP/IP ،شامل شش پروتکل اساسی( TCP,UDP,IP,ICMP,IGMP,ARP) و مجموعه ای از برنامه های کاربردی است. پروتکل های فوق، مجموعه ای از استادنداردها ی لازم بمنظور ارتباط بین کامپیوترها و دستگاهها را در شبکه ، فراهم می نماید. تمامی برنامه ها و سایر پروتکل ها ی موجود در پروتکل TCP/IP ، به پروتکل های شش گانه فوق مرتبط و از خدمات ارائه شده توسط آنان استفاده می نمایند . در ادامه به تشریح عملکرد و جایگاه هر یک از پروتکل های اشاره شده ، خواهیم پرداخت .

پروتکل TCP : لایه Transport

)شکل 1)



(TCP) Transmission Control Protocol، یکی از پروتکل های استاندارد TCP/IP است که امکان توزیع و عرضه اطلاعات ( سرویس ها) بین صرفا" دو کامپیوتر ، با ضریب اعتماد بالا را فراهم می نماید. چنین ارتباطی ( صرفا" بین دو نقطه ( ، Unicast نامیده می شود . در ارتباطات با رویکرد اتصال گرا ، می بایست قبل از ارسال داده ، ارتباط بین دو کامپیوتر برقرار گردد . پس از برقراری ارتباط ، امکان ارسال اطلاعات برای صرفا" اتصال ایجاد شده ، فراهم می گردد . ارتباطات از این نوع ، بسیار مطمئن می باشند ، علت این امر به تضمین توزیع اطلاعات برای مقصد مورد نظر برمی گردد . بر روی کامپیوتر مبداء ، TCP داده هائی که می بایست ارسال گردند را در بسته های اطلاعاتی (Packet) سازماندهی می نماید. در کامپیوتر مقصد ، TCP ، بسته های اطلاعاتی را تشخیص و داده های اولیه را مجددا" ایجاد خواهد کرد .

ارسال اطلاعات با استفاده از TCP
TCP ، بمنظور افزایش کارائی ، بسته های اطلاعاتی را بصورت گروهی ارسال می نماید . TCP ، یک عدد سریال )موقعیت یک بسته اطلاعاتی نسبت به تمام بسته اطلاعاتی ارسالی ) را به هریک از بسته ها نسبت داده و از Acknowledgment بمنظور اطمینان از دریافت گروهی از بسته های اطلاعاتی ارسال شده ، استفاده می نماید. در صورتیکه کامپیوتر مقصد ، در مدت زمان مشخصی نسبت به اعلام وصول بسته های اطلاعاتی ، اقدام ننماید ، کامپیوتر مبداء ، مجددا" اقدام به ارسال اطلاعات می نماید. علاوه برافزودن یک دنباله عددی و Acknowledgment به یک بسته اطلاعاتی ، TCP اطلاعات مربوط به پورت مرتبط با برنامه ها ی مبداء و مقصد را نیز به بسته اطلاعاتی اضافه می نماید. کامپیوتر مبداء ، از پورت کامپیوتر مقصد بمنظور هدایت صحیح بسته های اطلاعاتی به برنامه مناسب بر روی کامپیوتر مقصد ، استفاده می نماید. کامپیوتر مقصد از پورت کامپیوتر مبداء بمنظور برگرداندن اطلاعات به برنامه ارسال کننده در کامپیوتر مبداء ، استفاده خواهد کرد .
هر یک از کامپیوترهائی که تمایل به استفاده از پروتکل TCP بمنظور ارسال اطلاعات دارند ، می بایست قبل از مبادله اطلاعات ، یک اتصال بین خود ایجاد نمایند . اتصال فوق ، از نوع مجازی بوده و Session نامیده می شود .دو کامپیوتر درگیر در ارتباط ، با استفاده از TCP و بکمک فرآیندی با نام : Three-Way handshake ، با یکدیگر مرتبط و هر یک پایبند به رعایت اصول مشخص شده در الگوریتم مربوطه خواهند بود . فرآیند فوق ، در سه مرحله صورت می پذیرد :

مرحله اول : کامپیوتر مبداء ، اتصال مربوطه را از طریق ارسال اطلاعات مربوط به Session ، مقداردهی اولیه می نماید )عدد مربوط به موقعیت یک بسته اطلاعاتی بین تمام بسته های اطلاعاتی و اندازه مربوط به بسته اطلاعاتی (
مرحله دوم : کامپیوتر مقصد ، به اطلاعات Session ارسال شده ، پاسخ مناسب را خواهد داد .
کامپیوتر مبداء ، از شرح واقعه بکمک Acknowledgment ارسال شده توسط کامپیوتر مقصد ، آگاهی پیدا خواهد کرد .

پروتکل UDP : لایه Transport

)شکل2)



(UDP) User Datagram Protocol ، پروتکلی در سطح لایه "حمل" بوده که برنامه مقصد در شبکه را مشخص نموده و از نوع بدون اتصال است . پروتکل فوق، امکان توزیع اطلاعات با سرعت مناسب را ارائه ولی در رابطه با تضمین صحت ارسال اطلاعات ، سطح مطلوبی از اطمینان را بوجود نمی آورد . UDP در رابطه با داده های دریافتی توسط مقصد ، به Acknowledgment نیازی نداشته و در صورت بروز اشکال و یا خرابی در داده های ارسال شده ، تلاش مضاعفی بمنظور ارسال مجدد داده ها ، انجام نخواهد شد . این بدان معنی است که داده هائی کمتر ارسال می گردد ولی هیچیک از داده های دریافتی و صحت تسلسل بسته های اطلاعاتی ، تضمین نمی گردد .از پروتکل فوق ، بمنظور انتقال اطلاعات به چندین کامپیوتر با استفاده از Broadcast و یا Multicast ، استفاده بعمل می آید . پروتکل UDP ، در مواردیکه حجم اندکی از اطلاعات ارسال و یا اطلاعات دارای اهمیت بالائی نمی بانشد ، نیز استفاده می گردد. استفاده از پروتکل UDP در مواردی همچون Multicasting Streaming media ، )نظیر یک ویدئو کنفرانس زنده) و یا انتشار لیستی از اسامی کامپیوترها که بمنظور ارتباطات محلی استفاده می گردند ، متداول است . بمنظور استفاده از UDP ، برنامه مبداء می بایست پورت UDP خود را مشخص نماید دقیقا" مشابه عملیاتی که می بایست کامپیوتر مقصد انجام دهد . لازم به یادآوری است که پورت های UDP از پورت های TCP مجزا و متمایز می باشند (حتی اگر دارای شماره پورت یکسان باشند.(

پروتکل IP : لایه Internet

)شکل 3)



(IP) Internet Protocol ، امکان مشخص نمودن محل کامپیوتر مقصد در یک شبکه ارتباطی را فراهم می نماید IP. ، یک پروتکل بدون اتصال و غیرمطمئن بوده که اولین مسئولیت آن آدرس دهی بسته های اطلاعاتی و روتینگ بین کامپیوترهای موجود در شبکه است . با اینکه IP همواره سعی در توزیع یک بسته اطلاعاتی می نماید ، ممکن است یک بسته اطلاعاتی در زمان ارسال گرفتار مسائل متعددی نظیر : گم شدن ، خرابی ، عدم توزیع با اولویت مناسب ، تکرار در ارسال و یا تاخیر، گردند.در چنین مواردی ، پروتکل IP تلاشی بمنظور حل مشکلات فوق را انجام نخواهد داد ( ارسال مجدد اطلاعات درخواستی ) .آگاهی از وصول بسته اطلاعاتی در مقصد و بازیافت بسته های اطلاعاتی گم شده ، مسئولیتی است که بر عهده یک لایه بالاتر نظیر TCP و یا برنامه ارسال کننده اطلاعات ، واگذار می گردد .

عملیات انجام شده توسط IP
می توان IP را بعنوان مکانی در نظر گرفت که عملیات مرتب سازی و توزیع بسته های اطلاعاتی در آن محل ، صورت می پذیرد .بسته ها ی اطلاعاتی توسط یکی از پروتکل های لایه حمل TCP) و یا (UDP و یا از طریق لایه " ایترفیس شبکه " ، برای IP ارسال می گردند . اولین وظیفه IP ، روتینگ بسته های اطلاعاتی بمنظور ارسال به مقصد نهائی است . هر بسته اطلاعاتی ، شامل آدرس IP مبداء )فرستنده ) و آدرس IP مقصد ( گیرنده ) می باشد. در صورتیکه IP ، آدرس مقصدی را مشخص نماید که در همان سگمنت موجود باشد ، بسته اطلاعاتی مستقیما" برای کامپیوتر مورد نظر ارسال می گردد . در صورتیکه آدرس مقصد در همان سگمنت نباشد ، IP ، می بایست از یک روتر استفاده و اطلاعات را برای آن ارسال نماید.یکی دیگر از وظایف IP ، ایجاد اطمینان از عدم وجود یک بسته اطلاعاتی ( بلاتکلیف ! ) در شبکه است . بدین منظور محدودیت زمانی خاصی در رابطه با مدت زمان حرکت بسته اطلاعاتی در طول شبکه ، در نظر گرفته می شود .عملیات فوق، توسط نسبت دادن یک مقدار (TTL)Time To Live به هر یک از بسته های اطلاعاتی صورت می پذیرد. TTL ، حداکثر مدت زمانی را که بسته اطلاعاتی قادر به حرکت در طول شبکه است را مشخص می نماید( قبل از اینکه بسته اطلاعاتی کنار گذاشته شود(

پروتکل ICMP : لایه Internet

)شکل 4)



(ICMP) Internet Control Message Protocol ، امکانات لازم در خصوص اشکال زدائی و گزارش خطاء در رابطه با بسته های اطلاعاتی غیرقابل توزیع را فراهم می نماید. با استفاده از ICMP ، کامپیوترها و روترها که از IP بمنظور ارتباطات استفاده می نمایند ، قادر به گزارش خطاء و مبادله اطلاعاتی محدود در رابطه وضعیت بوجود آمده می باشند. مثلا" در صورتیکه IP ، قادر به توزیع یک بسته اطلاعاتی به مقصد مورد نظر نباشد ، ICMP یک پیام مبتنی بر غیرقابل دسترس بودن را برای کامپیوتر مبداء ارسال می دارد . با اینکه پروتکل IP بمنظور انتقال داده بین روترهای متعدد استفاده می گردد ، ولی ICMP به نمایندگی از TCP/IP ، مسئول ارائه گزارش خطاء و یا پیام های کنترلی است . تلاش ICMP ، در این جهت نیست که پروتکل IP را بعنوان یک پروتکل مطمئن مطرح نماید ، چون پیام های ICMP دارای هیچگونه محتویاتی مبنی بر اعلام وصول پیام (Acknowledgment ) بسته اطلاعاتی نمی باشند . ICMP ، صرفا" سعی در گزارش خطاء و ارائه فیدبک های لازم در رابطه با تحقق یک وضعیت خاص را می نماید .

پروتکل IGMP : لایه Internet

)شکل 5)



(IGMP) Internet Group Managment Protocol، پروتکلی است که مدیریت لیست اعضاء برای IP Multicasting ، در یک شبکه TCP/IP را بر عهده دارد . IP Multicasting، فرآیندی است که بر اساس آن یک پیام برای گروهی انتخاب شده از گیرندگان که گروه multicat نامیده می شوند ؛ ارسال می گردد IGMP. لیست اعضاء را نگهداری می نماید .
مدیریت IP Multicasting
تمامی اعضاء یک گروه multicast ، به ترافیک IP هدایت شده به یک آدرس Multicast IP ، گوش داده و بسته های اطلاعاتی ارسال شده به آن آدرس را دریافت می نمایند. زمانیکه چندین کامپیوتر نیازمند دستیابی به اطلاعاتی نظیر Streaming media باشند، یک آدرس IP رزوشده برای multicasting استفاده می گردد. روترها که بمنظور پردازش multicast پیکربندی می گردند، اطلاعات را انتخاب و آنها را برای تمامی مشترکین گروه multicast ارسال ( Forward ) می نمایند . بمنظور رسیدن اطلاعات Multicast به گیرندگان مربوطه ، هر یک از روترهای موجود در مسیر ارتباطی می بایست ، قادر به حمایت از Multicasting باشند . کامپیوترهای مبتنی بر سیستم عامل ویندوز 2000 ، قادر به ارسال و دریافت IP Multicast ، می باشند .

پروتکل ARP : لایه Internet

)شکل 6)



(ARP) Address Resolution Protocol، پروتکلی است که مسئولیت مسئله " نام به آدرس" را در رابطه با بسته های اطلاعاتی خروجی (Outgoing) ، برعهده دارد . ماحصل فرآیند فوق ، Mapping آدرس IP به Media Access Control ، (MAC)مربوطه است . کارت شبکه از آدرس MAC ، بمنظور تشخیص تعلق یک بسته اطلاعاتی به کامپیوتر مربوطه ، استفاده می نمایند . بدون آدرس های MAC ، کارت های شبکه ، دانش لازم در خصوص ارسال بسته های اطلاعاتی به لایه بالاتر بمنظور پردازش های مربوطه را دارا نخواهند بود . همزمان با رسیدن بسته های اطلاعاتی به لایه IP بمنظور ارسال در شبکه ، آدرس های MAC مبداء و مقصد به آن اضافه می گردد .
ARP ، از جدولی خاص بمنظور ذخیره سازی آدرس های IP و MAC مربوطه ، استفاده می نماید. محلی از حافظه که جدول فوق در آنجا ذخیره می گردد ، ARP Cache نامیده می شود. ARP Cache هر کامپیوتر شامل mapping لازم برای کامپیوترها و روترهائی است که صرفا" بر روی یک سگمنت مشابه قرار دارند.
Physical Address Resolution
پروتکل ARP ، آدرس IP مقصد هر یک از بسته های اطلاعاتی خروجی را با ARP Cache مقایسه تا آدرس MAC مقصد مورد نظر را بدست آورد . در صورتیکه موردی پیدا گردد ، آدرس MAC از Cache بازیابی می گردد . در غیر اینصورت ؛ ARP درخواستی را برای کامپیوتری که مالکیت IP را برعهده دارد ، Broadcast نموده و از وی می خواهد که آدرس MAC خود را اعلام نماید . کامپیوتر مورد نظر ( با IP مربوطه ( ، در ابتدا آدرس MAC کامپیوتر ارسال کننده درخواست را به Cache خود اضافه نموده و در ادامه پاسخ لازم را از طریق ارسال آدرس MAC خود ، به متقاضی خواهد داد . زمانیکه پاسخ ARP توسط درخواست کننده ، دریافت گردید ، در ابتدا با استناد به اطلاعات جدید دریافتی، Cache مربوطه بهنگام و در ادامه بسته اطلاعاتی به مقصد کامپیوتر مورد نظر ارسال می گردد .
در صورتیکه مقصد یک بسته اطلاعاتی ، سگمنتی دیگر باشد ، ARP ، آدرس MAC را به روتر مسئول در سگمنت مربوطه ، تعمیم خواهد داد ( در مقابل آدرس مربوط به کامپیوتر مقصد ) . روتر ، در ادامه مسئول یافتن آدرس MAC مقصد و یا Forwarding بسته اطلاعاتی برای روتر دیگر است .

در بخش سوم این مقاله به بررسی ، برنامه ها و ابزارهای کمکی در رابطه با پروتکل TCP/IP ، خواهیم پرداخت .



WWW.IRANDEVELOPERS.COM

canvas_for
سه شنبه 13 آبان 1382, 11:31 صبح
مرسی ولی این متن های انگلیسیت یک کم به هم ریخته است :D

الهام تفریشی
سه شنبه 13 آبان 1382, 11:35 صبح
دیگه به درستی خودتون ببخشید :lol:

najafi_1
سه شنبه 13 آبان 1382, 12:58 عصر
کاش یه لینک به نخش اول هم میدادی برای اونایی که نخوندن خوب بود :mrgreen:
حالا حالاها ول کن نییییییییییییییییییییستم :skull: الهام(خانم)

الهام تفریشی
سه شنبه 13 آبان 1382, 13:11 عصر
حالا حالاها ول کن نییییییییییییییییییییستم الهام(خانم)

ول کن چی نیستی ؟ :shock:

tayebeh
دوشنبه 02 شهریور 1383, 11:56 صبح
سلام الهام جون...................
ممنون از مقاله قشنگت.فقط یه سئوال شما اطلاعاتی درباره radius - kerberos - ssl دارید؟ممنون میشم اگه کمکم کنید.
باتشکر
بای

الهام تفریشی
سه شنبه 10 شهریور 1383, 09:48 صبح
ssl
Secure Socket Layer , یا همان SSL یک تکنولوژی استاندارد و به ثبت رسیده برای تامین ارتباطی امن مابین یک وب سرور و یک مرورگر اینترنت است. این ارتباط امن از تمامی اطلاعاتی که ما بین وب سرور و مرورگر اینترنت ( کاربر) انتقال میابد , محافظت میکند تا در این انتقال به صورت محرمانه و دست نخورده باقی بماند. SSL یک استاندارد صنعتی است و توسط ملیونها وب سایت در سراسر جهان برای برقراری امنتیت انتقال اطلاعات استفاده میشود. برای اینکه یک وب سایت بتواند ارتباطی امن از نوع SSL را داشته باشد نیاز به یک گواهینامه SSL دارد.
تو این لینک میتونی اطلاعات بیشتری کسب کنی
http://www.iranssl.com/ShowArticle.aspx?id=16


Kerberos

کربروس پروتکل Default ه Authorizing ویندوز 2000 و یکی از بهترین این نوع پروتکل هاست , کربروس توسط Massachusetts Institure Of Technology فکر میکنم در سال 99 تولید و به عنوان یک استاندارد Rfc (1510) ثبت شد ¸ نظارت بر Login
Kerneros به عنوان یکی از قسمتهای داخلی Active Directory و عملا شناسایی و
Authorize کردن سیستم عامل رو به عهده داره ¸ تا قبل از ویندوز 2000 سیستم عامل های NT از NTLm استفاده میکردن که ثابت شده خیلی هم پرتکل امنی نیست :)
برای استفاده از Kerberos رو ویندوز های NT و 9x میتونین پچی رو که مایکروسافت برای این کار بیرون داده رو روی WorkStation هاتون اینستال کنید , به هر صورت ویندوز 2000 همچنان Ntlm رو ساپرت میکنه .
Kerberos از جهتی به PKI ( Public Key Infrastructure ) شباهت داره ولی فرق اساسیش در اینه که به جای Public Key از Shared Secret استفاده میکنه که باعث میشه ارتباط خیلی امن باشه :)
در این روش این Secret Key از طرف Host به Client فرستاده میشه و هم
سرویس دهنده و هم سرویس گیرنده باید ثابت کنند Shared Secret رو میدونن تا ارتباط بر قرار بشه :)
برای ورود به سرور ویندوز 2000 باید Id و پسورد خودتون رو وارد کنید ¸ کلمه عبور با رمز دیگری ترکیب میشه و عددی رو با توجه به کاراکترهای پسورد و Id ایجاد میکنه :) این ترکیب Key نامیده میشه .
KDC ( Kerberos Distribution Center ) Key رو دریافت میکنه ( ما تصور
میکنیم که مشکلی برای ورود به شبکه پیش نمیاد ) سعی میکنه ارتباط
امنی رو بین دو کامپیوتر با چک کردن Key هر دو ایجاد کنه و تا آخر ارتباط
با فواصل زمانی این رو چک میکنه :)
در حقیقت وقتی Kdc درخواست رو دریافت میکنه بررسی میکنه که کاربر
همون کسی که ادعا میکنه هست یا نع , برای این کار نسخه ذخیره شده
Key رو با Key دریافتی مقایسه میکنه و اگر مشکلی پیش نیومد یک
TGT ( Ticket Granting Ticket ) صادر میکنه .
این بلیط , برای دستری داشتن به بقیه بلیط هاست :) Tgt رو سیستم عامل میمونه و برای هر ارتباط جدید دوباره با Kdc چک میشه :)
وقتی کسی با Tgt اقدام به دسترسی مثلا به یک پرینتر میکنه این Tgt از
سرور Kdc محلی به سرور یارو پرینتره میرسه و اونجا با Kde محلی Key
رو کنترل میکنه و اگر مشکلی پیش نیومد یک St ( Session Ticket ) صادر
میکنه که باعث میشه کاربر بتونه تا زمانی از امکانی استفاده کنه :)
منبعش رو شرمنده یادم نیست :?

radius
شرمنده این یکی رو نمیدونم :wink:

فاطی.جدا
دوشنبه 24 مرداد 1390, 07:35 صبح
سلام
یه سوال داشتم
ip 127.0.0.1 که بهش آدرس loopback میگن با ip خود سیستم چه تفاوتی داره؟