---
title: 'Çerçeve, Paket, Segment'
source: 'https://academia.sh/tr/kurslar/ag-modelleri/cerceve-paket-segment'
course: 'Ağ Modelleri ve Protokoller'
language: tr
updated: '2026-08-17T18:07:06+00:00'
license: 'CC BY-SA 4.0'
---

# Çerçeve, Paket, Segment

Katman başına veri birimi terimleri, en büyük iletim birimi, en büyük segment boyu ve IPv4 parçalama hesabı.

Önceki ders 100 baytlık bir uygulama verisinin 158 baytlık bir çerçeveye dönüşünü izledi ve
yol boyunca üç ayrı ad kullandı: segment, datagram, çerçeve. Bu adlar gelişigüzel değildir;
her biri belirli bir katmanın veri birimini gösterir.

Adların kesinleştirilmesi terminolojik bir titizlikten ibaret değildir. Her katmanın kendi
boyut sınırı vardır ve bu sınırlar birbirini belirler. Bu dersin sorusu, bir verinin en
fazla ne kadar büyük olabileceği ve sınırı aştığında ne olduğudur.

## Katman Başına Veri Birimi

Bir katmanın kendi başlığıyla birlikte oluşturduğu birime **protokol veri birimi (protocol
data unit)** denir. Katman başına adlandırma şöyledir:

| Katman | Birim adı | İçeriği |
|---|---|---|
| Uygulama | Veri / mesaj | Uygulamanın ürettiği bayt dizisi |
| Taşıma (TCP) | Segment | TCP başlığı + uygulama verisi |
| Taşıma (UDP) | Datagram | UDP başlığı + uygulama verisi |
| İnternet | Paket / datagram | IP başlığı + taşıma birimi |
| Bağlantı | Çerçeve (frame) | Bağlantı başlığı + IP paketi + kuyruk |
| Fiziksel | Bit / simge | Ortama konan sinyal |

İki ayrım özellikle karışır.

Birincisi, **segment ile datagram** ayrımıdır. TCP'nin birimi segmenttir; UDP'nin birimi
datagramdır. Ad farkı tesadüf değildir: segment, bir bayt akışından kesilmiş bir dilimdir
ve akış içindeki yeri sıra numarasıyla bilinir. Datagram ise kendi başına duran, sınırları
korunan bir mesajdır. Bu fark, taşıma katmanı konusunda ayrıntılı biçimde ele alınacaktır.

İkincisi, **paket** sözcüğünün iki anlamıdır. Dar anlamda paket, ağ katmanının birimidir.
Geniş anlamda, ağ üzerinde giden herhangi bir veri parçasını gösterir — "paket anahtarlama"
terimindeki kullanım budur. Bu kurs, ağ katmanı birimi için "paket" veya "datagram"
terimlerini kullanır; ölçüsüz kullanımdan kaçınmak için diğer katmanların birimleri kendi
adlarıyla anılır.

## En Büyük İletim Birimi

**En büyük iletim birimi (maximum transmission unit, MTU)**, bir bağlantı katmanı
teknolojisinin tek bir çerçevede taşıyabileceği yükün üst sınırıdır. Ölçü, bağlantı
başlığını **içermez**: MTU, çerçevenin taşıyabileceği ağ katmanı paketinin boyudur.

Yaygın Ethernet gerçekleştiriminde bu sınır 1500 bayttır. Sınırın bir üst sınır olmasının
nedeni, ortamın paylaşılmasıdır: tek bir çerçeve ne kadar uzun sürerse, sıradaki cihazlar o
kadar bekler. Sınırın bir alt sınırının olmasının nedeni ise başlık yükünün küçük
çerçevelerde katlanılmaz hâle gelmesidir.

MTU değeri yol boyunca değişebilir. Bir tünel, kendi başlığı için yer ayırmak zorunda
olduğundan içindeki bağlantının MTU değerini düşürür. Yolun tamamında geçerli olan en küçük
değer, **yol MTU değeri (path MTU)** olarak adlandırılır.

## En Büyük Segment Boyu

**En büyük segment boyu (maximum segment size, MSS)**, bir TCP segmentinin taşıyabileceği
uygulama verisinin üst sınırıdır. MTU'dan türetilir ve başlıklar düşülür:

$$
\text{MSS} = \text{MTU} - \text{IP başlığı} - \text{TCP başlığı}
$$

| Ortam | MTU | IP başlığı | TCP başlığı | MSS |
|---|---|---|---|---|
| Ethernet, IPv4 | 1500 | 20 | 20 | 1460 |
| Ethernet, IPv6 | 1500 | 40 | 20 | 1440 |
| Tünelli bağlantı | 1492 | 20 | 20 | 1452 |

