Khusus simbol untuk menunjukkan awal dari sebuah paket biner?

N

neocool

Guest
Apa yang akan menjadi simbol khusus yang baik untuk menunjukkan awal paket dalam aplikasi winsock kustom?Aku ingin menjadi unik dalam kaitannya dengan data biner bahwa saya akan mentransfer (kebanyakan multimedia).

Terima kasih

 
Baik!Jika saya telah memahami simbol correctlly 47H dapat mengatasi masalah Anda karena merupakan awal penanda dalam DVB bingkai standar!

 
(Saja) hal yang akan membuat nilai byte tertentu simbol khusus adalah bagaimana diinterpretasikan oleh aplikasi yang mengirim dan menerima hal itu.Jadi, gunakan sesuatu yang mudah untuk mendeteksi, 0 atau dst, dan Anda juga harus memastikan bahwa nilai ini * tidak * dikirim oleh app Anda dalam salah satu dari data multimedia.

Hal ini dapat dilakukan baik oleh penyandian data sehingga mustahil untuk nilai terjadi (misalnya encoding sederhana akan untuk mengirimkan semua data multimedia biner dikodekan menjadi ascii hex, yang tidak dapat berisi 0 atau simbol unik dst), atau dengan menggunakan sebuah 'pelarian' karakter: pelarian protokol akan mengirimkan nilai khusus (katakanlah itu 0xff) dengan mengirimkan karakter escape (katakanlah itu 0xfe) diikuti oleh (katakanlah) 0x7f untuk berdiri untuk 0xff.Pada akhir menerima urutan ini digantikan oleh hanya 0xff.Tentu saja Anda juga mungkin ingin mengirim nilai 0xfe dalam data multimedia, dan ini bisa dilakukan baik dengan memperluas nilai 0xfe dua byte 0xfe 0x7e, atau dengan mengirim 0xfe 0xfe (yaitu karakter melarikan diri dua kali).Diingat bahwa semua data yang dikirim melalui sambungan harus dilindungi seperti ini; jika terdapat sawah yang panjang dapat mengambil ff nilai ini harus baik dikodekan atau subjek untuk menghindari urutan pengkodean.

Dengan salah satu dari skema ini Anda dapat yakin bahwa ketika terjadi nilai khusus itu menunjukkan awal dari sebuah 'paket'.

Hal lain untuk mengawasi secara keseluruhan efisiensi: jika Anda nilai khusus adalah yang umum dalam data aplikasi, kemudian dengan pendekatan pelarian jumlah data yang mungkin akan meningkat secara signifikan (mendekati dua kali lipat dalam kasus terburuk), jadi anda mungkin memilih untuk tidak untuk menggunakan 0 atau dst sebagai kode khusus jika nilai-nilai tersebut sangat umum dalam data aplikasi.Tentu saja pendekatan pengkodean juga akan meningkatkan jumlah data yang ditransfer, dengan jumlah yang tergantung pada skema pengkodean yang dipilih.Dalam kasus ASCII Hex, satu byte akan ditransmisikan dalam dua karakter ascii, sehingga data selalu dua kali lipat dalam kasus ini.Tentu saja ada banyak skema pengkodean lebih efisien.Lihat yenc untuk usenet yang lebih efisien (dan kompleks) contoh.

Jika Anda ingin menghindari masalah ini, dan overhead dengan benar mungkin gagal mendeteksi awal paket pada, pertama kita tidak terlalu besar, kemudian menghindari pendekatan simbol khusus sama sekali, tambahkan kode awal yang sederhana (non-unik tapi infequently - terjadi dalam data), panjang, dan CRC data yang mengikuti semua harus benar untuk sebuah paket yang akan berlaku.

HTH
barny

 
Thanks for the replies.

Quote:

...
menghindari pendekatan simbol khusus sama sekali, tambahkan kode awal yang sederhana (non-unik namun terjadi di infequently-data), panjang, dan CRC ...
 
Ya, itu harus bekerja baik.Hal ini sangat tidak mungkin terjadi secara alami.CATATAN bukan tidak mungkin, Anda mungkin mendapatkan kesempatan yang sangat langka ketika seorang pelanggan mengeluh bahwa tampilan mereka selesai sampah.

Aku ingat bekerja pada sistem pemeliharaan di mana pelanggan mengeluh bahwa setelah reboot, kadang-kadang tombol fungsi programmable lengkap berisi sampah.Ternyata bahwa pengembang telah melindungi 'non-volatile' memori untuk penyimpanan tombol fungsi menggunakan 8-bit CRC.Bahkan ini mengurangi kemungkinan korupsi mendeteksi hingga 1 di 256; setelah startup di pagi hari, sekitar setahun sekali (dalam hal hari kerja) RAM untuk setiap tombol yang korup ini tidak terdeteksi, dan mengingat bahwa ada tiga puluh programmable kunci pada keyboard, ini cukup sering mengakibatkan kelakuan buruk, hasil dari perhatian miskin dengan perbedaan antara tidak mungkin dan mustahil.

HTH
Barny

 
Thanks barny451 dan mehrara untuk balasan.
Saya mungkin akan kembali segera

 

Welcome to EDABoard.com

Sponsor

Back
Top