HacK و امنيت شبكه

 

مدل مرجع ‎OSI و لايه‎بندي پروتكل
در ۱۹۸۰، يك سازمان بين‎المللي استانداردسازي، طرحي را به نام ‎Open System interconnection (DSI) به وجود آورد. اين مدر براساس لايه‎بندي پروتكل پايه‎گذاري شده است. و آن به اين صورت است كه وقتي دو كامپيوتر مي‎خواهند با هم ارتباط برقرار ككنند، سريهايي از قسمتهاي كوچك استاندارد نرم‎افزاري روي هر سيسيتم براي بهتر كردن اين ارتباط، عملياتي را

انجام مي‎دهند. يك قسمت براي حصول اطمينان از اينكه داده به طور مناسب بسته‎بندي شده است تلاش مي‎كند و قسمت ديگر از فرستادن پيامهاي گم شده به طور مجرد مراقبت مي‎كند و قسمتهاي ديگر پيامها را در سراسر شبكه مي‎فرستند. هر كدام از اين قسمتها كه تحت عنوان لايه از آنها ياد مي‎شود، كار مشخص و كوچكي براي انجام ارتباطات دارند. قسمت‎هاي ارتباطي كه با هم استفاده مي‎شوند. ‎Protocl Stack (پشتة پروتكل) ناميده مي‎شوند زيرا آنها شامل گروهي از اين

لايه‎ها هستند كه بر روي هم سوال شده‎اند. مدل ‎OSI شامل هفت نوع از اين لايه‎ها مي‎باشد كه هر كدام نقش مشخصي در انتقال داده‎ها را در شبكه دارند.
در توده ارتباطاتي لايه‎بندي شده، يك لايه روي قسمت فرستنده با همان لايه روي سيستم (قسمت) گيرنده در ارتباط است. به علاوه لايه‎هاي پايين‎تر به لايه‎هاي بالايي سرويس مي‎دهند. به عنوان مثال لايه پايين‎تر ممكن است پيامهاي گم شده را به جاي ارسال به لايه بالاتر كه وظيفه فرمت‎بندي داده‎ها را به صورت دقيق به عهده دارد مجدداً به لاية پايين ارسال كند. اين لايه، لايه سطح بالايي خود را كه ممكن است داده‎ را در قسمت اول توليد مي‎كند، سرويس دهد. وقتي كه يك لايه براي انجام امور به لايه ديگر متكي مي‎شود،‌لايه‎ها به وجود مي‎آيند. بنابراين نرم‎افزار يك لايه مي‎تواند در حالي كه تمامي لايه‎هاي ديگر يكسان باقي مي‎مانند، به جاي برناه ديگر جايگزين شوند.
مدل مرجع ‎OSI از هفت لايه زير تشكيل شده است:
• لايه ۷: لايه برنامه كاربردي ‎(Application layer): اين لايه به عنوان پنجره‎اي به كانال ارتباطي براي برنامه كاربردي و البته با توصيف داده‎ها و تبديل آنها به اطلاعات با مفهوم براي برنامه‎هاي كاربردي عمل مي‎كند.
• لايه ۶: لايه نمايشي ‎(Presentation layer): اين لايه چگونگي نمايش المان‎هاي داده براي ارسال، از جمله منظم كردن بيت‎ها و بايت‎ها در اعداد و فرمت‎بندي اعداد نمايي و همانند آن را برعهده دارند.
• لايه ۵: لايه جلسه ‎(Session layer): اين لايه، ‌نشستهايي را بين ماشينهاي ارتباطاتي با كمك به شروع، نگهداري و مديريت آنها هماهنگ مي‎كند.
• لايه ۴: لايه انتقالي ‎(Transport layer): اين لايه، براي تهيه جريان ارتباطي قابل

اعتماد بين دو سيستم، كه شامل انتقال دوباره پيامهاي گم شده، قرار دادن آنها در جاي مناسب و نظارت و بازرسي خطاها است، استفاده مي‎شود.
• لايه ۳: لايه شبكه ‎(Network layer): اين لايه براي انتقال داده از يك سيستم از ميان مسيريابها به ماشين نهايي در طول شبكه، مسئوليت‎پذير است.
• لايه ۲: لايه پيوند داده‎ها ‎(Data link layer): اين لايه، داده را در طول شبكه حركت مي‎دهد.
• لايه ۱: لايه فيزيكي ‎(Physical layer): اين لايه بيت‎ها را در طول پيوند فيزيكي كه مي‎تواند فيبر نوري، ارتباط راديويي، مس و يا هر رسانه فيزيكي ديگر انتقال مي‎دهد.

چگونه ‎TCP/IP سازگار مي‎باشد؟

وقتي كه مفهوم مدل مرجع ‎OSI، پروتكل‎هاي گوناگون شبكه را پاسخ مي‎دهد، ‌پس بياييد پروتكل ‎ TCP/IP را تجزيه كنيم. در ‎ TCP/IP لايه كاربردي، لايه‎هاي جلسه و نمايش مدل مرجع ‎OSI در لايه كاربردي قرار داده شده‎اند. TCP/IP روي داده ارسالي براي برنامه كاربردي تمركز ايجاد مي‎كند.
• لايه كاربردي:‌اين لايه خود TCP/IP نمي‎باشد. بلكه متشكل از برنامه‎هاي خاصي است كه سعي مي‎كنند با استفاده از ‎ TCP/IP در طول شبكه با هم ارتباط برقرار كنند. مدل ارتباطي در اين لايه ممكن است شامل دو ‎Mail Server، سرويس‎دهنده و سرويس‎ گيرنده ‎Telnet، سرويس دهنده و سرويس گيرنده ‎FTP و يا ساير برنامه‎هاي كاربردي باشد.
• لايه انتقال: اين لايه شامل پروتكل كنترلي ارسالي، ‎(TCP) پروتكل ديتاگرام كاربر ‎(UDP)، و پروتكل ساده‎اي كه ما در آينده در اين قسمت با جزييات بيشتري تجزيه مي‎كنيم، مي‎باشد. اين لايه اطمينان حاصل مي‎كند كه بسته‎ها به مكان مناسب روي ماشين مقصد تحويل داده شده‎اند. همچنين براي فراهم كردن بسته‎ها به صورت منظم براي برنامه‎اي كاربردي كه احتياج به اين عمل دارند،‌ مي‎تواند استفاده شود.
• لايه شبكه: اين لايه به پروتكل اينترنت ‎(IP) وابسته است و هدف آن فرستادن پيامها از كامپيوتر منبع داده شده به ماشين نهايي داده شده در طول شبكه مي‎باشد. بر طبق اصطلاح مدل مرجع ‎OSI، به لايه ‎IP گاهي اوقات لايه سوم نيز گفته مي‎شود.
• لايه پيوند داده: اين لايه پيامها را در طول شبكه از هر كامپيوتر به كامپيوتر ديگر انتقال مي‎دهد. به عنوان مثال، اين لايه‎ها روي كامپيوتر داده‎ها را از كامپيوتر شما به مسيرياب ‎(Router) شبكه محلي شما حركت مي‎دهد. سپس مسيرياب ‎(Router) با استفاده از اين لاية پيوندي، داده را به مسيرياب بعدي انتقال مي‎دهد. باز هم طبق اصطلاح مدل ‎OSI، لاية پيوند داده به لاية‌ دوم ارجاع مي‎شود.
• لايه فيزيكي: اين لايه يك واسطه فيزيكي از قبيل سيم و يا كابل كه اطلاعات از آن عبور داده مي‎شود، مي‎باشد.
لايه‎هاي شبكه و انتقال با هم سيستم پشته‎اي TCP/IP را تشكيل مي‎دهند كه متشكل از نرم‎افزارهاي اجرايي روي كامپيوتر است. همانند مدل ‎OSI، يك لايه با لايه‎اي مشابه در قسمت ديگر رابطه برقرار مي‎كند. علاوه بر آن، لايه پاييني سرويسي را براي لايه‎هاي بالايي تهيه مي‎كند.

