This page was last modified 21:04, 26 October 2007.
Configurar o tamanho da janela TCP
From Forum Nokia Wiki
Original: Set TCP Window Size
Contents |
O que é uma janela TCP?
Uma janela TCP (em Inglês) é a quantidade de dados (não confirmadas pelo recebedor) que um remetente pode enviar através de uma conexão, antes de receber uma confirmação de recebimento do destinatário.
O motivo principal para usar uma janela TCP é controle de congestionamento. A janela TCP diminui a velocidade de transmissão até um nível em que congestionamento e perda de dados não ocorrem.
Considerando a importância das janelas TCP, é preciso garantir que os pares negociem corretamente o tamanho da janela antes de criar a conexão. A principal razão para estabelecer o tamanho da janela é que apenas 16 bits são reservados para a janela no cabeçalho TCP, com um tamanho máximo de 64k.
Para resolver essa limitação, existe uma opção para alterar o tamanho da janela TCP. Se uma janela de tamanho maior que 64k for necessária, é preciso especificar esse valor no momento da abertura da conexão.
Configurando o tamanho da janela TCP
O seguinte trecho de código Open C mostra como determinar o tamanho da janela TCP no cliente e no servidor.
int window_size = 128 * 1024; /* 128 kilobytes */ sock = socket(AF_INET, SOCK_STREAM, 0); /* Ambas as chamadas de setsockopt() devem ser feitas antes de connect()/accept() */ setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *) &window_size, sizeof(window_size)); setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *) &window_size, sizeof(window_size)); #ifdef CLIENT_CODE connect(sock, (struct sockaddr *) &address, sizeof(address)); #endif #ifdef SERVER_CODE listen(sock, 5); accept(sock, NULL, NULL); #endif
A função setsockopt() pode ser usada pela aplicação para controlar o comportamento dos sockets. O arquivo de cabeçalho requerido é o sys/socket.h. No código anterior, a chamada a setsockopt() deve ser realizada antes de connect() ou accept().
Referências
* A User's Guide to TCP Windows
Links relacionados
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| HELP!! create a connection b/w cell phone and laptop | humaali | Mobile Java Networking & Messaging & Security | 2 | 2006-02-15 18:18 |
| best way of sharing gps data between symbian phones | oyuky | Python | 19 | 2008-05-24 15:46 |
| sending video through tcp socket | sathy | Mobile Java Media (Graphics & Sounds) | 0 | 2005-10-01 14:25 |
| TCP Client | thodime_guru | Symbian Networking & Messaging | 4 | 2004-08-25 13:31 |
| CMdaAudioOutputStream or CMMFDevSound | senyasumkin1 | Symbian Media (Graphics & Sounds) | 5 | 2007-09-29 19:51 |
