باشگاه شبکه و امنیت تهران
Search
Generic filters

پروتکل TCP چیست؟ بررسی TCP Header

مدرس : امیر ساتکین
دوره +Network فصل7 درس1
نام درس : پروتکل TCP چیست؟ بررسی TCP Header
نام فصل : سرویس های مبتنی بر پروتکل IP
پیشنیاز :
دسته بندی : +Network
معرفی این ویدیو آموزشی به دوستان

دوره های آموزشی

پروتکل TCP چیست

پروتکل TCP در لایه 4 مدل OSI یعنی Transport کار می کند. پروتکل TCP دیتا را از برنامه های کاربردی در لایه اپلیکیشن دریافت و در صورت بزرگ بودن دیتا (بیشتر از 1460 بایت) آنها را به قطعه های کوچک تر تقسیم می کند تا حمل آنها در شبکه به راحتی انجام شود. بعد از خرد کردن دیتا مشخصات مورد نظر مثل شماره پورت برنامه مبدا و مقصد، شماره ترتیب دیتا، مقادیر TCP Flag، مقدار Checksum و … را در هدر معین می کند. پس از آماده شدن TCP Segment (به tcp payload و tcp header گفته می شود)، پروتکل IP آن را تحویل و به سمت مقصد آدرس دهی و ارسال می کند. TCP به اپلیکیشن ارسال کننده دیتا تضمین می دهد آن را به صورت سالم و کامل به مقصد برساند. مهندسین نرم افزار و برنامه نویسان شبکه، اپلیکیشن ها را طوری برنامه نویسی (socket programming) می کنند تا داده هایی که دریافت سالم و کامل آن توسط مقصد از سریع تر رسیدن آن اهمیت بیشتری دارد، تحویل پروتکل TCP شوند. معمولا اپلیکیشن ها داده های بیشتر از 512 بایت را تحویل پروتکل TCP می دهند. پروتکل TCP برای ارسال بسته های دیتا به کمک پروتکل آی پی نیاز دارد. شماره پروتکل TCP برابر با 6 است. پروتکل آی پی شماره TCP را در هدر خود، در فیلدی بنام پروتکل قرار می دهد تا پروتکل IP در ماشین مقصد بفهمد باید IP Payload را تحویل پروتکل TCP دهد.

وظایف پروتکل TCP

TCP پروتکل پیچیده و با خصوصیات زیاد است که موارد زیر را در انتقال داده تضمین می کند:

  • TCP Delivery 

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

  • TCP Error Correction and Detection

درصورت بروز هرگونه مشکل و آسیب برای داده ها در مسیر شبکه و یا نرسیدن به برنامه کاربردی در کامپیوتر مقصد، توسط مبدا دوباره ارسال می شوند.

  • TCP Data Segmentation

در صورتی که داده های بزرگتر از اندازه MSS (Maximum Segment Size) که بصورت پیشفرض 1480 بایت است در مبدا تکه تکه شوند، در مقصد به شکل اول بازسازی شده و تحویل برنامه کاربردی موردنظر می شوند.

شیوه کار پروتکل TCP

  • جدا کردن یا قطعه قطعه کردن داده ها (segmentation) برای انتقال از طریق یک شبکه و پیچیدن آن در یک  پاکت آدرس دار به ماشین و برنامه کاربردی مقصد . هر قسمت از داده به عنوان یک قطعه یا segment  شناخته می شود . این پاکت همچنین دارای اطلاعاتی است که رسیدن سالم و بی عیب داده و توانایی دوباره سازی آن به طور صحیح در زمان دریافت توسط ماشین مقصد را تضمین می کند
  • تعیین یک Sequence number برای هر segment  . این اعداد در زمانی که ماشین مقصد  سعی در دوباره سازی تمام قطعات دارد قابل استفاده هستند
  • تعیین یک port number که به عنوان آدرس برنامه کاربردی که داده را ارسال یا دریافت می کند کارآیی دارد
  • پیگیری تر تیب قطعات داده دریافت شده
  • مطمئن شدن از اینکه داده دریافتی در زمان عبور آسیب ندیده است و انتقال دوباره آن ها تا هر زمان که لازم است تا به مقصد برسد
  • تایید اینکه چیزی که دریافت شده آسیب ندیده است
  • اطمینان از اینکه هیچ چیز در طول انتقال مفقود نشده است
  • تنظیم سرعتی که در آن ماشین مبدا داده را ارسال می کند این مورد کمک می کند تا در زمان شروع تراکم ترافیک از هم پاشیدن کامل شبکه جلوگیری می شود

اولین کاری که TCP انجام می دهد قبول داده از یک برنامه کاربردی است تنها بعد از اینکه TCP این داده را پذیرفته شروع به سفر خود می کند این سفر با segmentation  داده شروع می شود . از فواید عمل segmentation  اینست که قطعات کوچکتر داده آسیب پذیری کمتری در هنگام عبور دارند .

پس از segmentation نوبت به پیچیدن بسته در یک پاکت است این پاکت که به segment  شناخته می شود sequence number مخصوص خود را دارد به کمک sequence number  است که ماشین های گیرنده و فرستنده کمک می کنند که بفهمند که کدام قطعات دریافت شده اند کدام ها آسیب دیده اند و احتیاج به ارسال مجدد دارند و کدامیک  اصلا دریافت نشده اند . اختصاص  port number به هر Segment  نیز به معنای درگاه برنامه کاربردی مقصد است که بدون این اطلاعات ماشین مقصد راهی برای فهمیدن اینکه بسته به کدام برنامه کاربردی باید تحویل داده شود ، ندارد

