mirror of
https://repo.or.cz/socat.git
synced 2024-12-23 07:52:32 +00:00
Preferred backend for TUN is UDP, not TCP
This commit is contained in:
parent
cc3cd744d9
commit
dabcc7f3d5
2 changed files with 13 additions and 6 deletions
4
CHANGES
4
CHANGES
|
@ -186,6 +186,10 @@ Documentation:
|
||||||
Address UDP-RECV does not support option fork.
|
Address UDP-RECV does not support option fork.
|
||||||
Thanks to Fulvio Scapin for reporting that mistake in docu.
|
Thanks to Fulvio Scapin for reporting that mistake in docu.
|
||||||
|
|
||||||
|
TUN address documentation showed TCP for backend which may merge
|
||||||
|
consecutive packets which causes data loss.
|
||||||
|
Thanks to Tomasz Lakota for reporting this issue.
|
||||||
|
|
||||||
####################### V 1.7.3.4:
|
####################### V 1.7.3.4:
|
||||||
|
|
||||||
Corrections:
|
Corrections:
|
||||||
|
|
13
doc/socat.yo
13
doc/socat.yo
|
@ -1048,6 +1048,9 @@ label(ADDRESS_TUN)dit(bf(tt(TUN[:<if-addr>/<bits>])))
|
||||||
requires read and write access to the tunnel cloning device, usually
|
requires read and write access to the tunnel cloning device, usually
|
||||||
code(/dev/net/tun), as well as permission to set some tt(ioctl()s).
|
code(/dev/net/tun), as well as permission to set some tt(ioctl()s).
|
||||||
bf(Option iff-up is required to immediately activate the interface!)nl()
|
bf(Option iff-up is required to immediately activate the interface!)nl()
|
||||||
|
Note: If you intend to transfer packets between two Socat "wire sides" you
|
||||||
|
need a protocol that keeps packet boundaries, e.g.UDP; TCP might work with
|
||||||
|
option link(nodelay)(OPTION_TCP_NODELAY).nl()
|
||||||
Option groups: link(FD)(GROUP_FD),link(NAMED)(GROUP_NAMED),link(OPEN)(GROUP_OPEN),link(TUN)(GROUP_TUN) nl()
|
Option groups: link(FD)(GROUP_FD),link(NAMED)(GROUP_NAMED),link(OPEN)(GROUP_OPEN),link(TUN)(GROUP_TUN) nl()
|
||||||
Useful options:
|
Useful options:
|
||||||
link(iff-up)(OPTION_IFF_UP),
|
link(iff-up)(OPTION_IFF_UP),
|
||||||
|
@ -2223,7 +2226,7 @@ label(GROUP_TCP)em(bf(TCP option group))
|
||||||
|
|
||||||
These options may be applied to TCP sockets. They work by invoking code(setsockopt()) with the appropriate parameters.
|
These options may be applied to TCP sockets. They work by invoking code(setsockopt()) with the appropriate parameters.
|
||||||
startdit()
|
startdit()
|
||||||
label(OPTION_CORK)dit(bf(tt(cork)))
|
label(OPTION_TCP_CORK)dit(bf(tt(cork)))
|
||||||
Doesn't send packets smaller than MSS (maximal segment size).
|
Doesn't send packets smaller than MSS (maximal segment size).
|
||||||
label(OPTION_DEFER-ACCEPT)dit(bf(tt(defer-accept)))
|
label(OPTION_DEFER-ACCEPT)dit(bf(tt(defer-accept)))
|
||||||
While listening, accepts connections only when data from the peer arrived.
|
While listening, accepts connections only when data from the peer arrived.
|
||||||
|
@ -2247,7 +2250,7 @@ label(OPTION_MSS)dit(bf(tt(mss=<bytes>)))
|
||||||
label(OPTION_MSS_LATE)dit(bf(tt(mss-late=<bytes>)))
|
label(OPTION_MSS_LATE)dit(bf(tt(mss-late=<bytes>)))
|
||||||
Sets the MSS of the socket after connection has been established to <bytes>
|
Sets the MSS of the socket after connection has been established to <bytes>
|
||||||
[link(int)(TYPE_INT)].
|
[link(int)(TYPE_INT)].
|
||||||
label(OPTION_NODELAY)dit(bf(tt(nodelay)))
|
label(OPTION_TCP_NODELAY)dit(bf(tt(nodelay)))
|
||||||
Turns off the Nagle algorithm for measuring the RTT (round trip time).
|
Turns off the Nagle algorithm for measuring the RTT (round trip time).
|
||||||
label(OPTION_RFC1323)dit(bf(tt(rfc1323)))
|
label(OPTION_RFC1323)dit(bf(tt(rfc1323)))
|
||||||
Enables RFC1323 TCP options: TCP window scale, round-trip time measurement
|
Enables RFC1323 TCP options: TCP window scale, round-trip time measurement
|
||||||
|
@ -3475,13 +3478,13 @@ operating system, bridges, or a badly configured switch.
|
||||||
|
|
||||||
|
|
||||||
label(EXAMPLE_ADDRESS_TUN)
|
label(EXAMPLE_ADDRESS_TUN)
|
||||||
dit(bf(tt(socat TCP:host2:4443 TUN:192.168.255.1/24,up)))
|
dit(bf(tt(socat UDP:host2:4443 TUN:192.168.255.1/24,up)))
|
||||||
|
|
||||||
establishes one side of a virtual (but not private!) network with host2 where a
|
establishes one side of a virtual (but not private!) network with host2 where a
|
||||||
similar process might run, with UDP-L and tun address 192.168.255.2. They can
|
similar process might run, with UDP-L and tun address 192.168.255.2. They can
|
||||||
reach each other using the addresses 192.168.255.1 and 192.168.255.2. Note that
|
reach each other using the addresses 192.168.255.1 and 192.168.255.2. Note that
|
||||||
streaming eg. via TCP or SSL does not guarantee to retain packet boundaries and
|
streaming eg.via TCP or SSL does not guarantee to retain packet boundaries and
|
||||||
may thus cause packet loss.
|
might thus cause packet loss.
|
||||||
|
|
||||||
|
|
||||||
label(EXAMPLE_ADDRESS_VSOCK)
|
label(EXAMPLE_ADDRESS_VSOCK)
|
||||||
|
|
Loading…
Reference in a new issue