-
Notifications
You must be signed in to change notification settings - Fork 56
Frequent data transmission can lead to connection interruption #61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Can you explain what you mean by
Try to make it very concrete. What do see, what is happening that you didn't expect? How did you notice? Do you have some "evidence", e.g. a WireShark capture that shows what is going on? Why do you think the problem is in Kwik? I would really like to investigate, but I need more information; now I don't need were to start. Cheers |
I notice you enable the datagram extension. Do you really use it? Datagram extension is sending data unreliably by design! |
quic-log.zip I deleted the datagram but still encountered this issue. Currently, I obtained the data through WireShark |
To make sense of the pcap, i also need the keys. You can let kwik export the keys. And you still need to explain what exactly your problem is, as i asked in the previous comment. I don't have a crystal ball, for me to investigate an issue, I do need to know what exactly the issue is. |
Hi @jiajialaixi Any update? |
I haven't found where the problem lies yet. Currently, there is a packet sticking issue with the data I transmit using TCP. If I replace the corresponding transmission function with KWIK, this problem will also occur. However, using TCP's middle function setTcpNoDelay can solve the corresponding packet sticking issue. KWIK has not found any API to handle this function yet |
Simulate sending 320 bytes of audio in 40 milliseconds and 5000 bytes of video data in 25 milliseconds to reproduce |
I don't understand what you mean by "packet sticking". How are these 320 bytes sent? One block of 320 bytes, or 10 times 32 bytes, how big was the delay in between, etc. Please configure kwik to write the secrets to a file, record a session with WireShark and provide me with the pcap and the secrets. This will give facts that might help to track down the issue. You need to be much more specific and precise. Kwik sends files of all kinds of sizes and in with all kinds of network conditions without any error, this is tested 3x a day with the interop tests (https://interop.seemann.io), so if you experience data loss, there is something very special about your case, which we need to find. I cannot find a problem when I do not understand what the problem exactly is. Talking "sticking packets" does not help, I need facts. E.g. "I sent 320 bytes of data and I received only 269 and when I compare data sent and data received it seems that 41 consecutive bytes in the middle of these 320 byte are missing. It can't be a bug in my server because ....... The WireShark capture shows that for stream 4, the bytes at position 120 - 160 in the stream are never sent". Ok? |
Any news @jiajialaixi ? |
The same connection works fine on Java, but there is a current issue on Android that has not been identified yet |
Uh oh!
There was an error while loading. Please reload this page.
Sending audio and video frames using Quic will interrupt the transmission of data, and the data packet has been modified based on feedback from the server
`package com.saida.video_call.quic.library.quic
import android.util.Log
import com.saida.play.video_play_plugin.quic.Message
import com.saida.play.video_play_plugin.quic.utils.IO
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import tech.kwik.agent15.env.PlatformMapping
import tech.kwik.core.ConnectionEstablishedEvent
import tech.kwik.core.ConnectionListener
import tech.kwik.core.ConnectionTerminatedEvent
import tech.kwik.core.QuicClientConnection
import tech.kwik.core.QuicStream
import tech.kwik.core.log.SysOutLogger
import java.io.BufferedInputStream
import java.io.BufferedOutputStream
import java.io.OutputStream
import java.net.URI
import java.util.concurrent.locks.ReentrantLock
import kotlinx.coroutines.channels.Channel
import kotlin.coroutines.cancellation.CancellationException
class QUICConnection(var quicStreamInterface: QUICStreamInterface) : ConnectionListener {
}`
log:
log.log
The text was updated successfully, but these errors were encountered: