skip to Main Content

SDP (Session Description Protocol) Nedir?

Oturum Tanımlama Protokolü (SDP) (ingilizce: Session description protocol), oturum duyurusu ve oturum davetiyesi amacıyla multimedya iletişim oturumlarını tanımlayan bir formatdır. Genel olarak IP üzerinden ses (VoIP) ve video konferans gibi akışlı medya uygulamalarını desteklemek için tasarlanmıştır. SIP Nedir iyi anlamak için SDP’yi de bilmek gereklidir.

SDP hiçbir medya akışını sağlamaz fakat ağ metrikleri, medya türleri ve diğer ilişkili özelliklerin pazarlığı için uç noktalar (endpoint – IP Telefon olarabilir) arasında iletişimde kullanılır.

SDP, yeni ortam türlerini ve biçimlerini desteklemek için genişletilebilir. SDP başlangıçta Oturum Duyuru Protokolü’nün (SAP) bir bileşeniydi, ancak gerçek Zamanlı Aktarım Protokolü (RTP), Gerçek Zamanlı Akış Protokolü (RTSP), Oturum Başlatma Protokolü (SIP) ile birlikte başka amaçlar için de kullanılabileceği ortaya çıktı.

SDP ile ilgili 5 adet terim vardır:

  • Konferans: Aralarında haberleşen iki ya da daha fazla kullanıcı ile birlikte bu kullanıcıların kullandıkları yazılımı kapsayan bir kümedir.
  • Oturum: Çoklu ortam yollayıcısı, alıcısı ve bilgi akışının sürekliliğidir.
  • Oturum Bildirimi: Oturum bildirimi, içinde kullanıcılara ileriye dönük bir şekilde aktarılan oturum tanımı bulunan mekanizmadır.
  • Oturum İlanı: Oturum bildirimiyle aynı işleve sahiptir.
  • Oturum Tanımlaması: Bir çoklu ortam oturumunda gerekli bilgiyi nakletmek için bu bilgiyi bulup oturuma katan iyi tanımlanmış bir formattır.

SDP, oturum, zamanlama ve medya açıklamaları olmak üzere üç ana bölümden oluşur. Her mesaj birden fazla zamanlama ve medya açıklaması içerebilir, ancak yalnızca bir oturum açıklaması içerebilir.

Oturum Bilgisi Detayları

  • v = (protokol sürüm numarası, şu anda yalnızca 0)
  • o = (gönderen ve oturum tanımlayıcı: kullanıcı adı, kimlik, sürüm numarası, ağ adresi)
  • s = (oturum adı: en az bir UTF-8 kodlu karakterle zorunlu)
  • i = * (oturum başlığı veya kısa bilgi)
  • u = * (açıklama URI’si)
  • e = * (isteğe bağlı kişi adıyla sıfır veya daha fazla e-posta adresi)
  • p = * (isteğe bağlı kişi adıyla sıfır veya daha fazla telefon numarası)
  • c = * (bağlantı bilgileri — tüm ortamlara dahil edilmişse gerekli değildir)
  • b = * (sıfır veya daha fazla bant genişliği bilgi satırı)
  • Bir veya daha fazla Zaman açıklaması (“t =” ve “r =” satırları; aşağıya bakın)
  • z = * (saat dilimi ayarları)
  • k = * (şifreleme anahtarı)
  • a = * (sıfır veya daha fazla oturum özellik satırı)

Sıfır veya daha fazla Ortam açıklaması (her biri bir “m =” çizgisi ile başlar; aşağıya bakın)

Zamanlama Bilgisi Detayları (Zorunlu)

  • t = (oturumun aktif olduğu süre)
  • r = * (sıfır veya daha fazla tekrar süresi)

Medya Açıklaması

  • m = (ortam adı ve taşıma adresi)
  • i = * (ortam başlığı veya bilgi alanı)
  • c = * (bağlantı bilgileri – oturum düzeyinde varsa isteğe bağlı)
  • b = * (sıfır veya daha fazla bant genişliği bilgi satırı)
  • k = * (şifreleme anahtarı)
  • a = * (sıfır veya daha fazla medya özellik satırı – Oturum özellik satırlarını geçersiz kılma)

Örnek: Aşağıda gerçek bir SDP mesajı örneği verilmiştir.

  • v = 0
  • o = Serdar 2894567634 1567878465 IN IP4 192.168.1.235
  • s = VoIP Guvenlik
  • c = IN IP4 192.168.1.235
  • t = 0 0
  • m = audio 49170 RTP / AVP 0 8 97
  • a = rtpmap: 0 PCMU / 8000
  • a = rtpmap: 8 PCMA / 8000
  • a = rtpmap: 97 iLBC / 8000
  • m = video 51372 RTP / AVP 31 32
  • a = rtpmap: 31 H261 / 90000

Aşağıdaki resimde örnek bir SDP Paket içeriğini görebilirsiniz

SDP Paket içeriği wireshark ekran görüntüsü
SDP Paket içeriği wireshark ekran görüntüsü

Sorun çözme aşamaları

  • c = Bu bize medyanın nereden geleceğini ve nereye gönderileceğini IP adresini söyleyecektir.
  • m = Her ortam türü için bir ortam hattı olacaktır. Örneğin, istemciniz gerçek zamanlı sesi destekleyebiliyorsa, m = audio olacaktır. Müşteriniz gerçek zamanlı videoyu destekleyebiliyorsa ayrı bir m = video satırı olacaktır. Her ortam satırı, öznitelik satırlarında tanımlanacak kodeklerin sayısını gösterir.
  • a = Medya satırında yayınlan her kodek için bir özellik satırı olacaktır.