مفهوم ‎ TCP/IP
اينكه كه درك ابتدايي‎اي از لايه پروتكل داريم. ‎ TCP/IP را با جزئيات دقيق‎تري

مورد آزمايش قرار مي‎دهيم. خانواده پروتكل‎هاي ‎ TCP/IP از اجزاي گوناگوني تشكيل يافته است: پروتكل كنترل انتقال ‎*TCP) پروتكل ‎(UDP) User Datagram، پروتكل اينترنت ‎(IP) و پروتكل پيام كنترل اينتر ‎(ICMP).
‎ TCP/IP در رشته‎هايي از مدارك توليد و نگهداري شده توسط گروه ويژه مهندسي اينترنت ‎(IETF) توضيح داده مي‎شود. ‎John Postel پدر خانواده ‎ TCP/IP، رشته‎هايي از درخواست‎ها يكسري از اسناد و نظريه‎هاي تئوري كه توضيح مي‎دهد چگونه ‎ TCP/IP كار مي‎كند را تهيه كرد. ‎۱۹۳ تا ‎۱۹۱ ‎RFC كه ‎IP، ‎TCP و ‎ICMP را توصيف مي‎كنند كه در ‎www.ietf.org/rfc,html با هزاران ‎RFC ديگر كه جنبه‎هاي ديگر اينترنت را توصيف مي‎كنند قابل دسترسي‎اند.
‎ TCP/IP در اصل براي تحقيقات و آكادميها تهيه شده بود و هيچ‎گونه قابليت حفاظتي را دارا نبود. پروتكل سنتي ‎ TCP/IP براي اطمينان از قا بليت اعتماد، جامعيت داده‎ها و اعتبار دادة ‌ارسال شده بر روي شبكه مناسب نبود. بدون كنترل‎هاي مخفيانه و صادقانه، وقتي كه شما داده‎اي را به اينترنت مي‎فرستاديد،‌‎ TCP/IP به هر استفاده‎كننده ديگري اجازه ديدن و تغيير داده شما را مي‎دهد. به علاوه، بدون اعتبارسنجي ‎(authentication) يك مهاجم مي‎تواند داده‎اي را كه به نظر مي‏‎آيد از منابع قابل اعتماد ديگر روي شبكه به دست مي‎آيد، براي شما بفرستد.
درگذشته، تمام قابليت‎هاي حفاظتي شبكه‎هاي ‎ TCP/IP در برنامه‎هاي كاربردي ارتباطي به كار گرفته مي‎شدند و در پشتة TCP/IP عملي انجام نمي‎گرفت. فقط اخيراً حفاظت و امنيت، به پروتكل ‎ TCP/IP در فرم توسعه پروتكل كه ‎Ipsee ناميده مي‎شود و ما در آينده با جزييات دقيق‎تري در اين قسمت آن را توصيف خواهيم كرد، قرار داده شده است. اگرچه ‎Ipsee آيندة خوبي دارد اما هنوز به طور گسترده به كار گرفته نشده‎اند. بنابراين، بدون اين قابليت‎هاي حفاظتي پروتكل، برنامه‎هيا كاربردي هنوز براي انجام امور حفاظتي اغلب به خود واگذار مي‎شوند.

پروتكل كنترل انتقال داده ‎(TCP)
‎‎ TCP بخشي است از اينترنت كه امروزه توسط اكثريت برنامه‎هاي كاربردي استفاده مي‎شود. از ميان هزاران برنامه كاربردي كه توسط ‎ TCP استفاده مي‎شوند برخي از آنها قابل توجه‎ترند.
• انتقال فايل با استفاده از پروتكل انتقالي فايل ‎(FTP)
• ‎telnet، يك رابط خط فرمان از راه دور
• ‎Email با استفاده از پروتكل‎هاي گوناگون كه شامل پروتكل انتقالي پستي ساده (SMTP) و پروتكل (POP) Post Office مي‎باشد.
• مرورگر وب با استفاده از پروتكل انتقالي ابرمتنها ‎(HTTP)
هر كدام از اين پروتكل‎ها بسته‎ها را تهيه كرده و آنها را به پشته ‎TCP/IP ماشين محلي عبور مي‎دهند. نرم‎افزار لايه ‎ TCP روي سيستم اين داده را مي‎گيرد و با قرار دادن هدر ‎ TCP در جلوي هر پيام، بسته‎هاي ‎ TCP را توليد مي‎كند.

شمارة پورت ‎ TCP
هدر هر بسته ‎ TCP شامل دو عدد درگاه مي‎باشد. پورت مبدأ و پورت مقصد. اين اعداد ۱۶ بيتي همانند درهاي كوچكي بر روي سيستم يعني جايي كه داده مي‎تواند فرستاده و يا دريافت شود مي‎باشند. درگاه‎ها درهاي فيزيكي نيستند. آنها واحدهاي منطقي هستند كه توسط نرم‎افزار پشتة ‎ TCP/IP توضيح داده شده است. ۶۵۵۳۵ پورت ‎ TCP مختلف روي هر ماشين وجود دارد. پورت صفر ‎ TCP رزرو شده و استفاده نمي‎شود. هر بسته ‎ TCP از ميان يكي از اين درها از ماشين مبدأ بيرون مي‎آيد (عدد پورت TCP مبدأ) و پورت ديگر روي ماشين مقصد مشخص شده است.
وقتي كه يك برنامه كاربردي سرويس دهنده مبتني بر ‎ TCP روي سيستم كار مي‎كند، به درگاه خاصي براي بسته‎هاي ‎ TCP كه از يك سرويس‏‎گيرنده مي‎آيد، گوش مي‎دهد. به يك پورت با سرويس شنوايي، پورت باز و به جايي كه چيزي براي شنيدن وجود ندارد پورت بسته گفته مي‎شود. سرويس دهنده‎هاي گوناگون برنامه كاربردي به پورت‎هاي مشهور گوش مي‎دهند. پورت‎هاي ‎ TCP مورد استفاده اغلب به صورت زير مي‎باشد:
• TCP Port 21- پروتكل ارسالي فايل (FTP)

