mirror of
				https://github.com/xcat2/confluent.git
				synced 2025-11-03 21:02:36 +00:00 
			
		
		
		
	For local socket, it isn't enough to matter. In network protocols, encryption will generally cause things to be rounded up to the next 16 bytes anyway. Make things simpler implementation wise by sticking to 4 byte tl bytes, but still reserve TL with hi bit set, just in case.
		
			
				
	
	
		
			19 lines
		
	
	
		
			719 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			719 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
The socket protocol is intended for high performance at the expense of a
 | 
						|
non-standardized approach.  The thinking is that with http so well supported,
 | 
						|
the socket protocol is empowered to do whatever is needed.
 | 
						|
 | 
						|
All data across the wire is TLV values.
 | 
						|
 | 
						|
A shorter single byte TLV variant was considered for lower overhead for things
 | 
						|
like single character, but in every case where throughput efficiency would
 | 
						|
matter is probably padded to 16 byte boundaries anyway due to block ciphers.
 | 
						|
 | 
						|
(all data has a 4 byte TLV for now)
 | 
						|
Four byte TLs: (msb: 0b0)
 | 
						|
Type=TL & 0b01111111000000000000000000000000 >> 24:
 | 
						|
Length= TL & 0b111111111111111111111111
 | 
						|
0: text string
 | 
						|
1: json data
 | 
						|
 | 
						|
(msb: 0b1 is reserved), probably never to be needed
 |