🧑‍💻Cyber.vision🧑‍💻
560 subscribers
202 photos
13 videos
20 files
151 links
Python tips and tricks
The Good, Bad and the Ugly
متخصص امنیت شبکه های کنترل صنعتی
👨‍💻این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی این چند سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)
https://t.iss.one/Hacker0x01
Download Telegram
🌐 خب خب خب لایه شبکه (Network Layer) در مدل OSI

لایه شبکه، سومین لایه از مدل OSI، مسئول انتقال داده‌ها بین شبکه‌های مختلفه. این لایه کاری می‌کنه که داده‌ها از یه مبدأ به مقصد مشخص (تو هر گوشه دنیا) برسن، بدون این که مسیر و راهش گم بشه. این لایه مثل یه سیستم حمل‌ونقل بزرگ عمل می‌کنه که بسته‌های اطلاعاتی رو از یه نقطه به نقطه دیگه منتقل می‌کنه. بیاین جزئیاتش رو مرحله‌به‌مرحله بررسی کنیم. 🚀

📍 وظایف اصلی لایه شبکه

🧭 آدرس‌دهی منطقی (Logical Addressing):
هر دستگاه تو شبکه یه آدرس منحصربه‌فرد داره که بهش آدرس IP می‌گن. این آدرس مشخص می‌کنه داده‌ها باید دقیقاً به کجا برن.
مثال:
فرض کن می‌خوای یه بسته پستی ارسال کنی. بدون داشتن آدرس خونه مقصد، عملاً ارسال بسته غیرممکنه. تو شبکه هم آدرس IP دقیقاً مثل آدرس خونه عمل می‌کنه.
🛣️ مسیریابی (Routing):
وقتی داده‌ها باید از یه شبکه به شبکه دیگه برن، این لایه تصمیم می‌گیره که از چه مسیری برن تا سریع‌تر و مطمئن‌تر به مقصد برسن.

نقش روترها:
دستگاه‌های روتر تو این مرحله خیلی مهمن. روترها با بررسی آدرس‌های IP، بهترین مسیر رو برای انتقال داده پیدا می‌کنن.
مثال:
فرض کن داری از تهران به اصفهان سفر می‌کنی. چند مسیر مختلف هست، ولی تو کوتاه‌ترین و کم‌ترافیک‌ترین جاده رو انتخاب می‌کنی. لایه شبکه همین کارو برای داده‌ها انجام می‌ده
📦 بسته‌بندی داده‌ها (Packetization):
داده‌هایی که از لایه انتقال (Transport Layer) میان، به بخش‌های کوچیک‌تری به اسم پکت (Packet) تقسیم می‌شن. هر پکت شامل اطلاعات زیره:
آدرس مبدأ: دستگاهی که داده رو ارسال کرده.

آدرس مقصد: جایی که داده باید بره.

داده اصلی: همون اطلاعاتی که باید منتقل بشه.

اطلاعات کنترلی: برای اطمینان از انتقال درست داده.


🔍 مثال:
فرض کن می‌خوای یه پیتزای بزرگ رو با دوستات بخوری، ولی ظرفت کوچیکه.
پیتزا رو به برش‌های کوچیک تقسیم می‌کنی و هر برش رو جداگونه می‌فرستی.
🚦 کنترل تراکم (Congestion Control):
اگه یه شبکه شلوغ بشه و داده‌ها نتونن به موقع منتقل بشن، این لایه کمک می‌کنه ترافیک مدیریت بشه.
مثال:
فرض کن تو صف یه سوپرمارکت شلوغی. فروشنده سعی می‌کنه با اضافه کردن صندوق‌دار بیشتر، صف رو کوتاه‌تر کنه. لایه شبکه هم همین طور ترافیک شبکه رو کنترل می‌کنه.
🔧 تکه‌تکه کردن و دوباره‌سازی (Fragmentation and Reassembly):
گاهی وقتا داده‌ها بزرگ‌تر از ظرفیت انتقال یه شبکه هستن. این لایه داده‌ها رو به قطعات کوچیک‌تر تقسیم می‌کنه و وقتی به مقصد رسید، دوباره به هم وصلشون می‌کنه.
مثال:
فرض کن یه مبل بزرگ رو می‌خوای از در کوچیک خونه رد کنی. مبل رو باز می‌کنی، قطعاتش رو یکی‌یکی رد می‌کنی و دوباره اون‌طرف سر هم می‌کنی.
⚙️ پروتکل‌های مهم لایه شبکه
IPv4 (Internet Protocol Version 4):
پرکاربردترین پروتکل برای آدرس‌دهی و مسیریابی.
از آدرس‌های ۳۲ بیتی استفاده می‌کنه (مثلاً: 192.168.1.1).

IPv6 (Internet Protocol Version 6):
نسخه جدیدتر IPv4 که ظرفیت بیشتری برای آدرس‌دهی داره (۱۲۸ بیتی).
مشکل کمبود آدرس‌های IPv4 رو حل کرده.

ICMP (Internet Control Message Protocol):
برای ارسال پیام‌های کنترلی (مثل خطاها) و تست شبکه (مثل ابزار Ping).

ARP (Address Resolution Protocol):
تبدیل آدرس IP به آدرس فیزیکی (MAC Address).

🔄 انواع ارتباطات تو لایه شبکه
تک‌پخشی (Unicast):
ارسال پکت فقط به یه مقصد خاص.
مثال: ارسال ایمیل به مدحج.

چندپخشی (Multicast):
ارسال پکت به گروهی از دستگاه‌ها.
مثال: استریم زنده یه بازی برای چند کاربر خاص.

همگانی (Broadcast):
ارسال پکت به همه دستگاه‌های یه شبکه.
مثال: اعلام عمومی پیام تو یه گروه چت.

