From owner-freebsd-net@FreeBSD.ORG Wed Dec 6 15:09:41 2006 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E702A16A40F for ; Wed, 6 Dec 2006 15:09:41 +0000 (UTC) (envelope-from maillist.ifiaas@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.189]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5146243CAB for ; Wed, 6 Dec 2006 15:08:55 +0000 (GMT) (envelope-from maillist.ifiaas@gmail.com) Received: by nf-out-0910.google.com with SMTP id x37so552641nfc for ; Wed, 06 Dec 2006 07:09:39 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=azemAcJPt6VJ97wfCXrl3kFONowcAZL/tKMPUys9frfdWtRh2LTWMVbtCFTSSYQZlMSLm6H4FsVl7j44bCzVNF5+X1A1cwVApFzB3geZrW3pY/0SzD7jI46FA8gm0B0jXu6rReurk9Xws/Vw2xCO3iiOWN+cVHpE/Wm9nHmbB44= Received: by 10.49.7.10 with SMTP id k10mr2319235nfi.1165417779605; Wed, 06 Dec 2006 07:09:39 -0800 (PST) Received: by 10.48.242.15 with HTTP; Wed, 6 Dec 2006 07:09:39 -0800 (PST) Message-ID: <161d69110612060709n3bf99bd4y47d94b021b8f1d02@mail.gmail.com> Date: Wed, 6 Dec 2006 23:09:39 +0800 From: "maillist ifiaas" To: freebsd-net@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: Urel, a TCP option for Unreliable Streaming. Need your help. X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Dec 2006 15:09:42 -0000 Hi friends, This is one of my research project. Our purpose is to modify TCP to support unreliable but congestion controlled streaming. The motivation is pretty similar to the one of DCCP CCID2. We have implemented a prototype on FreeBSD 5.4, and the the modifications are limited mostly in tcp_input.c and tcp_output.c. Source code, a paper about the design (under submission), and an Iperf modification to test out TCP Urel, is provided on the following page: www.comp.nus.edu.sg/~malin/ Our current stage is changing Urel into a single directional streaming protocol, so taht it could be abosolutely fair with default TCP Sack, in FreeBSD. But we found after all the modifications (on single directional streaming), Urel generates less ACK than normal Sack, making it under utilized when competing to TCP Sack. About only 3 out of 10 tries, Urel take the same throughput as Sack. The reason seems to lying in the Delay ACK code, in tcp_input.c. Because, when we turn off the Delay ACK option, using sysctl command, Urel and Sack play fairly. However after days of looking at the code, we failed to find the secret... Therefore, I turn to you, the specialists of the TCP code in FreeBSD. Hope you can help us to find the bug of our code. Any suggesion, comments, is appreciated. For details of how the code is implemented, how our experiment is conducted, you may need to spend one or two hours to browse through our paper, and the source code. Sincerely, Gavin