Simplified, non committee'd [[../OSI Stack|OSI Model]]. ![[../../../00 Asset Bank/Pasted image 20250904190839.png|invert_S]] TCP is a protocol that ensures that when a packet is sent to a destination, it will either get their or there will be a concrete error. In TCP, duplicated and out of order packets are dropped. #### Layers - *Application*: - The more abstract layer & closest to the user, treats data sent through as just a stream - *Transport*: - Responsible for making sure the data was sent reliabily and in the correct order - Two Main Protocols: [[TCP-IP Model|TCP]] or [[User Datagram Protocol|UDP]] depending on whether the communication needs to be reliable or faster. - *Internet*: - Responsible for finding the best path for the data to travel across different [[Network|networks]] to land at its destination. - Responsible for packet forewarding (moving data from one point to another), fragmenting data (breaking apart data to smaller parts), and addressing - *Network Access Layer*: - Bottommost layer, deals with the actual physical connection & transmissions of 1's and 0's *on the sam* ![[Pasted image 20251015180619.png|invert_S]] #### Aproach (Simplified) - Sender sends $N$ packets out as they are available - wait for those ack before sending more - Evaluate how the sending performed: - Sucessful? - send more, faster! - Failed? - Slow down, error - Don't shoot yourself in the foot by sending too man messages and then getting DDOS'ed by the response.