02-03-2015
Problem and question with TCP
Hi guys , i write this message for a doubt, a time ago i wrote a client/server program with TCP/IP in Linux. When i tested the program flooding the server with messages of 1024 bytes (Or 1025 bytes i dont remember exactly the number but was more that 1000 bytes) in certain point a message was received truncated blocking the program because the while(recv) never completed the 1024 characters count. I avoided this problem making the messages more shorter (i don't remember 200 bytes i guess) but i know that is not ok. Now i must develop a very strong connection (avoiding so much as posible the lost of messages) and i need understand why this happened and how avoid this problem. Maybe the net was oversaturated in that moment when i tested my program and a part of the message was lost but this is not a excuse. My question is ¿There is some protocol that avoid the lost packages (i know that tcp does the best effort for send the message but i saw how a message or part of it came truncated more than once) or either very strong or I must develop a protocol for this?
I read about Reno TCP and TCP Vega but really i dont know how use it.
Thank you very much
10 More Discussions You Might Find Interesting
1. IP Networking
I am trying to connect via DBACCESS and Informix server to a server on a different computer. When I execute the connect command from dbaccess I get the following message,
Exec format error cannot bind a name to the port.
As far as I know the port is not being used by another client.
How... (1 Reply)
Discussion started by: lopez
1 Replies
2. IP Networking
Hi Eveyone,
I have A small problems maybe some one can help me. I'm running a small network at home with internet access. Two PC's have Win XP and one has Win98se. I have them all hook up on a SMC router. ALL windows firewall are off and and harddrive sharing is on. I am using DCHP network... (3 Replies)
Discussion started by: Peterh
3 Replies
3. Solaris
I am running a Java Client on Solaris 9 which communicates with the Server using TCP/IP.
The client transmits a FIN packet to server. The server sends a ACK, FIN enters LAST_ACK state and then waits for ACK from client. The client did not respond back leaving the server in LAST_ACK itself. Also... (0 Replies)
Discussion started by: diarun
0 Replies
4. Programming
There is a server and a client,when client send a message to server,server can send a reply to client. The status of server and client is ESTABLISHED.Then I halt the client,I find the server status is CLOSE_WAIT and the client status is FIN_WAIT_2. Many minutes passed,I find the the server status... (1 Reply)
Discussion started by: konvalo
1 Replies
5. Programming
Greetings!
I am attempting to write a *basic* network client in C. I have manage to create a socket but I have doubts as far as using AF_INET vs AF_UNIX.
At the present time, my client runs with AF_INET. Is AF_UNIX faster across hosts using the same OS flavor (Red Hat)? What is the difference... (1 Reply)
Discussion started by: Alan Christen
1 Replies
6. Red Hat
how the data from disk is loaded into memory and then it transfered to tcp/ip packet.
how i can find how many pages are loaded into memory by that process
what is the rate of context switch for that process. (5 Replies)
Discussion started by: amar20
5 Replies
7. Shell Programming and Scripting
how the data from disk is loaded into memory and then it supplied to tcp/ip packet.
how i can trace the no of pages loaded in memory by that process and rate of context switch for that process. (1 Reply)
Discussion started by: amar20
1 Replies
8. Programming
Hello @ all,
I hope you can give me some advice :b:
I will be following code for a tcp server and doStuff () function, the
clients treated. From some point, I have several identical
clients (zombies, I think), the same records in the database
write. Has anyone an explanation? What can I... (1 Reply)
Discussion started by: yumos
1 Replies
9. IP Networking
Hello all.
This is my first post and thank you for your forum.
Here is my question.
I have a simple setup at home and I was capturing some data with wireshark.
Data between a workstation and the web server, requesting a page.
Simple enough.
Now when I open wireshark, I apply the TCP... (4 Replies)
Discussion started by: squaresphere
4 Replies
10. UNIX for Advanced & Expert Users
Hi all.
I have a really really weird problem that I've been working on for days.
The problem manifested as users cannot connect to our web servers via SSH when they're using our wireless network. Here's where it gets weird:
- Clients from anywhere other than the wireless subnet can... (4 Replies)
Discussion started by: pileofrogs
4 Replies
LEARN ABOUT DEBIAN
curvecpserver
NaCl(1) General Commands Manual NaCl(1)
NAME
CurveCP -- Message-handling programs
SYNOPSIS
curvecpserver [-q (optional)] [-Q (optional)] [-v (optional)] [-c n(optional)] [sname] [keydir] [ip] [port] [ext] [prog]
DESCRIPTION
This manual page documents briefly the CurveCP commands.
A traditional UNIX-style server such as ftpd handles just one network connection, reading input from stdin and writing output to stdout. A
"superserver" such as inetd or tcpserver listens for network connections and starts a separate server process for each connection.
The CurveCP command-line tools have an extra level of modularity. The curvecpserver superserver listens for network connections. For each
connection, curvecpserver starts the curvecpmessage message handler; curvecpmessage then starts a server such as ftpd. Then ftpd sends a
stream of data to curvecpmessage, which in turn sends messages to curvecpserver, which encrypts and authenticates the messages and sends
them inside network packets. At the same time curvecpclient receives network packets, verifies and decrypts messages inside the packets,
and passes the messages to curvecpmessage; curvecpmessage sends a stream of data to ftpd. The same curvecpmessage tool is also used by
curvecpclient.
curvecpserver and curvecpclient can use programs other than curvecpmessage. Those programs can directly generate messages in the CurveCP
message format without talking to separate tools such as ftpd; or they can support a completely different protocol that reuses CurveCP's
cryptographic layer but transmits different kinds of messages.
This page explains what programmers have to do to write curvecpmessage replacements that talk to curvecpserver and curvecpclient.
Incoming messagess
File descriptor 8 is a pipe. Read from this pipe a length byte n, between 1 and 68, and a 16*n-byte message. Repeat. The pipe is set to
non-blocking mode; be prepared for EAGAIN and EWOULDBLOCK, even in the middle of a message.
This pipe reading must always be active. The curvecpclient and curvecpserver programs assume that every message is read immediately. If you
can't handle a message immediately, read it and put it onto a queue. If you don't have queue space, throw the message away; this shouldn't
cause trouble, since you have to be able to handle missing messages in any case.
Outgoing messagess
File descriptor 9 is a pipe. Write to this pipe a length byte n, between 1 and 68, and a 16*n-byte message. Repeat. The pipe is set to
non-blocking mode; be prepared for EAGAIN and EWOULDBLOCK, even in the middle of a message.
As a client, do not use length bytes above 40 until a message has arrived from the server. (The messages inside CurveCP Initiate packets
are limited to 640 bytes.)
The CurveCP server does not start until it has received a message from the client. Furthermore, the CurveCP server must receive this mes-
sage within 60 seconds of the client starting up. (The CurveCP Initiate packet is valid for only 60 seconds after the corresponding CurveCP
Cookie packet.) This does not mean that the client must start sending messages immediately, but it does mean that waiting for more than a
second to send a message is a bad idea.
OPTIONS
How to use curvecpserver:
-q optional
no error messages
-Q optional
print error messages (default)
-v optional
print extra information
-c n optional
allow at most n clients at once (default 100)
sname server's name
keydir use this public-key directory
ip server's IP address
port server's UDP port
ext server's extension
prog run this server
SEE ALSO
curvecpmessage (1), curvecpclient (1), inetd (8), tcpserver (1).
AUTHOR
This manual page was written by Sergiusz Pawlowicz debian@pawlowicz.name for the Debian system (and may be used by others). The source of
this page is a webpage http://curvecp.org/messageapi.html . Permission is granted to copy, distribute and/or modify this document under
public domain.
This manual page was rewritten for the Debian distribution because the original program does not have a manual page.
NaCl(1)