SIP stands for Session Initiation Protocol. It is a signaling protocol for Internet conferencing, telephony, presence, events notification and instant messaging. It is open standard defined by IETF in RFC 3261.
SIP and IMS
When I will talk about SIP in next chapters, I'll use it with the relation with IMS, regardless the SIP is a general protocol and could be used also for other purposes (i.e. without IMS).
SIP protocol is mostly used to establish sessions (dialogs), which means a context, which is used for further exchange of the data. The good example could be VoIP application.
First the client have to register (i.e. send REGISTER request) to some server. The RFC calls such server registrar and in the IMS terms the entry point for communication is called P-CSCF (referred simply as "proxy"). During registration phase is client firstly authenticated (checked against record in HSS). Then, based on 'triggers' the REGISTER is send to various application servers in IMS to let them know that a client is on-line.
After PDP context is established client sends REGISTER request to P-CSCF. The P-CSCF normally select/resolve the I-CSCF (referred simply as "interrogating") node address in the client home IMS. I-CSCF is the entry point in home IMS network, it selects S-CSCF (referred simply as "serving") node, which asks client to authenticate itself. S-CSCF communicates with HSS (central database) to retrieve the authentication parameters. It results in sending the second REGISTER request with authentication parameters. The whole process is much more complicated, but that's as I think the basis that the client developer needs to know before he starts using SIP.