• TCP Port 23-Telnet
• TCP Port 25-پروتكل ارسالي پستي ساده (SMTP)
• TCP Port 80-Word Wide Web (HTTP)
• TCP Port 666-Doom (…Id بازي از نرم‎افزار)
براي اتصال، سرويس‎دهندگان برنامه كاربردي، لايه ‎ TCP سرويس گيرنده بسته‎هايي با پورت مقصد ‎ TCP شبيه به پورتي كه برنامه كاربردي سرويس دهنده در حال گوش دادن است را توليد مي‎كنند.
پورت مبدأ براي درخواست بسته (Packet) به صورت ديناميكي توسط سيستم عامل به برنامه متقاضي به شماره‎اي بيش از ۱۰۲۳ كه پورت شماره بالا (“High-numbered”) ناميده مي‎شود تنظيم شده است. پورت نهايي درخواست مطابق با برنامه كاربردي، جايي كه سرويس‎دهنده در حال گوش كردن است همانند ‎ TCP Port 80 براي عبور و مرور ‎HTTP مي‎باشد. براي بيشتر برنامه‎هاي ك اربردي، سرويس دهنده پيامهاي پاسخ را به شمارة پورت‎هاي ارسال شده خواهد فرستاد. پورت مبد بستة پاسخ، شمارة‌پورتي است كه سرويس‎دهنده در حال شنيدن بوده است و پورت مقصد جايي است كه سرويس‎گيرنده پيام اصلي را فرستاد.
هدايت‎گر سيستم مي‎تواند هر سرويس‎دهنده برنامه كاربردي را براي استفاده از هر شمارة پورت صادر شده مديريت كند اما برنامه‎هاي سرويس گيرنده از برنامه‎هاي كاربردي انتظار دارند كه روي درگاه‎هاي نهايي مشخصي شنيده شوند. بنابراين، براي اينكه سرويس‎گيرنده و كاربر درباره پورت نهايي مرسوم روي سرويس‎دهنده اطلاعاتي داشته باشند، شماره‎هاي پورتي كه در ‎REC 1700 توصيف شده‎اند اغلب مورد استفاده قرار مي‎گيرند.
براي آنكه ببينيد چه پورتهايي در ‎Window NT/2000 يا سيستم ‎UNIX مورد استفاده‎اند مي‎توانيد از دستور «‎netstat» استفاده كنيد. با تايپ «‎Netstat-na» در خط فرمان، تمام پورت‎هايي كه داده‎ها را مي‎فرستند، نمايانگر خواهند شد. نشان «-na» در تمام دستورات به معناي نمايش همه پورت‎ها و ليست كردن آدرس‎هاي شبكه و شمارة فرم‎ها در قالب عددي مي‎باشد.

بيت‎هاي كنترلي ‎ TCP، دست دادن سه طرفه ‎(Three-way handshke) و شماره‎هاي سريال
بيت‎هاي كنترل ‎ TCP، كه همچنين اغلب با عنوان «code bits» ناميده مي‎شوند، قسمتهاي بخصوص مفيدي از هدر ‎ TCP هستند.
اين ۶ فيلد كوچك (هر كدام فقط با طول ۱ بيت) مشخص مي‎كند كه كدام قسمت از نشست ‎(Session) بستة ‎ TCP در رابطه است با مثلاً آغاز نشست و ‎acknowledgment، پايان دادن به يك نشست. همچنين، بيت‎هاي كنترل مي‎تواند معلوم كند كه آيا بستة درخواست شده، توجه لازم كه توسط لايه ‎ TCP هدايت شود را دارد؟
اكثري مردم به بيت‎هاي كنترل ‎ TCP تحت عنوان «Cod bites» مراجه مي‎كنند. هر كد بيت مي‎تواند به طور غيروابسته تنظيم شود بنابراين هر بستة TCP مي‎تواند شامل يك و يا حتي بيشتر كد بيت‎هاي ۶ تايي به ارزش ۰ و ۱ باشد. اغلب، تنها يكي و يا دو تا از كد بيت‎ها در پيام داده شده به ارزش ۱ تنظيم شده‎اند. كد بيت‎ها به معاني زير هستند:
‎URG: اشاره‎گر ضروري در فيلد هدر ‎ TCP مهم و بامعنا است.
‎ACK: فيلد ‎Acknowledgment مهم است. اين پيام براي مشخص كردن بسته‎هاي درياف شده استفاده مي‎شود.

‎PSH: اين يك عملگر جلوبرنده است كه براي حركت دادن داده در لايه ‎ TCP استفاده مي‎شود.
‎PST: ارتباط به خاطر خطا و ساير وقفه‎ها بايد دوباره برقرار شود.
‎SYN: سيستم بايد شماره سريال را همگام نمايد اين كد در طول برپايي نشست استفاده مي‎شود.
‎FIN: هيچ داده ديگري از فرستنده وجود ندارد. بنابراين، نشست بايد از بين برود.
وقتي كه ما چگونگي آغاز نشست‎ها را در ‎ TCP تجزيه و تحليل كنيم، اهميت بيت‎هاي كنترل

