The principal elements that are used in GPRS communications are:
Mobile Station: The mobile terminal. Works up to Application layer.
BTS: Controlls a single antenna. Works only at PHY layer.
BSS: Multiple BTS controller. Usually contains a PCU (Packet Controller Unit). Works at MAC layer.
SGSN: Provides header compression and data encryption for the packets.
GGSN: Is the ISP's endpoint to access Intenet and other networks (the nearest IP router to the Mobile Station). Works at layer 3.
You can view the protocol stack here: http://img39.imageshack.us/img39/5357/2gprotstack.png
All those elements are constantly sending data to each other (using several interfaces) in order to keep the network operative.
In 2G (GPRS) networks a lot of protocols are used to send the data all along the mobile network. As you can see trying to implement packet header decodification for all this is very very hardwork. As long as there is no interest in decoding the packets that are sended among the elements in the core network I suggest you to focus on the Mobile Station perspective of the network.
The Mobile Stations are linked to a BSS and use RLC as link layer protocol. Mobile Stations also mantain a dialogue with their SGSN by using a SNDCP tunnel and they send the IP data over it. The hard stuff is done by the core network and you shouldn't care about that because the Mobile Station doesn't know what's happening beyond that point.
In 3G mobile networks there are two ways of deploying the network over an existing GSM network:
By using the same RF spectrum (GERAN access network): Provides EDGE over CDMA. Used mostly in U.S.A.
By using more RF spectrum (UTRAN access network): Provides "real" 3G, HSDPA and HSUPA over WCDMA. Used mostly in Europe.
The BTS in 3G network is now called "Node".
A new element is added in the BSS: RNC (Radio Network Controller)
I couldn't find a diagram of the protocol layers but I think 3GPP should provide one.
I hope this helped you a little. Sorry for my bad English.
Thanks for the info and narrowing it down a little bit. I also downloaded a sample 3gpp_mc.cap file from wireshark samples area. Wireshark is able to decode the higher layers (above IP).
At some point, when I get ready to implementing this, may be we can schedule a chat session or a conf call to get this started on the correct path?
I have little experience with GSM and 3G networks (I have only studied it at university as a subject) but I'll be glad to help you to get this stuff working.
When you get ready to start implementing it just tell me and we can chat or make a conf call to discuss about how to get this started.