UDP için karşılık gelen sınır $1500 - 20 - 8 = 1472$ bayttır; UDP başlığı 8 bayttır.

MSS, TCP bağlantısı kurulurken iki uç arasında bildirilir: her uç, kendi alabileceği en
büyük segment boyunu karşı tarafa söyler ve küçük olan geçerli olur. Bu bildirim, gönderen
tarafın parçalamaya düşmeden segment üretmesini sağlar.

Seçeneklerin kullanıldığı durumlarda TCP başlığı 20 baytı aşar ve MSS buna göre azalır.
Zaman damgası ve seçmeli onay gibi seçenekler etkinken kullanılabilir veri alanı daralır.

## Parçalama

Bir IPv4 paketi, geçeceği bağlantının MTU değerinden büyükse **parçalanır
(fragmentation)**. Parçalama, IP başlığındaki üç alanla yürütülür:

- **Kimlik:** Aynı özgün datagramdan gelen tüm parçalarda aynıdır.
- **Parça devam ediyor bayrağı (MF):** Son parça dışındaki tüm parçalarda 1'dir.
- **Parça ofseti:** Bu parçanın yükünün, özgün yükün başından itibaren kaçıncı bayttan
  başladığını verir. Alan 13 bit olduğundan ofset **8 baytlık birimlerle** sayılır; bu
  yüzden son parça dışındaki her parçanın yükü 8'in katı olmak zorundadır.

Aşağıdaki program, verilen yük boyunu ve MTU değerini alıp parçaları hesaplar.

```python
def parcala(yuk_boyu: int, mtu: int, baslik: int = 20) -> None:
    """Bir IPv4 datagramının yükünü MTU sınırına göre parçalara böler."""
    parca_yuku = (mtu - baslik) // 8 * 8      # ofset 8 baytın katı olmalı
    ofset = 0
    kalan = yuk_boyu
    sira = 1
    while kalan > 0:
        bu_parca = min(parca_yuku, kalan)
        kalan -= bu_parca
        print(f"parça {sira}: yük={bu_parca:4d} bayt  "
              f"ofset alanı={ofset // 8:3d}  MF={1 if kalan else 0}  "
              f"datagram={bu_parca + baslik:4d} bayt")
        ofset += bu_parca
        sira += 1


parcala(4000, mtu=1500)
```

Çıktı:

```
parça 1: yük=1480 bayt  ofset alanı=  0  MF=1  datagram=1500 bayt
parça 2: yük=1480 bayt  ofset alanı=185  MF=1  datagram=1500 bayt
parça 3: yük=1040 bayt  ofset alanı=370  MF=0  datagram=1060 bayt
```

Hesabın adımları izlenebilir. MTU 1500, IP başlığı 20 bayt olduğuna göre parça başına en
çok $1500 - 20 = 1480$ bayt yük taşınabilir; 1480 zaten 8'in katıdır. İlk parça 0. bayttan
başlar, ofset alanı 0'dır. İkinci parça 1480. bayttan başlar: $1480 / 8 = 185$. Üçüncü parça
2960. bayttan başlar: $2960 / 8 = 370$ ve kalan $4000 - 2960 = 1040$ baytı taşır.

Toplam taşınan yük $1480 + 1480 + 1040 = 4000$ bayttır, ancak tel üzerindeki toplam
$1500 + 1500 + 1060 = 4060$ bayta çıkmıştır: iki fazladan IP başlığı eklenmiştir.

Daha küçük bir MTU değeri, parça sayısını hızla artırır:

```
parcala(4000, mtu=576)
```

```
parça 1: yük= 552 bayt  ofset alanı=  0  MF=1  datagram= 572 bayt
parça 2: yük= 552 bayt  ofset alanı= 69  MF=1  datagram= 572 bayt
parça 3: yük= 552 bayt  ofset alanı=138  MF=1  datagram= 572 bayt
parça 4: yük= 552 bayt  ofset alanı=207  MF=1  datagram= 572 bayt
parça 5: yük= 552 bayt  ofset alanı=276  MF=1  datagram= 572 bayt
parça 6: yük= 552 bayt  ofset alanı=345  MF=1  datagram= 572 bayt
parça 7: yük= 552 bayt  ofset alanı=414  MF=1  datagram= 572 bayt
parça 8: yük= 136 bayt  ofset alanı=483  MF=0  datagram= 156 bayt
```