Three-way handshake) و ابزار اوليه كه توسط ‎ TCP براي انجام كارهايش استفاده مي‎شود برپا شده است. دست دادن سه طرفه، ترسيم شده به سيستم اجازه مي‎دهد تا يك نشست ارتباطي و برقراري مجموعه‎اي از شماره‎هاي سريال براي بسته‎هايي كه در نشست استفاده مي‎شوند را باز كند.
تمامي بسته‎ها در اين نشست به جاي مناسب مي‎رسند. اگر دو بسته در اين انتقال برگشت داده شوند (به اين حالت كه مثلاً بستة آخر مسافت كمتري را نسبت به بستة اوليه طي كرده است) لايه ‎ TCP مي‎تواند مشكل بسته‎ها را قبل از فرستادن آنها در برنامه كاربردي كشف كند. و آنها را دوباره مرتب نمايد. به طور مشابه اگر يك بسته در طول انتقال و ارسال گم شود، ‎ TCP مي‎تواند مشكل را با توجه به شماره‎هاي سريال و شماره‎هاي ‎ACK بستة مفقود شده، ‌كشف و نسبت به انتقال دوبارة اين بسته‎ها اقدام كند. بنابراين، ‎Three-way handshake و شماره‎هاي سريالي كه از آن نتيجه مي‎شوند،‌ به ‎ TCP اجازه مي‎دهند كه ارسالهاي قابل اعتمادي داشته باشند.
هنگامي كه كد بيت‎هاي ‎SYN و ‎ACK براي برپايي نشست استفاده مي‎شوند، كد بيت ‎FIN براي از ميان بردن نشست استفاده مي‎شود. هر طرف پيامي را كه كد بيت ‏‎FIN تنظيم شده است تا نشستي را كه بايد خاتمه يابد مشخص كند، مي‎فرستد.
كد بيت ‎RST براي توقف ارتباطات و آزادسازي شماره‎هاي سريال در حال استفاده به كار مي‎رود. اگر يك ماشين بسته‎اي كه انتظارش را ندارد دريافت كند (مانند پيامهايي شامل بيت ‎ACK وقتي كه هيچ نشستي برپا نشده است) با پيامي كه بيت ‎RST آن تنظيم شده است، واكنش نشان خواهد داد. اين روش بيان ماشين است. «اگر شما فكر مي‎كنيد كه نشستي وجود دارد، آن را از بين ببريد زيرا من نمي‎دانم شما راجع به چه مسأله‎اي صحبت مي‎كنيد.‌»
كد بيت‎هاي ‎URG و ‎PSH اغلب كمتر از ۴ بيت ديگر استفاده مي‎شوند. كد بيت ‎URG به اين معناست كه داده شامل برخي داده‎هاي ضروري مي‎باشد. اگر كد بيت ‎URG به يك تنظيم شده است فيلد اشاره‎گر مشخص مي‎كند كه در كدام قسمت داده رشته‎اي، داده ضروري واقعي وجود دارد. ‎ TCP مشخص نمي‎كند كه چگونه داده ضروري بايد توسط برنامه كاربردي به كار برده شود. اين فقط به لايه كاربردي در يك طرف ارتباط اجازه مي‎دهد تا داده واقعي را براي قسمت ديگر ارتباط نشان دهد. كد بيت ‎PSH به اين معناست كه لايه ‎ TCP بايد بسته را از ميان پشته با سرعت عبور دهد.

فيلدهاي ديگر در هدر TCP
بجز فيلدهاي هدر ‎ TCP كه قبلاً توضيح داده شد،‌ فيلدهاي گوناگون ديگري هم در در ‎ TCP يافت مي‎شوند. اين فيلدهاي اضافي از قرار زير هستند:
• ‎Data offset: اين فيلد توضيح مي‎دهد كه در كجاي بستة TCP هدر پايان يافته و داده شروع مي‎شود. اين با طول هدر ‎ TCP در كلمات ۳۲ بيتي برابري مي‎كند.
• ‎Reserved: اين فيلد براي استفاده آتي رزرو شده است.
• ‎Window: اين فيلد براي كنترل شمارة بسته‎هاي ارسال شده كه بين سيستم‎ها فرستاده مي‎شود استفاده مي‎گردد. اين به هر قسمت از ارتباط، راهي را براي كنترل جريان بسته‎ها از قسمت ديگر مي‎دهد تا اطمينان حاصل كنند كه همه بسته‎ها به طور منظم دريافت شده‎اند و قبل از آنكه بسته‎هاي جديد فرستاده شوند به طور منظم ‎acknowledge بسته‎هاي دريافت شده فرستاده مي‎شود.
• ‎Checksum: براي رسيدگي به اينكه بستة TCP (هدر و داده) در انتقال در شبكه خراب نشده است،‌استفاده مي‎شود.

• ‎Urgent Pointer: اين فيلد،‌ اشاره‎گري به داده‎اي از بسته را دارد تا مشخص كند كه اطلاعات ضروري كجا واقع شده‎اند.
• ‎Options: اين مجموعه از فيلدهاي با طول گوناگون، مي‎توانند اطلاعات اضافي درباره قابليت‎هاي پردازشي ‎ TCP را از هر كدام از طرفهاي ارتباط مشخص كنند. به عنوان مثال اگر لايه ‎ TCP فقط بسته‎هاي ‎ TCP از ماكزيمم سايز گرفته شده را اداره كند، ‌سيستم مي‎تواند محدوديت را در گزينه‎هاي ‎ TCP مشخص كند.
• ‎Padding: اين فيلد بيت‎هاي اضافي تنظيم شده با مقدار صفر را شامل مي‎شود تا طول هدر TCP را توسعه دهد. بنابراين اين روي مرز ۳۲ بيتي خاتمه مي‎يابد.

پروتكل ديتاگرام كاربر ‎(User Datagram Protocol)
وقتي كه به اسم پروتكل به عنوان « TCP/IP» اشاره مي‎شود، اعضاي ديگري از اين خانواده در كنار ‎IP و ‎ TCP وجود دارند. ‎UDP لايه انتقالي ديگري است كه در بالاي ‎IP مي‎تواند قرار گيرد. ‎UDP و ‎ TCP مانند دو عموزاده هستند. ‎ TCP بيشتر مورد توجه است و در اسم فاميلي استفاده مي‎شود ولي UDP هنوز پايه بسياري از برنامه‎هاي كاربردي مهم است. تهيه‎كننده برنامه كاربردي مي‎تواند انتخاب كند كه داده را با استفاده از ‎ TCP بفرستند. يا ‎UDP (با توجه به اينكه برنامه كاربردي چه چيزي را از لايه انتقال نياز دارد)، بسته‎هاي دريافت شده و رشتة‌ ارتباطي، يا ‎ TCP هستند يا ‎UDP و نمي‎توانند هر دو پروتكل را به طور همزمان مورد استفاده قرار دهند. سرويس‎هايي كه ‎UDP را مورد استفاده قرار مي‎دهند شامل بسياري از رشته‎هاي داده‎هاي ويديويي و صوتي برنامه‎هاي كاربردي مي‎باشند كه به همان خوبي جستجوها و پاسخهاي ‎(Domain Name Service) DNS عمل مي‎كند.
‎UDP بدون اتصال است ‎(Connectionless) پروتكلي كه وضعيت اتصال را نمي‎داند و يا به خاطر نمي‎آورد و هيچ اعتقادي به نشست‎هاي ابتدايي،‌ تصديق دريافت اطلاعات، خراب شدن يا چيز ديگري ندارد. به علاوه ‎UDP پيام‎هاي گمشده را دوباره ارسال نمي‎كند و يا حتي آنها را در جاي مناسب قرار نمي‎دهد. بنابراين، اگر پيام ۱، پيام ۲، و پيام ۳ فرستاده شوند، مقصد ممكن است پيام ۲، پيام ۱ و كپي ديگري از پيام ۱ را دريافت كند. پيام۳ گم مي‎شود و پيام ۱ دوباره فرستاده مي‎شود.
‎UDP غيرقابل اعتماد است. ممكن است پيامها را گم كند و يا آنها را خراب بفرستد. اما گاهي اوقات عدم قابليت اطمينان، خوب است. بخصوص وقتي كه مي‎تواند براي شما سرعت را به ارمغان آورد. برخي از برنامه‎هاي كاربردي به گرفتن پيامها با سرعت زياد در طول شبكه علاقه‎مندند و به قابليت اطمينان در سطح بالا نيازي ندارند. اين برنامه‎هاي كاربردي به سربار ‎Three-way handshake و شماره‎هاي سريال روي هر بسته و غيره احتياج ندارند. در عوض، براي اين برنا

