PDA

View Full Version : مقدمه ای از TCP/IP



الهام تفریشی
یک شنبه 11 آبان 1382, 09:39 صبح
TCP/IP ، یکی از مهمترین پروتکل های استفاده شده در شبکه های کامپیوتری است . اینترنت بعنوان بزرگترین شبکه موجود ، از پروتکل فوق بمنظور ارتباط دستگاه های متفاوت استفاده می نماید. پروتکل ، مجموعه قوانین لازم بمنظور قانونمند نمودن نحوه ارتباطات در شبکه های کامپیوتری است .در مجموعه مقالاتی که ارائه خواهد شد به بررسی این پروتکل خواهیم پرداخت . در این بخش مواردی همچون : فرآیند انتقال اطلاعات ، معرفی و تشریح لایه های پروتکل TCP/IP و نحوه استفاده از سوکت برای ایجاد تمایز در ارتباطات ، تشریح می گردد.

مقدمه
امروزه اکثر شبکه های کامپیوتری بزرگ و اغلب سیستم های عامل موجود از پروتکل TCP/IP ، استفاده و حمایت می نمایند. TCP/IP ، امکانات لازم بمنظور ارتباط سیستم های غیرمشابه را فراهم می آورد. از ویژگی های مهم پروتکل فوق ، می توان به مواردی همچون : قابلیت اجراء بر روی محیط های متفاوت ، ضریب اطمینان بالا ،قابلیت گسترش و توسعه آن ، اشاره کرد . از پروتکل فوق، بمنظور دستیابی به اینترنت و استفاده از سرویس های متنوع آن نظیر وب و یا پست الکترونیکی استفاده می گردد. تنوع پروتکل های موجود در پشته TCP/IP و ارتباط منطقی و سیستماتیک آنها با یکدیگر، امکان تحقق ارتباط در شبکه های کامپیوتری را با اهداف متفاوت ، فراهم می نماید. فرآیند برقراری یک ارتباط ، شامل فعالیت های متعددی نظیر : تبدیل نام کامپیوتر به آدرس IP معادل ، مشخص نمودن موقعیت کامپیوتر مقصد ، بسته بندی اطلاعات ، آدرس دهی و روتینگ داده ها بمنظور ارسال موفقیت آمیز به مقصد مورد نظر ، بوده که توسط مجموعه پروتکل های موجود در پشته TCP/IP انجام می گیرد.

معرفی پروتکل TCP/IP

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

لایه های پروتکل TCP/IP

TCP/IP ، فرآیندهای لازم بمنظور برقراری ارتباط را سازماندهی و در این راستا از پروتکل های متعددی در پشته TCP/IP استفاده می گردد. بمنظور افزایش کارآئی در تحقق فرآیند های مورد نظر، پروتکل ها در لایه های متفاوتی، سازماندهی شده اند . اطلاعات مربوط به آدرس دهی در انتها قرار گرفته و بدین ترتیب کامپیوترهای موجود در شبکه قادر به بررسی آن با سرعت مطلوب خواهند بود. در این راستا، صرفا" کامپیوتری که بعنوان کامپیوتر مقصد معرفی شده است ، امکان باز نمودن بسته اطلاعاتی و انجام پردازش های لازم بر روی آن را دارا خواهد بود. TCP/IP ، از یک مدل ارتباطی چهار لایه بمنظور ارسال اطلاعات از محلی به محل دیگر استفاده می نماید Application ,Transport ,Internet و Network Interface ، لایه های موجود در پروتکل TCP/IP می باشند.هر یک از پروتکل های وابسته به پشته TCP/IP ، با توجه به رسالت خود ، در یکی از لایه های فوق، قرار می گیرند.



?همان طور که در شکل 1 نشان داده شده:
لایه Application ، بالاترین لایه در پشته TCP/IP است .تمامی برنامه و ابزارهای کاربردی در این لایه ، با استفاده از لایه فوق، قادر به دستتیابی به شبکه خواهند بود. پروتکل های موجود در این لایه بمنظور فرمت دهی و مبادله اطلاعات کاربران استفاده می گردند . HTTP و FTP دو نمونه از پروتکل ها ی موجود در این لایه می باشند.(شکل 2)

پروتکل .(HTTP)Hypertext Transfer Protocol از پروتکل فوق ، بمنظور ارسال فایل های صفحات وب مربوط به وب ، استفاده می گردد .
پروتکل.( FTP)File Transfer Protocol از پروتکل فوق برای ارسال و دریافت فایل، استفاده می گردد .
لایه Transport
لایه " حمل " ، قابلیت ایجاد نظم و ترتیب و تضمین ارتباط بین کامپیوترها و ارسال داده به لایه )Application? لایه بالای خود) و یا لایه اینترنت ( لایه پایین خود) را بر عهده دارد. لایه فوق ، همچنین مشخصه منحصربفردی از برنامه ای که داده را عرضه نموده است ، مشخص می نماید. این لایه دارای دو پروتکل اساسی است که نحوه توزیع داده را کنترل می نمایند.

.(TCP)Transmission Control Protocol? پروتکل فوق ، مسئول تضمین صحت توزیع اطلاعات است .
.(UDP)User Datagram Protocol) تضمین صحت توزیع اطلاعات را برعهده دارد .
لایه اینترنت
لایه "اینترنت"، مسئول آدرس دهی ، بسته بندی و روتینگ داده ها ، است. لایه فوق ، شامل چهار پروتکل اساسی است :

.(IP)Internet Protocol پروتکل فوق ، مسئول آدرسی داده ها بمنظور ارسال به مقصد مورد نظر است .
(ARP)Address Resoulation Protocolپروتکل فوق ، مسئول مشخص نمودن آدرس( MAC)Media Access Control آداپتور شبکه بر روی کامپیوتر مقصد است.
(ICMP)Internet Control Message Protocolپروتکل فوق ، مسئول ارائه توابع عیب یابی و گزارش خطاء در صورت عدم توزیع صحیح اطلاعات است .
(IGMP)Internet Group Managemant Protocolپروتکل فوق ، مسئول مدیریت Multicasting در TCP/IP را برعهده دارد.
لایه Network Interface
لایه " اینترفیس شبکه " ، مسئول استقرار داده بر روی محیط انتقال شبکه و دریافت داده از محیط انتقال شبکه است . لایه فوق ، شامل دستگاه های فیزیکی نظیر کابل شبکه و آداپتورهای شبکه است . کارت شبکه ( آداپتور) دارای یک عدد دوازده رقمی مبنای شانزده ( نظیر ( B5-50-04-22-D4-66 : بوده که آدرس MAC ، نامیده می شود. لایه " اینترفیس شبکه " ، شامل پروتکل های مبتنی بر نرم افزار مشابه لایه های قبل ، نمی باشد. پروتکل های Ethernet و (ATM)Asynchronous Transfer Mode، نمونه هائی از پروتکل های موجود در این لایه می باشند . پروتکل های فوق ، نحوه ارسال داده در شبکه را مشخص می نمایند.

مشخص نمودن برنامه ها
در شبکه های کامپیوتری ، برنامه ها ی متعددی در یک زمان با یکدیگر مرتبط می گردند. زمانیکه چندین برنامه بر روی یک کامپیوتر فعال می گردند ، TCP/IP ، می بایست از روشی بمنظور تمایز یک برنامه از برنامه دیگر، استفاده نماید. بدین منظور ، از یک سوکت ( Socket) بمنظور مشخص نمودن یک برنامه خاص ، استفاده می گردد.

آدرس IP
برقراری ارتباط در یک شبکه ، مستلزم مشخص شدن آدرس کامپیوترهای مبداء و مقصد است ( شرط اولیه بمنظور برقراری ارتباط بین دو نقطه ، مشخص بودن آدرس نقاط درگیر در ارتباط است ) . آدرس هر یک از دستگاه های درگیر در فرآیند ارتباط ، توسط یک عدد منحصربفرد که IP نامیده می شود ، مشخص می گردند. آدرس فوق به هریک از کامپیوترهای موجود در شبکه نسبت داده می شود . IP : 10. 10.1.1 ، نمونه ای در این زمینه است .

پورت TCP/UDP
پورت مشخصه ای برای یک برنامه و در یک کامپیوتر خاص است .پورت با یکی از پروتکل های لایه ?حملTCP)? و یا (UDP مرتبط و پورت TCP و یا پورت UDP ، نامیده می شود. پورت می تواند عددی بین صفر تا 65535 را شامل شود. پورت ها برای برنامه های TCP/IP سمت سرویس دهنده ، بعنوان پورت های "شناخته شده " نامیده شده و به اعداد کمتر از 1024 ختم و رزو می شوند تا هیچگونه تعارض و برخوردی با سایر برنامه ها بوجود نیاید. مثلا" برنامه سرویس دهنده FTP از پورت TCP بیست و یا بیست ویک استفاده می نماید.

سوکت (Socket)
سوکت ، ترکیبی از یک آدرس IP و پورت TCP ویا پورت UDP است . یک برنامه ، سوکتی را با مشخص نمودن آدرس IP مربوط به کامپیوتر و نوع سرویس? TCP) برای تضمین توزیع اطلاعات و یا (UDP و پورتی که نشاندهنده برنامه است، مشخص می نماید. آدرس IP موجود در سوکت ، امکان آدرس دهی کامپیوتر مقصد را فراهم و پورت مربوطه ، برنامه ای را که داده ها برای آن ارسال می گردد را مشخص می نماید.

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

Gladiator
یک شنبه 11 آبان 1382, 09:44 صبح
بابا ای ول . :mrgreen:

الهام تفریشی
یک شنبه 11 آبان 1382, 09:54 صبح
:oops:

Andy
یک شنبه 11 آبان 1382, 11:39 صبح
مرسی خانم تفریشی 8) 8)

الهام تفریشی
یک شنبه 11 آبان 1382, 12:23 عصر
خواهش میکنم قابل نداره

Mohammad_Mnt
یک شنبه 11 آبان 1382, 18:53 عصر
:shock: تشویق

houshmand
یک شنبه 11 آبان 1382, 19:08 عصر
:تشویق:

najafi_1
سه شنبه 13 آبان 1382, 13:02 عصر
اها پیداش کردم :P

الهام تفریشی
سه شنبه 13 آبان 1382, 13:09 عصر
اها پیداش کردم
چی رو پیدا کردی؟ :shock: :shock: :shock:

arsham2006ma
سه شنبه 05 آذر 1387, 10:20 صبح
سلام
یه لطفی کنید در مورد IPv6 مطالب پراکنده زیاده اما من مقاله کامل میخوام که علاوه بر تفسیر این( IPv6) و مقایسه با IPv4 در مورد تاریخچه اون و اینکه کشورهایی که در استفاده ار این پرتکل موفق بودند یا با شکست مواجه شدند وخلاصه همه چی درمورد این IP میخوام خیلی خیلی ممنون از دوستان خوبم...

n_samay
یک شنبه 10 آذر 1387, 06:53 صبح
با سلام خدمت اساتید محترم
من با این بحث نقل و انتقالات در شبکه مشکل دارم هرچی میخونم خوب برام جا نمییوفته اگه لطف کنن اساتید یکم مسئله رو عامیانه تر با شکل یه جوری که فهمش ساده تر بشه (زیر دیپلم ) توضیح بدن که اصلا این کامپیوترها که با هم شبکه میشن چطور با هم ارتباط پیدا میکنن و چطور با هم تبادل اطلاعات میکنن ممنون میشم اگه کمک کنید

manvaputra
یک شنبه 10 آذر 1387, 09:21 صبح
من با این بحث نقل و انتقالات در شبکه مشکل دارم

تا امشب صبر کم دوست عزیز توضیح می دم برات.

n_samay
دوشنبه 11 آذر 1387, 11:42 صبح
منتظرمممممممممممممممممممم مممممم
تو رو خدااااااااااااااااااااااا ااااااااااااااااااااااااا اااااااااااااااااا

manvaputra
دوشنبه 11 آذر 1387, 20:25 عصر
خوب دوست عزیز سلام برای شروع دو مفهوم شبکه و پروتکل رو به زبان ساده می گم:

شبکه :
مجموعه ای از دو و یا بیش از دو کامپیوتر و وسایل جانبی مانند پرینتر، اسکنر، ...... که بوسیله تجهیزان ارتباطی مانند کابل (البته شبکه می تونه بی سیم هم باشه) به هم متصل بوده (از لحاظ فیزیکی) و علاوه بر آن قابلیت تبادل اطلاعات را نیز داشته باشن.

پروتکل:
آقا ما هی میگیم پروتکل پروتکل یعنی چی؟ به زبان ساده یعنی قرارداد! یه سری مجموعه قوانین و مقررات و یا بهتر بگیم استاندارد انطور د رنظر بگیر مثل استاندارد راهنمایی و رانندگی که می گه رد شدن از چراغ قرمز ممنوع! حالا شما هر جای دنیا که بری هنگام رانندگی مجبورید از این قوانین پیروی کنید و این باعث میشه آمار خطا در رانندگی و عواقب ناشی از اون کم بشه!
خوب حالا میاییم توی شبکه برای شبکه های کامپوتری یه سری قوانین در نظر گرفته شد که اگه دو کامپیوتر در شبکه برای بر قراری ارتباط از این قوانین تبعیت کنن باعث میشه این ارتباط با حداقل خطا صورت بگیره.
پروتکلی که استاندارد اینترنته اسمش هست TCP/IP خوب پس با این حساب TCP/IP هم باید یه سری از قوانین و مقررات باشه که هر کامپیوتر برای برقراری ارتباط باید از اون تبعیت کنه.

