TCP/IP Programming
by Alexander Shuiskov
1. General notes
1.1. TCP/IP is 100% client-server
2. IPC (Inter-process communication)
2.1. Sockets
2.1.1. Make network look like a file system
2.1.2. Routines
2.1.2.1. open/close file
2.1.2.2. open/close connection
2.2. TLI
3. Transfer details
3.1. Network byte order
3.1.1. Appeared because 8 bytes weren't enough
3.1.2. Little-endian (byte order: 3210)
3.1.2.1. Generic to x86 architecture
4. unix settings
4.1. /etc/services
4.1.1. Map port - program
4.1.2. Example
4.1.2.1. telnet 23/tcp
4.2. /etc/inetd.conf
4.2.1. Example
4.2.1.1. telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -a
4.2.2. Provide call with args
5. TCP
5.1. Connection-oriented transport service
5.2. Structure
5.3. Contains segments
5.4. Transport address = protocol number (8bit)
5.5. Protocol port - 16 bit
5.6. Ports
5.6.1. Server
5.6.1.1. Under 1024
5.6.2. Client
5.6.2.1. Above 1024
6. IP
6.1. Takes care of transferring packets to destination
7. UDP
7.1. Connectionless
7.2. Datagram-based
8. Terms
8.1. Process
8.1.1. Triplet: protocol, ip, port
8.2. Connection (Socket)
8.2.1. 2 triplets
8.3. Daemon
8.3.1. Application waiting for incoming connection
8.3.2. Registered with kernel, says which port it monitors