RTP (Real Time Transport Protocol - Gerçek Zamanlı İletim Protokolü)

Eyl 07, 2013

RTP tek yön ve çok yöne yayın servisleri üzerinden gerçek zamanlı iletimi yönetmek için kullanılan İnternet protokolüdür. RTP geniş ölçüde telefon, video konferans uygulamaları ve Web tabanlı bas-konuş özellikleri gibi medya akışı gerektiren iletişim ve görsel sistemlerde kullanılır.

RTP çoklu ortam verilerinin gerçek zamanlı (real-time), uçtan uca (end-to-end) iletimi için tasarlanmıştır. Protokol bir İnternet Protokolü kullanan ağlar üzerindeki veri iletiminde verilerdeki sıra bozukluğunu tespit eder ve gecikmedeki değişme (jitter) telafisi için kolaylık sağlar. RTP çoğa gönderim (multicast) servisler üzerinden birden çok hedefe veri iletimini destekler. 

RTP genellikle RTCP (RTP Control Protocol - RTP Kontrol Protokolü) ile beraber kullanılır. RTCP bir telefon görüşmesindeki taraflara kontrol paketleri göndermek için kullanılırken, verinin kendisi RTP tarafından iletilir. RTCP’nin temel fonksiyonu, RTP tarafından sağlanan hizmetin kalitesi hakkında geri bildirimde bulunmaktı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.

Veri iletimi esnasında iki uç arası bir RTP oturumu kurulur. Bu oturum IP (Internet Protocol - İnternet Protokolü) 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 akışı 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.

RTP protokolünde veri gönderen uç çoklu ortam bilgisini çerçeveler halinde kodlar ve RTP paketleri halinde ortama verir. RTP sıra numaraları ve zaman etiketlemesi (timestamp) bilgilerini paketlere ekleyerek her bir paketin karşı tarafta doğru yorumlanmasını sağlar. İnternet ortamında doğru sıra ile iletim garanti edilemediği için karşı taraf sıra numaralarına bakarak paketleri sıralar ve paket kayıplarını tespit eder. Zaman etiketlemesi sayesinde çeşitli kaynaklardan gelen bilgilerin eş zamanlılığı sağlanır ve olası gecikmedeki değişme (jitter), gürültü gibi problemler alıcı tarafta arabelleğe alınarak giderilmeye çalışılır. Burada RTCP, uçlar arası bağlantının kalitesini hedef ve kaynak uçlara gönderilen geri bildirimler sayesinde denetler.

RTP ister bağlantılı (connection-oriented) ister bağlantısız (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 parçalama (segmentation) işlemlerinin alt katmandaki protokoller tarafından gerçekleştirilmesini bekler. RTP herhangi bir şekilde güvenilirlik (reliability) 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.