nuttx/net/tcp
YAMAMOTO Takashi 4878b7729c tcp: simplify readahead
Do not bother to preserve segment boundaries in the tcp
readahead queues.

* Avoid wasting the tail IOB space for each segments.
  Instead, pack the newly received data into the tail space
  of the last IOB. Also, advertise the tail space as
  a part of the window.

* Use IOB chain directly. Eliminate IOB queue overhead.

* Allow to accept only a part of a segment.

* This change improves the memory efficiency.
  And probably more importantly, allows less-confusing
  recv window advertisement behavior.
  Previously, even when we advertise N bytes window,
  we often couldn't actually accept N bytes. Depending on
  the segment sizes and IOB configurations, it was causing
  segment drops.
  Also, the previous code was moving the right edge of the
  window back and forth too often, even when nothing in
  the system was competing on the IOBs. Shrinking the
  window that way is a kinda well known recipe to confuse
  the peer stack.
2021-06-30 06:22:14 +09:00
..
Kconfig net/tcp: implement the fast retransmit 2020-12-01 11:36:10 -06:00
Make.defs net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_accept.c net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_appsend.c tcp: window update improvements 2021-06-13 21:20:24 -05:00
tcp_backlog.c net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_callback.c tcp: simplify readahead 2021-06-30 06:22:14 +09:00
tcp_close.c net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_conn.c tcp: simplify readahead 2021-06-30 06:22:14 +09:00
tcp_connect.c net/tcp/handshake: send the SYN immediately. 2020-12-18 14:16:11 +09:00
tcp_devpoll.c Standardization of some function headers. 2018-03-13 09:52:27 -06:00
tcp_finddev.c net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_getsockopt.c net/tcp: set/get TCP_KEEPINTVL/IDLE value as BSD style 2021-05-22 09:01:18 -05:00
tcp_input.c tcp_input: Accept segments spanning over rcvseq 2021-06-30 06:22:14 +09:00
tcp_ipselect.c net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_listen.c Run codespell -w with the latest dictonary again 2020-02-23 22:27:46 +01:00
tcp_monitor.c net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_netpoll.c tcp: simplify readahead 2021-06-30 06:22:14 +09:00
tcp_notifier.c tcp: simplify readahead 2021-06-30 06:22:14 +09:00
tcp_recvfrom.c tcp: simplify readahead 2021-06-30 06:22:14 +09:00
tcp_recvwindow.c tcp: simplify readahead 2021-06-30 06:22:14 +09:00
tcp_send_buffered.c tcp: Use the tcp seq macros in some obvious places 2021-06-10 22:47:04 -05:00
tcp_send_unbuffered.c tcp: Use the tcp seq macros in some obvious places 2021-06-10 22:47:04 -05:00
tcp_send.c tcp: window update improvements 2021-06-13 21:20:24 -05:00
tcp_sendfile.c Include assert.h in necessary place 2021-06-08 13:06:08 -07:00
tcp_seqno.c net/: Fix alignment and spacing problems found by tools/nxstyle. 2019-07-02 18:02:23 -06:00
tcp_setsockopt.c net/tcp: set/get TCP_KEEPINTVL/IDLE value as BSD style 2021-05-22 09:01:18 -05:00
tcp_timer.c net/tcp: reset the connection ref count before tcp_free() 2021-03-22 10:55:30 +09:00
tcp_txdrain.c sched: Don't include nuttx/sched.h inside sched.h 2021-05-24 12:11:53 +09:00
tcp_wrbuffer_dump.c net: Author Gregory Nutt: update licenses to Apache 2021-02-20 00:38:18 -08:00
tcp_wrbuffer.c net: update licenses to Apache 2021-05-27 08:07:25 +09:00
tcp.h tcp: simplify readahead 2021-06-30 06:22:14 +09:00