sharpshooter
1.0.0
Sharpshooter — это надежный сетевой протокол, использующий UDP.
Это протокол, ориентированный на соединение, как и TCP.
Он не имеет характеристик пакета. Вы можете попробовать его, чтобы обойти обнаружение некоторых характеристик протокола и использовать в качестве основы для транспортного протокола приложения P2P.
Что касается инструкций, вы можете увидеть пример каталога, я привел два простых примера.
Если вы хотите преобразовать TCP в снайпер, можете попробовать 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.
пинг.го
понг.го
send_file.go
получить_файл.go
попробуйте передать файл размером 100M
использование зависит от состояния сети и размера окна отправки