پروتکل هدایت انتقال: تفاوت میان نسخه‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
محتوای حذف‌شده محتوای افزوده‌شده
Bahmanshams (بحث | مشارکت‌ها)
جز اصلاح اشتباه های نوشتاری
Bahmanshams (بحث | مشارکت‌ها)
جز اصلاح اشتباه نوشتاری
خط ۴۱: خط ۴۱:
فیلد TCP [[Segment]] length: در آن طول کل بسته TCP قرار می‌گیرد
فیلد TCP [[Segment]] length: در آن طول کل بسته TCP قرار می‌گیرد


فیلدUrgent Pointer: در این فیلد عدد بعنوان [[اشاره گر]] قرار می‌گیرد که مو قعیت داده های اضطراری را درون بسته مشخص می‌کند. این داده ها زمانی اتفاق می‌افتد و ارسال می‌شود که عملی شبیه وقوع وقفه در هنگام اجرای یک برنامه کاربردی رخ دهد. بدون آنکه ارتباط قطع شود داده ها درون همین بسته جاری قرار گرفته و ارسال می‌شود. لازم به ذکر است که از این فیلد لایه‌های بالاتر استفاده می‌کنند.
فیلدUrgent Pointer: در این فیلد عدد بعنوان [[اشاره گر]] قرار می‌گیرد که موقعیت داده های اضطراری را درون بسته مشخص می‌کند. این داده ها زمانی اتفاق می‌افتد و ارسال می‌شود که عملی شبیه وقوع وقفه در هنگام اجرای یک برنامه کاربردی رخ دهد. بدون آنکه ارتباط قطع شود داده ها درون همین بسته جاری قرار گرفته و ارسال می‌شود. لازم به ذکر است که از این فیلد لایه‌های بالاتر استفاده می‌کنند.
{| class="wikitable" style="text-align:center"
{| class="wikitable" style="text-align:center"
|+TCP Header
|+TCP Header

نسخهٔ ‏۲ سپتامبر ۲۰۱۶، ساعت ۱۸:۲۳

قرارداد هدایت انتقال[۱]، یا TCP (به انگلیسی: Transmission Control Protocol) که همچنین قرارداد کنترل انتقال و یا پروتکل کنترل انتقال نیز گفته می‌شود؛ مجموعه‌ای از پروتکل‌های قراردادی است که پایه و اساس اینترنت می‌باشد.

TCP(بر اساس IPv4) شامل چهار لایه‌است:

  1. لایه دسترسی به شبکه (Network Interface Physical)
  2. لایه ارتباط اینترنتی یا اینترنت (اینترنت)
  3. لایه ارتباطات میزبان به میزبان یا انتقال (ترابری)
  4. لایه سرویس‌های کاربردی (Application)

برای برقراری یک ارتباط گفتاری بوسیله اینترنت، در لایه انتقال از دو پروتکل TCP و UDP استفاده می‌شود. پروتکل TCP انتقال داده را با دقت و امنیت بالا انجام می‌دهد در حالیکه ویژگی پروتکل UDP انتقال سریع اطلاعات، بدون در نظر گرفتن مسائل امنیتی برای انتقال داده است.

پروتکل‌های موجود در لایه Network پروتکل TCP/IP

مهمترین وظیفه پروتکل TCP اطمینان از صحت ارسال اطلاعات است. پروتکل فوق اصطلاحاً" ارتباط اتصال‌گرا نامیده می‌شود. علت این امر ایجاد یک ارتباط مجازی بین کامپیوترهای فرستنده و گیرنده بعد از ارسال اطلاعات است. پروتکل هائی از این نوع، امکانات بیشتری رابه منظور کنترل خطاهای احتمالی در ارسال اطلاعات فراهم نموده ولی بدلیل افزایش بار عملیاتی سیستم کارایی آنان کاهش خواهد یافت. از پروتکل TCPبه عنوان یک پروتکل قابل اطمینان نیز یاد می‌شود. به این علت که برای آگاهی از صحت اطلاعات ارسال شده، اطلاعات دیگری نیز به گیرنده فرستاده می‌شود. در صورتی که بسته‌های اطلاعاتی بدرستی دراختیار فرستنده قرار نگیرند، فرستنده مجدداً" اقدام به ارسال اطلاعات می‌نماید.

پروتکل UDP یا User Datagram Protocol

این پروتکل نظیر پروتکل TCP در لایه " حمل " فعالیت می‌نماید. UDP بر خلاف پروتکل TCP بصورت " بدون اتصال " است . بدیهی است که سرعت پروتکل فوق نسبت به TCP سریعتر بوده ولی از بعد کنترل خطا تنظیمات لازم را ارایه نخواهد داد. بهترین جایگاه استفاده از پروتکل فوق در مواردی است که برای ارسال و دریافت اطلاعات به یک سطح بالا از اطمینان، نیاز نداشته باشیم.

پروتکل IP)Internet Protocol)

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

ساختاره بسته‌های پروتکل TCP

در این قسمت ساختار یک بسته TCP را تشریح خواهیم کرد

  • فیلد source port: این فیلد ۱۶ بیتی آدرس پورت فرستنده را به همراه دارد
  • فیلد destination port: این فیلد ۱۶ بیتی آدرس پورت مقصد را که باید تحویل شود را دارا است.
  • فیلدSequence Number: این فیلد سی ودو بیتی شماره ترتیب آخرین بایتی را که در فیلد داده از بسته جاری قرار دارد را نشان می‌دهد.

