• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hardbyte / python-can / 6691123424
71%
main: 71%

Build:
Build:
LAST BUILD BRANCH: damiao-plugin
DEFAULT BRANCH: main
Ran 30 Oct 2023 10:01AM UTC
Jobs 21
Files 89
Run time 12s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Oct 2023 09:59AM UTC coverage: 70.768% (-0.08%) from 70.847%
6691123424

push

github

web-flow
Configure socketcand TCP socket to reduce latency (#1683)

* Configure TCP socket to reduce latency

TCP_NODELAY disables Nagles algorithm. This improves latency (reduces),
but worsens overall throughput. For the purpose of bridging a CAN bus
over a network connection to socketcand (and given the relatively low
overall bandwidth of CAN), optimizing for latency is more important.

TCP_QUICKACK disables the default delayed ACK timer. This is ~40ms in
linux (not sure about windows). The thing is, TCP_QUICKACK is reset when
you send or receive on the socket, so it needs reenabling each time.
Also, TCP_QUICKACK doesn't seem to be available in windows.

Here's a comment by John Nagle himself that some may find useful:
https://news.ycombinator.com/item?id=10608356

"That still irks me. The real problem is not tinygram prevention. It's
ACK delays, and that stupid fixed timer. They both went into TCP around
the same time, but independently. I did tinygram prevention (the Nagle
algorithm) and Berkeley did delayed ACKs, both in the early 1980s. The
combination of the two is awful. Unfortunately by the time I found about
delayed ACKs, I had changed jobs, was out of networking, and doing a
product for Autodesk on non-networked PCs.  Delayed ACKs are a win only
in certain circumstances - mostly character echo for Telnet. (When
Berkeley installed delayed ACKs, they were doing a lot of Telnet from
terminal concentrators in student terminal rooms to host VAX machines
doing the work. For that particular situation, it made sense.) The
delayed ACK timer is scaled to expected human response time. A delayed
ACK is a bet that the other end will reply to what you just sent almost
immediately. Except for some RPC protocols, this is unlikely. So the ACK
delay mechanism loses the bet, over and over, delaying the ACK, waiting
for a packet on which the ACK can be piggybacked, not getting it, and
then sending the ACK, delayed. There's nothing in TCP ... (continued)

2 of 14 new or added lines in 1 file covered. (14.29%)

7357 of 10396 relevant lines covered (70.77%)

13.41 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
12
16.79
-1.0% can/interfaces/socketcand/socketcand.py
Jobs
ID Job ID Ran Files Coverage
1 Unittests-windows-latest-3.8 - 6691123424.1 30 Oct 2023 10:02AM UTC 89
65.18
GitHub Action Run
2 Unittests-ubuntu-latest-3.12 - 6691123424.2 30 Oct 2023 10:02AM UTC 89
64.44
GitHub Action Run
3 Unittests-windows-latest-3.11 - 6691123424.3 30 Oct 2023 10:01AM UTC 89
65.08
GitHub Action Run
4 Unittests-macos-latest-3.12 - 6691123424.4 30 Oct 2023 10:01AM UTC 89
61.8
GitHub Action Run
5 Unittests-macos-latest-3.8 - 6691123424.5 30 Oct 2023 10:01AM UTC 89
63.17
GitHub Action Run
6 Unittests-macos-latest-3.11 - 6691123424.6 30 Oct 2023 10:01AM UTC 89
63.11
GitHub Action Run
7 Unittests-ubuntu-latest-3.8 - 6691123424.7 30 Oct 2023 10:02AM UTC 89
65.86
GitHub Action Run
8 Unittests-ubuntu-latest-3.11 - 6691123424.8 30 Oct 2023 10:02AM UTC 89
65.8
GitHub Action Run
9 Unittests-macos-latest-3.9 - 6691123424.9 30 Oct 2023 10:03AM UTC 89
63.17
GitHub Action Run
10 Unittests-windows-latest-3.12 - 6691123424.10 30 Oct 2023 10:02AM UTC 89
63.72
GitHub Action Run
11 Unittests-macos-latest-pypy-3.9 - 6691123424.11 30 Oct 2023 10:02AM UTC 89
61.78
GitHub Action Run
12 Unittests-ubuntu-latest-pypy-3.8 - 6691123424.12 30 Oct 2023 10:03AM UTC 89
62.88
GitHub Action Run
13 Unittests-macos-latest-3.10 - 6691123424.13 30 Oct 2023 10:00AM UTC 89
63.11
GitHub Action Run
14 Unittests-windows-latest-3.10 - 6691123424.14 30 Oct 2023 10:01AM UTC 89
65.12
GitHub Action Run
15 Unittests-ubuntu-latest-3.9 - 6691123424.15 30 Oct 2023 10:02AM UTC 89
65.86
GitHub Action Run
16 Unittests-windows-latest-3.9 - 6691123424.16 30 Oct 2023 10:02AM UTC 89
65.18
GitHub Action Run
17 Unittests-ubuntu-latest-pypy-3.9 - 6691123424.17 30 Oct 2023 10:02AM UTC 89
62.87
GitHub Action Run
18 Unittests-ubuntu-latest-3.10 - 6691123424.18 30 Oct 2023 10:03AM UTC 89
65.8
GitHub Action Run
19 Unittests-windows-latest-pypy-3.9 - 6691123424.19 30 Oct 2023 10:06AM UTC 89
63.44
GitHub Action Run
20 Unittests-windows-latest-pypy-3.8 - 6691123424.20 30 Oct 2023 10:08AM UTC 89
63.49
GitHub Action Run
21 Unittests-macos-latest-pypy-3.8 - 6691123424.21 30 Oct 2023 10:08AM UTC 89
61.78
GitHub Action Run
Source Files on build 6691123424
  • Tree
  • List 89
  • Changed 8
  • Source Changed 0
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 5c1c46fd on github
  • Prev Build on develop (#6574193828)
  • Next Build on develop (#6896725730)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc