c#


How to reduce the number of TCP ACK's during a highly reliable bulk transfer


I've got an application where two computers are in very close distance - typically within a few feet of one another.
I've got a TCP connection between applications on the two computers. The server was written in C on Linux, the client on Windows using C# with TCPClient.
Over this socket I'm transferring very large payloads, often gigabytes at a time.
When I use Wireshark to monitor the communication I notice that about 66% of the packets transmitted are ACK's. Each of the payload packets tends to be about 5k. So the percentage of data in ACK's is very low, just a percent or two.
Should I be concerned with the number of ACK's? I'm not concerned with packet loss, I expect the connection to be of high quality in terms of packet loss.
Is there anything I can (or should?) do to reduce the number of ACK's?
What you're probably seeing is the receiver acknowledging the sender's transmissions. The receiver has to use ACK-only packets, as it doesn't have anything else to send (the sender also sends ACKs - every TCP packet contains an ACK).
I don't think you should be bothered by the number of ACKs - the sender isn't waiting for them if its window size is large enough. The question you should ask yourself is - am I getting the throughput I should be getting on my LAN speed?

Related Links

How to prompt to open a file in c# asp.net mvc
Find address using pointer and offset C# [closed]
WPF Flow Document Layout
C# type arguments cannot be inferred from usage in Select with multiple returns
Class Modifiers
Developing Metro Apps using Visual Studio 2010?
transfer of C struct to C# struct by soket API
Object Size in SOS Debugging C#.Net
c# Registry to XML Invalid character issue
What is the best practice for ensuring permissions are correct during the launch of an ASP.NET application
Deploy Outlook 2010 Addin setup
Filtering LINQ results in ASP.NET Web Forms with pagination
What library for c# to use for the graphs of a Roundness-meter software?
C# MVC Linq subquery The entity or complex type 'XXX' cannot be constructed in a LINQ to Entities query
deciphering WebResponse string into list of arrays
C# Win Form Spell Checker .Net 3.5

Categories

HOME
http
locale
pelican
display
xamarin.forms
azure-database-mysql
okhttp3
liquidsoap
hibernate-mapping
subprocess
activejdbc
distinct
logstash-configuration
nsoperation
novacode-docx
autologin
monad-transformers
connectiq
connection-pooling
rvm
poisson
rollupjs
mex
marionette
boosting
meteor-accounts
azure-table-storage
request-uri
boost-log
textview
exacttarget
ilog
n1ql
zimbra
angularjs-resource
gitosis
sdl-2
ssdp
vpython
superclass
libzip
servicebus
spring-webflow-2
anonymous-function
hierarchical-clustering
react.rb
django-tables2
flask-socketio
enet
bioperl
xamarin-test-cloud
opticalflow
nsalert
apache-commons-cli
vertex-shader
huawei
alarmmanager
blackberry-webworks
syslog4j
airwatch
vitamio
supervised-learning
code-translation
skscene
maven-antrun-plugin
tvp
om
vanilla-forums
textblob
dpkt
eula
vectordrawable
tinymce-plugins
system.diagnostics
minko
sony-xperia
static-files
quickfixn
method-overloading
go-gin
triplestore
ant-contrib
yandex-api
smartxls
record-locking
source-depot
mandelbrot
urlfetch
linqdatasource
algol
feincms
correctness
databus
certificate-revocation
aspmenu-control
eeprom
sqlbuddy
project-files
ruby-1.9
virtual-printer
log-shipping
httppostedfilebase
norton
xcdatamodel
google-local-search
dynamic-scope
rpxnow
ihtmldocument2
bootstrap-protocol
expander
httpbrowsercapabilities
high-load
tracd

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App