Real-time Transport Protocol

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

RTP (Real-time Transport Protocol), gerçek zamanlı ses, görüntü ya da simülasyon verilerinin uçtan uca taşınmasını sağlayan protokoldur. Bu protokol IETF nin Audio-Video Transport çalışma grubu tarafından geliştirildi. RTP geniş ölçüde telefon , video telekonferans uygulamalar ve web tabanlı bas-konuş özellikleri gibi streaming media gerektiren iletişim ve görsel sistemlerde kullanılır.

RTP genellikle RTP Control Protocol (RTCP) ile beraber kullanılır. RTP media streamleri (audio and video gibi) taşıyorken RTCP quality of service (QoS) bilgisini ve iletim istatisklerini izlemek için kullanılır. Bu protokollerin her ikisi beraber kullanıldığı zaman RTP portunun bir çift sayıya denk gelmesi gerekir. RTCP portu ise o oturuma ait RTP portundan sonraki elverişli olan ilk tek port numarasıdır. RTP ve RTCP genellikle 1024-65535 arası portları kullanır.

Genel Tanıtım[değiştir | kaynağı değiştir]

RTP IETF standartları organizasyonun Audio/Video Transport çalışma grubu tarafından geliştirildi. RTP H.323 ve RTSP gibi diğer protokoller ile beraber kullanılır. RTP standartı RTP ve Real-time Transport Control Protocol (RTCP) yi bir protokol çiftini tanımlar.RTP multimedia veri transferi için kullanılır ve RTCP periodik olarak QoS parametrelerini kontrol bilgilerini yollamak için kullanılır.

RTP çoklu ortam verilerinin gerçek-zamanlı(real-time), uçtan uca ( end-to-end) transferi için tasarlandı. Protokol bir IP network üzerindeki veri iletiminde verilerdeki sıra bozukluğunu tespit eder ve jitter (network üzerinde paketlerin geliş süresindeki, düzenindeki değişiklik) kompansazyonu için kolaylık sağlar. RTP multicast servisler üzerinden birden çok hedefe veri transferini destekler. RTP IP ağlarında ses/video iletiminde öncelikli standart olarak kabul edilir.

Gerçek- zamanlı çoklu ortam streaming uygulamaları zamanında bilgileri teslim etmeyi gerektirir ve bu amaçı gerçekleştirmek için bazı kaybolan paketleri tolere edebilmelidir. Örneğin audio(ses) uygulamasında kaybolan bir paket ikinci bir paketinin kaybolmasına neden olabilir. TCP RTP için standart haline gelmiş olmasına rağmen bağlantı kurulumundaki ve hata düzeltmedeki doğal geçikmelerden dolayı sık kullanılmıyor. RTP yürütme işlemlerinin çoğu UDP üzerine temellendirilir. Diğer taşıma prtokolleri daha henüz yaygın olarak kullanılmasalarda özellikle çoklu ortam oturumları (sessions) için tasarlanan SCTP ve DCCP dir.

Protokol Bileşenleri[değiştir | kaynağı değiştir]

RTP iki alt protokolü tanımlar:

  • Veri Transfer Protokolü : gerçek zamanlı çoklu ortam verisinin transferiyle ilgilemir. Bu protokol tarafından sağlanan bilgi senkronisazyon için tarih bilgisi, kaybolan paketlerin denetimi için sıra numarası ve verinin kodlanmış formatını gösteren payload formatını içerir.
  • Gerçek Zamanlı Kontrol Protokolü : Servis önceliği (QoS) ile ilgili geribildirimler ve ortam streamleri arasında senkronisazyonu belirtmek için kullanılır.

Oturumlar[değiştir | kaynağı değiştir]

Veri iletimi esnasında iki uç arası bir RTP oturumu kurulur. Bu oturum IP adresleri ve RTP ve RTCP ye ait portlardan oluşur. Bu oturum içerisindeki cihazlar veri alıp gönderebilirler. Her bir medya türü için cihazlar arası ayrı bir oturum oluşturulur. Bir RTP oturumu her ortam streami için kurulur. Böylelikle oturum içerisindeki kişilerin hangi medya tipinden veri almak istemelerine imkân sağlanmış olur. Örneğin bir kullanıcı yayınlanan bir filmin sadece sesini almak isteyebilir. Bu durumda alıcının video yayınını engellemesi yeterli olacaktır.

Profiller ve Payload Formatları[değiştir | kaynağı değiştir]

RTP nin formatında dikkat edilecek hususlardan biri birçok formatı desteklemesidir (H.264, MPEG-4, MJPEG, MPEG, gibi). RTP, standartların yeniden düzenlenmesinin dışında yeni formatların eklenmesine izin verir. RTP protokolünün yapısı Application Level Framing(ALF) ye dayanmaktadır. RTP bu yapsısı itibari ile birden çok çokluortam formatında yayın yapıp alabilmektedir. RTP de belli bir formatta veri transferi için gerekli bilgiler RTP başlığının içerisinde değil RTP Payload bilgisi ve Profil bilgisi içerisinde yer alır. RTP her bir uygulama için bir profil ve buna bağlı payload girdilerini belirler. Bu da birçok format ile uyumlu çalışmasına imkân sağlar.

