از آنجایی كه در دنیای مجازی
اینترنت و به خصوص دنیای امنیت یكی از مهمترین قسمتها بخش پایه شبكه و
بخصوص TCP/IP می باشد ما بر آن شدیم تا در این سری مقالات در خصوص TCP/IP
و تا حدودی osi مختصری بپردازیم پیشاپیش هر قصور و كمبودی را به بزرگواری
خودتان بر این شاگرد ناچیز ببخشید .
OSI چیست ؟
OSI (Open System Interconnection ) یك مدل مرجع برای ارتباط بین دو
كامپیوتر می باشد كه در سال 1980 طراحی گردیده است. هر چند امروزه
تغییراتی درآن به وجود آمده اما هنوز هم كاربردهای فراوانی در جاهای مختلف
اینترنت و به خصوص در پایه های شبكه دارد.
این مدل بر اساس لایه بندی قراردادهای برقراری ارتباط كه همزمان روی دو
سیستم مرتبط اجرا شده اند پایه ریزی شده است كه این امر بسیار سرعت و دقت
ارتباط را افزایش می دهد و این قراردادها بصورت طبقه طبقه در هفت لایه
تنظیم شده اند كه در زیر بررسی خواهند شد. (شكل 1)
مدل مرجع osi
لایه كاربرد
Application
لایه ارائه
Presentation
لایه جلسه
Session
لایه انتقال
Transport
لایه شبكه
Network
لایه پیوند داده ها
Data link
لایه فیزیكی
Physical
شكل 1: لایه های مدل OSI
بررسی هفت لایه OSI :
لایه فیزیكی :
این لایه كه تنها تشكیل شده از سخت افزار می باشد و قراردادهای سخت افزاری
در آن اجرا می شود وظیفه انتقال نهایی اطلاعات را دارد كه این انتقال
یصورت سیگنال و به صورت صفرو یك می باشد
لایه پیوند داده ها :
در این لایه اطلاعات ، كشف خطا و اصلاح می شوند و بدون خطا و به صورت
مطمئن به سوی مقصد ارسال می شوند .وظیفه دیگر این لایه مطمئن شدن از رسیدن
اطلاعات به مقصد است كه این كار توسط
بیتهای (Parity check , checksum ,crc ) انجام می پذیرد .كه در صورت بروز خطا مجددا اطلاعات ارسال خواهند شد .
لایه شبكه :
و اما پیچیده ترین لایه یعنی لایه شبكه كه در آن قراردادهای شبكه بندی
تعریف شده است . وظیفه این لایه انتقال تكنولوژی برقراری ارتباط برای دیگر
شبكه های مستقل است كه این امر این امكان را به osi می دهد كه بتواند در
زیر شبكه های مختلف فعالیت كند .
لایه انتقال :
در این لایه قبل از ارسال اطلاعات یك بسته به سمت مقصد فرستاده می شود تا
مقصد را برای دریافت اطلاعات آماده كند . همچنین این لایه وظیفه تكه تكه
كردن بسته ها ، شماره گذاری آنها و ترتیب و نظم دهی آنها را بر عهده دارد.
كه البته بسته ها در طرف گیرنده دوباره در همین لایه نظم دهی و قابل
استفاده برای لایه های بالاتر خواهند شد.
لایه جلسه :
در این لایه بر كارهایی از قبیل زمان ارسال و دریافت بسته ها مقدار رسیده
و مقدار مانده از بسته ها نظارت می شود كه به مدیرت بسته ها بسیار كمك می
كند .
لایه ارائه :
در این لایه استانداردهای رمز نگاری و فشرده سازی اطلاعات تعریف شده است كه این لایه در امنیت بسیار مهم می باشد .
لایه كاربرد :استانداردهای ارتباط بین نرم افزارهای شبكه در این لایه قرار دارد كه می توان از :
FTAM CMIP MHS VT نام برد.
TCP/IP «Internet protocol /Transmission Control Protocol »
TCP/IP چیست ؟
TCP/IP مجموعه قراردادهایی هستند كه در جهت اتصال كامپیوتر ها در شبكه
مورد استفاده قرار می گیرند. وبه تعریف دیگر قرارداد كنترل انتقال اطلاعات
می باشد .
مقایسه با osi : (شكل2)
مدل مرجع osi مدل چهار لایه TCP/IP
لایه كاربرد
لایه كاربرد
لایه ارائه
لایه جلسه
لایه انتقال
لایه انتقال
لایه شبكه
لایه شبكه
لایه پیوند داده ها
لایه واسطه شبكه
لایه فیزیكی
همانطور كه از شكل پیداست TCP/IP از چهار لایه تشكیل شده كه در زیر به صحبت در مورد چهار لایه TCP/IP می پردازیم .
لایه واسط شبكه :
در این لایه تمام استانداردهای سخت افزاری و انواع پروتكل شبكه تعریف شده
كه خاصیت بزرگ این لایه این موضوع می باشد كه در آن می توان بین نرم افزار
و سخت افزار شبكه ارتباط برقرار كرد.
لایه شبكه :
در این لایه پروتكل IP آدرس دهی و تنظیم می شود .(توضیحات در قسمت IP ) و
همچنین دیگر پروتكل ها مانند ARP,ICMP,BOOTP كه در این میان نقش هیچكدام
به اندازه IP , ICMP مهم نیست در كل وظیفه این لایه دادن اطلاعات در مورد
شبكه و آدرس دهی در آن می باشد كه مسیر یابها از آن بسیار استفاده می كنند
.
لایه انتقال :
ابتدایی ترین وظیف این لایه آگاهی از وضعیت بسته ها می باشد كه بسیار مهم نیز هست .
و در مرحله بعد وظیفه این لایه انتقال اطلاعاتی می باشد كه نیاز به امنیت ندارند و سرعت برای آنها مهم تر است
لایه كاربرد :
این لایه دارای امكانات زیادی برای هنر نمایی متخصصان می باشد.
در این لایه برنامه های كاربردی قرار دارند و در كل این لایه لایه ی نرم
افزارهای شبكه می باشد و همچنین لایه پروتكل های نرم افزاری نیز می باشد .
از مهم ترین نكات در خصوص این لایه قرارداشتن : انتقال فایل (FTP) و مدیریت پست (SMTP) و بقیه برنامه های كاربردی می باشد .
پروتكل اینترنت IP
حتما همه شما عزیزان واقف به این موضوع هستید كه IP یكی از مهمترین
قسمتهای TCP/IP و شاید بتوان گفت مهمترین قسمت آن زیرا تقریبا شما برای هر
كاری نیاز به آن خواهید داشت لذا بسیار ضروری و حیاتی می باشد كه شما
اطلاعات خود را در زمینه این مهم افزون كنید .
IP یك آدرس عددی است كه برای ارتباط با شبكه به هر ماشینی در شبكه اختصاص
داده می شود (چون IP برای وسایلی از قبیل ROUTER و MODEM و LAN و …
استفاده می شود ما اصطلاحا به جای نام بردن تك تك آنها همه را ماشین می
نامیم )
«IP شما نسبت به نوع اتصال شما متغییر و یا ثابت می باشد. »
وظیفه IP چیست ؟
وظیفه پروتكل IP حمل و تردد بسته های حاوی اطلاعات و همچنین مسیر یابی آنها از مبدا تا مقصد است
اساس كار پروتكل IP چیست ؟
IP پس از دریافت اطلاعات از TCP شروع به قطعه قطعه كردن آن به قطعه های
كوچك به اسم FRAGMENT می نماید، پس از این مرحله برای هر FRAGMENT یك بسته
IP می سازد كه حاوی اطلاعات مورد نیاز بسته برای حركت در طول شبكه می باشد
و بسته IP را به بسته TCP اضافه می كند
و شروع به ارسال بسته های تیكه تیكه شده(FRAGMENT) می نماید حال مسیر
یابها بر اساس تنظیمات قسمت IP بسته ها را به مقصد خود هدایت می كنند و آن
را داخل زیر شبكه ها هدایت می كنند
خصوصیات IP :
بسته IP حد اكثر 64 كیلوبایت فضا را اشغال خواهد كرد و بیشتر از آن نمی
تواند باشد ولی موضوع جالب اینجاست كه در حالت عادی حجم بسته حدود 1600
بایت بیشتر نمی شود
« بعدها یك حمله d.o.s بر مبنای همین موضوع طراحی شد »
IP در تمامی سیستم های عامل با ساختار استانداردی كه دارد به درستی كار می كنند و نیاز به هیچ نوع سخت افزار ندارد .
بررسی ساختار بسته ساخته شده توسط پروتكل IP
بسته IP ساخته شده از تعدادی فیلد مجزا می باشد كه هر كدام اطلاعاتی را در
خود دارند كه در زمان مورد نیاز این اطلاعات از داخل بسته ها استخراج می
شود و مورد استفاده قرار می گیرد این اطلاعات شامل مواردی مثل :آدرس IP
فرستنده . آدرس IP گیرنده و ….. می باشد
بررسی فیلدها :
فیلد version :
وظیفه مشخص كردن نوع پروتكل IP را بر عهده دارد (در حال حاضر از دو version 4و6 استفاده می شود )
اندازه فیلد :چهار بیت
فیلد IHL:
وظیفه این فیلد نگهداری اندازه قسمت بالایی بسته در خود می باشد كه از آن
برای تعیین مرز بین اطلاعات و محتویات بستهIP استفاده می شود .
اندازه فیلد : 4 بیت
فیلد TYPE OF SERVICE :
دراین فیلد نوع سرویس انتقال تعیین می شود : ((كم سرعت و مطمئن))و (( پر سرعت و نامطمئن))
اندازه فیلد : هشت بایت
فیلد TOTAL LENGTH :
در این فیلد اندازه كل بسته IP قرار دارد كه شامل قسمت سر آیند و ناحیه
داده می باشد كه همانطور كه گفته شد می تواند 65535 بایت باشد .
اندازه فیلد : 16 بیت
فیلد FRAGMENT OFFSET :
این قیلد خود به سه بخش تقسیم می شود :
1- بیت DF(DON’T FRAGMENT ) : اگر این بیت 1 باشد هیچ مسیر یابی حق شكستن این بسته را ندارد
2- بیت MF( MORE FEAGMENT ) : اگر این بیت 0 بود به این معنی می باشد كه این قطعه آخرین قطه ارسال شده می باشد
3- FRAGMENT OFFSET
در این قسمت شماره قطعه های شكسته شده قرار دارد و چون اندازه این فیلد 13
بیت می باشد اطلاعات می توانند تا 8192 قطعه شكسته شوند ( اندازه هر قطعه
به غیر از قطعه آخری باید ضریبی از 8 باشد )
فیلد TIME TO LIVE :
همانطور كه می دانید در این فیلد زمان سرگردانی بسته مشخص می شود و این به
معنی می باشد كه این بسته می تواند از چند مسیر یاب عبوركند كه حداكثر آن
255می باشد . این فیلد یك نعمت بزرگ می باشد
اندازه فیلد :8 بیت
فیلد PROTOCOL :
در این فیلد شماره پروتكلی كه قرار است بسته به آن برسد مشخص می شود
فیلد : HEADER CHECKSUM :
وظیف كشف خطا را بر عهده دارد
فیلد SOURCE ADDRESS :
این فیلد فیلد بسیار مهمی می باشد چون در آن آدرس مبدا موجود می باشد
برنامه های فیلترنیگ و فایروالها بسیار از این فیلد استفاده می كنند .
فیلد DESTINATION ADDRESS :
در این فیلد هم آدرس IP مقصد موجود می باشد
فیلد OPTION :
این فیلد یك فیلد خالی می باشد كه در آن هر توضیحاتی به صورت دلخواه می توان نوشت
فیلد PAYLOAD :
در این فیلد داده ها بین لایه های مختلف رد و بدل می شود البته این امر از لایه های بالا به سمت لایه های پائینتر صورت می گیرد
نكاتی جالب در مورد IP
آدرس های ویژه :
این آدرسها نمونه های از آدرس های IP خاص هستند كه از قبل برای مقاصد خاصی
در نظر گرفته شده اند و در تعریف شبكه نمی توان از آنها به عنوان IP برای
ماشینها استفاده كرد .
0.0.0.0
از این آدرس در مواردی استفاده می شود كه ماشین میزبان از IP خود بی اطلاع
است .البته اگر از این آدرس به عنوان آدرس فرستنده استفاده شود هیچ جوابی
برای فرستنده پس فرستاده نمی شود .
HostId.0
این آدرس برای زمانی است كه از آدرس خود در زیرشبكه بی اطلاع باشیم
255.255.255.255
از این آدرس برای ارسال پیامهای به صورت عمومی و فراگیر در شبكه استفاده
می شود البته با استفاده از این آدرس می توان در زیر شبكه خود پیام فراگیر
ارسال كرد .
NetId.255
از این آدرس برای ارسال پیامهای فراگیر در دیگر شبكه ها از خارج از آنها
استفاده می شود .البته این سرویس تقریبا در بیشتر اوقات از سوی مدیران
شبكه غیر فعال می شود .
در مقالات بعدی به بررسی TCP خواهیم پرداخت
source computer
May-24-2007, 02:31
در ادامه مباحث tcp/ip به بررسی ساختار فیلدهای بسته tcp و udp و icmp و …. و چند پروتكل مشهور خواهیم پرداخت
بسته tcp نیز همانند ip تشكیل شده از تعدادی فیلد می باشد كه توضیحاتی در
مورد شماره پورت مقصد شماره پورت مبدا و …. را در خود دارد حال به بررسی
این فیلدهای مهم می پردازیم .
فیلدهادر بسته های tcp
فیلد source port :
این فیلد كه مقداری برابر 16 بیت دارد آدرس پورت(پروتكل ) مبدا را در خود
دارد با استفاده از این فیلد تقریبا می توان نوع داده های ارسالی را فهمید
فیلد destination :
در این فیلد آدرس پورتی كه اطلاعات در مقصد باید تحویل آن داده شود موجود می باشد
این فیلد تعیین می كند كه ما اطلاعات را برای چه پورتی ارسال می كنیم كه
البته در بیشتر موارد اطلاعات برای پروتكلهای استاندارد ارسال می شود برای
مثال پورت 80 به صورت استاندارد پروتكل http را در خود دارد .
فیلد sequence number
این فیلد دارای عددی است كه نشان دهنده تعداد بایتهای ارسال شده از داده
ها است كه این عدد با احتساب داده های بسته جاری در فیلد قرار می گیرد
برای مثال اگر داخل فیلد عدد 222222 قرار بگیرد یعنی پس از ارسال بسته
جاری 222222بایت از داده ها ارسال شده است
فیلد acknowledgment number :
همانطور كه از اسم این فیلد پیداست فیلدی است برای تصدیق كردن مقدار
اطلاعات دریافت شده از طرف گیرنده برای مثال اگر در این فیلد كه ظرفیت آن
32 بیت می باشد عدد 1000001 قرار داشته باشد به این معنی است كه گیرنده
دریافت اطلاعات تا این بیت را تائید كرده و منتظر دریافت بقیه اطلاعات می
باشد
فیلد tcp header length :
در این فیلد نیز عددی وجود دارد كه مرز بین داده ها و سر آیند بسته را مشخص می كند
سر آیند به قسمتی گفته می شود كه شامل فیلدهای TCP می باشد
فیلد Windows size :
در این فیلد مقدار فضایی كه در طرف گیرنده خالی مانده است قرار دارد
كاربرد این فیلد به این صورت است كه مقداری كه در این فیلد قرار دارد (
مقدار فضای خالی بافر گیرنده ) با مقدار داده ای كه برای ارسال آماده است
مقایسه می شود اگر بافر گیرنده فضای كافی داشته باشد داده ها ارسال می شود
و در غیر اینصورت منتظر می ماند تا بافر گیرنده خالی شود و بعد اقدام به
ارسال داده ها می كند
فیلد checksum :
این فیلد كه فضایی 16 بیتی را اشغال می كند حاوی كد خطاهای به وجود آمده در ارسال یا دریافت اطلاعات می باشد
فیلد Tcp segment length :
این فیلد مقدار كل بسته را بر حسب بایت در خود دارد
فیلد urgent pointer :
در این فیلد یك عدد كه در اصل یك كد شبیه به كد وقفه ها است قرار دارد كه در مواقع ضروری ارسال می شود
فیلد option :
این فیلد یك نعمت بزرگ می باشد در مواقعی كه حجم بسته ضریبی از چهار نشود
از این قسمت با داده های بی ارزش استفاده می شود تا مقدار ضریبی از چهار
شود
بیت Urg :
این فیلد نشان دهنده وضعیت فیلد urgent pointer می باشد
طرز عملكرد این فیلد1 بایتی به این شكل می باشد كه اگر مقدار آن 1 باشد به
این معنی است كه فیلد urgent pointer باید مورد ارزیابی قرار گیرد و اگر
مقدار آن صفر باشد نسبت به آن فیلد بی تفاوت است
بیت ack :
اگر در این فیلد مقدار 1 قرار گیرد دلیل بر اعتبار فیلد acknowledgment می باشد.
بیت PSH :
این بیت برای جداسازی بسته های حیاطی و مهم مورد استفاده قرار می گیرد
این فیلد به گیرنده نشان می دهد كه بسته حاوی آن باید سریعا بافر شود و به برنامه كاربردی تحویل داده شود
برای مثال در telnet
بیت RST :
این بیت برای قطع ارتباط مورد استفاده قرار می گیرد اما قطع ارتباط در این
صورت یكطرف خواهد بود و ارسال داده ها ناتمام خواهد ماند و طرز كار آن به
این صورت است كه اگر حاوی 1 باشد ارتباط را بدون اجازه و خبر دادن به طرف
مقابل قطع می كند
بیت syn :
این بیت یكی از مهمترین قسمتهای بسته tcp می باشد چون نقش برقراری ارتباط را بر عهده دارد
و اما آخرین بیت كه بیت FIN می باشد :
این بیت تقریبا به معنای خداحافظی می باشد
موقعی كه یكی از طرفین داده ای برای ارسال نداشته باشد این بیت را 1 می
كند و این بدان معناست كه این آخرین بسته ارسالی می باشد وبعد از ارسال
بسته ارتباط به صورت یكطرفه قطع خواهد شد.