مه‎هاي كاربردي، ‌سرعت و سادگي جزء نيازهاي ضروري هستند.
به علاوه برخي برنامه‎هاي كاربردي پرسش ‎- پاسخ، از ‎UDP به طور چشمگيري استفاده مي‎كنند. وقتي كه آدرس شبكه را براي نام يك حوزه ‎(Domain) خاص جستجو مي‎كنيد، ‎DNS پيامي را با يك پرس‎وجو مي‎فرستذد تا نام دامنه را جستجو كند. (پيام كه مي‎گويد: آدرس ‌«۱۰٫۲۱٫۴۱٫۳» است

). اين برنامه‎هاي كاربردي،‌ سرباري در رابطه با برپايي ارتباط با استفاده از دست دادن سه طرفه را براي فرستادن پرس‎وجو و گرفتن پاسخ نمي‎خواهند.
‎UDP شماره‎هاي پورت ۱۶ بيتي را دارند بنابراين ‎۶۵۳۳۵ پورت‎هاي ‎UDP قابل دسترس وجود دارند. فقط مانند ‎ TCP، داده از پورت سيستم اصلي (پورت مبدأ ‎UDP) مي‎آيد و براي يك پورت روي سيستم مقصد (پورت مقصد ‎UDP) در نظر گرفته شده است. يكي از گسترده‎ترين سرويس‎هاي ‎UDPهاي مورد استفاده ‎(DNS) براي گوشكردن به پرس‎وجوهاي ‎DNS روي پورت ۵۳ ‎UDP است.
سرويس‎هاي ديگر پايه‎گذاري شده براساس ‎UDP شامل:
• پروتكل انتقالي فايل كم اهميت ‎(TFTP)، پورت ‎UDP69
• پروتكل مديريت شبكه ساده ‎(SNMP)، پورت ‎UDP161
• داده ‎Real Player، صوتي ‎- تصويري، يكسري از پورت‎هاي ‎UDP شامل ۷۰۷۰، اگرچه سرويس‎گيرنده مي‎تواند فقط براي استفاده پورت‎هاي ‎‎TCP در صورت لزوم پيكربندي شود.

پروتكل اينترنت (IP) و پروتكل كنترل پيام اينترنت ‎(ICMP)
وقتي كه لايه ‎UDP يا ‎ TCP بسته برا توليد مي‎كند، آن بايد در طول شبكه فرستاده شود. لايه انتقال (‎UDP يا ‎ TCP) بسته را به لايه شبكه براي بردن آن عبور خواهد داد.
پروتكل اينترنت ‎(IP) عمومي‎ترين لايه شبكه‎اي است كه امروزه استفاده مي‎گردد و براي تمامي حركتهاي ترافيكي در طول اينترنت مورد استفاده واقع مي‎شود.

شبكه‎هاي محلي و مسيريابها
هدف ‎IP انتقال بسته‎ها در طول شبكه مي‎باشد. شبكه‎هاي كامل از بلوك‎هاي ساختماني اساسي و پايه‎اي به نام ‎Local area networks (LANs) تشكيل يافته‎اند. ‎LAN به طور ساده گروهي از كامپيوترها مي‎باشند كه با استفاده از ‎hub يا ‎switch بدون هيچ مسيريابي كه سيستم‎ها را مجزا كند، به هم مرتبط‎اند. همان‎طور كه نامشان مشخص مي‎كند ‎LANها به طور نمونه از نظر جغرافيايي كوچكند و معمولاً ساختمان منفرد و محوطه كوچكي را دربرمي‎گيرند.
‎LANها با استفاده از مسيريابها به هم متصلند. وظيفه مسيرياب اين است كه بسته‎ها را بين ‎LANها براي به وجود آوردن يك شبكه بزرگ، همان‎طور كه در شكل نشان داده شده است، حركت دهد. يك و يا چند پروتكل لايه شبكه، داده را در طول شبكه از كامپيوتر كاربر نهايي و از ميان مجموعه‎اي از مسيريابها، تا سيستم نهايي حركت مي‎دهد. همچنين،‌ سيستم‎ها به طور مستقيم به مسيريابها يا هر پيوند نقطه به نقطه در حال استفاده ديگري مرتبط شده‎اند. خود اينترنت، چيز

ي به جز مجموعه ‎LANهاي عظيم و ارتباطات نقطه به نقطه كه با استفاده از گروه‎هاي مسيرياب ‎(Router) به هم متصل شده‎اند نمي‎باشد.

يك شبكه تركيبي از ‎lanهاي متصل شده به هم توسط مسيريابها مي‎باشد.

آدرس ‎IP
آدرس‎هاي ‎IP ماشين بخصوصي را روي شبكه توضيح مي‎دهند و طولشان ۳۲ بيت مي‎باشد. هر سيستم كه به طور مستقيم به اينترنت متصل مي‎شود آدرس ‎IP منحصر به فردي دارد. از آنجايي كه محدود كردن مردم به خواندن و حفظ كردن يك بلوك ۳۲ بيتي، بسيار مشكل است. لذا آدرس‎هاي IP اغلب به صورت نماد ‎dotted-qual نوشته مي‎شوند. نماد ‎Dotted-qued، هر كدام از ۴ بسته‎هاي ۸ بيتي از آدرس IP را به عنوان عددي بين ۰ و ۲۵۵ كه در آدرس ‎ IP به فرم ‎W.X.Y.Z مانند ‎۱۰٫۱۲٫۴۱٫۳ نتيجه مي‎شود را ليست مي‎كند.
هر كدام از بسته‎هاي ‎IP، آدرس ‎ IP مبدأ را با تعريف سيستمي كه بسه را مي‎فرستد و آدرس ‎ IP مقصد كه سيستم مقصد را براي بسته مشخص مي‎سازد شامل مي‎شود.
‎Netmasks
هر آدرس ‎ IP به صورت واقعي از ۲ قسمت تشكيل يافته است. آدرس شبكه و آدرس ميزبان روي همان شبكه خاص، آدرس شبكه، ‎LAN خاصي را توضيح مي‎دهد كه ترافيك مي‎تواند براي رساندن بسته هدايت شود. آدرس ميزبان، ماشين مخصوص روي ‎LAN داده شده را توضيح مي‎دهد.
چگونه كامپيوتر و يا مسيرياب مي‎داند كه كدام قسمت از آدرس ‎ IP مربوط به شبكه و كدام مربوط به ميزبان است؟ در واقع اطلاعات پايه‎گذاري شده روي قسمتي كه ‎Netmask ناميده مي‎شود آن را تعريف مي‎كند. ‎Netmask مشخص مي‎كند كه كدام بيت‎ها در آدرس شبكه هستند (و بقيه بيت‎هاي آدرس ‎IP در قسمت ميزبان واقع شده‎اند). ‎ Netmask عددي است كه بيت‎هايش را وقتي كه قسمتي از آدرس‎ شبكه است، به مقدار ۱ تنظيم مي‎نمايد. وقتي كه بيت داده شده در آدرس ‎IP قسمتي از آدرس ميزبان است،‌‎ Netmask داراي بيت صفر است. بنابراين شما مي‎توانيد آدرس ‎ Netmask را باتركيب ساده تمامي آدرس ‎IP با ‎ Netmask با استفاده از عملگر ‎XOR، تشخيص دهيد. همانند آدرس‎هاي ‎IP، ‎ Netmaskها هم در نماد ‎dorred-qued نوشته مي‎شود.

