اخبار داخلی آرمان داده پویان

مقالات

پروتکل TCP (قسمت دوم)

۱۰ بهمن ۱۳۹۶

پروتکل TCP

قسمت دوم

ساختار سرآیند TCP


به مجموع سرآیند TCP و TCP در یک بسته، سگمنت TCP میگویند.

پورتها به سه دسته تقسیم میگردند:

  • پورت‌های شناخته شده (۰-۱۰۲۳)
  • پورت‌های ثبت‌شده (۱۰۲۴-۴۹۱۵۱)
  • پورت‌های اختصاصی (۴۱۵۲-۶۵۵۳۵)
پورت مبدا:

به طور مثال همیشه Telnet بر روی پورت TCP 23 سرویس میدهد. در نتیجه یک زوج آدرس IP (مبدا و مقصد) به علاوه یک زوج پورت (مبدا و مقصد) یک ارتباط TCP یکتا را مشخص میکند.

پورت مقصد:

در این قسمت همان شماره پورتی که در مبدا مشخص شده است قرار میگیرد.

شماره ترتیب:

یک عدد ۳۲ بیتی است که جایگاه اولین بایت داده را در سگمنت مشخص مینماید. بعد از اینکه این عدد به ۲۳۲ رسید، دوباره به صفر بازگردانی میشود.

شماره تصدیق:

یک عدد ۳۲ بیتی است که بایتی که از آن دادهی بعدی شروع میشود را مشخص میکند. این شماره یکی بیشتر از دادهای است که اخیرا دریافت شده است. این قسمت تنها زمانی که بیت کنترل ACK فعال است، استفاده میشود.

طول سرآیند:

این قسمت طول سرآیند را تعیین می‌نماید و بدین دلیل در نظر گرفته شده است که سایز قسمتهای مختلف از قبل مشخص نمیباشد.

پرچم‌ها

 

URG:

اگر این قسمت مشخص گردد،  TCP بایستی قسمت urgent pointer را تفسیر نماید.

ACK:

اگر این قسمت تعیین گردد به معنای آن است که قسمت تصدیق که قبلتر مشخص شده است، معتبر میباشد.

PSH:

اگر این قسمت تعیین گردد بدین معناست که گیرنده بایستی این سگمنت را به سرعت و در اولین فرصت به برنامهی کاربردی گیرنده تحویل دهد. یک مثال از این حالت ارسال یک درخواست Control-BREAK به یک برنامهی کاربردی است تا بتواند جلوتر از دادههای در صف بپرد.

RST:

اگر این بیت مشخص گردد بدین معنی است که فرستنده می‌تواند ارتباط را قطع نماید و تمامی دادههای در صف و بافرها اختصاص داده شده آزاد می‌شوند.

SYN:

این بیت بدین معنی است که فرستنده میخواهد شمارهی sequence ها را همگام سازد. این بیت در طول مراحل اولیهی ایجاد ارتباط بین فرستنده و گیرنده مشخص میگردد.

Fin:

یعنی No More Data from Sender (FIN). اگر این بیت مشخص گردد یعنی فرستنده به انتهای جریان دادهای که قصد ارسال آن را داشته، رسیده است و چیز بیشتری برای ارسال ندارد.

  • پنچره:

سایز این پنجره مشخص برای فرستنده مشخص مینماید که گیرنده تا چه میزان میتواند داده دریافت کند. بزرگترین اندازهی پنجره ۶۵٫۵۳۵ بایت میباشد. در هر صورت گزینهی ‘window scale’ به فرستنده اجازه میدهد حتی پنجرهی بزرگتر هم بسازد.

  • اشاره‌گر Urgent:

در برخی شرایط لازم است که داده‌ی دریافت شده، توسط برنامه‌ی کاربردی گیرنده به سرعت پردازش شود. این فیلد به گیرنده می‌گوید چه زمانی آخرین بایت از داده‌ی ضروری (urgent data) پایان می‌یابد.

  • گزینه‌ها:

    برای بهبود کارایی گزینه‌های بیشتری در TCP وجود دارد.

    گزینه‌ی MSS (maximum segment size) یکی از آن‌هاست. دیگر گزینه‌ها مربوط به کنترل جریان و کنترل ازدحام می‌باشد.

  • Padding:

    چون گزینه‌ها متفاوت است، ممکن است نیاز باشده از “pad” استفاده شود و مابقی سرآیند TCP با صفر پر شود. این کار بدین منظور است که سگمنت ۳۲ بیتی شود و استاندارد بماند.

  • داده:

    این قسمت حاوی داده‌های برنامه‌های کاربردی می‌باشد. این قسمت با سرآیند TCP ترکیب شده و یک سگمنت TCP را تشکیل می‌دهد.

برقراری ارتباط و قطع ارتباط

این قسمت حاوی دادههای برنامههای کاربردی میباشد. این قسمت با سرآیند TCP ترکیب شده و یک سگمنت TCP را تشکیل میدهد.

ایجاد ارتباط/ قطع ارتباط

TCP در جهت ایجاد یک ارتباط TCP سه فاز وجود دارد.

  • ایجاد ارتباط
  • انتقال داده
  • قطع ارتباط

دستدهی سه مرحله (Three-Way Handshake)

دو میزبان برای اینکه بتواندد با یکدیگر ارتباط TCP برقرار نمایند این سه مرحله را بایستی انجام دهند.

روند دستدهی سه مرحله را میتوانید در شکل زیر مشاهده نمایید.

 پنجره لغزان و کنترل جریان

 

کنترل جریان روشی است که به فرستنده کمک مینماید دادهی خود را بر مبنای توان گیرنده ارسال نماید. در شکل زیر میتوانید مفهوم پنجره لغزان را مشاهده نمایید.

تعداد بازدید: 752


تازه ترین ها