قرداد هدایت انتقال یا (Transmission Control Protoco) TCP
TCP مجموعه از پروتکل های قراردادی است که پایه و اساس اینترنت میباشد که به آن قرارداد کنترل انتقال و یا پروتکل انتقال نیز گفته میشود.
TCP بر اساس (IPv4) شامل چهار لایه است:
- 1.لایه دسترسی به شبکه ( (Network Interface Physical
- 2.لایه ارتباط اینترنتی یا اینترنت
- 3.لایه ارتباطات میزبان به میزبان یا انتقال
- 4.لایه سرویسهای کاربردی (Application)
برای برقراری یک ارتباط گفتاری بوسیله اینترنت، در لایه انتقالاز دو پروتکل TCP و UDP استفاده میشود. پروتکل TCP انتقال داده را با دقت و امنیت بالا انجام میدهد در حالیکه ویژگی پروتکل UDP انتقال سریع اطلاعات، بدون در نظر گرفتن مسائل امنیتی برای انتقال داده است.
محتویات
- پروتکلهای موجود در لایه Network پروتکل TCP/IP
- پروتکل UDP یا User Datagram Protocol
- پروتکل IP)Internet Protocol)
- ساختاره بسته های پروتکل TCP
- Reference
- پی نوشت
پروتکل TCP/IP (پروتکلهای موجود در لایهNetwork )
مهمترین وظیفه پروتکل TCP اطمینان از صحت ارسال اطلاعات است. پروتکل فوق اصطلاحا"" Connection-oriented نامیده میشود. علت این امر ایجاد یک ارتباط مجازی بین کامپیوترهای فرستنده و گیرنده بعد از ارسال اطلاعات است. پروتکل هائی از این نوع، امکانات بیشتری رابه منظور کنترل خطاهای احتمالی در ارسال اطلاعات فراهم نموده ولی بدلیل افزایش بار عملیاتی سیستم کارایی آنان کاهش خواهد یافت. از پروتکل TCPبه عنوان یک پروتکل قابل اطمینان نیز یاد میشود. به این علت که برای آگاهی از صحت اطلاعات ارسال شده، اطلاعات دیگری نیز به گیرنده فرستاده میشود. در صورتی که بستههای اطلاعاتی بدرستی دراختیار فرستنده قرار نگیرند، فرستنده مجددا" اقدام به ارسال اطلاعات مینماید.
پروتکل (User Datagram Protocol) UDP
این پروتکل نظیر پروتکل TCP در لایه "حمل" فعالیت مینماید.UDP بر خلاف پروتکل TCP بصورت "بدون اتصال" است. بدیهی است که سرعت پروتکل فوق نسبت به TCP سریعتر بوده ولی از بعد کنترل خطاء تنظیمات لازم را ارائه نخواهد داد. بهترین جایگاه استفاده از پروتکل فوق در مواردی است که برای ارسال و دریافت اطلاعات به یک سطح بالا از اطمینان، نیاز نداشته باشیم.
پروتکل IP Internet Protocol))
پروتکل فوق در لایه شبکه ایفای وظیفه کرده و مهمترین مسئولیت آن دریافت و ارسال بستههای اطلاعاتی به مقاصد درست است. پروتکل فوق با استفاده از آدرسهای نسبت داده شده منطقی، عملیات روتینگ را انجام خواهد داد.
ساختاره بستههای پروتکل TCP
در این قسمت ساختار یک بسته TCP را تشریح خواهیم کرد:
- فیلدsource port : این فیلد ۱۶ بیتی آدرس پورت فرستنده را به همراه دارد.
- فیلدdestination port : این فیلد ۱۶ بیتی آدرس پورت مقصد را که با به تحیل شود را دارا است.
- فیلدSequence Number : این فیلد سی ودو بیتی شماره ترتیب آخرین بایتی را که در فیلد داده از بسته جاری قرار دارد را نشان میدهد. در پرتکل TCP شماره ترتیب، بر حسب شماره آخرین بایتی است که در بسته جاری قرار دارد. بعنوان مثال اگر در این فیلد عدد ۱۹۳۴۱ قرار بگیرد به این معناست که دادها تا بایت ۱۹۳۴۱ درون این درون فیلد دادها قرار دارد.
- فیلد Acknowledgment number:این فیلد ۳۲ بیتی شماره ترتیبی بایتی است که گیرنده بسته برای تائید به فرستنده ارسال میکند که دادها تا بایتی که در این فیلد قرار دارد به درستی دریافت شده باشند. به عنوان مثال اگر در این فیلد عدد ۱۲۳۶۵ قرار گرفته شود به این معنی است که دادها تا بایت ۱۲۳۶۵ صحیح و کامل دریافت شدهاست و در انتظار بایتهای ۱۲۳۶۷ به بعد میباشد.
- فیلد قرارداد هدایت انتقالLength : عددی که در این فیلد قرار میگیرد طول کل سرآیند بسته TCP بر مبنای کلمات ۳۲بیتی تعیین میکند. به عنوان مثال اگر در این فیلد عدد ۷ قرار بگیرد طول سر آیند بسته برابر است با 28=۷*۴ بایت خواهد بود (این فیلد کلا چهار بیتی است).
- فیلدWindow size: مقدار قرار گرفته در این فیلد مشخص می کند که مقدار بافر گیرنده چند بایت دیگر فضای خالی دارد.
- فیلدChecksum: در این فیلد ۱۶ بیتی کد کشف خطا قرار میگیرد.
- فیلدTCP Segment length: در آن طول کل بسته TCP قرار میگیرد.
- فیلدUrgent Pointer: در این فیلد عدد بعنوان اشاره گر قرار میگیرد که مو قعیت دادهای اظطراری را درون بسته مشخص میکند. این دادها زمانی اتفاق میافتد و ارسال میشود که عملی شبیه وقوع وقفه در هنگام اجرای یک برنامه کاربری رخ دهد. بدون آنکه ارتباط قطع شود دادها درون همین بسته جاری قرار گرفته و ارسال میشود. لازم به ذکر است که از این فیلد لایههای بالاتر استفاده میکنند.
بیتهای پرچم:
- بیتURG : در صورتی که در این بیت عدد ۱ قرار گیرد معین میشود که در فیلد Urgent Pointer مقدار قابل معتبری قرار دارد و بایستی مورد پردازش قرار گیرد.
- بیت ACK:اگر در این بیت عدد ۱ قرار داشته باشد به این معنا است که در فیلدAcknowledgment number عدد معتبری قرار دارد. بیتهای ACKو SYN نقش دیگری نیز دارند که در ادامه بدان اشاره خواهد شد.
- بیتPSH : اگر در این بیت عدد ۱ قرار گرفته باشد از گیرنده تقاظا میشود که داده های موجود را بافر نکرده و در اسرع وقت تحویل برنامه کاربری صاحب آن شود.
- بیت RST: اگر در این بیت عدد ۱ قرار گرفته شود به این معنا است که این ارتباط به صورت یک طرفه خاتمه یافته است.
- بیت SYN: این بیت نقش اساسی در ار تباط یک بسته TCP بازی میکند. برقراری ارتباط یک طرفه TCP از روند زیر تبعیت میکند.
شروع کننده ارتباط یک بستهTCP بدون هیچ دادهای و با تنظیم بیتهای 1SYN= و 0 ACK= تقاضای یک ارتباط جدید میکند. در صورتی که طرف مقابل تمایل به برقراری ارتباط داشته باشد برای طرف مقابل یک بسته با قرار دادن بیتهای 1 SYN= و 1ACK= تمایل خود را برای برقراری ارتباط به طرف مقابل اعلام میکند.
- بیت FIN: اگر یکی از طرفین هیچ داده دیگری برای فرستادن نداشته باشد در آخرین بسته بیت برابر ۱ قرار میدهد و ارتباط را یک طرفه قطع میکند، باید توجه داشته که ارتباط هنوز به طور کامل قطع نشدهاست و باید طرف مقابل نیز در آخرین بسته خود این فیلد را برابر ۱ قرار داده تا ارتباط کامل قطع شود.