بسته tcp نیز همانند ip تشكیل شده از تعدادی فیلد می باشد كه توضیحاتی در مورد شماره پورت مقصد شماره پورت مبدا و …. را در خود دارد حال به بررسی این فیلدهای مهم می پردازیم .
فیلدهادر بسته های tcp
فیلد source port :
این فیلد كه مقداری برابر 16 بیت دارد آدرس پورت(پروتكل ) مبدا را در خود دارد با استفاده از این فیلد تقریبا می توان نوع داده های ارسالی را فهمید
فیلد destination :
در این فیلد آدرس پورتی كه اطلاعات در مقصد باید تحویل آن داده شود موجود می باشد
این فیلد تعیین می كند كه ما اطلاعات را برای چه پورتی ارسال می كنیم كه البته در بیشتر موارد اطلاعات برای پروتكلهای استاندارد ارسال می شود برای مثال پورت 80 به صورت استاندارد پروتكل http را در خود دارد .
فیلد sequence number
این فیلد دارای عددی است كه نشان دهنده تعداد بایتهای ارسال شده از داده ها است كه این عدد با احتساب داده های بسته جاری در فیلد قرار می گیرد برای مثال اگر داخل فیلد عدد 222222 قرار بگیرد یعنی پس از ارسال بسته جاری 222222بایت از داده ها ارسال شده است
فیلد acknowledgment number :
همانطور كه از اسم این فیلد پیداست فیلدی است برای تصدیق كردن مقدار اطلاعات دریافت شده از طرف گیرنده برای مثال اگر در این فیلد كه ظرفیت آن 32 بیت می باشد عدد 1000001 قرار داشته باشد به این معنی است كه گیرنده دریافت اطلاعات تا این بیت را تائید كرده و منتظر دریافت بقیه اطلاعات می باشد
فیلد tcp header length :
در این فیلد نیز عددی وجود دارد كه مرز بین داده ها و سر آیند بسته را مشخص می كند
سر آیند به قسمتی گفته می شود كه شامل فیلدهای TCP می باشد
فیلد Windows size :
در این فیلد مقدار فضایی كه در طرف گیرنده خالی مانده است قرار دارد
كاربرد این فیلد به این صورت است كه مقداری كه در این فیلد قرار دارد ( مقدار فضای خالی بافر گیرنده ) با مقدار داده ای كه برای ارسال آماده است مقایسه می شود اگر بافر گیرنده فضای كافی داشته باشد داده ها ارسال می شود و در غیر اینصورت منتظر می ماند تا بافر گیرنده خالی شود و بعد اقدام به ارسال داده ها می كند
فیلد checksum :
این فیلد كه فضایی 16 بیتی را اشغال می كند حاوی كد خطاهای به وجود آمده در ارسال یا دریافت اطلاعات می باشد
فیلد Tcp segment length :
این فیلد مقدار كل بسته را بر حسب بایت در خود دارد
فیلد urgent pointer :
در این فیلد یك عدد كه در اصل یك كد شبیه به كد وقفه ها است قرار دارد كه در مواقع ضروری ارسال می شود
فیلد option :
این فیلد یك نعمت بزرگ می باشد در مواقعی كه حجم بسته ضریبی از چهار نشود از این قسمت با داده های بی ارزش استفاده می شود تا مقدار ضریبی از چهار شود
بیت Urg :
این فیلد نشان دهنده وضعیت فیلد urgent pointer می باشد
طرز عملكرد این فیلد1 بایتی به این شكل می باشد كه اگر مقدار آن 1 باشد به این معنی است كه فیلد urgent pointer باید مورد ارزیابی قرار گیرد و اگر مقدار آن صفر باشد نسبت به آن فیلد بی تفاوت است
بیت ack :
اگر در این فیلد مقدار 1 قرار گیرد دلیل بر اعتبار فیلد acknowledgment می باشد.
بیت PSH :
این بیت برای جداسازی بسته های حیاطی و مهم مورد استفاده قرار می گیرد
این فیلد به گیرنده نشان می دهد كه بسته حاوی آن باید سریعا بافر شود و به برنامه كاربردی تحویل داده شود
برای مثال در telnet
بیت RST :
این بیت برای قطع ارتباط مورد استفاده قرار می گیرد اما قطع ارتباط در این صورت یكطرف خواهد بود و ارسال داده ها ناتمام خواهد ماند و طرز كار آن به این صورت است كه اگر حاوی 1 باشد ارتباط را بدون اجازه و خبر دادن به طرف مقابل قطع می كند
بیت syn :
این بیت یكی از مهمترین قسمتهای بسته tcp می باشد چون نقش برقراری ارتباط را بر عهده دارد
و اما آخرین بیت كه بیت FIN می باشد :
این بیت تقریبا به معنای خداحافظی می باشد
موقعی كه یكی از طرفین داده ای برای ارسال نداشته باشد این بیت را 1 می كند و این بدان معناست كه این آخرین بسته ارسالی می باشد وبعد از ارسال بسته ارتباط به صورت یكطرفه قطع خواهد شد.




مطالب و نظرات 






















![[i]](http://payeganltd.com/pubimages/g.gif)
![[i]](http://payeganltd.com/pubimages/b.gif)