Packet :

واحد انتقال اطلاعات در شبکه رو میگن Packet . هر اطلاعاتی برای انتقال در سمت فرستنده به بسته های کوچیک تقسیم میشه و این بسته ها راهی مبدا میشن و اونجا دوباره به هم متصل میشن. فرض کم شما می خوای اسباب کشی کنی در ان واحد که همه وسایل اتاقتو نمی تونی ببری به جای جدید! چرا چون چون ماشینت جای همه رو نداره (پهنای باند در شبکه) پس چکار می کنی وسایلت رو بسته بندی می کنی(PACKET) بعد همه رو تو چند سری میبری به جای جدید از بسته در میاری و می چینی.

IP:
آقا من الان می خوام برات نامه بنویسم از کجا بدونم کجایی ؟ از روی آدرس دیگه پس هر کامیوتری برای اینکه بتونه پیدا بشه ! باید یه آدرس منحصر به فرد داشته باشه که بش می گن آدرس IP


و اما ارتباط:

پروتکل TCP/IP یه پروتکل 4 لایست این لایه یعنی چی؟ هیچی یعنی چهار سطح مختلف که هر کدوم یه کار خاصی انجام می دن.



http://freezpic.com/images/5n4tlglkoecl1jwpsb2g.gif


خوب ببین دوست عزیز گفتیم برای اینکه دو کامپیوتر با حداقل خطلا بتونن با هم در ارتباط باشن باید یه سری قوانین رو رعایت کنن این قوانین توی چهار لایه دسته بندی شده .

لايه دسترسی به شبکه:
وظیفه این شبکه وصل کردن سخت افزاری کامپیوتر یه شبکست یعنی این لایه درگیر مسایل فیزیکی و الکتریکی و نوع کارت شبکه و این حرفاست.

لایه شبکه:
خوب این لایه مسئول هدایت بسته ها از مبدا به مقصد تو اینترنته ولی تظمینی نمیکنه که این اطلاعات برسه.

لایه انتقال:
تضمین کننده انتقال از مبدا به مقصد این لایست در اصطلاح در این لایه ارتباط اتصال گراست یعنی هربار اطلاعاتی میره از رسیدنش اطمینان حاصل میشه.

لایه کاربرد:
خوب توی این لایه با توجه به کارهای سه لایه بالا یه سری خدمات برای استفاده کاربران ارائه میشه مثل ایمیل ، مرور صفحات وب و غیره.....

لایه ها کاملا مستقل از هم کار می کنن یعنی هیچ لایه ای کار نداره لایه های بالا و پایینش دارن چکار می کنن فقط هر لایه باید از لایه قبلیش یه سری خدمات بگیریه و به لایه بعدی هم یه سری خدمات ارائه بده.

حالا برگردیم سر اسباب کشی ! آقا سه تا از رفیقاتو گفتی بیان برای اسباب کشی اولین رفیقت میگه آقا وانت با من این میشه همون لایه فیزیکی بقیه لایه هم که شما باشین کار ندارین این طرف چع وانتی رو از کجا می گیره فقط می دونین این رفیق باید وانتو جور کنه(اصل استقلال کارکرد لایه ها) دوست بعدیت میگه آقا من راه خونه جدید رو بلدم بسته را با وانتی که آماده شده(ارائه خدمات لایه ها به یکدیگر) می رسونم به مقصد ولی اگه دم راه چیزی شکست و سالم نرسید به من ربطی نداره(عدم تضمین خدمات در ارسال لایه دوم) رفیق سومت مرام میذاره میگه آقا من حواسم جمعه مرتب هم بات در تماسم هر باری که رسوندیم بت می گم سالم رسیده یا نه(اتصالگرایی در لایه سوم) خوب وسایل رو نشون رفقات میدی اونا بسته بندی میکنن بعد می بینن از کدوم مسیر برن به مقصد بعد بار وانت می کنن و یاعلی اونطرف تو مقصد از وانت پیاده می کنن بسته ها رو باز میکنن کنار هم می چینن.

یادتون باشه سمت فرستنده اطلاعات از بالا به پایین حرکت می کنه و سمت گیرنه از پایین به بالا.