بررسی TCP Header

  1. Source Port نمایشگر پورت مبدا در TCP Herader از لایه 4 مدل OSI است.
  2. Destination Port مشخص کننده آدرس Application مقصد در ماشین مقصد است.
  3. پروتکل TCP دیتای دریافتی از لایه Session مدل OSI را قطعه قطعه (Segmentation) میکند. به هر قطعه یک Sequence Number اضافه میکند تا در ماشین مقصد تمام این قطعات به صورت مرتب و بدون خطا به همدیگر متصل شوند. به این ترتیب دیتا بدون خطا به مقصد میرسد.
  4. tcp ack
  5. TCP Payload به مقدار سایز بسته های TCP با واحد بایت اشاره دارد.
  6. flag
  7. window size
  8. هنگام ارسال بسته در مبدا TCP یک عملیات پیچیده ریاضی بر روی دیتا انجام میدهد و یک مقدار عددی بدست میاورد که آن را در فیلد Checksum قرار میدهد. TCP در مقصد دوباره همان عملیات ریاضی را بر روی بسته انجام میدهد و اگر مقدار عددی بدست آمده برابر مقدار موجود در فیلد Checksum باشد یعنی دیتا بدون ایراد یا دستکاری به مقصد رسیده است و اگر این مقدار متفاوت باشد یعنی بسته دستکاری شده یا به صورت کامل به مقصد نرسیده است.

پروتکل TCP نیز مانند پروتکل IP ، header  دارد . سایز header  بسته TCP در نهایت 20 بایت طول دارد و شامل فیلد های زیر است :

  • TCP Source Port : 16 بیت یا 2 بایت در Header مربوط به TCP Source port است و TCP آدرس برنامه کاربردی را که شروع به صدا زدن می کند ذخیره می کند آدرس IP  مبدا ، پاسخ ها و تصدیق ها را به کامپیوتر مبدا باز می گرداند و عدد درگاه مبدا این پاسخ ها را به برنامه کاربردی صحیح در آن کامپیوتر تحویل می دهد  
  • TCP Destination port : فیلد 16 بیتی شامل آدرس port  صدا زده شده .
  • TCP Sequence number : در شبکه های متحرک مانند اینترنت برای بسته ها این امکان کاملا وجود دارد که مسیر های متفاوتی را در پیش گیرند sequence number ماشین مقصد را قادر می سازد تا به این عامل ناسازگاری غلبه کند و تضمین می کند داده به شکل اصلی اش دوباره ساخته شود
  • TCP Acknowledgement : TCP از 32 بیت برای برای تایید موفقیت دریافت بسته ها استفاده می کند
  • Flags : فیلد 6 بیتی flag حاوی شش پرچم 1 بیتی است که شامل عملکرد خاص کنترل را ایجاد می کند به عنوان مثال اگر آخرین بیت از 6 بیت 1 تنظیم شده باشد ماشین دریافت کننده متوجه می شود که ماشین فرستنده ارسال داده را به پایان رسانیده است این شش پرچم عبارت است از : 1. Syn    Syn /Ack 3.Ack   4.FIN  5.Urgent  6.FIN/ACK
  • Checksum : header TCP شامل یک فیلد 16 بیتی کنترل خطاست که به checksum  شناخته می شود Checksum یک عملیات ریاضی است که در اطمینان از عدم تغییر محتویات داده نگار در طول مسیر تا مقصد کمک می کند اگر داده در مسیر تغییر کرده باشد نتیجه الگوریتم ریاضی مورد استفاده در مبدا و مقصد یکسان نخواهد بود و این نشان دهنده بسته آسیب دیده و باید دور ریخته شود

بررسی TCP Handshake

  1. ی
  2. ی
  3. ی

مقایسه پروتکل های UDP  و TCP

علت اینکه ip  در TCP Header قرار نمی گیرد اینست که متعلق به لایه network  می  باشد اما TCP در لایه transport قرار دارد  شباهت ها و تفاوت های بین فیلد های TCP Header و UDP Header  به آسانی آشکار می شوند TCP خصوصیات فراوان تری نسبت به UDP دارد اما UDP برای سرعت زیاد ساخته شده است در UDP Header چیزی جز ضروریات قطعی برای یک تحویل زمان بندی شده وجود ندارد . TCP دارای مقدار زیادی اطلاعات در Header  خود است که برای پشتیبانی از خصوصیات گوناگون آن که شامل کنترل جریان ، توالی ، تاییدات و نیز توانایی باز انتقالی هستند این اطلاعات  TCP  را قادر می سازد تا ضمانت تحویل را فراهم سازد به جای آنکه تنها یک اقدام برای تحویل داده انجام دهد البته در عوض سرعت آن پایین تر است

0 0 votes
رأی دهی به مقاله
سوال های آزمون از ویدیو آموزشی و مطالب نوشته شده در صفحه طرح می شوند.
هر پاسخ درست یک امتیاز مثبت
هر پاسخ اشتباه یک امتیاز منفی
آزمون درس پروتکل TCP چیست؟ بررسی TCP Header

برای دسترسی به تمرین، وارد حساب کاربری شوید.

خبر نامه
اطلاع از
guest
0 نظرات
Inline Feedbacks
View all comments
وركشاپ
وبينار

تمام حقوق مادی و معنوی برای باشگاه شبکه و امنیت تهران محفوظ است ، هرگونه کپی برداری از آن پیگرد قانونی خواهد داشت.