Drop packets when running P2P program

Started by siavoshkc, April 10, 2020, 10:25:28 AM

Previous topic - Next topic

siavoshkc

I am developing on a P2P software project. My problem is that recently after I run this software I see drop packets an high ping times (between 300-800ms although normally it is about 40ms). Now I want to diagnose it to see that the problem is with my modem or ISP or the software is somehow messing up the network. I have 8Mb/6Kb ADSL bandwidth and a P-660HW-T1 v3 modem/router.

Any suggestions on where to look at? I suspected the number of connection may overload the modem but that won't even reach 30.

Edit: I should also note that my internet is OK when I download one file from internet. The download speed reaches about 6.7 Mb/s.

icecream-guy

try wireshark to capture packets and review what is issue
:professorcat:

My Moral Fibers have been cut.

siavoshkc

I am familiar with Wireshark. I can track conversations on the wire and see who tells whom what. But I can't see how can I use it to see why I have dropped packets.

Otanx

Ping time isn't an issue. Ping is the first thing to get delayed by a box if it has other things to do. So if you are sending a lot of data ping response will go up.

How do you know you are dropping packets? How many? What does the network look like between the source and dest? If this is peer to peer do all peers drop packets, just one? What are you sending between the clients? What port and protocol are you using? The final answer might just be that packet loss is just a fact of the internet. Anything that runs over it needs to be able to deal with it.

-Otanx

icecream-guy

Quote from: siavoshkc on April 10, 2020, 04:31:07 PM
I am familiar with Wireshark. I can track conversations on the wire and see who tells whom what. But I can't see how can I use it to see why I have dropped packets.


check the timestamp on the conversation.  example: if you have say a 800ms delay between SYN and SYN-ACK response,  the destination has issue.
if you receive SYN-ACK right away and there is delay with return ACK  the sender has issues,   assuming TCP

:professorcat:

My Moral Fibers have been cut.

siavoshkc

Quote from: Otanx on April 10, 2020, 05:24:21 PM
Ping time isn't an issue. Ping is the first thing to get delayed by a box if it has other things to do. So if you are sending a lot of data ping response will go up.

How do you know you are dropping packets?
I ping ispdomain.com -t

Quote from: Otanx on April 10, 2020, 05:24:21 PM
How many?
1 in ten lines average.

Quote from: Otanx on April 10, 2020, 05:24:21 PM
What does the network look like between the source and dest?
It is the ISP itself so I can say direct link or one hop inside their networks at most.

Quote from: Otanx on April 10, 2020, 05:24:21 PM
If this is peer to peer do all peers drop packets, just one? What are you sending between the clients? What port and protocol are you using? The final answer might just be that packet loss is just a fact of the internet. Anything that runs over it needs to be able to deal with it.
-Otanx

For now I don't look at drops in P2P network. Drops and connection loss is very common in such networks. Diagnosing that will be an issue of itself.

Quote from: ristau5741 on April 11, 2020, 07:04:54 AM
Quote from: siavoshkc on April 10, 2020, 04:31:07 PM
I am familiar with Wireshark. I can track conversations on the wire and see who tells whom what. But I can't see how can I use it to see why I have dropped packets.


check the timestamp on the conversation.  example: if you have say a 800ms delay between SYN and SYN-ACK response,  the destination has issue.
if you receive SYN-ACK right away and there is delay with return ACK  the sender has issues,   assuming TCP


Genius. I will check it. What about UDP?

siavoshkc

I was't able to use anything useful by Wireshark. These are ICMP packets. Some stay unanswered so Wireshark says no response found.

icecream-guy

Quote from: siavoshkc on April 11, 2020, 04:24:23 PM
I was't able to use anything useful by Wireshark. These are ICMP packets. Some stay unanswered so Wireshark says no response found.

research TCP Ping
:professorcat:

My Moral Fibers have been cut.

deanwebb

Yes, TCP Ping will try to connect to a TCP port you're trying to use and checks response time.
Take a baseball bat and trash all the routers, shout out "IT'S A NETWORK PROBLEM NOW, SUCKERS!" and then peel out of the parking lot in your Ferrari.
"The world could perish if people only worked on things that were easy to handle." -- Vladimir Savchenko
Вопросы есть? Вопросов нет! | BCEB: Belkin Certified Expert Baffler | "Plan B is Plan A with an element of panic." -- John Clarke
Accounting is architecture, remember that!
Air gaps are high-latency Internet connections.

Otanx

So I am going to guess that there is no real problem. 1 in 10 loss of ICMP isn't a problem. Many people will rate limit ICMP to prevent issues, and you could very easily just be seeing this. It does not mean that any packets are getting dropped. Just that the server you are pinging only responds to say 5 pings per second.

Do you have any proof of issues besides ping?

-Otanx

deanwebb

One thing that helps is if you can turn on debugging in the program to see how many times it had to retransmit a file and compare the numbers from a LAN transfer to a transfer going over the Internet.
Take a baseball bat and trash all the routers, shout out "IT'S A NETWORK PROBLEM NOW, SUCKERS!" and then peel out of the parking lot in your Ferrari.
"The world could perish if people only worked on things that were easy to handle." -- Vladimir Savchenko
Вопросы есть? Вопросов нет! | BCEB: Belkin Certified Expert Baffler | "Plan B is Plan A with an element of panic." -- John Clarke
Accounting is architecture, remember that!
Air gaps are high-latency Internet connections.