sharpshooter
1.0.0
Sharpshooter adalah protokol jaringan keandalan yang menggunakan UDP.
Ini adalah protokol berorientasi koneksi seperti TCP.
Ini tidak memiliki karakteristik paket, Anda dapat mencobanya untuk melewati beberapa deteksi karakteristik protokol, dan basis untuk protokol transport aplikasi P2P.
Tentang instruksi, Anda dapat melihat contoh direktori, saya memberikan contoh sederhana.
Jika ingin mengkonversi TCP ke sharpshooter, dapat mencoba https://github.com/soyum2222/sharpshooter-tunel.
| SIZE(4byte) | SQE(4byte) | CMD(2byte) | CONTENT(.......) |
SIZE:
contain SQE CMD CONTENT byte size . but not contain itself byte size .
SQE
sequence number, continuous data package, SQE is continuous.
CMD
0:ack
1:NORMAL
2:first handshack
3:second handshack(response first handshack)
4:third handshack
5:close connction(FIN)
6:response close
7:health check
8:response health
ACK package
| SIZE(4byte) | SQE(4byte) | CMD(2byte) | ackSQE1(4byte)| ackSQE2(4byte) | ackSQE3(4byte) | ... |
The package max length can't over DEFAULT_INIT_PACKSIZE or Sniper.packageSize
When receive ack like :
| SIZE(4byte) | SQE(4byte) | CMD(2byte) | ackSQE1(4byte)| ackSQE2(4byte) | ackSQE3(4byte) |
if ackSQE1 == ackSQE2 and ackSQE1 < ackSQE3 this situation means ackSQE1 to ackSQE3 is continuous number .
eg: receive data : |0|0|0|1|1|10| , this means other party sent ack 1 to 10.
ping.pergi
pong.pergi
kirim_file.pergi
terima_file.pergi
coba transfer file 100M
pemanfaatannya tergantung pada status jaringan dan ukuran jendela pengiriman