Is their a difference between BGP labels and LDP labels? Or they the samething? If different, can someone please explain the difference...
It will be present but the P routers know nothing about it ie.
H1 -> CE1 -> PE1 -> P1 -> P2 -> PE2 -> CE2 -> H2
H1 and H2 are members of the same VPN. H1 sends an IP packet to H2.
Packet goes from H1 -> CE1 -> PE1.
PE1 has a route to destination (H2 subnet) pointing to PE2. It knows this is part of the same VPN so it attaches a VPN label to the packet.
PE1 now needs to send the packet to PE2 and to do this it needs another label. Remember the VPN label is only important to the PE routers.
PE1 attaches another label on top of the VPN label and sends the packet to P1. P1 strips the top label off, does a label lookup on this in it's mpls forwarding table and then puts a new label in the packet that will switch the packet to P2. Note that at no time does P1 try and interpret the VPN label. It doesn't look at it all.
P2 receives the packet and again it only looks at the topmost label. Due to PHP (Penultimate Hop popping) P2 then sends the packet to PE2 without a new label attached ie. only the VPN label is attached to the packet. PE2 receives the packet, removes the VPN label and forwards the packet to CE2 which then forwards it on to H2.
Key thing to remember.
PE routers use 2 sets of labels -
VPN label which is only relevant to other PE routers.
LDP label which is relevant to PE & P routers. It is the LDP labels that allow a PE router to talk to another PE router across the MPLS network.