Skip to content
Extraits de code Groupes Projets
Valider d3ed91a0 rédigé par Samuel de Meester de Ravestein's avatar Samuel de Meester de Ravestein
Parcourir les fichiers

sender handle the window of receiver better

parent 1416bdd8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -68,7 +68,7 @@ typedef enum { ...@@ -68,7 +68,7 @@ typedef enum {
#define TR_MASK 0x20 #define TR_MASK 0x20
#define WINDOW_MASK 0x1F #define WINDOW_MASK 0x1F
#define TR_SETTER_TO_ZERO 0xDF #define TR_SETTER_TO_ZERO 0xDF
#define SECOND_TO_LAST_PKT 0xFFFFFFFF // Use to specify it was the second to last pkt sent by the sender #define SECOND_TO_LAST_PKT 0x3AB33922 // Use to specify it was the second to last pkt sent by the sender -> Need to be random ?
#define TYPE_SHIFT 6 #define TYPE_SHIFT 6
#define TR_SHIFT 5 #define TR_SHIFT 5
......
...@@ -156,7 +156,8 @@ int main(int argc, char **argv) { ...@@ -156,7 +156,8 @@ int main(int argc, char **argv) {
} }
else if (can_send(state) && (pfd->revents & POLLOUT)) else if (can_send(state) && (pfd->revents & POLLOUT))
{ {
DEBUG("The sender will send a pkt on the socket, the current sender window size is: %d", state->s_window_size); DEBUG("The sender will send a pkt on the socket, the current sender window size is: %d | receiver window size: %d",
state->s_window_size, state->r_window_size);
rvalue = read_and_send(state, sending_fd, socket_fd); rvalue = read_and_send(state, sending_fd, socket_fd);
if (rvalue == -1) if (rvalue == -1)
{ {
......
...@@ -146,8 +146,8 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd) ...@@ -146,8 +146,8 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd)
} }
else else
{ {
DEBUG("The receiver is asking AGAIN, the seqnum: %d", seqnum_nack); DEBUG("The receiver is asking AGAIN, the seqnum: %d so the sender sends it back", seqnum_nack);
state->r_window_size = r_window; state->r_window_size = r_window - 1; // -1 Because the receiver doesn't count yet the sended pkt
pkt_t *n_pkt = state->buffer[place_last_nack]; pkt_t *n_pkt = state->buffer[place_last_nack];
if (send_pkt(state, n_pkt, place_last_nack, socket_fd) == -1) return -1; if (send_pkt(state, n_pkt, place_last_nack, socket_fd) == -1) return -1;
return 0; return 0;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter