معرفی تمامی پرچمهای ارتباطی TCP و کاربردهای آنها
پروتکل کنترل انتقال یا TCP (Transmission Control Protocol) یکی از پروتکلهای اصلی در مجموعه پروتکلهای اینترنت است که وظیفه تضمین ارتباط قابلاعتماد بین دست....


لیست مطالب
پروتکل کنترل انتقال یا TCP (Transmission Control Protocol) یکی از پروتکلهای اصلی در مجموعه پروتکلهای اینترنت است که وظیفه تضمین ارتباط قابلاعتماد بین دستگاهها را برعهده دارد. TCP بستههای داده را مدیریت کرده و با استفاده از کنترل خطاها و تصحیح آنها، اطمینان حاصل میکند که دادهها بهدرستی بین فرستنده و گیرنده منتقل میشوند. در فرآیند انتقال این دادهها، TCP از پرچمهای مختلفی در سرآیند (هدر) خود استفاده میکند که وظیفه آنها اعلام دستورات خاص و مدیریت وضعیت اتصال است.
در این مقاله به بررسی هر یک از این پرچمها، زمان استفاده از آنها و نقشی که در فرآیند انتقال داده ایفا میکنند، خواهیم پرداخت.
مروری بر پرچمهای TCP
TCP شش پرچم اصلی دارد که برای کنترل جریان دادهها و وضعیت اتصال بین دو سیستم استفاده میشوند. هر کدام از این پرچمها برای اهداف خاصی طراحی شدهاند:
پرچم SYN (Synchronize)
کاربرد: این پرچم زمانی استفاده میشود که یک دستگاه میخواهد ارتباط جدیدی را آغاز کند. به عبارتی، فرستنده با ارسال این پرچم درخواست میکند تا یک اتصال TCP جدید با گیرنده برقرار شود.
شرح عملکرد: SYN اولین پیام در فرآیند "سهمرحلهای دست دادن" (Three-Way Handshake) است که برای برقراری اتصال استفاده میشود. این پرچم همچنین نشاندهنده شماره دنباله (Sequence Number) اولیهای است که قرار است در انتقال دادهها استفاده شود.
پرچم ACK (Acknowledgment)
کاربرد: این پرچم تأیید میکند که بستهای که فرستنده ارسال کرده است، بهدرستی دریافت شده است.
شرح عملکرد: پرچم ACK در هر دو طرف ارتباط TCP استفاده میشود و معمولاً بعد از دریافت یک بسته با پرچم SYN یا داده ارسالشده، یک ACK ارسال میشود تا دریافت موفقیتآمیز داده تأیید شود. این پرچم در تمامی مراحل ارسال و دریافت دادهها برای اطمینان از صحت ارتباط مورد استفاده قرار میگیرد.
پرچم FIN (Finish)
کاربرد: پرچم FIN برای پایان دادن به یک ارتباط فعال بین دو دستگاه استفاده میشود. زمانی که یکی از طرفین بخواهد ارتباط را خاتمه دهد، بستهای با پرچم FIN فعال ارسال میکند. این بسته به مقصد میگوید که فرستنده دیگر قصد ارسال داده ندارد و ارتباط باید بسته شود.
شرح عملکرد: این پرچم بخشی از فرآیند قطع ارتباط است. وقتی دستگاهی این پرچم را ارسال میکند، اعلام میکند که دیگر دادهای برای ارسال ندارد و میخواهد ارتباط را پایان دهد. فرآیند قطع ارتباط نیز همانند برقراری ارتباط، یک نوع دستدهی (Handshake) انجام میشود که شامل پرچمهای FIN و ACK است.
پرچم RST (Reset)
کاربرد: پرچم RST برای بازنشانی یک اتصال استفاده میشود. زمانی که یک اتصال نادرست یا اشتباهی تشخیص داده شود، یا زمانی که خطایی در ارتباط رخ دهد، بستهای با پرچم RST ارسال میشود تا اتصال جاری بازنشانی گردد. این پرچم برای مواقعی استفاده میشود که دیگر امکان ادامه ارتباط به صورت نرمال وجود ندارد و نیاز به متوقف کردن سریع ارتباط است.
شرح عملکرد: اگر یکی از طرفین اتصال بخواهد ارتباط را فوراً خاتمه دهد یا اگر خطای جدی در ارتباط رخ داده باشد (مثل ارسال دادهها به پورتی که در حال گوش دادن نیست)، پرچم RST ارسال میشود. این پرچم نشاندهنده این است که اتصال باید فوراً بسته شود.
پرچم PSH (Push)
کاربرد: پرچم PSH زمانی استفاده میشود که دادهها باید بدون تأخیر به لایه بالاتر تحویل داده شوند. به طور معمول، دادهها در یک بافر جمعآوری میشوند و سپس به لایه بالاتر تحویل داده میشوند، اما زمانی که پرچم PSH فعال باشد، فرستنده از گیرنده میخواهد که دادهها را بلافاصله پردازش و تحویل لایه بالاتر نماید. این پرچم به خصوص در زمانهایی که زمانبندی و سرعت پردازش مهم است، استفاده میشود.
شرح عملکرد: معمولاً دادهها در TCP بهصورت بافر شده ارسال میشوند. اما اگر پرچم PSH تنظیم شده باشد، به گیرنده اعلام میشود که دادههای دریافتشده باید فوراً به برنامه کاربردی (Application) ارسال شود و منتظر پردازشهای بیشتر نباشد.
پرچم URG (Urgent)
کاربرد:پرچم URG نشاندهنده دادههای اضطراری است که باید سریعتر از بقیه دادهها پردازش شوند. هنگامی که پرچم URG فعال میشود، نشاندهنده این است که بخشی از دادهها باید با اولویت بالاتر به پردازشگر مقصد تحویل داده شود. این پرچم به همراه یک فیلد به نام "نشانگر اضطراری" (Urgent Pointer) استفاده میشود که نشان میدهد دادههای اضطراری تا کدام قسمت از بسته قرار دارند.
شرح عملکرد: اگر پرچم URG تنظیم شده باشد، نشان میدهد که بخشی از دادههای ارسالشده باید بهطور فوری پردازش شود. این پرچم همچنین با یک شماره اضطراری (Urgent Pointer) همراه است که نشان میدهد کدام بخش از دادهها اضطراری هستند.
در تصویر فوق، پرچمهای اصلی پروتکل TCP و محل قرارگیری آنها در سرآیند (هدر) TCP نشان داده شده است. در سمت راست تصویر، ساختار هدر TCP نشان داده شده است که شامل بخشهای مختلفی مانند پورت مبدأ و مقصد، شماره ترتیب (Sequence Number)، شماره تأیید (Acknowledgment Number) و پرچمهای TCP میشود. پرچمهای TCP در یک قسمت اختصاصی از هدر جای میگیرند که با رنگ سبز مشخص شده و هر بیت در این بخش به یکی از این پرچمها اختصاص دارد.
فرآیند دستدهی سهمرحلهای (Three-Way Handshake)
یکی از مهمترین کاربردهای پرچمهای TCP در فرآیند برقراری ارتباط است که به آن دستدهی سهمرحلهای گفته میشود. این فرآیند شامل سه مرحله است:
- SYN: ابتدا فرستنده یک بسته با پرچم SYN به گیرنده ارسال میکند تا درخواست برقراری ارتباط دهد.
- SYN-ACK: گیرنده پس از دریافت بسته SYN، بستهای با پرچم SYN و ACK ارسال میکند تا تأیید کند که درخواست برقراری ارتباط را دریافت کرده است.
- ACK: فرستنده در نهایت یک بسته با پرچم ACK ارسال میکند تا برقراری ارتباط را تأیید کند. پس از این مرحله، ارتباط TCP برقرار شده و دو طرف میتوانند به ارسال و دریافت دادهها بپردازند.
فرآیند خاتمه اتصال (Connection Termination)
خاتمه یک ارتباط TCP نیز شامل استفاده از پرچمهای TCP است. این فرآیند به شکل زیر انجام میشود:
- یک طرف ارتباط بستهای با پرچم FIN ارسال میکند تا اعلام کند که دیگر دادهای برای ارسال ندارد.
- طرف دیگر بستهای با پرچم ACK ارسال میکند تا دریافت درخواست خاتمه ارتباط را تأیید کند.
- پس از مدتی، طرف دوم نیز بستهای با پرچم FIN ارسال میکند تا ارتباط را بهطور کامل خاتمه دهد.
- در نهایت، طرف اول یک بسته با پرچم ACK ارسال میکند تا خاتمه ارتباط تأیید شود.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)