Force them to stay in character. Remind them that they can be held accountable for anything that they say that isn't specifically a rules question as if their PC said it in world, and that they should primarily be playing their character. Do not allow players to react on information conveyed OOC, and site that behavior as metagaming.
Remind them also that as DM, it's your job to resolve rules issues - not theirs.
If they get off topic, and its not something the whole table is enjoying, remind them gently that we need to continue with the game. During combat, if arguments break out, remind them that they have only a limited amount of time to make their decisions, and skip their place in the initiative if they can't stay focused within a reasonable amount of time - I like to count to six.
Remind them as gently as possible also that in the heat of combat, they don't have time and often don't have ability to communicate at length or bicker over strategy. Each player is responsible for playing only their PC, and not their neighbors PCs. If they wish to communicate with their neighbor, they have to do so on their turn and IC, with a reasonable limit on content (a single sentence, usually).
If gentle reminders don't work, you'll need to pull the player(s) aside privately and express your concern about the direction of play and the lack of respect that the player is showing his fellow players. This is one of the most uncomfortable discussions you'll ever have as a DM, but at some point it has to be done. Whatever you do, do not call out or embarrass a player in front of another player, unless its gotten to the point of physical bullying.