http://freezpic.com/images/bb0ujsy1wtmz6r2je2rr.gif

n_samay
سه شنبه 12 آذر 1387, 07:37 صبح
آقا واقعا دستت درد نکنه خیلی عالی بود ممنونم واقعا
لطف بزرگی کردی

n_samay
سه شنبه 12 آذر 1387, 08:20 صبح
آقا میشه یه لطفی بکنین و بگین یه Packet به چه صورت هستش و ساختارش چطورییه اگه ممکنه یه کم ساده
بازم ممنون واقعا لطف میکنین

manvaputra
سه شنبه 12 آذر 1387, 21:02 عصر
حتما فقط کمی زمان می خوام

n_samay
چهارشنبه 13 آذر 1387, 09:32 صبح
واقعا لطف دارین (خسته شدین از دست من با این همه سوال نه)

manvaputra
چهارشنبه 13 آذر 1387, 19:51 عصر
خسته شدین از دست من با این همه سوال ن

نه بابا این چه حرفیه آخه کار سرم یاد ریخته از طرفی باید به فکر مقالاتم تو بخش جاوا هم باشم

n_samay
پنج شنبه 14 آذر 1387, 07:36 صبح
بازم از زحمات شما تشکر میکنم واقعا دستتون درد نکنه

manvaputra
یک شنبه 17 آذر 1387, 13:04 عصر
خوب و اما بررسی ساختار یک بسته IP:
یک بسته آی پی از دو بخش تشکیل میشه : سرآیند یا همون Header و محتوا. محتوا که مشخصه شامل اطلاعاتیه که قراره ارسال بشه پس می پردازیم به این موضوع که سرآیند شامل چه چیزی میشه. سر آیند یه بسته آی پی دش شکل زیر نشون داده شده:


http://freezpic.com/images/g9n1ht20u0g5ro68wkx6.jpg


خوب در ادامه سعی م یکنیم به زبانی ساده به معرفی هر یک از این بخشها بپردازیم:

Version:
با طول چهار بیت مشخص کننده اینه که این بسته با توجه یه کدوم نسخه پروتکل IP تشکیل شده . در ادامه با بخش ها رو با توجه به IPV4 توضیح می دیم.

IHL:
سرنام یا همون مخفف Internet Header Length با طول چهار بیت طول سرآیند و مشخص می کنه! اه یعنی چی؟ ببینید اگه به شکل بالا دقت کنید می بینید که سرآیند یه بخش ثابت داشت که بیست بایته و یه بخش متغیر هم داره که همین باعث شده که IHL در نظر گرفته بشه چون با توجه به سایز "بخش اختیاری با طول متغیر " طول سرآیند هم میتونه کم و زیاد بشه.
حداقل مقدار IHL می تونه 5 باشه در مبنای 32 بیتی (یعنی در واقع 5 تا 32 بیتی) حالا شاید سوال کنید این عدد از کجا اومد ببینید شما حداقل طول سرآیند یعنی وقتی که ما توی بخش اختیاری هیچی نداشته باشیم پس می مونه همون بخش ثابت فقط خوب به شماره های یک تا پنج شمت راست دقت کنید . در واقع این بیست تا بایت میشه همون 5 تا ردیف 32 بیتی. این از حداقل و اما چون چهار بیت بیشتر نیست پس حداکثر مقدارش میشه 15 پس طول کل سرآیند میشه 4*15=60 خوب ما گفتیم 20 بایتش ثابته پس از اینجا می شه فهمید که حداکثر بخش اختیاری می تونه 40 بایت باشه .هر جاشو که احساس کردید مبهمه بگید بیشتر توضیح بدم.

ادامه دارد

manvaputra
یک شنبه 17 آذر 1387, 13:05 عصر
اگه تا اینجا توضیحات مبهم نبوده بگید تا ادامه بدم

manvaputra
دوشنبه 18 آذر 1387, 10:33 صبح
دوستان به نظر شما مبحث بسته های ای پی رو همین جا ادامه بدم یا توی یه تاپیک جدید؟؟؟؟

n_samay
چهارشنبه 20 آذر 1387, 07:53 صبح
اولا که واقعا دسستتون در نکنه دارین سنگ تموم میذارین دوما که به نظر من همینجا ادامه بدین بهتره چون مطالب پشت سر همه
با تشکر

manvaputra
چهارشنبه 20 آذر 1387, 09:25 صبح
سعی می کنم تا امشب قمست دوم هم بذارم