What I think causes all the lag in Call of Duty games is all the info the host is having to process and share to everyone. The host has to receive all of your class' variables as well as everyone else's and then pass it to each player. The devs think adding all these variables makes the game more fun but its just causing more congestion and lag. All that data is being passed as packets of info to and from players multiple times a second. I would say most likely the info is being passed as hex values. I'm no expert but from what I can figure, there are likely 31 different variables being uploaded from the player to the host. What it could look like is, 12,29,27,01,01,24,24,24,39,27,01,01,24,24,05,05,05,05,06,06,15,15,09,01,09,09,0 9,27,xx,yy,zz. Now that is just being uploaded from the player to the host. What the host uploads to each player multiple times a second likely looks like this.
I think that's why lag has progressively gotten worse over the years with these games because they keep adding more and more variables but no quicker way of processing them. Again this is all just my opinion and I may be way off in my logic but it seems to add up to me.
If you are wonder what all my numbers mean, the first is the player id, then there are 29 different possible primaries, 27 different camos, whether or not you have your tag on it, whether or not you have your emblem on it, 24 different attachments 3 times over, 39 possible secondaries(29 primary 10 secondary), 27 different camos, tag on, emblem on, 24 possible attachments twice over, 5 possible 1st tier perks twice over, 5 possible 2nd tier perks twice over, 6 possible 3rd tier perks twice over, 15 possible lethals twice over(6 lethal 9 tactical), 9 possible tacticals, whether or not you have a second tactical, 9 possible wildcards 3 times over, 27 knife camos, and then xyz position.