بخش‎بندي يك بسته در ‎IP
رسانه‎هاي ارسالي گوناگون، خصوصيات اجرايي مختلفي دارند. برخي رسانه‎ها
وقتي پيامها طولاني‎تر باشند بهتر عمل مي‎كنند در حالي كه ديگر رسانه‎ها از پيامهايي با طول كوتاهتر بهره مي‎برند. به عنوان م ثال، انعاس دادن يك بسته ‎ IP از يك ماهواره بسيار متفاوت است با فرستادن يك بسته از ميان فيبر نوري. با توجه به زمان تأخير ‎(latency) مربوط به ارسال اطلاعات به ماهواره، بسته‎هاي بزرگتر كارايي بيشتري دارند در حالي كه بسته‎هاي كوچكتر كارايي خوبي را در شبكه‎هاي با تأخير كمتر ‎(loulatency) دارند. براي بهينه ‎ساختن طول بسته‎ها براي پيون

دهاي گوناگون ارتباطي، ‎ IP عناصر شبكه (مانند مسيريابها و ‎firewalls)) را كه قابليت تبديل پيامها به قطعات كوچكتر را دارند، (عملي كه ‎fragnetations ناميده مي‎شود) معرفي مي‎كند. سيستم پاياني يا ابزار شبكه مي‎تواند بسته‎هاي ‎ IP بزرگ را بگيرد و آنها را به تكه‎هاي كوچكتر براي ارسال در طول شبكه بشكند. لايه ‎ IP سيستم نهايي موظف است كه دوباره تمامي قطعات را قبل از فرستادن داده به لايه حمل اسمبل كند.
هدر ‎ IP، يك جفت فيلد براي پشتيباني اين قطعات پيشنهاد مي‎كند. ابتدا فيلد ‎fragment offset به سيستم مي‎گويد تا زماني كه تمامي پيام مجدداً اسمبل شد، محتويات اين قطعات بايستي شامل كدام قسمت باشند. به علاوه، فيلد شناسايي ‎(Identification) استفاده مي‎شود تا به اسمبل مجدد قطعات كمك كند. فيلد شناسايي، توسط سيستم پخش‎كننده به مقداري واحد تنظيم شده است تا به سيستم مقصد براي اسمبل مجرد پيام كمك كند. به علاوه پرچمها ‎(flag يا نشانه) در هدر ‎ IP، اطلاعاتي در ارتباط با ‎fragmentation‎ را مشخص مي‎كند. سيستم فرستنده مي‎تواند اين فيلدها را تنظيم كند تا مشخص كند كه پيامها در حين عبور از شبكه نبايد مجزا شوند. همچنين اگر يك بسته قطعه قطعه شده است،‌ اين نشانها مشخص مي‎كنند كه آيا هنوز قطعاتي از پيام اصلي بر سر راه قرار دارند يا نه. اين ۲ بايت مي‎توانند ارزشهاي زير را داشته باشند.
• Flag Bit 1 (the Don’t Fragment bit): 0 = may fragment 1 = don’t fragment
• Flag Bit 2 (the more Fragment bit): 0 = last fragment 1 = more fragments

ديگر قسمت‎هاي تشكيل دهنده ‎IP
هدر ‎ IP متشكل است از:
• ‎Version: اين ۴ بايت توضيح مي‎دهند كه كدام نسخه از پروتكل اينترنت در حال استفاده است نسخه چهارم ‎ IP، نسخه‎اي است كه به صورت گسترده در سراسر اينترنت استفاده مي‎شود.
• ‎IHL: اين فيلد،‌ ‎the internet Header Length، طول كلي هدر ‎ IP است.
• ‎Service type: اين فيلد با كيفيت سرويس مرتبط است. براي عناصر شبكه مشخص مي‎كند كه تا چه مقدار به تأخير افتادن عبور و مرور مي‎تواند حساس باشد.
• ‎Total length: اين قسمت طول كلي بسته ‎ IP كه شامل هدر IP و داده‎هاي آن است

را معين مي‎كند.
• ‎Idinification: اين فيلد براي پشتيباني از اسمبل مجدد تكه‎ها استفاده مي‎شود.
• ‎Flags: اين بيت‎ها همان‎طور كه قبلاً توضيح داده شده است شامل بيت «Don’t fragment» و بيت «More fragment‎» مي‎باشند.
• ‎Fragment offset: اين قسمت مشخص مي‎كند كه تكه‎ها مي‎بايستي در كدام قسمت از پيام جا داده شوند.
• ‎Time to live (TTL): اين فيلد براي مشخص كردن بيشترين تعداد جهش‎هاي روتر – به – روتر زماني كه بسته در طول شبكه عبور داده مي‎شود،‌ مورد استفاده واقع مي‎شود.
• ‎Protocol: اين فيلد، پروتكلي كه توسط پيام ‎IP حمل مي‎شود را توضيح مي‎دهد كه اغلب مشابه ‎TCP يا ‎UDP ارزشگذاري مي‎شود.
• ‎Header Checksum: اين اطلاعات براي حصول اطمينان از اينكه هدر اشتباهي نكرده باشد استفاده مي‎شود كه در هر جهش توسط مسيرياب دوباره تخمين زده مي‎شود.
• ‎Source IP Address: اين فيلد آدرس شبكه و ميزبان را از جايي كه بسته آمده است، ‌مشخص مي‎كند.

• ‎Destination IP Address: اين فيلد آدرس شبكه و ميزبان را به جايي كه بسته فرستاده مي‎شود، مشخص مي‎كند.
• ‎Options: اين فيلدهاي با طول متغير،‌ اطلاعات گسترده شده براي لايه ‎ IP را مشخص مي‎كند. بخصوص، در مسيريابي مبدا، عملگري كه در زير با جزييات بيشتري توصيف مي‎شود، مورد استفاده قرار مي‎گيرد.
• ‎Padding: اين فيلد به اين منظور مورد استفاده قرار مي‎گيرد كه طول هدر ‎ IP را در حد ۳۲ بيت نگاه داشته و از ۳۲ بيت بيشتر نگردد.

امنيت يا كمبود در ‎ IP سنتي
پروتكلي كه امروزه در اينترنت استفاده مي‎شود،‌‎ IP با نگارش ۴، هيچ‎گونه قابليت حفاظتي اساسي را شامل نمي‎شود. تمامي اجزاء تشكيل دهنده بسته به صورت متن واضح آورده شده و هيچ‎ چيز پنهان نيست. هر چيزي در هدر و يا حتي در قطعه داده مي‎تواند مشاهده شده و يا توسط مهاجم تغيير يابد. به علاوه، پروتكل شامل شناسايي ‎(authentication) نيست بنابراين يك مهاجم مي‎تواند پيامهايي را با هر آدرس IP مبدأ توليد كند.

‎ICMP
يكي ديگر از اعضاي فاميل ‎TCP/ IP، پروتكل كنترل پيام اينترنت ‎(ICMP)
است. ICMP، مانند لوله‎كشي شبكه است. وظيفه‎اي انتقال فرمان و كنترل اطلاعات بين سيستم‎ها و شبكه براي انتشار نقل و انتقالات داده واقعي و گزارش خطاها مي‎باشد. يك سيستم مي‎تواند از ‎ICMP براي امتحان اينكه آيا سيستم ديگر فعال است يا نه (با فرستادن ‎«ping» كه پيام پژواك ‎(ICMP Echo) است) استفاده كند. اگر سيستم ‎Pinged فعال باشد، به فرستادن پيام پاسخ پژواك ‎(ICMP Echo) واكنش نشان مي‎دهد. يك مسيرياب مي‎تواند از ‎ICMP استفاده كند تا به سيستم مبدا اطلاع دهد كه راهي به مقصد مورد نياز ندارد (يك پيام مبني بر مقصد غيرقابل جستجو ‎ICMP). يك ميزبان مي‎تواند به سيستم ديگر بگويد كه سرعت تعداد پيامهايي را كه مبدأ ICMP مي‎فرستد را كاهش دهد. درست متوجه شديد ‎- ICMP براي سيستم‎ها استفاده مي‎شود تا اطلاعاتي در مورد اينكه چگونه داده در طول شبكه جاري مي‎شود (و يا جريان نمي‎يابد) را مبادله كحند.
‎ ICMP از اين فرمت هدر به عنوان ‎IP براي آدرس‎هاي ‎IP مبدأ و مقصد، قطعه‎بندي بسته‎ها

و ساير عملها استفاده مي‎كند. فيلد پروتكل هدر ‎IP با مقداري مطابق با ‎ ICMP پر مي‎شود (عدد ۱ به معناي ‎ ICMP مي‎باشد). بعد از هدر ‎IP در اجزاء دادة‌ بستة ‎IP، ‎ ICMP فيلدي با نام ‎ ICMP type را مي‎افزايد. فرمت باقيمانده بسته ‎IP به اين نوع ‎ ICMP بستگي دارد. انواع مختلفي از مدل‎هاي پيام ‎ ICMP، وجود دارد.

تفسير آدرس شبكه

بلوك‎هاي آدرس‎هاي ‎IP به سرويس‎دهندگان و سازمانهاي گوناگوني داده شده است. سالهاي گذشته كه هيچ‎گونه انتظاري براي اتصال به اينترنت نمي‎رفت برخي سازمانها اعداد آدرس شبكه را به طور اتفاقي برگزيده‎اند و شروع به ساختن شبكه‎هاي ‎ IPشان با استفاده از اين آدرس‎هاي ‎ IP تصادفي كرده‎اند.
شما سازندگان شبكه را مي‎بينيدكه عدد مورد علاقه‎شان را برگزيده‎اند («من عدد ۴ را مي‎پسندم»‌) و همه شبكه را با همان عدد (به همه چيز، ‌آدرس ‎ IPبه فرم ‎۴٫x.y.z داده شده است) مي‎سازند. به اين آدرس‎ها اغلب با عنوان «‌آدرس‎هاي غيرقانوني»‌ «illegal addresses» گفته مي‎شود زيرا به طور رسمي در اختيار سازمانهاي ديگري قرار داده شده‎اند. متأسفانه، اگر يك نفر با استفاده از آدرسهاي غيرقانوني بخواهد به اينترنت متصل شود، ما ۲ شبكه با آدرس ‎ IP مشابه روي اينترنت خواهيم بود. اين موقعيت به طور جدي مسيريابي را برهم مي‎ريزد زيرا كه مسيريابهاي اينترنت نمي‎دانند كه عبور و مرورها را براي اين آدرس‎هاي مقصد تكراري به كجا بفرستند.
به علاوه با افزايش تعداد اتصال به اينترنت، آدرس‎هاي ‎ IP كافي براي تمامي متقاضيان، قابل دسترس نيست. بنابراين، ‎IETF برخي اعداد آدرس را براي خلق شبكه‎هاي ‎ IP خصوصي در ‎RFC 1918 كنار گذاشته است.
شما مي‎توانيد شبكه ‎ IP خودتان را با استفاده از اين آدرس‎هاي ‎ IP نظير ‎۱۰٫x.y.z و ‎۱۱۲٫۱۶٫y.z و ‎۱۲۲٫۱۶۸٫y.z تشكيل دهيد. بسياري از سازمانها با استفاده از اين آدرسهاي كنار گذاشته شده، شبكه‎ها را خلق مي‎كنند. اگر بكوشيد كه داده خود را به يكي از اين آدرس‎ها روي اينترنت بفرستيد، موفق نخواهيد شد زيرا كه اين مجموعة‌ كنار گذاشته شده منحصر به فرد نيستند. به آنها تحت عنوان «Unroutable» اشاره مي‎شود زيرا هيچ مسيريابي، روي اينترنت نخواهد دانست كه چگونه به اين آدرس‎هاي غيرمنحصر به فرد دست يابد.
چگونه دست‎يابي به اينترنت را از شبكه‎اي كه از آدرس‎هاي غيرقانوني و يا كنار گذاشته شده و توضيح داده شده در ‎RFC-1918 استفاده مي‎كند، پشتيباني مي‎كنيم؟ پاسخ اين است كه اين آدرس‎هاي مشكل‎دار را با عمل ‎map يا نگاشت آدرس‎هاي ‎ IP در مسيرياب شبكه يا ‎firewall، با استفاده از تكنيكي تحت عنوان ‎(NAT) Network address translation معتبر و قانوني مي‎كنيم. براي به كارگيري ‎NAT، يك دروازه ‎(gateway) ميان شبكه با آدرس‎هاي غيرقانوني يا كنار گذ

