← rfc/
╔══════════════════════════════════════════════════════════════════════════╗
RFC 12 · protokol

IMP-HOST İletişim Protokolü

Yazar
Bob Kahn
Kurum
Bolt, Beranek and Newman (BBN)
Tarih
25 Ağustos 1969
Durum
Network Working Group Yorum Talebi
Kanal
protokol/

Genel Bakış

Konu: IMP-HOST (Arayüz Mesaj İşlemcisinden Host'a) protokolünün resmileştirilmesi.

Amaç: IMP'ler ve bağlı host'ları arasındaki iletişim için tam protokolü tanımlamak.

Bağlam: RFC 1 ve RFC 7 ilgili konuları ele alırken, RFC 12 IMP perspektifinden kapsamlı protokol spesifikasyonu sağlar.


İçindekiler

  1. Protokol Genel Bakışı
  2. Bağlantı Türleri
  3. Mesaj Formatı
  4. Kontrol Mesajları
  5. Host'tan IMP'ye Komutlar
  6. IMP'ten Host'a Yanıtlar
  7. Hata İşleme
  8. Zamanlama ve Zaman Aşımları
  9. Önem

Protokol Genel Bakışı

IMP-HOST Arayüzü

IMP-HOST protokolü, bir Host Bilgisayarın Arayüz Mesaj İşlemcisi (IMP) ile nasıl iletişim kurduğunu tanımlar.

┌──────────────┐       IMP-HOST Protokolü         ┌──────────┐
│ Host Bilgisayar├─────────────────────────────────→│   IMP    │
│              │◄─────────────────────────────────┤          │
└──────────────┘                                  └────┬─────┘
│
Ağ
(diğer
IMP'lere)

Temel İlke

Host başlatır; IMP yanıt verir


Bağlantı Türleri

Birincil Bağlantı

Amaç: Komut ve kontrol mesajları

Özellikler:

Tipik Kullanım:

Host → IMP: "UCLA-Host'a yardımcı bağlantı aç"
IMP → Host: "Bağlantı kuruldu (ID: 1234)"
Host → IMP: "Yardımcı 1234'te mesaj gönder"
IMP → Host: "Mesaj başarıyla gönderildi"

Yardımcı Bağlantılar

Amaç: Veri transferi ve toplu iletişim

Özellikler:

Tipik Kullanım:

Host → IMP: 2000-bit "data.txt" dosyası gönder
[2000-bit dosya verisi]
IMP → Host: "Teslimat onaylandı"

Bağlantı Tanımlama

Her bağlantının bir bağlantı numarası vardır:

Bağlantı ID: 24-bit değer
Amaç: Bu IMP'deki her bağlantıyı benzersiz şekilde tanımla
Aralık: 0-16,777,215
Tahsis: IMP talep üzerine atar

Mesaj Formatı

HOST'tan IMP'ye Mesaj Yapısı

Lider (Sabit Format)

|||||
+──────────────┬──────────────┬──────────────┬─────────+
|  Bağlantı#   | Mesaj Türü   | Mesaj Uzunluğu|  Veri   |
+──────────────┴──────────────┴──────────────┴─────────+

Alan Açıklamaları

Alan Boyut Format Amaç
Bağlantı# 32 bit İşaretsiz tamsayı Bağlantıyı tanımlar
Mesaj Türü 32 bit Tür kodu (aşağıya bakın) İşlemi belirtir
Mesaj Uzunluğu 16 bit Bayt sayısı Takip eden veri boyutu
Veri Değişken İkili Mesaj yükü

Mesaj Türleri

Mesaj Türü Kodları

Kod Ad Kimden Amaç
1 SEND Host→IMP Mesaj/veri gönder
2 NOOP Host→IMP İşlem yok (canlı tut)
3 RFNM IMP→Host Sonraki mesaj için hazır
4 CLOSE Host→IMP, IMP→Host Bağlantıyı kapat
5 ERROR IMP→Host Hata bildirimi
6 RESET Host→IMP, IMP→Host Bağlantıyı sıfırla
7 STATUS Host→IMP Durum sorgula
8 CONTROL Host→IMP Kontrol işlemi

Kontrol Mesajları

Bağlantı Açma

Host Başlatır:

HOST → IMP:
Bağlantı: 0 (tahsis talebi)
Tür: OPEN
Veri: [hedef-host][hedef-bağlantı|herhangi]
IMP → HOST:
Bağlantı: [tahsis-edilen-numara]
Tür: OPEN-ACK
Veri: [durum:başarılı/başarısız]

Örnek:

UCLA'daki host gönderir:
"Beni SRI-Host'a bağla, bağlantı 42"
IMP yanıt verir:
"Tamam, SRI'ye ulaşmanız için 1024 bağlantısı tahsis ettim"

Bağlantı Kapama

Host Başlatır:

HOST → IMP:
Bağlantı: 1024
Tür: CLOSE
Veri: [nazikçe|iptal]
IMP → HOST:
Bağlantı: 1024
Tür: CLOSE-ACK
Veri: [durum: kapatıldı]

CLOSE-ACK alındıktan sonra:

Akış Kontrol Sinyali

IMP Hazır Olduğunu Sinyaller:

IMP → HOST:
Bağlantı: 1024
Tür: RFNM (Sonraki Mesaj İçin Hazır)
Veri: [kabul-edilen-baytlar][mevcut-tampon]

Host Yanıtı:

RFNM alır → sonraki mesajı gönderebilir
Her RFNM bir mesaj değerinde tampon alanı gösterir

Host'tan IMP'ye Komutlar

SEND Komutu

Fonksiyon: Mesaj/veri ilet

HOST → IMP:
Tür: SEND
Bağlantı: [bağlantı-id]
Uzunluk: [bit-sayısı]
Veri: [mesaj-içeriği]

Host Sorumlulukları:

  1. Göndermeden önce RFNM alındığından emin ol
  2. Doğru formatta veri sağla
  3. Sonraki SEND'den önce onay bekle
  4. Zaman aşımı durumunda yeniden iletimi ele al

Örnek:

Tür: SEND
Bağlantı: 1024
Uzunluk: 1024 bit
Veri: [3-KB dosya içeriği]

NOOP Komutu

Fonksiyon: Canlı tutma sinyali; bağlantı durumunu doğrula

HOST → IMP:
Tür: NOOP
Bağlantı: [bağlantı-id]
Uzunluk: 0
Veri: (boş)

Amaç:

Sıklık: Tipik olarak bağlantı başına her 1-2 dakikada bir

STATUS Komutu

Fonksiyon: Bağlantı veya host durumunu sorgula

HOST → IMP:
Tür: STATUS
Bağlantı: [bağlantı-id veya genel için 0]
Uzunluk: 0
Veri: (boş)
IMP → HOST:
Tür: STATUS-RESPONSE
Veri:
- Aktif bağlantılar: [sayı]
- Mevcut tampon alanı: [bayt]
- Son gönderilen mesaj: [zaman]
- Hatalar: [hata-sayısı]

RESET Komutu

Fonksiyon: Hata veya kilitli durumdan kurtul

HOST → IMP:
Tür: RESET
Bağlantı: [bağlantı-id]
Veri: (boş)
IMP → HOST:
Tür: RESET-ACK
Veri: [durum]

IMP'ten Host'a Yanıtlar

RFNM (Sonraki Mesaj İçin Hazır)

|||
+──────────────┬──────────────+
| Bağlantı#    | Mevcut Bayt  |
+──────────────┴──────────────+

Semantik:

Mesaj Teslim Edildi (Örtük)

Onay: Sadece RFNM göndermek teslimi onaylar

Açık "teslimat onayı" mesajı gerekmez; RFNM başarıyı ima eder

ERROR Yanıtı

IMP → HOST:
Tür: ERROR
Bağlantı: [bağlantı-id]
Veri:
- Hata Kodu: [hata türü]
- Sebep: [metin açıklaması]

Hata Türleri:

Kod Anlamı
1 Bilinmeyen bağlantı
2 Yasadışı mesaj türü
3 Hatalı biçimli mesaj
4 Hedef ulaşılamaz
5 Bağlantı reddedildi
6 Zaman aşımı
7 Uzak host çalışmıyor
8 Sağlama toplamı hatası

Hata İşleme

Sağlama Toplamı Doğrulama

Gelişte, IMP kontrol eder:

Host sorumluluğu:

Zaman Aşımı İşleme

IMP Zaman Aşımı:

Host mesaj gönderir
IMP RFNM gönderir
30 saniye içinde sonraki mesaj gelmezse:
- Canlı tutma sondası gönder
- Yanıt yoksa: bağlantıyı kapat

Host Zaman Aşımı:

Host mesaj gönderir
10 saniye içinde RFNM alınmazsa:
- Gönderimi yeniden dene
- 3 denemeden sonra: IMP'nin öldüğünü varsay
- RESET gönder

Bağlantı Durum Makinesi

Durumlar: KAPALI → AÇILIYOR → AÇIK → KAPANIYOR → KAPALI
↓
[HATA] → SIFIRLA

Zamanlama ve Zaman Aşımları

Zamanlama Parametreleri

Parametre Değer Amaç
Mesaj TX süresi ~100ms 1024-bit mesaj gönderme süresi
RFNM yanıt süresi ~50ms IMP yanıt gecikmesi
Canlı tutma aralığı 60 saniye NOOP sıklığı
Bağlantı zaman aşımı 300 saniye Kapatmadan önce hareketsizlik
Yeniden iletim zaman aşımı 10 saniye Yeniden denemeden önce RFNM bekleme

Uyarlanabilir Zamanlama

IMP zaman aşımlarını şunlara göre ayarlar:


Önem

RFC 12, erken RFC'lerden host perspektifini tamamlayarak IMP perspektifinden tam IMP-HOST protokol arayüzünü belgeler.

Tarihsel Önem

Bu RFC şunları resmileştirdi:

  1. Paket ağları üzerinden bağlantı odaklı iletişim
  2. Açık onaylar (RFNM) aracılığıyla akış kontrolü
  3. Zaman aşımları ve yeniden denemelerle sağlam hata işleme
  4. Bağlantı durum makinesiyle durum bilgili protokol

Modern Paralellikler

RFC 12 kalıpları şunlarda görünür:

Temel İçgörü

Protokol, güvenilmez ağlar üzerinden güvenilir iletişimin açık onay ve zaman aşımı mekanizmaları gerektirdiğini gösterir.


Sonuç

RFC 12, IMP-HOST protokol spesifikasyonunu tamamlayarak şunları sağlar:

RFC 1, 7 ve diğerleriyle birlikte, bu RFC ARPANET'i operasyonel hale getiren tam HOST-HOST ve IMP-HOST protokol paketini oluşturdu.


Bolt, Beranek and Newman (BBN)

Network Working Group

Ağustos 1969