در پرتکل TCP شماره ترتیب، بر حسب شماره آخرین بایتی است که در بسته جاری قرار دارد. بعنوان مثال اگر در این فیلد عدد ۱۹۳۴۱ قرار بگیرد به این معناست که داده ها تا بایت ۱۹۳۴۱ درون این فیلد داده ها قرار دارد.

فیلد Acknowledgment number: این فیلد ۳۲ بیتی شماره ترتیبی بایتی است گیرنده بسته برای تائید به فرستنده ارسال می‌کند که دادها تا بایت که در این فیلد قرار دارد به درستی دریافت شده‌است. به عنوان مثال اگر در این فیلد عدد ۱۲۳۶۵ قرار گرفته شود به این معنی است که دادها تا بایت ۱۲۳۶۵ صحیح و کامل دریافت شده‌است و در انتظار بایتهای ۱۲۳۶۷ به بعد می‌باشد.

فیلد قرارداد هدایت انتقال Length: عددی که در این فیلد قرار می‌گیرد طول کل سرآیند بسته TCP بر مبنای کلمات ۳۲ بیتی تعیین می‌کند. به عنوان مثال اگر در این فیلد عدد ۷ قرار بگیرد طول سر آیند بسته برابر است با 28=۷*۴ بایت خواهد بود (این فیلد کلاً چهار بیتی است).

بیتهای پرچم: • بیت URG: در صورتی که در این بیت عدد ۱ قرار گیرد معین می‌شود که در فیلد Urgent Pointer مقدار قابل معتبری قرار دارد و بایستی مورد پردازش قرار گیرد. • بیت ACK: اگر در این بیت عدد ۱ قرار داشته باشد به این معنا است که در فیلد Acknowledgment number عدد معتبری قرار دارد. بیتهای ACKو SYN نقش دیگری نیز دارند که در ادامه بدان اشاره خواهد شد. • بیتPSH: اگر این بیت مقدار ۱ قرار گرفته باشد از گیرنده تقاضا می‌شود که داده های موجود را بافر نکرده و در اسرع وقت تحویل برنامه کاربردی صاحب آن شود. • بیت RST: اگر در این بیت عدد ۱ قرار گرفته شود به این معنی است که این ارتباط به صورت یک طرفه خاتمه یافته‌است. • بیت SYN: این بیت نقش اساسی در ارتباط یک بسته TCP بازی می‌کند. برقراری ارتباط یک طرفه TCP از روند زیر تبعیت می‌کند • شروع کننده ارتباط یک بستهTCP بدون هیچ داده‌ای و با تنظیم بیتهای 1= SYN و ACK=۰ تقاضای یک ارتباط جدید می‌کند • در صورتی که طرف مقابل تمایل به بر قراری ارتباط داشته باشد برای طرف مقابل یک بسته با قرار دادن بیتهای 1= SYN و ACK=۱ تمایل خود را برای برقراری ارتباط به طرف مقابل اعلام می‌کند • بیت FIN: اگر یکی از طرفین هیچ داده دیگری برای فرستادن نداشته باشد این بیت را در آخرین بسته برابر ۱ قرار می‌دهد و ارتباط را یک طرفه قطع می‌کند باید توجه داشته که ارتباط هنوز به طور کامل قطع نشده‌است و باید طرف مقابل نیز در آخرین بسته خود این فیلد را برابر ۱ قرار داده تا ارتباط کامل قطع شود.

فیلد Window size: مقدار قرار گرفته در این فیلد مشخص میکند که مقدار بافر گیرنده چند بایت دیگر فضای خالی دارد.

فیلد Checksum: در این فیلد ۱۶ بیتی کد کشف خطا قرار می‌گیرد

فیلد TCP Segment length: در آن طول کل بسته TCP قرار می‌گیرد

فیلدUrgent Pointer: در این فیلد عدد بعنوان اشاره گر قرار می‌گیرد که موقعیت داده های اضطراری را درون بسته مشخص می‌کند. این داده ها زمانی اتفاق می‌افتد و ارسال می‌شود که عملی شبیه وقوع وقفه در هنگام اجرای یک برنامه کاربردی رخ دهد. بدون آنکه ارتباط قطع شود داده ها درون همین بسته جاری قرار گرفته و ارسال می‌شود. لازم به ذکر است که از این فیلد لایه‌های بالاتر استفاده می‌کنند.

TCP Header
Offsets Octet ۰ ۱ ۲ ۳
Octet بیت (رایانه)  0  1  2  3  4  5  6  7  8  9 ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱
۰   0 Source port Destination port
۴  32 Sequence number
۸  64 Acknowledgment number (if ACK set)
۱۲  96 Data offset Reserved
0 0 0
N
S
C
W
R
E
C
E
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Window Size
۱۶ ۱۲۸ Checksum Urgent pointer (if URG set)
۲۰
...
۱۶۰
...
Options (if Data Offset > 5, padded at the end with "0" bytes if necessary)
...

References

۱. شبکه‌های کامپیوتری

پی‌نوشت

  1. واژهٔ مصوب فرهنگستان زبان و ادب فارسی، دفتر نخست تا چهارم، ۱۳۷۶ تا ۱۳۸۵