
1. How TCP Conversion Reliable
1.1. Reliable
1.1.1. Acknowledge each segment
1.1.2. Establish a session before transmission of data
1.1.3. if ACK fail retransmit the segment
1.2. Header field
1.2.1. Source port
1.2.2. Destination port
1.2.3. Sequence no
1.2.4. Acknowledgment no
1.2.5. header
1.2.6. reserved
1.2.7. flag
1.2.8. window size
1.2.9. Tcp Segment
1.2.10. urgent pointer
1.2.11. TCP Checksum
1.2.12. Option
1.2.13. data
2. UDP
2.1. Less header
2.1.1. Source and destination (ports)
2.1.2. application header should take care for order delivery
3. Introduction
3.1. Data Requirements Vary
3.2. Identifying the Applications
3.3. Tracking Individual Conversations
3.4. Segmenting Data
3.5. Reassembling Segments
4. Purpose
4.1. error recovery
4.2. retransmission of damaged data
4.3. Separating Multiple Communication
4.4. multiplexed
4.5. Segmentation
4.6. Conversation
4.7. add header on segments
5. Reliablity
5.1. The three basic operations of reliability
5.1.1. tracking transmitted data
5.1.2. acknowledging received data
5.1.3. retransmitting any unacknowledged data
5.2. Processes place additional overhead
5.2.1. Acknowledgement
5.2.2. Tracking,
5.2.3. Retransmission
5.3. To support reliablity
5.3.1. more "control data" on L4 header
5.4. protocols that specify methods
5.4.1. guaranteed delivery
5.4.1.1. reliable
5.4.2. best-effort delivery.
5.4.2.1. unreliable
5.5. application need reliablity
5.5.1. webpages
5.5.2. database
5.5.3. email
6. Segmentation & Reassembly
6.1. TCP
6.1.1. More header
6.1.1.1. Flow control and management
6.1.1.2. Acknowledgment of received segment
6.1.1.3. Sequence & same order delivery
6.1.1.4. Source and destination (ports)
7. TCP Server Process
7.1. Port Number may be Assigned default or manually by system administrator
7.2. A server cannot have two services assigned to the same port number
7.3. How to secure server running service
7.3.1. restrict server access to only those ports associated with the services and applications
7.3.2. accessible to authorized requestors.
8. TCP connection, establishment and Termination
8.1. establish the connection
8.1.1. Three way handshake
8.1.1.1. Establishes that the destination device is present on the network
8.1.1.1.1. The initiating client sends a segment containing an initial sequence value, which serves as a request to the server to begin a communications session.
8.1.1.2. Verifies that the destination device has an active service and is accepting requests on the destination port number that the initiating client intends to use for the session
8.1.1.2.1. The server responds with a segment containing an acknowledgement value equal to the received sequence value plus 1, plus its own synchronizing sequence value.
8.1.1.3. Informs the destination device that the source client intends to establish a communication session on that port number
8.1.1.3.1. Initiating client responds with an acknowledgement value equal to the sequence value it received plus one. This completes the process of establishing the connection.
8.2. 4 steps to terminate a TCP connection.
8.2.1. When the client has no more data to send in the stream, it sends a segment with the FIN flag set.
8.2.2. The server sends an ACK to acknowledge the receipt of the FIN to terminate the session from client to server.
8.2.3. The server sends a FIN to the client, to terminate the server to client session.
8.2.4. The client responds with an ACK to acknowledge the FIN from the server.
9. Controls the conversation
9.1. Segmentation and Reassembly
9.2. Conversation Multiplexing
9.2.1. Using ports
9.3. additional information in ports
9.3.1. Connection-oriented conversations
9.3.2. Reliable delivery
9.3.3. Ordered data reconstruction
9.3.4. Flow control
9.4. Establishing a Session
9.4.1. ensures the application to receive data
9.5. Reliable Delivery
9.5.1. lost segments are resent
9.6. Same Order Delivery
9.6.1. manages delivery in congestion host
10. 2 common Transport layer protocols
10.1. Transmission Control Protocol (TCP)
10.2. User Datagram Protocol (UDP)
10.2.1. datagrams
10.2.1.1. simple
10.2.1.2. connectionless protocol
10.2.1.3. RFC 768
10.2.1.4. advantage
10.2.1.4.1. low overhead
10.2.1.5. sent as "best effort"
10.2.1.6. 8 byte header
10.3. Transmission Control Protocol (TCP)
10.3.1. Segments
10.3.1.1. additional overhead to gain functions
10.3.1.1.1. same order delivery
10.3.1.1.2. reliable delivery
10.3.1.1.3. flow control
10.3.1.2. Connection-oriented protocol,
10.3.1.3. RFC 793
10.3.1.4. 20 bytes header
10.3.1.5. Application used TCP
10.3.1.5.1. Web Browsers
10.3.1.5.2. Email
10.3.1.5.3. File Transfer
11. Port Addressing
11.1. Unique Identity for application
11.1.1. Source Port number dynamic
11.1.1.1. more than > 1023
11.1.1.2. some times it may use default until there is no conflict
11.1.1.3. act as a return address
11.1.2. Destination port number static
11.1.2.1. default port number assigned
11.1.2.1.1. may change when specifically mentioned
11.1.2.1.2. Web Service
11.1.2.1.3. Email
11.1.2.1.4. chat
11.1.3. Combination of Port and IP address
11.1.3.1. socket
11.1.3.1.1. eg: 192.168.1.20:80.
11.2. Internet Assigned Numbers Authority (IANA)
11.2.1. standards body for assigning address
11.2.2. Different types of port numbers:
11.2.2.1. Well Known Ports
11.2.2.1.1. commonly used
11.2.2.1.2. Registered Ports
11.2.2.1.3. Dynamic or Private Ports
11.3. Some applications may use both TCP and UDP
11.3.1. eg DNS
11.4. Important Utility
11.4.1. "Netstat" Command
12. TCP Segments reassembly
12.1. sequent number is assigned when segment is sent to network
12.1.1. these segment must reorder according to seq no
12.1.1.1. Segment sequence numbers enable reliability
13. Acknowledging and windowing
13.1. expectational acknowledgement
13.1.1. acknowledgement number in segments sent back to the source to indicate the next byte