"Sliding window" - is it possible to add reliability to the protocol and avoid flow control?

As part of a personal project, I am making an application layer protocol (encapsulated in UDP) that is reliable.

To implement reliability, I have to keep track of which packets I send and which packets are received at the other end of the receiver. This is done using a sliding window, and also supports flow control.

  • Is there a way to implement reliability other than the standard window / stream deployment method.
  • If not, someone will share their experience / concept / code and discuss it in this article.
  • If so, have you implemented it or do you know any implementation of the concept.
+3
source share
7 answers

After reading all these answers, studying other implementations, and reading some articles, I write / share what is most appropriate. First, let me talk about flow control, and later I will talk about reliability.

There are two types of flow control -

  • Rate based - Packets Transfer is done on time.
  • Window - a standard window, can be static or dynamic (sliding window).

, RTT ( - , ping RTT). , , . , , .

, , , . , . ( ) , .

...

, /. , , , . .

. , , MAX [ , ], , .

, - , , .

, , , - , , , . , , , ( + ) (uDT).

+1

, TCP/IP , . .

, , , , , , TCP .

+2

, UDP, , , .

TCP UDP .

0

Nik , , UDP TCP, . , - .

, UDP, , , ( ).

, , RADIUS, EVDO. ( 1 , ), . Radius , , TCP. , , , , . , , / , , , .

, TCP/IP , -, , , .

- , , . TCP/IP , , .

0

Send- > Ack. Ack , (Effectivly = 1 , : -)

0

- :

1:

1) . , .

2) ACK .

3) 1-2 , ACK .

2:

4) , .

5) , . , , .

3:

6) .

7) .

8) 6-7, .

9) "" .

10) ACK .

11) 10-11, ACK .

, . , . . , 100 , [(1-100)]. , , . , 1-12, 13-14, 15-44, 45-46, - : [(13-14), (45-46)]. . , , , .

0
source

You might want to watch SCTP - it is reliable and message-oriented.

0
source

Source: https://habr.com/ru/post/1712357/


All Articles