Each year 1.5 million shelter animals are euthanized (670,000 dogs and 860,000 cats).
Source: ASPCA. The solution is not to shelter unwanted pets, but to
SHUT DOWN THE PET MILLS.
Anyone who wants a pet will just have to adapt a great pet from a shelter.
Video - Transport Layer (Layer 4) of OSI Networking Model
This video by Kevin Wallace you learn about the Transport Layer of the OSI
networking model. Keven's videos teach networking in a light conversational way,
with emphasis on retaining the information for the purpose of passing the CompTIA
Network+ certification exam.
At the transport layer we want to focus on three primary things:
1. The protocols
TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are the primary protocols
at layer 4. TCP is a connection oriented protocol. In other words, it's reliable. If I send
a segment (the layer 4 data unit) I should get an acknowledgment from the receiver that it
received the segment. If it didn't get the segment, I can then resend it. So we have some reliability.
UDP is a connection-less protocol. There's no acknowledgment. When I send traffic, there's
no acknowledgment from the far end that it received it. It's a send and forget type of transmission.
Why would we want to use something that's unreliable? Why wouldn't we want to use TCP? Let's think
about the overhead of TCP verses UDP. Let's look at the header of a TCP segment.
Inside the TCP header we have a source port and a destination port. And these ports point
to upper-layer protocols. For example the telnet protocol that allows us to do remote
terminal access. That uses a well known port of 23.
If we peer inside the TCP header you would see not only source and destination IP address
information, but also source and destination port information. Port numbers of 1023 and lower
are referred to as well known ports. There are assignments for many of the numbers
in that range. For example we know that telnet typically uses port 23. We know that a web server
using HTTP is going to be using port 80 most of the time.
So when we send from the client to the web server we're sending to a destination port of 80,
that information is included in the TCP header. But in order to get the traffic back to the
client we have to have a source port. Our client doesn't have a well known port. It's going to
pick a port number in the range of 1024 and higher. It goes up to 60,000 and some. These higher
port numbers are called ephemeral ports.
We've randomly selected a port number of 1248 as our source port going to the web server.
Then when we have return traffic coming back from the web sever, it's sourced from port
80 (that's the web servers port) and it's destined for clients port 1248 in our case.
Also in the TCP header we've got sequence numbers and acknowledgment numbers. When we
send traffic we're going to get an acknowledgment that it was received. This uses something
called TCP windowing.
With windowing we can do something called a sliding window. A window represents how
many bites we send at one time before we wait to get an acknowledgment. If we're on a fairly
reliable network, there are very few drops, then it's usually safe to send a large number
of bites at one time, and then wait for the acknowledgment. If we send just a small number
of bytes and wait, we're spending a lot of time waiting. It's a very inefficient packet flow.