When practicing to become a software engineer in schools and university you are given many small assignments to complete. These assignments are usually projects which are made up and don't have any real use in the real world. The reason for giving these small assignments is that the real specificatios and assignments would consume too much time, both to read and fully understand and to implement.
It is time to find specifications that are small and easy to read by those who are practicing to become good software engineers. That's why I suggest to use the small rfc specifications as a basis for assignments. I have downloaded all the rfc's and sorted them by size in order to find the smallest. Here is a list of rfc's that are small and suitable for implementation in a short time.
- rfc862 - Echo Protocol
- rfc863 - Discard Protocol
- rfc865 - Quote of the Day Protocol
- rfc866 - Active Users
- rfc1159 - Message Send Protocol
- rfc972 - Password Generator Protocol
- rfc797 - Format for Bitmap Files
- rfc867 - Daytime Protocol
- rfc868 - Time Protocol
- rfc768 - User Datagram Protocol
- rfc864 - Character Generator Protocol
- rfc826 - An Ethernet Address Resolution Protocol
- rfc1350 - Trivial File Transfer Protocol
- rfc1950 - ZLIB Compressed Data Format
- rfc1952 - GZIP file format
- rfc951 - Bootstrap Protocol
- rfc764 - Telnet Protocol
- rfc1951 - DEFLATE Compressed Data Format
If you want to look at a more complete list of rfc's without regarding the size of the specification you could take a look at wikipedia http://en.wikipedia.org/wiki/List_of_RFCs.
Of curiosity I also found the largest rfc which is rfc3530 - Network File System specification (NFS). So if you really have a lot of spare time to kill then I would start implementing that one :)