NET-101 This entry tracks my progress towards more advanced knowledge of computer networking. Content is structured according to this learning pattern: - Subject - Problem - Solution - Results "Subject" is the broad area of knowledge. "Problem" is a statement of my incomprehension of something within the subject. "Solution" are theoretical steps towards gaining sufficient knowledge to resolve the problem. Results are any work I have done towards implementing the solution. TCP/IP Protocol Suite ---------------------------------------------------------------------- I don't know how TCP streams compare across the application protocols I routinely use (IMAP, Gopher, HTTP, IRC, SSH). ...................................................................... Solution ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Run and capture packet data for three to four application protocols that use TCP. Capture the data while performing a few common uses of these applications. Explain and summarize how this data was captured (and how, writing down any pcap rules) and what can be observed in the streams. Identify remarkable attributes of each packet stream such as TCP options used, number of packets sent, and contents of the application data. Annotate, cross-reference, and augment your observations with reference to the RFC for your selected protocols. Resources used: rfc-editor.org, tcpdump(1), pcap-filter(7), Wireshark I don't know how and why application protocols are planned, designed, and implemented. ...................................................................... Solution ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Choose two application protocols (using TCP or UDP, doesn't matter). Research and summarize each protocol's purpose, originating context, and historical precedent. Find an open-source program that implements each protocol (you can choose one program for one protocol, or one program for both protocols). Capture snippets of code from the program(s) showing how the protocol is implemented. Research and explain two to three flaws, weakness, and/or vulnerability in each protocol (these can be historical--and thus obselete--or relevant today.) Where applicable, indicate how these negative attributes are inherent in the protocol's design. I haven't had the experience of building my own application protocol onto of TCP or UDP. ...................................................................... Solution ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Design a new application protocol suited to some purpose of your own conception. Research and understand the RFC format, then write your protocol using the RFC format: describe motivation, requirements, and include a brief outline of the protocol. The purpose of the protocol is up to you. As an example, it could include mechanisms for initiating an initial handshake and reconnection handshake, sending payloads with 2 or more attributes, and checking client and server health (response time, availability). Build a small program that implements some part of your protocol. Networking tools and their use ---------------------------------------------------------------------- I don't know the workflow for capturing and introspecting arbitrary packet data for monitoring, defensive security, or debugging perposes. ...................................................................... Solution ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Use `tcpdump' to create a packet capture of a workstation or (ideally) server over a few days. Use `tshark' to parse and organize the large pcap file into smaller, filtered pcap files. Each files should contain only the packets for a given application protocol. Choose these filters based on protocols you commonly use (HTTP/HTTPS, Gopher, SSH, IRC). Research and summarize three common packet analysis methods and processes in Wireshark. Then perform these processes on the filtered pcap files. Document your findings (or lack thereof). I don't understand how an internet arrives to my house, gets router to my computer and back out again. ...................................................................... Solution ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ Investigate and summarize the infrastructure and technology used to initiate and carry an internet connection into your house. Describe this process with relation to the OSI model: summarize the purpose of each layer and annote it with details of the layer's implementation for you. I don't know how to setup a network ...................................................................... TBD... analysi