Xref: utzoo comp.os.os2.programmer:581 comp.protocols.tcp-ip:15490 Newsgroups: comp.os.os2.programmer,comp.protocols.tcp-ip Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!smurf!nadia!chlebosc From: chlebosc@nadia.stgt.sub.org (Claudius Chlebosch) Subject: Problems with IBMs TCP/IP V1.1 for OS/2 Message-ID: Organization: Stuttgart Net Systems, FRG Date: Wed, 3 Apr 91 21:34:18 GMT Lines: 43 I got some problems with IBMs TCP/IP V1.1 for OS/2 using stream sockets an i hope to get some help on this way. I have to write a program, which transfers data using stream sockets in portions of 32 kByte. The sender should send this portions with one call to the send() function and the receiver should get this portions with one call to the recv() function. This works very well, if the size of the transmitted segments does not exceed about 6000 bytes and only one segment is transferred using the same socket. In the other case the receiving program has to call the function recv() several times to get the complete segment. Normally the recv() function should block the process, until the whole segment is reveived. For example: the client calls send() with the msgLen set to 20000. The server calls the recv() function, which blocks the process, until the whole 20000 bytes are received. The client calls send() once again with the msgLen set to 20000. The server calls the recv() function, which returns with 4360 bytes received. The client has to call the recv() function once again to get the remaining 15640 bytes of the segment. In my opinion this behaviour is not correct. second problem: If the server an the client reside in the same machine, no fragmentation is detected, if the size of the transmitted segments is less than the receivebuffersize (which is 23360 bytes as reported by the function getsockopt() ). This beviaour does not change, even if the receivebuffersize of the receiving socket and the sendbuffersize of the sending socket are increased via the setsockopt() call. The border at which fragmentation begins remains at 23360 bytes. My configuration is: two IBM PS/2 (mod 80 and mod 50Z) both with an Token-Ring adaptercard 16/4 A and OS/2 1.2 EE CSD:4098 and TCP/IP V1.1 for OS/2 (Program number: 5798-RXW Part Number : 66F5612). The mtu parameter of the TCP/IP is set to 4400 as it is recommended in the documentation. I hope somebody can give me a hint how i can solve this problem. Thanx for reading this message. Klaudius Chlebosch -- Klaudius Chlebosch | usenet: ..chlebosc@nadia.stgt.sub.org Eschenweg 1 | Mailbox: *49 711 484464 24 h 1200/2400 Baud D-7045 Nufringen | *49 711 461592 24 h 1200/2400 Baud Tel.: *49 7032 82023 |