شبکه و اینترنت / تجهیزات شبکه
پروتکل TCP/IP چگونه کار میکند؟ (انتقال داده در اینترنت)
VivolS
08 شهریور 2026
11
0 نظر
2 دقیقه

پروتکل TCP/IP چگونه کار میکند؟ (انتقال داده در اینترنت)
حتماً تا حالا عبارت TCP/IP به گوشتان خورده است. شاید وقتی کسی میخواهد درباره شبکه حرف بزند، مدام از این اصطلاح استفاده میکند. اما TCP/IP دقیقاً چیست؟ چطور دادهها در اینترنت منتقل میشوند؟ چرا وقتی یک فایل را میفرستید، تکهتکه میشود و بعد دوباره سر هم میشود؟ در این مقاله کامل، از صفر تا صد پروتکل TCP/IP و نحوه انتقال داده در اینترنت را یاد میگیرید.
TCP/IP چیست؟
TCP/IP مخفف دو پروتکل اصلی اینترنت است: Transmission Control Protocol و Internet Protocol. این دو پروتکل قوانین و استانداردهایی هستند که تعیین میکنند دادهها چطور در اینترنت جابجا شوند. به زبان ساده، TCP/IP مثل زبان مشترک همه دستگاههای دنیاست. بدون آن، یک کامپیوتر در آمریکا نمیتوانست با یک کامپیوتر در ایران حرف بزند.
اینترنت امروزی روی TCP/IP ساخته شده است. هر وقت شما یک سایت را باز میکنید، یک ایمیل میفرستید، یک فیلم را استریم میکنید یا یک فایل را دانلود میکنید، دستگاه شما و سرور مقصد دارند با هم به زبان TCP/IP حرف میزنند.
چرا به TCP/IP نیاز داریم؟
اینترنت از میلیاردها دستگاه مختلف با سیستمعاملها و سختافزارهای متفاوت تشکیل شده است. یک کامپیوتر ویندوزی، یک گوشی اندرویدی، یک مک بوک اپل و یک سرور لینوکسی همه باید بتوانند با هم ارتباط برقرار کنند. TCP/IP این امکان را فراهم میکند.
TCP/IP تضمین میکند که دادهها:
- از مبدأ به مقصد برسند
- به ترتیب درست به مقصد برسند
- اگر قسمتی از داده گم شد، دوباره فرستاده شود
- اگر خطایی در داده وجود داشت، تصحیح یا دوباره درخواست شود
- مقصد نهایی خود را پیدا کنند
مدل TCP/IP: لایههای ارتباطی
TCP/IP از چند لایه تشکیل شده است. هر لایه یک کار مشخص انجام میدهد و با لایه بالا و پایین خود ارتباط دارد. این لایهبندی کار را سادهتر کرده است. به طور کلی، مدل TCP/IP دارای ۴ لایه است:
لایه ۱: لایه کاربرد (Application Layer)
این لایه بالاترین لایه است و کاربر نهایی با آن سروکار دارد. هر برنامهای که از اینترنت استفاده میکند (مرورگر، ایمیل، تلگرام، اسکایپ) در این لایه کار میکند. پروتکلهای معروف این لایه عبارتند از:
- HTTP/HTTPS: برای وبگردی و باز کردن سایتها
- SMTP, POP3, IMAP: برای ارسال و دریافت ایمیل
- FTP: برای انتقال فایل
- DNS: برای تبدیل نام دامنه به آیپی
- SSH: برای اتصال امن به سرورها
- DHCP: برای گرفتن آیپی خودکار
در این لایه، دادههایی که شما میفرستید (مثلاً متنی که در فرم سایت نوشتهاید) آماده میشود و به لایه بعدی فرستاده میشود.
لایه ۲: لایه انتقال (Transport Layer)
این لایه یکی از مهمترین لایههاست. کار اصلی آن، کنترل جریان داده و اطمینان از رسیدن صحیح اطلاعات است. دو پروتکل اصلی در این لایه وجود دارد:
- TCP (Transmission Control Protocol): اتصالگرا و قابل اطمینان
- UDP (User Datagram Protocol): بدون اتصال و سریع ولی غیرقابل اطمینان
در این لایه، دادههایی که از لایه کاربرد آمده به بخشهای کوچکی به نام «سگمنت» (Segment) تقسیم میشوند. به هر سگمنت یک شماره ترتیب داده میشود تا در مقصد بتواند دوباره سرهم شود.
لایه ۳: لایه اینترنت (Internet Layer)
این لایه جایی است که پروتکل IP کار میکند. کار اصلی این لایه، مسیریابی بستهها از مبدأ تا مقصد است. در این لایه، به هر سگمنت (که از لایه بالا آمده) یک هدر IP اضافه میشود که شامل آیپی مبدأ و آیپی مقصد است. به این واحد، «پاکت» (Packet) میگویند.
پروتکلهای مهم در این لایه:
- IP (Internet Protocol): مسیریابی و تحویل بستهها
- ICMP (Internet Control Message Protocol): برای ارسال پیامهای خطا و کنترل (مثل پینگ)
- ARP (Address Resolution Protocol): تبدیل آیپی به آدرس فیزیکی (MAC)
- RARP: برعکس ARP
لایه ۴: لایه دسترسی به شبکه (Network Access Layer)
این لایه پایینترین لایه است و با سختافزار فیزیکی سروکار دارد. کار آن، تبدیل بستههای IP به فریمهایی است که میتوانند از کابل، فیبر نوری یا وایفای عبور کنند. در این لایه، به بستهها یک هدر اضافه میشود که شامل آدرس MAC (آدرس فیزیکی) دستگاه است. به این واحد، «فریم» (Frame) میگویند.
پروتکلهای این لایه شامل اترنت (Ethernet)، وایفای (Wi-Fi)، ADSL، فیبر نوری و غیره میشوند.
TCP چگونه کار میکند؟ (قسمت مهم)
TCP یک پروتکل اتصالگرا و قابل اطمینان است. این یعنی قبل از فرستادن داده، یک ارتباط منطقی بین فرستنده و گیرنده برقرار میکند و بعد از اتمام کار، آن ارتباط را میبندد. به این فرآیند «مکالمه سهطرفه» (Three-way handshake) میگویند.
مرحله ۱: دست دادن سهطرفه (Three-way Handshake)
قبل از اینکه دادهای فرستاده شود، فرستنده و گیرنده باید هماهنگ شوند. این کار در سه مرحله انجام میشود:
- مرحله اول (SYN): فرستنده به گیرنده یک پیام با پرچم SYN میفرستد و میگوید: «سلام، من میخواهم با تو ارتباط برقرار کنم. شماره ترتیب اولیه من X است.»
- مرحله دوم (SYN-ACK): گیرنده جواب میدهد: «سلام، درخواست تو را قبول دارم. شماره ترتیب اولیه من Y است. من پیام SYN تو را دریافت کردم (با ACK برای X+1).»
- مرحله سوم (ACK): فرستنده جواب میدهد: «من پیام تو را دریافت کردم (ACK برای Y+1). حالا میتوانیم داده بفرستیم.»
بعد از این سه مرحله، ارتباط برقرار شده و میتوان داده فرستاد.
مرحله ۲: فرستادن داده
بعد از برقراری ارتباط، داده به بخشهای کوچک (سگمنت) تقسیم میشود. هر سگمنت یک شماره ترتیب دارد. فرستنده هر سگمنت را میفرستد و منتظر میماند تا گیرنده تأیید کند (ACK) که آن سگمنت را دریافت کرده است.
مکانیسمهای مهم TCP در این مرحله:
- پنجره (Window): فرستنده میتواند چند سگمنت را بدون گرفتن تأیید بفرستد (پنجره کشویی). این کار سرعت را بالا میبرد.
- تأیید انتخابی (Selective ACK): اگر تعدادی سگمنت گم شد، فقط همانها دوباره فرستاده میشوند، نه همه.
- کنترل تراکم (Congestion Control): TCP سرعت ارسال را بر اساس شلوغی شبکه کم و زیاد میکند.
- تایمر زمانبندی (Timeout): اگر پاسخی نیامد، سگمنت دوباره فرستاده میشود.
مرحله ۳: بستن ارتباط
وقتی دادهها تمام شد، ارتباط باید بسته شود. این کار هم در چند مرحله انجام میشود (چهار مرحله):
- فرستنده میگوید: «من حرفم تمام شد، میخواهم ارتباط را ببندم (FIN)»
- گیرنده میگوید: «باشه، فهمیدم (ACK)»
- گیرنده هم میگوید: «من هم میخواهم ببندم (FIN)»
- فرستنده میگوید: «باشه، فهمیدم (ACK)» و ارتباط بسته میشود.
تفاوت TCP و UDP
در لایه انتقال، دو پروتکل اصلی داریم. TCP قابل اطمینان است ولی کندتر، UDP غیرقابل اطمینان است ولی سریعتر. اینجا تفاوتهای اصلی را میگوییم:
- نوع ارتباط: TCP = اتصالگرا (قبل از ارسال داده، ارتباط برقرار میکند) / UDP = بدون اتصال (فقط داده را میفرستد)
- قابلیت اطمینان: TCP = بالا (تأیید میگیرد، گمشده را دوباره میفرستد) / UDP = پایین (هیچ تضمینی برای رسیدن داده نیست)
- ترتیب بستهها: TCP = حفظ میشود / UDP = تضمین نمیشود
- کنترل تراکم: TCP = دارد / UDP = ندارد
- سرعت: TCP = کندتر / UDP = سریعتر
- پارگی (Overhead): TCP = زیاد (۲۰ بایت هدر) / UDP = کم (۸ بایت هدر)
- کاربردها: TCP = وب، ایمیل، FTP، SSH / UDP = استریم ویدیو و صدا، بازیهای آنلاین، VoIP، DNS
آیپی (Internet Protocol) چگونه کار میکند؟
پروتکل IP مسئول مسیریابی بستههاست. هر بسته شامل آیپی مبدأ و آیپی مقصد است. روترها در سراسر اینترنت با نگاه کردن به آیپی مقصد، تصمیم میگیرند بسته را به کدام مسیر بفرستند.
کار IP شبیه سیستم پست است. شما یک نامه را با آدرس مقصد میفرستید. پستچیها (روترها) با نگاه کردن به آدرس، نامه را از یک مرکز به مرکز دیگر میفرستند تا به مقصد برسد. IP فقط تلاش میکند بسته را تحویل دهد، اما تضمین نمیکند که حتماً برسد (این کار TCP است).
IPv4 در مقابل IPv6
همانطور که در مقاله آیپی هم گفتیم، IPv4 از ۳۲ بیت استفاده میکند و حدود ۴.۳ میلیارد آیپی دارد. IPv6 از ۱۲۸ بیت استفاده میکند و تعداد آیپیهای آن عملاً نامحدود است. IPv6 علاوه بر تعداد بیشتر، مزایای دیگری هم دارد:
- امنیت بهتر (IPsec توکار)
- بدون نیاز به NAT (هر دستگاه آیپی عمومی دارد)
- مسیریابی کارآمدتر
- پشتیبانی از کیفیت سرویس (QoS) بهتر
یک مثال واقعی: باز کردن یک سایت با TCP/IP
بیایید ببینیم وقتی شما آدرس google.com را در مرورگر میزنید، چه اتفاقی میافتد:
- مرورگر (لایه کاربرد) درخواست شما را میگیرد. میخواهد به google.com وصل شود. اول باید آیپی google.com را پیدا کند. برای این کار یک درخواست DNS میفرستد.
- پاسخ DNS میآید: google.com = ۱۴۲.۲۵۰.۱۸۵.۴۶ (یک آیپی عمومی)
- حالا مرورگر از پروتکل HTTP استفاده میکند. میگوید: «من میخواهم صفحه اصلی گوگل را بگیرم.» این داده به لایه انتقال فرستاده میشود.
- در لایه انتقال، TCP یک ارتباط با سرور گوگل برقرار میکند (دست دادن سهطرفه). بعد از برقراری ارتباط، درخواست HTTP به سگمنتهای کوچک تقسیم میشود. هر سگمنت شماره ترتیب دارد.
- سگمنتها به لایه اینترنت میروند. در اینجا یک هدر IP به هر سگمنت اضافه میشود که شامل آیپی شما و آیپی سرور گوگل (۱۴۲.۲۵۰.۱۸۵.۴۶) است. حالا به این واحد، پاکت میگویند.
- پاکتها به لایه دسترسی به شبکه میروند. در اینجا هدر اترنت (با آدرس MAC) اضافه میشود و فریم ساخته میشود. فریم از طریق کابل یا وایفای به مودم شما فرستاده میشود.
- مودم شما فریم را به سیگنال مناسب (برای ADSL، فیبر یا 4G) تبدیل میکند و به شرکت اینترنت شما میفرستد.
- بسته از روتری به روتر دیگر میرود. هر روتر به آیپی مقصد نگاه میکند و تصمیم میگیرد بسته را به کدام روتر بعدی بفرستد. این کار چندین بار تکرار میشود تا بسته به سرور گوگل برسد.
- در سرور گوگل، برعکس این فرآیند اتفاق میافتد. فریم به پاکت، پاکت به سگمنت و سگمنتها به داده اصلی تبدیل میشوند. TCP سرور تأیید میکند که همه سگمنتها رسیدهاند (ACK میفرستد).
- سرور گوگل صفحه اصلی خود را به عنوان پاسخ برمیگرداند و همین فرآیند به صورت برعکس تکرار میشود تا صفحه در مرورگر شما نمایش داده شود.
پورتها (Ports) در TCP/IP
یک آیپی میتواند چندین سرویس مختلف را همزمان اجرا کند. مثلاً یک سرور میتواند هم وبسایت داشته باشد، هم ایمیل بفرستد و هم FTP. چطور بسته میفهمد که باید به کدام سرویس برود؟ با استفاده از پورتها.
پورتها اعدادی بین ۰ تا ۶۵۵۳۵ هستند. وقتی یک بسته میرسد، پورت مقصد مشخص میکند که کدام برنامه باید این بسته را بگیرد. بعضی پورتها معروف هستند:
- پورت ۸۰: HTTP (وب سایت معمولی)
- پورت ۴۴۳: HTTPS (وب سایت امن)
- پورت ۲۵: SMTP (ارسال ایمیل)
- پورت ۱۱۰: POP3 (دریافت ایمیل)
- پورت ۲۱: FTP (انتقال فایل)
- پورت ۲۲: SSH (اتصال امن به سرور)
- پورت ۵۳: DNS (سیستم نام دامنه)
- پورت ۶۷/۶۸: DHCP (گرفتن آیپی)
- پورت ۱۲۳: NTP (همگامسازی زمان)
مسیریابی (Routing) در اینترنت
اینترنت از میلیونها روتر تشکیل شده است. این روترها با هم تبادل اطلاعات میکنند و میدانند هر آیپی در کدام مسیر قرار دارد. وقتی یک بسته وارد روتر میشود، روتر به جدول مسیریابی خود نگاه میکند و بهترین مسیر را به مقصد انتخاب میکند.
پروتکلهای مسیریابی معروف:
- BGP (Border Gateway Protocol): پروتکل اصلی مسیریابی در اینترنت. تعیین میکند که بستهها چطور از یک شبکه به شبکه دیگر بروند.
- OSPF (Open Shortest Path First): برای مسیریابی داخل یک شبکه بزرگ (مثل داخل یک شرکت مخابراتی)
- RIP (Routing Information Protocol): قدیمی و ساده، مناسب شبکههای کوچک
تکه تکه شدن بسته (Fragmentation)
هر شبکه حداکثر اندازه مشخصی برای بسته دارد (MTU - Maximum Transmission Unit). برای اترنت معمولی، MTU ۱۵۰۰ بایت است. اگر بستهای بزرگتر از MTU یک شبکه باشد، روتر آن را به چند تکه کوچکتر تقسیم میکند (fragmentation). در مقصد، این تکهها دوباره سرهم میشوند. در IPv6 این کار حذف شده و فقط فرستنده میتواند بسته را تکه تکه کند.
Traceroute: مسیر بستهها را ببینید
با دستور traceroute (در ویندوز tracert) میتوانید ببینید بسته شما از چه مسیری و از چه روترهایی عبور میکند تا به مقصد برسد. این خیلی جالب است. مثلاً در ویندوز بنویسید: tracert google.com
خواهید دید که بسته شما چند تا روتر رد میشود و هر کدام چقدر زمان میبرند.
مشکلات رایج در TCP/IP
- از دست رفتن بسته (Packet Loss): بعضی بستهها نمیرسند. TCP دوباره میفرستد.
- تأخیر (Latency): زمان رفت و برگشت بسته بالاست. برای بازی و تماس تصویری بد است.
- شلوغی شبکه (Congestion): خیلی بسته در شبکه وجود دارد. TCP سرعت را کم میکند.
- پورت بسته (Port Blocking): شرکت اینترنت یا فایروال بعضی پورتها را بسته است.
- NAT مشکلساز (NAT Traversal): برای بعضی برنامهها (مثل بازیهای آنلاین) که نیاز به ارتباط مستقیم دارند، NAT میتواند مشکل ایجاد کند.
ابزارهای خط فرمان برای تست TCP/IP
- ping: بررسی میکند که آیا یک دستگاه زنده است و چقدر تأخیر دارد. مثال: ping google.com
- tracert / traceroute: مسیر رسیدن به مقصد را نشان میدهد. مثال: tracert google.com
- netstat: ارتباطات شبکه و پورتهای باز را نشان میدهد.
- ipconfig (ویندوز) / ifconfig (لینوکس): تنظیمات شبکه را نشان میدهد.
- nslookup: نام دامنه را به آیپی تبدیل میکند. مثال: nslookup google.com
- telnet: به یک پورت خاص وصل میشود (برای تست باز بودن پورت).
جمعبندی نهایی
TCP/IP ستون فقرات اینترنت امروزی است. TCP مسئول اطمینان از رسیدن صحیح دادههاست و IP مسئول مسیریابی بستهها به مقصد درست. هر دو با هم کار میکنند تا شما بتوانید این صفحه را ببینید، یک ایمیل بفرستید یا یک فیلم را آنلاین تماشا کنید.
TCP با دست دادن سهطرفه، شمارهگذاری سگمنتها، تأیید رسیدن، ارسال مجدد بستههای گمشده و کنترل تراکم، یک ارتباط قابل اطمینان ایجاد میکند. در مقابل، UDP سریع است ولی قابل اطمینان نیست و برای استریم و بازی مناسب است.
امیدوارم این مقاله کامل به دردتان خورده باشد. اگر سوالی درباره TCP/IP دارید، بپرسید تا جواب بدهم.
نظرات (0)
اولین نفر باشید!
برای ثبت نظر وارد شوید