RTP de profil bilgisi payload veriyi kodlamak için kullanılan kodlayıcıları (codec) tanımlar ve profil başlığındaki "Payload TYpe" alanındaki payload format kodları için onların eşleşmelerini tanımlar. Her profil birkaç payload format belirtimleriyle beraberdir. Ses Payload formatlarından bazıları G.711, G.723, G.726, G.729, GSM, QCELP, MP3 içerir. Ve video Payload formatlarından bazıları H.261, H.263, H.264, MPEG yi içerir.

Paket Başlığı[değiştir | kaynağı değiştir]

bit offset 0-1 2 3 4-7 8 9-15 16-31
0 Ver. P X CC M PT Sequence Number
32 Timestamp
64 SSRC identifier
96 CSRC identifiers (optional)
...

RTP başlığı en az 12 byte boyutundadır. Başlıktan sonra seçimli başlık uzantıları bulunabilir. Başlık alanları aşağıdaki gibidir.

  • Ver.: (2 bit) Protokolün versiyonunu işaret eder. Şuandaki versiyon 2 dir.
  • P (Padding): (1 bit) Eğer RPT paketinin sonunda ekstra doldurma (padding) bytelar varsa bunları işaret etmek için kullanılır. Bir padding belirli bir boyutun bir bloğunu ,bir kısmını doldurmak için kullanılabilir.
  • X (Extension): (1 bit) Payload veri ve standart başlık kısmı arasındaki bir uzantı başlığının varlığını işaret eder.
  • CC (CSRC Count): (4 bit) sabit başlığı takip eden CSRC tanımlayıcılarının sayısını içerir.
  • M (Marker): (1 bit) Bir profil tarafından tanımlanır ve uygulama seviyesinde kullanılır. Eğer ayarlanırsa uygulama için o andaki verinin uygulamayla ilgili bazı özel durumlara sahip olduğunu belirtir.
  • PT (Payload Type): (7 bit) Payload formatını gösterir. Ve uygulama tarafından onun yorumlanmasına karar verilir. Bir RTP profili tarafından belirtilir. Örneğin minimal kontrol ile ses ve video konferansları.
  • Sequence Number : (16 bit) Sıra numarası RTP başlığında paket kaybını belirlemeye yarayan ve aynı tarih bilgisi değerine sahip paketlerin sıralanmasını sağlar. Ve başlangıç değeri rasgele olarak belirlenir.
  • Timestamp: (32 bit) Uygun aralıklarla kabul edilen örnekleri, kayıtları yeniden göstermek için alıcı uygulamaya imkân tanıması amaçıyla kullanılır. Birkaç ortam streamleri mevcut ise , timestamp lar her stream de bağımsızdır ve ortam senkronizasyonu için güvenilir olmayabilir. Senkronizasyona ve jitter hesaplamalarına izin vermek için zaman içinde tekdüze ve artan bir şekilde artan zaman bilgisinden meydana gelir.
  • SSRC : (32 bit) Senkronizasyon kaynak tanımlayıcıları tek bir şekilde bir streamin kaynağını tanımlar. aynı RTP oturumu içindeki senkronizasyon kaynağı tek ve eşsiz olmalıdır. Bu tanımlayıcı rasgele seçilir.
  • CSRC: 32 bitlik yardımcı kaynaktır. Yardımcı kaynak idleri birçok kaynaktan oluşturulan bir stream için yardımcı kaynakları numaralandırır.
  • Uzantı Başlığı:(seçimli) İlk 32 bitlik alan özel bir profil tanımlayıcısı ve uzantı başığının 32 bitinin dışında 32 bitlik birimlerde (EHL=uzantı başlık uzunluğu) uzantının uzunluğunu belirten 16 bitlik bir uzunluk tanımlayıcısın içerir.

RTP Tabanlı Sistemler[değiştir | kaynağı değiştir]

Tam bit network tabanlı sistem RTP ile beraber diğer protokoller ve standartları da kapsayacak. SIP, RTSP, H.225, ve H.263 e benzer protokoller oturum başlatılması, kontrol edilmesi ve sonlandırılması için kullanılır. H.263, H.264, MPEG gibi standartlar da RTP profili üzerinden tanımlanan payload veriyi kodlamak için kullanılır.

RTP ister connection-oriented ister connectionless olsun bağlantının türünden bağımsız olarak çalışır. Herhangi bir adres formatına bağımlılığı yoktur. Sadece çerçeveleme(framing) ve segmentasyon işlemlerinin alt katmandaki protokoller tarafından halledilmesini bekler. RTP herhangi bir şekilde reliability (güvenilirlik) garantisi vermez. RTP paket başlığında içerdiği bilgilerle hata kontrolü yapılmasını sağlar. RTP protokolü sanki uygulamanın bir bileşeniymiş gibi çalışır. RTP adının gerçek zamanlı iletişim protokolü olmasına rağmen (pratikte olamayacağı gibi) gerçek zamanlı iletişim sağlamaz. RTP gerçek zamanlı uygulama içeriğini taşınmasını sağlar.

Dış bağlantılar[değiştir | kaynağı değiştir]