🎯 جمع بندی
لایه شبکه یه پل حیاتی بین دستگاه‌ها تو شبکه‌های مختلفه. این لایه مطمئن می‌شه که هر پکت به موقع و بدون اشتباه به مقصدش برسه. با وظایفی مثل مسیریابی، آدرس‌دهی، و کنترل ترافیک، این لایه ستون فقرات اینترنت و شبکه‌های مدرنه. بدون لایه شبکه، ارتباطات جهانی غیرممکن بودن 🌍

#⃣ #network




🥷 CHANNEL | GROUP
لایه ۴: لایه انتقال (Transport Layer) 🚛

لایه Transport یکی از مهم‌ترین بخش‌های مدل OSI هست که وظیفه مدیریت انتقال داده بین دستگاه‌ها و اطمینان از ارتباط پایدار و مؤثر رو بر عهده داره. این لایه تضمین می‌کنه که داده‌ها به درستی به مقصد برسن، ترتیبشون حفظ بشه، و در صورت وجود خطا، اصلاح بشن.

وظایف اصلی لایه انتقال

📦 تقسیم‌بندی داده‌ها (Segmentation):
وقتی اپلیکیشنی قصد ارسال داده داره، این داده‌ها به قطعات کوچکتری به نام سگمنت تقسیم می‌شن. هر سگمنت یک هدر مخصوص داره که شامل اطلاعاتی مثل شماره ترتیبی و آدرس پورت می‌شه.

🧩 بازسازی داده‌ها (Reassembly):
در مقصد، لایه انتقال سگمنت‌ها رو با استفاده از شماره ترتیبی که در هدرشون ذخیره شده، به ترتیب کنار هم قرار می‌ده و داده اصلی رو بازسازی می‌کنه.

⚠️ کنترل خطا (Error Control):
لایه انتقال با استفاده از تکنیک‌هایی مثل Checksum صحت داده‌ها رو بررسی می‌کنه. اگه خطایی در داده‌ها تشخیص داده بشه، درخواست ارسال مجدد سگمنت انجام می‌شه.

🚦 کنترل جریان (Flow Control):
وقتی فرستنده سریع‌تر از گیرنده داده ارسال می‌کنه، ممکنه گیرنده دچار مشکل بشه. لایه انتقال سرعت ارسال رو با استفاده از Sliding Window تنظیم می‌کنه.

🔗 مدیریت ارتباط (Connection Management):
لایه انتقال می‌تونه ارتباط رو به دو صورت Connection-Oriented (مانند TCP) یا Connectionless (مانند UDP) مدیریت کنه. در ارتباطات Connection-Oriented، قبل از ارسال داده‌ها یک ارتباط پایدار برقرار می‌شه.

پروتکل‌های کلیدی در لایه انتقال

TCP (Transmission Control Protocol):
💡 TCP یک پروتکل Connection-Oriented و Reliable هست که برای ارتباطات حساس به دقت استفاده می‌شه.

ویژگی‌های کلیدی:

ارتباط مبتنی بر اتصال:

فرآیند Three-Way Handshake شامل مراحل زیره:


SYN: درخواست اتصال از فرستنده.
SYN-ACK: پاسخ گیرنده.
ACK: تأیید فرستنده.

شماره‌گذاری سگمنت‌ها:
🔢 ‏TCP به هر سگمنت یک شماره منحصر‌به‌فرد اختصاص می‌ده تا داده‌ها در مقصد به درستی بازسازی بشن.

کنترل جریان:
با استفاده از Sliding Window، TCP حجم داده‌ای که می‌تونه ارسال بشه رو تنظیم می‌کنه.

کنترل خطا:
با استفاده از Checksum و Acknowledgment صحت داده‌ها بررسی و تضمین می‌شه.


UDP (User Datagram Protocol):
‏ UDP یک پروتکل Connectionless و Unreliable هست که برای ارتباطات سریع طراحی شده.
ویژگی‌های کلیدی:

بدون اتصال:
‏UDP داده‌ها رو بدون ایجاد ارتباط پایدار ارسال می‌کنه.

بدون تضمین تحویل:
اگه داده‌ای گم بشه یا خراب بشه، UDP هیچ تضمینی برای ارسال مجدد نداره.

سرعت بالا:
چون کنترل جریان یا تصحیح خطا نداره، سرعت انتقال بالاتره.

🎛 پورت‌ها و شماره‌گذاری در لایه انتقال
پورت‌ها اعدادی ۱۶بیتی هستن که ارتباط بین اپلیکیشن‌ها و دستگاه‌ها رو مدیریت می‌کنن.

پورت‌های شناخته‌شده (Well-Known Ports):
📌 این پورت‌ها اعداد بین ۰ تا ۱۰۲۳ هستن و به پروتکل‌های معروف اختصاص داده شدن.
‏HTTP: پورت 80
‏HTTPS: پورت 443
‏FTP: پورت 21

پورت‌های رجیسترشده (Registered Ports):
🔒 اعداد بین ۱۰۲۴ تا ۴۹۱۵۱ که برای اپلیکیشن‌های خاص رزرو می‌شن.

پورت‌های داینامیک (Dynamic Ports):
🔄 اعداد بین ۴۹۱۵۲ تا ۶۵۵۳۵ که برای ارتباطات موقت استفاده می‌شن.

جمع‌بندی
لایه Transport نقش حیاتی در تضمین انتقال داده‌ها بین دستگاه‌ها داره. انتخاب پروتکل مناسب به نیازهای اپلیکیشن شما بستگی داره:
TCP برای ارتباطات حساس به دقت.
UDP برای ارتباطات حساس به سرعت.

#⃣ #network



🥷 CHANNEL | GROUP
👍1