Protein translation involves a set of twenty amino acids. Each of these amino acids is coded for by a sequence of three DNA base pairs called a codon. Because there are 64 possible codons, but only 20-22 encoded amino acids (in nature) and a stop signal (i.e. up to three codons that do not code for any amino acid and are known as stop codons, indicating that translation should stop), some amino acids are coded for by 2, 3, 4, or 6 different codons. For example, the codons TTT and TTC both code for the amino acid phenylalanine. This is often referred to as redundancy of the genetic code. There are two mechanisms for redundancy: several different transfer RNAs can deliver the same amino acid, or one tRNA can have a non-standard wobble base  in position three of the anti-codon, which recognises more than one base in the codon.
In the above phenylalanine example, suppose that the base in position 3 of a TTT codon got substituted to a C, leaving the codon TTC. The amino acid at that position in the protein will remain a phenylalanine. Hence, the substitution is a synonymous one.