That is a normal length of time for a heat cycle in a bitch.
Estrus (being in season or heat) is divided into 4 time periods.
First is proestrus. This is when you actually see the vaginal bleeding. It normally lasts from 4 to 9 days. Male dogs become very interested in the female during proestrus; however, she will not yet mate with them.
Second is the stage in which the female will accept the male and conception can occur. This is called estrus. The vaginal discharge is more yellowish than bloody. This stage lasts for 4 to 13 days. Your female will stand still and hold her tail to the side when you touch her back or a male dog tries to mount. The last 2 stages are metestrus and anestrus These 2 stages are periods of ovarian activity, but with no significant outward signs. False pregnancies frequently occur during metestrus.
You should consider your bitch to be "in season" for 21 days: 7 days coming into heat, 7 days in heat, 7 days going out. Though conception is most likely during the middle 7 days, just to be safe you should confine your girl for the entire 3 weeks.Remember that the above information is general. Not all females follow these patterns. Please talk with your vet if your female does not seem typical.
Let me know if I can help further.