اشته شده و اينترنت قرار مي‎گيرد. همان‎طور كه در شكل نشان داده شده است، ‌وقتي كه هر بسته از شبكه داخلي به اينترنت مي‎رود، اين مدخل به آدرس ‎IP مبدأ غيرقانوني يا غيرقابل مسيريابي شبكه داخلي در هدر بسته، اجازه مي‎دهد تا با آدرس ‎ IP قابل مسيريابي يكتا رونويسي شود. وقتي پاسخها دريافت شدند، دروازه اين بسته‎ها را دريافت مي‎كندو آدرس‎هاي ‎ IP مقصد را قبل از آنكه بسته را به شبكه داخلي انتقال دهد دوباره‎نويسي مي‎كند.

 

تفسير آدرس شبكه، آدرس‎هاي IP غيرقابل مسيريابي را از شبكه داخلي
رونويسي ‎(Overwrit) مي‎كند

يك دروازه مي‎تواند آدرس‎ها را براي ‎NAT از راه‎هاي مختلفي ‎map كند، از جمله:
• نگاشت به آدرس ‎ IP منفرد خارجي ‎(mapping to a single external IP address): براي اين نوع از ‎NAT، هر بسته كه از شبكه داخلي مي‎آيد به آدرس ‎ IP منفردي ‎map شده است. روي شبكه اينترنت، تمامي عبور و مرورها به نظر مي‎رسد كه از آدرس ‎ IP دستگاه ‎NAT بيايند. اين تكنيك مؤثر آدرس‎دهي اغلب براي اتصال شبكه‎هاي بزرگ به اينترنت وقتي كه آدرس‎هاي ‎ IP محدودي قابل دسترسي‎اند استفاده مي‎شود.
• نگاشت يك به يك ‎(one to one mapping): يك دروازه مي‎تواند هر ماشيني روي شبكه دا خلي را به آردس ‎ IP معتبر منحصر به فري كه با هر ماشين يكتا در ارتباط است ‎ map كند. بنابراين تمامي عبور و مرورها به نظر مي‎آيد كه از گروهي از آدرس‎هاي IP بيايند. اين تكنيك اغلب براي نگاشت درخواستهاي كاربر در طول شبكه به سرويس‎دهنده روي شبكه، همانند سرويس‎دهنده وب استفاده مي‎شود.
• آدرس‎هاي تخصيص داده شده به صورت پويا ‎(Dynamically allocated address): يك دروازه مي‎تواند تعداد زيادي از آدرس‎هاي ‎ IP غيرقابل مسيريابي را به تعداد كوچكتري از آدرس‎هاي ‎ IP معتبر بخش كند. اين نوع دست‎يابي كمتر از تكنيك‎هاي ديگر معمول است.
براي آنكه آدرس‎هاي IP را از تغيير مصون بداريم. ‎NAT امروزه به طور معمول روي اينترنت استفاده مي‎شود. اگرچه، آيا ‎NAT از نظر امنيتي پيشرفت مي‎كند؟ اين مي‎تواند به مخفي كردن كاربردهاي آدرس IP شبكه داخلي كه مهاجم مي‎تواند براي تهيه نقشه توپولوژي شبكه استفاده كند، كمك نمايد. اگرچ، به خودي خود، ‎NAT مزاياي امنيتي كمي را داراست. هنگامي كه مهاجمان نمي‎توانند بسته‎ها را به آدرسهاي غيرقابل مسيريابي روي شبكه داخلي بفرستند، اما هنوز مي‎توانند آنها را از درون دروازه ‎NAT بفرستند. دروازة‌NAT اآدرس‎ها را به نمايندگي از مهاجم نگاشت خواهد كرد. به همين علت، اگر قرار است حفاظتي صورت گيرد، تكنيك‎هاي ‎NAT بايد با اعمال ‎firewall امنيتي تركيب شود.

ديوارة آتش: نگهبانان ترافيك شبكه و دروازه‎بانانهاي فوتبال
ديواره‎هاي آتش ابزاري براي كنترل جريان عبور و مرور بين شبكه‎ها هستند.
آنها در مرز بين شبكه‎ها قرار گرفته و به عنوان دروازه‎اي براي اخذ تصميماتي در ارتباط با اينكه چه ارتباطاتي بايد پذيرفته و چه ارتباطاتي بايد تكذيب شوند، عمل مي‎كنند. با نگاهي به سرويس‎ها، آدرس‎ها و حتي كاربرهاي مرتبط با ترافيك، ديواره‎هاي آتش مشخص مي‎كنند كه آيا ارتباطات بايد به درون شبكه‎هاي ديگر فرستاده شوند و يا اينكه بايستي از بين بروند. با اين قابليت، ديواره‎هاي آتش همانند پليس‎هاي ترافيك شبكه عمل مي‎كنند.
اگر آنها به طور صحيح پيكربندي شوند، سيستم‎ها در يك طرف ديوارة آتش ‎(Firewall) از مهاجمان طرف ديگر ديوارة آتش محافظت مي‎شوند. مهاجمان فقط از راه‎هايي كه توسط ديواره‎هاي آتش اجازه داده مي‎شود مي‎توانند به سيستم‎هاي حفاظت شده دست يابند. سازمانها به طور معمول از ديواره‎هاي آتش استفاده مي‎كنند تا ساختار زيربنايي شبكه خود را از اينترنت و حملة رقباي تجاري خود در طول برقراري ارتباط حفاظت كنند.
تشابه مفيد ديگر براي ديوارة آتش، دروازه‎بان در بازي فوتبال است كه وظيفه‎‎اش محافظت از تور در برابر شوتهاي تيم مقابل مي‎باشد. توپ فوتبال مانند يك بسته است. وظيفه ديوارة آتش

اين است كه مهاجم را از رستادن پيامهاي تقاضا نشده به شبكه منع كند. اگرچه، دروازه‎بان بايد به توپ اجازه دهد تا به خارج از تور شوت شود. ديوارة آتش بايد به برخي از ارتباطات در جهت خروجي را اجازه دهد، بنابراين كاربرهاي داخلي مي‎توانند به شبكه‎هاي خارجي دست يابند د
هدف مهاجم اين است كه توپ را ازدروازه‎بان عبور داده به داخل تور بفرستد. براي آنكه استحكام دفاعي خود را دريابيم، بياييد به قابليت‎هاي دورازه‎بان با تجزيه و تحليل تكنولوژي‎هاي ديوارة آتش كه امروزه به طور گسترده استفاده مي‎شوند،‌ نگاهي بيندازيم: فيلترهاي بسته رايج، فيلترهاي بسته ‎Stateful و ديواره‎هاي آتش مبتني بر ‎Proxy.