If people are familiar with each other, they can call each other by full name, given name, nickname, etc ... There was once a new leader who came to my group and explicitly asked how we are calling each other now, and how we want to be called. The real situation in my group is that most of us call each other by a nickname (which is somehow derived from the proper name). The full name and given are also used.
If the two are not too familiar, they will use the full name. But the change from full name to given name or nick name can happen very quickly, maybe after only two or three conversations. One does not need permission to use the given name but should be careful with nicknames.
But remember, Chinese rarely call someone with only one character. So is someone's given name has only one character, then there will be nobody calling him by only his given name (however close they are). Everybody will call him with the full name (two characters) unless there is a nickname that they like more.
Surname only is rarely used, as it usually contains only one character. But if the surname does have two characters, it can be used to call some one.
Surname + suffix can be used to call a leader, professor, teacher, etc., with suffix being the appropriate title, or to call a customer, with suffix being 先生、女士、etc. (There should be more situations that this should be used.) Classmates or colleagues do not call each other in this way.
Note: I went to college in Beijing and now work in a company in Beijing. The way of calling each other may be very different in different areas and may be different in different companies (this is the reason why the new-coming leader is asking about this). And this only describes how people call each other when they are familiar with each other (being classmates or colleagues), and no one is superior to the other.