That sounds like you have heavy packet loss somewhere between your home NAT router and the server you are playing on.
As a first step, you could enter
net_status in the CS:GO console. This will give an output like the following:
Net status for host 192.168.2.23:
- Config: Multiplayer, listen, 1 connections
- Ports: cl0 27005, sv1 27015, htv2 27020, htv13 0, 4 total.
- Latency: avg out 0.04s, in 0.01s
- Loss: avg out 0.0, in 0.0 <====================== This line show packet loss
- Packets: net total out 65.0/s, in 64.5/s
per client out 65.0/s, in 64.5/s
- Data: net total out 8.9, in 10.3 kB/s
per client out 8.9, in 10.3 kB/s
This shows the packet loss of incoming and outgoing packets (I don't know the units, maybe percent). If it says anything other than
0.0, that's a reason to be suspicious. Something on the route between you and the server throws away packets. You should probably contact your internet service provider about the problem, unless you are willing to investigate further.
If you want to investigate furhter, you'll need the server's IP address. Enter
status in the CS:GO-console and look for the line
version : 22.214.171.124/13509 6171 secure
udp/ip : 10.11.12.13:27015 <============== The part before the : is the IP
os : Linux
type : community dedicated
map : de_dust2
players : 1 humans, 3 bots (12/0 max) (not hibernating)
Once you got that, you can test packet loss using the
ping command1. This will tell you if the problem just exists inside CS:GO or if it really is a network problem. Just open a terminal (enter "cmd" in the start menu and press Enter) and enter the following (with the correct IP, obviously):
ping -t ip.of.the.server
Your PC then sends requests to that server and measure the time until it answers. Pressing Ctrl+Break will show you statistics like this:
Ping statistics for ip.of.the.server
Packets: Sent = 467, Received = 467, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 20ms, Maximum = 23ms, Average = 21ms
Pressing Ctrl+C will terminate the ping program and show the same statistics.
If it says anything but
0% loss, you've got a problem.
If you know something about how network protocols work and/or are willing to invest some time learning, you can try to find the cause of the issue yourself. Here's a good tutorial about debugging packet loss, which you can use as a starting point. (archive link)
1. Disclaimer: Obviously this only measures loss of ICMP packets, not UDP or TCP, but normally these should correlate.