In Becker's book String Theory and M-Theory in the chapter about T-duality and D-brane (Chapter 6) the following comment is made
The Chan–Paton factors associate $N$ degrees of freedom with each of the end points of the string. For the case of oriented open strings, which is the case we have discussed so far, the two ends of the string are distinguished, and so it makes sense to associate the fundamental representation $N$ with the $\sigma = 0$ end and the antifundamental representation $N$ with the $\sigma =\pi$ end, as indicated in Fig. 6.3. In this way one describes the gauge group $U(N)$.
How do you know it is $U(N)$? Ok you have $N$ possibilities for the Chan-Paton of each end, but why not the fundamental of $O(N)$ for example that also acts on $N$-dim vectors?
I'm also confused about what the representation acts on: these are vectors with $N$ entries Do I have to picture an end as represented by a vector with a non-zero entry that 'labels' the D-Brane where it is connected? And that a $U(N)$ matrix gives the result of 'some interaction' where the end shifts to another D-Brane on the coincident stack.
How can you label consistently $N$ D-branes lying at the same location? Does this actually makes sense? I mean these D-branes fluctuate due to the massless scalar excitations. How can you disentangle them?