Burada $576 - 20 = 556$ değeri 8'in katı olmadığından parça yükü 552'ye yuvarlanmıştır.

## Parçalamanın Maliyeti

Parçalama üç nedenle istenmez.

**Kayıp maliyeti çarpılır.** Parçalar ancak tümü ulaştığında birleştirilebilir. Sekiz
parçadan biri kaybolursa diğer yedisi de atılır ve özgün datagram yeniden gönderilmek
zorunda kalır. Bağımsız kayıp varsayımıyla, parça başına kayıp olasılığı $p$ ise $n$
parçalık bir datagramın ulaşma olasılığı $(1-p)^n$'dir; $p = 0{,}01$ ve $n = 8$ için bu
oran yaklaşık $0{,}923$'tür, yani datagram kaybı %7,7'ye çıkar.

**Birleştirme yükü alıcıya düşer.** Parçalar yol boyunca birleştirilmez; yalnızca son
hedefte birleştirilir. Alıcı, eksik parçaları beklerken bellek tutmak ve bir zaman aşımı
saymak zorundadır.

**Ara katmanların işi zorlaşır.** Yalnızca ilk parça taşıma katmanı başlığını taşır;
sonraki parçalarda bağlantı noktası numarası yoktur. Bağlantı noktasına göre karar veren
düzenekler, sonraki parçaları sınıflandıramaz.

Bu nedenle yaygın uygulama parçalamadan kaçınmaktır. Gönderen, IP başlığındaki
**parçalanmasın (DF)** bayrağını kurar; paket MTU'dan büyük bir bağlantıya geldiğinde
yönlendirici onu atar ve gönderene bir hata mesajı döndürür. Gönderen bu mesajdaki MTU
değerine göre segment boyunu küçültür. Bu döngüye **yol MTU keşfi (path MTU discovery)**
denir ve ICMP dersinde ayrıntılı olarak ele alınacaktır.

IPv6, parçalamayı yol üzerindeki yönlendiricilerden tamamen kaldırmıştır: bir paket
MTU'dan büyükse yönlendirici onu parçalamaz, atar ve bildirir. Parçalama gerekiyorsa
yalnızca gönderen uç yapar.

## Örnek Ağda Sınırlar

Kurumsal ağdaki istemci, `198.51.100.20` adresine 3000 baytlık bir gövde göndermek
istediğinde ne olacağı bu derste kurulan hesapla belirlenir. TCP kullanılıyorsa parçalama
hiç yaşanmaz: taşıma katmanı gövdeyi kendisi böler ve $1460 + 1460 + 80$ baytlık üç segment
üretir. Her segment ayrı bir IP paketi olarak gider ve hiçbiri MTU'yu aşmaz.

UDP kullanılıyorsa durum başkadır: UDP gövdeyi bölmez, 3000 baytlık tek bir datagram üretir
ve bölme işi IP katmanına düşer. Bu, taşıma katmanı seçiminin ağ katmanı davranışını
doğrudan belirlediği somut bir örnektir.

## Özet

- Her katmanın veri birimi ayrı adla anılır: segment (TCP), datagram (UDP ve IP), paket
  (IP), çerçeve (bağlantı katmanı).
- MTU, bir bağlantının tek çerçevede taşıyabileceği ağ katmanı paketinin üst sınırıdır ve
  bağlantı başlığını içermez.
- MSS, MTU'dan IP ve TCP başlıkları düşülerek bulunur: Ethernet ve IPv4 için 1460 bayt.
- Parçalama kimlik, parça devam ediyor bayrağı ve parça ofseti alanlarıyla yürütülür; ofset
  8 baytlık birimlerle sayıldığından son parça dışındaki yükler 8'in katı olmalıdır.
- 4000 baytlık bir yük 1500 baytlık MTU'da 1480 + 1480 + 1040 biçiminde üç parçaya bölünür;
  tel üzerindeki toplam 4060 bayta çıkar.
- Parçalama kayıp maliyetini çarpar; yaygın uygulama parçalanmasın bayrağı ve yol MTU keşfi
  ile ondan kaçınmaktır.

## Sonraki Adım

Bu konu, verinin katmanlar arasındaki biçimini tanımladı. Sıradaki konu, bu biçimlerin
gerçekte nasıl taşındığına iner. İlk durak en alttaki adres düzeyidir: aynı kabloyu veya
aynı kablosuz hücreyi paylaşan cihazlar birbirini nasıl bulur, bir anahtar hangi çerçeveyi
nereye gönderir. Sonraki ders Ethernet çerçevesini ve donanım adreslerinin yapısını ele
alacak.
