Tcphdr
Bu madde, öksüz maddedir; zira herhangi bir maddeden bu maddeye verilmiş bir bağlantı yoktur. (Eylül 2022) |
Tcphdr C programlama dilinde bir yapıdır.Tcphdr yapısı bir sıralı soketteki Tcp başlik formu için kullanılan bir şablondur.Bu yapı birçok Unix versiyonunda tanımlı olarak bulunmaktadır ve genellikle <netinet/tcp.h> başlık dosyasında tutulur.BSD ve Linux olmak üzere iki farklı formatta bulunmaktadır.Melez bir Linux ya da BSD başlık dosyanız varsa, BSD formatında kullanmak için tanımlamanızın başında, add#define_USE_BSD ve #include<netinet/tcp.h> satirindan önce #define_FAVOR_BSD komutlarını kullanmalısınız.(Aksi takdirde Linux tanımlı olacaktır)
Tanım
[değiştir | kaynağı değiştir]Linux Format
[değiştir | kaynağı değiştir]struct tcphdr {
unsigned short source;
unsigned short dest;
unsigned long seq;
unsigned long ack_seq;
unsigned short doff:4;
unsigned char syn;
unsigned short window;
unsigned short check;
unsigned short urg_ptr;
};
BSD Format
[değiştir | kaynağı değiştir]struct tcphdr {
u_short th_sport;
u_short th_dport;
tcp_seq th_seq;
tcp_seq th_ack;
u_int th_x2:4,
th_off:4;
u_char th_flags;
u_short th_win;
u_short th_sum;
u_short th_urp;
};
Alanlar
[değiştir | kaynağı değiştir]u_short th_sport unsigned short source
Kaynak port.
u_short th_dport unsigned short dest;
Hedef port.
tcp_seq th_seq unsigned long seq
Ardişim sayısı TCP segmentlerini birer birer saymak için kullanılır. TCP bağlantısında bulunan veri sıralı ve tanımlı olan herhangi bir bağlantı segmentinde (tcp veri paketi) bulunabilir. Örneğin, her biri 32 byte veri içeren 3 segment gonderirseniz, ilk segmentin numarası (N+), ikincisi (N+)3, üçüncüsü ise (N+)65 olabilir çünkü; başlangıç numarası rastgeledir.
tcp_seq th_ack unsigned long ack_seq
Gönderilmiş ve gecerli bir bağlantısı olan paketler ACK bayrak setli boş bir TCP segmentinde tanımlanır ve onceki th_seq numarası th_ack alanında tutulur.
u_int th_x2
4 bytelık geçerli bloklarda X2 degişkenler tanımlanamaz bütün değişkenler ikilik tanımlanmalıdır.
u_int th_off unsigned short doff
32bit/4byte bloklarda TCP başlik dosyasının uzunluğunu offset segmenti belirler.
u_char th_flags unsigned char flags
Bu alan 6 ikilik bayraktan oluşmaktadır.Bu bayrak kombinasyonları: flags=FLAG1|FLAG2|FLAG3.. seklinde tanımlanır.
- TH URG : İvedi. Segmentler daha hızlı yönetilir,bağlantıları sonlandırmada ya da süreçleri durdurmak icin kullanılır.(telnet protokolünü kullanır).
- TH ACK : Onay. Veriyi kontrol etmek ve TCP bağlantısının ikinci ve üçüncü evrelerin kurulumu için kullanılır.
- TH PUSH: Yürütme.İP sisteminin stacki segmenti arabelleğe almaz ve segmenti direkt olarak uygulamaya gonderecektir(çoğunlukla telnet kullanılır).
- TH RST : Yeniden baslatma. Bağlantidaki üyelere bağlantinin sonlanacağını bildirir.
- TH SYN : Senkronizasyon. Hedef portla bağlantı kurmak isteyen istemcileri SYN bayraklı bir segment gösterir.
- TH FİN : Final. Bağlantı kapatılmalı.
u_short th_win unsigned short window
TCP penceresi-Segmentleri göndermeden önce bir ACK ile tanımlanan verilerden önce gönderilebilecek byte miktarıdır.
u_short th_sum unsigned short check
Psedue başlığın sağlaması, TCP başlık ve taşınabilen yük. Psedue ip kaynağını ve hedef adresi içeren bir yapıdır, 1 byte sıfırlanır, protokol(6 nın onluk değeri ile 1 byte),ve 2 byte (unsigned short) TCP segmentinin maksimum boyutunu içerir.
u_short th_urp unsigned short urg_ptr
İvedi işaretçisi.Sadece ivedi bayrağı kuruluysa kullanılır ya da sıfırdır.Öncelikli gönderilmesi gereken verinin kapasitesinin boyutunu gösterir.
Ayrıca bakınız
[değiştir | kaynağı değiştir]Kaynakça
[değiştir | kaynağı değiştir]- English Wikipedia 17 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi.