Networking Data1
Networking Data1
Networking Data1
The internet is not owned by any individual or group. The internet is a worldwide
collection of interconnected networks (internetwork or internet for short),
cooperating with each other to exchange information using common standards. Through
telephone wires, fiber-optic cables, wireless transmissions, and satellite links,
internet users can exchange information in a variety of forms.
Small home networks connect a few computers to each other and to the internet. The
SOHO network allows computers in a home office or a remote office to connect to
a corporate network, or access centralized, shared resources. Medium to large
networks, such as those used by corporations and schools, can have many locations
with
hundreds or thousands of interconnected hosts. The internet is a network of
networks that connects hundreds of millions of computers world-wide.
There are devices all around that you may interact with on a daily basis that are
also connected to the internet. These include mobile devices such as smartphones,
tablets, smartwatches, and smart glasses. Things in your home can be connected to
the internet such as a security system, appliances, your smart TV, and your gaming
console.
Outside your home there are smart cars, RFID tags, sensors and actuators, and even
medical devices which can be connected.
??????????????????////////////////////////////////////////////////////////////////
////////////////////////////
Data Transmission
to know more about networks. Did you know that the internet is a massive network of
networks that are connected, either
directly or indirectly, to each other? It’s kind of like this web that I live in.
One part can be broken but my web doesn
’t fall apart; I can fix it, and even make it stronger. Would you like to be able
to do that for your network?
///////////////////////////////////////////////////////////////////////////////////
/////////////////////////////
Many ISPs also offer additional services to their contract subscribers, as shown in
the figure.
These services can include email accounts, network storage, and website hosting and
automated backup or security services.
ISPs are critical to communications across the global internet. Each ISP connects
to other ISPs to
form a network of links that interconnect users all over the world. ISPs are
connected in a hierarchical
manner that ensures that internet traffic generally takes the shortest path from
the source to the destination.
The internet backbone is like an information super highway that provides high-speed
data links to connect
the various service provider networks in major metropolitan areas around the
world. The primary medium that
connects the internet backbone is fiber-optic cable. This cable is typically
installed underground to connect
cities within continents. Fiber-optic cables also run under the sea to connect
continents, countries, and cities.
Report
Report
Report
Report
asset.descriptionasset.descriptionFTP HostingApplications and Media HostingWeb
HostingISP ServicesEquipment Co-LocationPOP
Internet AccessTechnical SupportVoice Over IP
The top portion of the figure displays the simplest ISP connection option. It
consists of a modem that provides a
direct connection between a computer and the ISP. This option should not be used
though, because your computer is not protected on the internet.
As shown in the bottom portion of the figure, a router is required to securely
connect a computer to an ISP.
This is the most common connection option. It consists of using a wireless
integrated router to connect to the ISP.
The router includes a switch to connect wired hosts and a wireless AP to connect
wireless hosts. The router also provides client IP addressing information and
security for inside hosts.
///////////////////////////////////////////////////////////////////////////////////
////
Networking Componets
There are symbols that represent various types of networking equipment. The network
infrastructure is the platform that supports the network. It provides the stable
and reliable channel over which our communications can occur. The network
infrastructure contains three categories of hardware components: end devices,
intermediate devices, and network media. Hardware is often the visible components
of the network platform such as a laptop, PC, switch, router, wireless access
point, or the cabling used to connect the devices. Components that are not visible
include wireless media.
End devices, or hosts, form the interface between users and the underlying
communication network. Some examples of end devices include:
////////////////////////
An ISP provides the link between the home network and the internet. An ISP can be
the local cable provider, a landline telephone service provider, the cellular
network that provides your smartphone service, or an independent provider who
leases bandwidth on the physical network infrastructure
of another company. Each ISP connects to other ISPs to form a network of links that
interconnect users all over the world.
ISPs are connected in a hierarchical manner that ensures that internet traffic
generally takes the shortest path from the source to the destination.
The interconnection of ISPs that forms the backbone of the internet is a complex
web of fiber-optic cables with expensive
networking switches and routers that direct the flow of information between source
and destination hosts.
For a home user, connecting to the ISP is a fairly uncomplicated process. This is
the most common connection option.
It consists of using a wireless integrated router to connect to the ISP. The router
includes a switch to connect wired
hosts and a wireless AP to connect wireless hosts. The router also provides client
IP addressing information and security
for inside hosts. The two most common methods are cable and DSL. Other options
include cellular, satellite, and dial-up telephone.
.//////////////////////////////////////////////////////////////////////////////////
//////////
26-04-2023
subnetETING
/////////
subnet masks
So far, we've learned about network IDs,
which are used to identify networks and host IDs,
which are used to identify individual hosts.
If we want to split things up even further and we do,
we'll need to introduce a third concept, the subnet ID.
You might remember that
an IP address is just a 32-bit number.
In a world without subnets,
a certain number of these bits are used for
the network ID and a certain number
of the bits are used for the host ID.
In a world with subnetting,
some bits that would normally comprise
the host ID are actually used for the subnet ID.
With all three of these IDs
representable by a single IP address,
we now have a single 32-bit number that can be
accurately delivered across many different networks.
At the Internet level, core routers
only care about the network ID
and use this to send the datagram
along to the appropriate gateway router to that network.
That gateway router then has
some additional information that it can use to send
the datagram along to
the destination machine or
the next router in the path to get there.
Finally, the host ID is used by
that last router to deliver
the datagram to the intended recipient machine.
Subnet IDs are calculated
via what's known as a subnet mask.
Just like an IP address,
subnet masks are 32-bit numbers that
are normally written out as four octets in decimal.
The easiest way to understand how subnet masks
work is to compare one to an IP address.
Subnet masks are often glossed over as magic numbers.
People just memorize some of the common ones
without fully understanding what's
going on behind the scenes.
In this course, we're really trying to ensure that
you leave with a well-rounded networking education.
Even though subnet masks can seem tricky at first,
stick with it and you'll get the hang of it in no time.
Let's work with the IP address 9.100.100.100 again.
You might remember that
each part of an IP address is an octet,
which means that it consists of eight bits.
The Number 9 in binary is just 1001.
But since each octet needs eight bits,
we need to pad it with some zeros in front.
As far as an IP address is concerned,
having a Number 9 as the first octet is actually
represented as 0000 1001.
Similarly, the numeral 100 as
an eight-bit number is 0110 0100.
Play video starting at :2:35 and follow transcript2:35
The entire binary representation of the IP address
9.100.100.100 is a lot of ones and zeros.
A subnet mask is a binary number that has two sections.
The beginning part, which is the mask itself,
is a string of ones.
Just zeros come after this.
The subnet mask, which is the part of
the number with all the ones,
tells us what we can ignore when computing a host ID.
The part with all the zeros tells us what to keep.
Let's use the common subnet mask of 255.255.255.0.
This would translate to 24 ones followed by eight zeros.
The purpose of the mask or the part that's all ones,
is to tell a router what part
of an IP address is the subnet ID.
You might remember that we already know how to
get the network ID for an IP address.
For 9.100.100.100 a class A network.
We know that this is just the first octet.
This leaves us with the last three octets.
Let's take those remaining octets and imagine
them next to the subnet mask in binary form.
The numbers in the remaining octets that have a
corresponding one in the subnet mask are the subnet ID.
The numbers in the remaining octets that have a
corresponding zero are the host ID.
The size of a subnet is
entirely defined by its subnet mask.
For example, with a subnet mask of 2550255.255.0,
we know that only the last octet is available for
host IDs regardless of
what size the network and subnet IDs are.
A single eight-bit number can
represent 256 different numbers,
or more specifically, the numbers 0-255.
This is a good time to point out that in general,
a subnet can usually only contain
two less than the total number of host IDs available.
Again, using a subnet mask of 255.255.255.0,
we know that the octet available for host IDs can
contain the numbers 0-255,
but zero is generally not used,
and 255 is normally
reserved as a broadcast address for the subnet.
This means that really only the numbers
1-254 are available for assignment to a host.
While this total number less than two approach
is almost always true.
Generally speaking, you'll refer to the number of hosts
available in a subnet as the entire number.
Even if it's understood that
two addresses aren't available for assignment,
you'd still say that eight-bits of host ID space have
256 addresses available, not 254.
This is because those other IPs are still IP addresses,
even if they aren't assigned
directly to a node on that subnet.
Now, let's look at a subnet mask that doesn't draw
its boundaries at an entire octet
or eight-bits of address.
The subnet mask 255.255.255.224
would translate to 27 ones followed by five zeros.
This means that we have five bits of
host ID space or a total of 32 addresses.
This brings up a shorthand way of writing subnet masks.
Let's say we're dealing with our old friend,
9.100.100.100 with a subnet mask of 255.255.255.224.
Since that subnet mask represents
27 ones followed by five zeros,
a quicker way of referencing this
is with the notation /27.
The entire IP and subnet mask could be
written out as 9.100.100.100/27.
Neither notation is necessarily
more common than the other,
so it's important to understand both.
///////////////////////////////////////////////////////////////
Binary numbers can seem intimidating at
first since they look so different from decimal numbers.
But as far as the basics go,
the math behind counting,
adding or subtracting binary numbers
is exactly the same as with decimal numbers.
It's important to call out that
there aren't different kinds of numbers.
Numbers are universal.
There are only different notations
for how to reference them.
Humans, most likely because most of us
have 10 fingers and 10 toes decided
on using a system with
10 individual numerals used to represent all numbers.
The numerals 0, 1,
2, 3, 4,
5, 6, 7,
8, and 9 can be combined in
ways to represent any whole number in existence.
Because there are 10 total numerals
in use in a decimal system,
another way of referring to this is as base 10.
Because of the constraints of how logic
gates work inside of a processor,
it's way easier for computers to think of
things only in terms of 0 and 1.
This is also known as binary or base 2.
You can represent all whole numbers in
binary in the same way you can in decimal,
it just looks a little different.
When you count in decimal,
you move through all the numerals
upward until you run out,
then you add a second column with a higher significance.
Let's start counting at zero until we get to nine.
Once we get to nine,
we basically just start over.
We add a one to a new column,
then start over at zero in the original column.
We repeat this process over and over
in order to count all whole numbers.
Counting in binary is exactly the same.
It's just that you only have two numerals available.
You start with zero, which
is the same as zero in decimal,
then you increment once.
Now you have one, which is the same as one in decimal.
Since we've already run out of numerals to use,
it's time to add a new column.
So now we have the number 1, 0,
which is the same as two in decimal,
1, 1 is three, 1,
0, 0, is four,
1 0, 1 is five, 1, 1,
0 is six, 1,
1, 1 is seven, etc.
It's the exact same thing we do with decimal,
just with fewer numerals at our disposal.
When working with various computing technologies,
you'll often run into the concept of bits or 1s and 0s.
There's a pretty simple trick to figure out
how many decimal numbers can be
represented by a certain number of bits.
If you have an eight bit number,
you can just perform the math, 2^8.
This gives you 256,
which lets you know that an eight bit number can
represent 256 decimal numbers,
or put another way, the numbers 0-255.
A four bit number would be 2^4,
or 16 total numbers.
A 16-bit number would be 2^16 or 65,536 numbers.
In order to tie this back to what you might already know,
this trick doesn't only work for binary,
it works for any number system,
it's just the base changes.
You might remember that we can also refer to binary
as base 2 and decimal as base 10.
All you need to do is swap out the base
for what's being raised to the number of columns.
For example let's take a base
10 number with two columns of digits.
This would translate to 10^2.
Play video starting at :3:28 and follow transcript3:28
10^2=100, which is exactly how many numbers you can
represent with two columns of decimal digits,
or the numbers 0-99.
Similarly, 10^3 is 1,000,
which is exactly how many numbers you can represent with
three columns of decimal digits or the numbers 0-999.
Not only is counting in different bases the same,
so it's simple arithmetic like addition.
In fact, binary addition is
even simpler than any other base,
since you only have four possible scenarios.
0+0=0, just like in decimal,
0+1=1 and 1+0=1, should also look familiar.
1+1= 10, looks a little different,
but should still make sense.
You carry a digit to the next column
once you reach 10 in doing decimal addition,
you carry a digit to the next column once
you reach two when doing binary addition.
Addition is what's known as an operator,
and there are many operators that
computers use to make calculations.
Two of the most important operators are or and and.
In computer logic, a 1 represents
true and a 0 represents false.
The way the or operator works is you look at
each digit and if either of
them is true, the result is true.
The basic equation is X or Y equals Z,
which can be read as if either X or Y is true,
then Z is true, otherwise it's false.
Therefore, 1 or 0=1,
but 0 or 0=0.
The operator and does what it sounds like it does,
it returns true if both values are true.
Therefore, 1 and 1=1,
but 1 and 0=0 and 0 and 0=0, and so on.
Now, you might be
wondering why we've covered all of this.
I know it's not to confuse you.
It's all really to help explain subnet masks a bit more.
A subnet mask is a way for
a computer to use and operators to
determine if an IP address exists on the same network.
This means that the host ID portion is
also known since it'll be anything left out.
Let's use the binary representation
of our favorite IP address,
9.100.100.100,
and our favorite subnet mask 255.255.255.0.
Once you put one on top of the other and
perform a binary and operator on each column
you'll notice that the result is the network ID and
subnet ID portion of our IP address, or 9.100.100.
The computer that just perform
this operation can now compare the results with
its own network ID to determine if
the address is on the same network or a different one.
I bet you never thought you'd have
a favorite IP address or subnet,
but that's what happens in
the wonderful world of basic binary math.
/////////////////////////////////////////////////
CIDR
Address classes were the first attempt that
splitting up the global Internet IP space.
Subnetting was introduced when it became clear
that address classes themselves weren't
a sufficient way of keeping everything organized.
But as the Internet continued to grow,
traditional subnetting just couldn't keep up.
With traditional subnetting and the address classes,
the network ID is always
either eight bit for class A networks,
16 bit for Class B networks,
or 24 bits for class C networks.
This means that there might only be
254 class C networks in existence.
But it also means there are
2,097,152 potential class C networks.
That's a lot of entries in a routing table.
To top it all off, the sizing of these networks aren't
always appropriate for the needs of most businesses.
254 hosts in a class C network
is too small for many use cases.
But the 65,534 hosts available
for use in a class B network is often way too large.
Many companies ended up with
various adjoining class C networks to meet their needs.
That meant that routing tables
ended up with a bunch of entries for
a bunch of class C networks that were
all actually being routed to the same place.
This is where CIDR or
classless inter-domain routing comes into play.
CIDR isn't even more flexible approach
to describing blocks of IP addresses.
It expands on the concept of subnetting by
using subnet masks to demarcate networks.
To demarcate something means to set something off.
When discussing computer networking,
you will often hear the term demarcation point to
describe where one network or
system ends and another one begins.
In our previous model,
we relied on a network ID,
subnet ID, and host ID to
deliver an IP datagram to the correct location.
With CIDR, the network ID
and subnet ID are combined into one.
CIDR is where we get
this shorthand slash notation that
we discussed in the earlier video on subnetting.
This slash notation is also known as CIDR notation.
CIDR basically just abandons
the concept of address classes entirely,
allowing an address to be
defined by only two individual IDs.
Let's take 9.100.100.100 with
a net mask of 255.255.255.0.
Remember, this can also be written as 9.100.100.100/24.
In a world where we no longer care about
the address class of this IP,
all we need is what the network mask
tells us to determine the network ID.
In this case, that would be 9.100.100.
The host ID remains the same.
This practice not only simplifies how routers and
other network devices need to think
about parts of an IP address,
but it also allows for more arbitrary network sizes.
Before, network sizes were static,
think only class A,
class B, or class C,
and only subnets could be of different sizes.
CIDR allows for networks
themselves to be differing sizes.
Before this, if a company needed
more addresses than a single class C could provide,
they need an entire second class C. With
CIDR they could combine that address space into
one contiguous chunk with a net mask of
slash 23 or 255.255.254.0.
This means that routers now
only need to know one entry in
the routing table to deliver
traffic to these addresses instead of two,
It's also important to call out that you get
additional available host IDs out of this practice.
Remember that you always lose to host IDs per network.
If a slash 24 network has 2^8 or 256 potential hosts,
you really only have 256 -
2 or 254 available IPs to assign.
If you need two networks of this size,
you have a total of 254 + 254 or 508 hosts.
A single slash 23 network, on the other hand,
is 2^9 or 512,
512 - 2, 510 hosts.
Take a second and lock that into your memory.
//////////////////////////////////////////////////////////////////////////////
introdudtion to transport
and application layer
The first three layers of a network model have helped us describe how individual
nodes on a network can communicate with other nodes on either their own network or
others.
But we haven't discussed how individual computer
programs can communicate with each other.
It's time to dive into this because that's really the aim of computer networking.
We network computers together, not just so they can send data to each other, but
because we want programs running on those computers to be able
to send data to each other.
This is where the transport and
application layers of our networking model come into play.
In short, the transport layer allows traffic to be directed to
specific network applications, and the application layer allows these
applications to communicate in a way they understand.
By the end of this module, you'll be able to describe TCP ports and sockets, and
identify the different components of a TCP header.
You'll also be able to show the difference between connection oriented and
connection list protocols, and explain how TCP is used to ensure data integrity.
Are you ready to be transported to the next lesson?
I hope so because the transport layer is up next, see you there
transportlayer
.....
////////////////////////////////
tcp handshake
////////////
05/05/23
tcp sockets
////////////////////////////
connection less and connection oriented
/////////////////////////////////
Supplemental Reading for System Ports versus Ephemeral Ports
System Ports versus Ephemeral Ports
Network services are run by listening to specific ports for incoming data requests.
A port is a 16-bit number used to direct traffic to a service running on a
networked computer. A "service" (or "server") is a program waiting to be asked for
data. A "client" is another program that requests this data from the other end of a
network connection. This reading explains how the Transmission Control Protocol
(TCP) uses ports and sockets to establish a network connection and deliver data
between services and clients.
TCP ports and sockets
Ports are used in the Transport Layer of the TCP/IP Five-Layer Network Model. At
this layer, the TCP is used to establish a network connection and deliver data. A
TCP "segment" is the code that specifies ports used to establish a network
connection. It does this on the service side of the connection by telling a
specific service to listen for data requests coming into a specific port. Once a
TCP segment tells a service to listen for requests through a port, that listening
port becomes a "socket." In other words, a socket is an active port used by a
service. Once a socket is activated, a client can send and receive data through it.
System Ports are identified as ports 1 through 1023. System ports are reserved for
common applications like FTP (port 21) and Telnet over TLS/SSL (port 992). Many
still are not assigned. Note: Modern operating systems do not use system ports for
outbound traffic.
User Ports are identified as ports 1024 through 49151. Vendors register user ports
for their specific server applications. The IANA has officially registered some but
not all of them.
Ephemeral Ports (Dynamic or Private Ports) are identified as ports 49152 through
65535. Ephemeral ports are used as temporary ports for private transfers. Only
clients use ephemeral ports.
Not all operating systems follow the port recommendations of the IANA, but the IANA
registry of assigned port numbers is the most reliable for determining how a
specific port is being used. You can access the IANA Service Name and Transport
Protocol Port Number Registry here or check out this helpful list of commonly used
ports.
Port security
Ports allow services to send data to your computer but can also send malware into a
client program. Malicious actors might also use port scanning to search for open
and unsecured ports or to find weak points in your network security. To protect
your network, you should use a firewall to secure your ports and only open sockets
as needed.
Key takeaways
Network services are run by listening to specific ports for incoming data requests.
Ports are represented by a single 16-bit number (65535 different port ids)
Ports are split up by the IANA (Internet Assigned Numbers Authority) into three
categories: System Ports (ports 1-1023), User Ports (ports 1024-49151), and
Ephemeral (Dynamic) Ports (ports 59152-65535).
A socket is a port that a TCP segment has activated to listen for data requests.
Ports allow services to send data to your computer but can also send malware into a
client program. It's important to secure your ports.
//////
firewall
You know what network device we haven't
mentioned that you're probably super familiar with?
A firewall. A firewall is
just a device that blocks
traffic that meets certain criteria.
Firewalls are a critical concept to keeping
a network secure since they're
the primary way you can stop traffic,
you don't want from entering the network.
Firewalls can actually operate
at lots of different layers of the network.
There are firewalls that can perform
inspection of application layer traffic
and firewalls that primarily deal
with blocking ranges of IP addresses.
The reason we cover firewalls here is that they're
most commonly used at the transportation layer.
Firewalls that operate at
the transportation layer will
generally have a configuration
that enables them to block traffic to
certain ports while allowing traffic to other ports.
Let's imagine a simple small business network.
The small business might have
one server which hosts multiple network services.
The server might have a web server that hosts
the company's website while also serving as
the file server for a confidential internal document.
A firewall placed at
the perimeter of the network could be configured to
allow anyone to send traffic to
port 80 in order to view the web page.
At the same time, it could block
all access for external IPs to
any other port so that no one outside of
the local area network could access the file server.
Firewalls are sometimes independent network devices but
it's really better to think of them as
a program that can run anywhere.
For many companies and almost all home users,
the functionality of a router and
a firewall is performed by the same device.
Firewalls can run on
individual hosts instead of being a network device.
All major modern operating systems
have firewall functionality built in.
That way, blocking or
allowing traffic to various ports and
therefore to specific services
can be performed at the host level as well.
//////////////////////////////////////////////09-05-2023
///////////////////////////////////////////////////
OSi reference
//////////////////////////////////////////////
unison of layers
////
New terms and their definitions: Course 2 Week 3
ACK flag: One of the TCP control flags. ACK is short for acknowledge. A value of
one in this field means that the acknowledgment number field should be examined
Acknowledgement number: The number of the next expected segment in a TCP sequence
Application layer: The layer that allows network applications to communicate in a
way they understand
Application layer payload: The entire contents of whatever data applications want
to send to each other
CLOSE: A connection state that indicates that the connection has been fully
terminated, and that no further communication is possible
CLOSE_WAIT: A connection state that indicates that the connection has been closed
at the TCP layer, but that the application that opened the socket hasn't released
its hold on the socket yet
Connection-oriented protocol: A data-transmission protocol that establishes a
connection at the transport layer, and uses this to ensure that all data has been
properly transmitted
Connectionless protocol: A data-transmission protocol that allows data to be
exchanged without an established connection at the transport layer. The most common
of these is known as UDP, or User Datagram Protocol
Data offset field: The number of the next expected segment in a TCP packet/datagram
Demultiplexing: Taking traffic that's all aimed at the same node and delivering it
to the proper receiving service
Destination port: The port of the service the TCP packet is intended for
ESTABLISHED: Status indicating that the TCP connection is in working order, and
both sides are free to send each other data
FIN: One of the TCP control flags. FIN is short for finish. When this flag is set
to one, it means the transmitting computer doesn't have any more data to send and
the connection can be closed
FIN_WAIT: A TCP socket state indicating that a FIN has been sent, but the
corresponding ACK from the other end hasn't been received yet
Firewall: It is a device that blocks or allows traffic based on established rules
FTP: An older method used for transferring files from one computer to another, but
you still see it in use today
Handshake: A way for two devices to ensure that they're speaking the same protocol
and will be able to understand each other
Instantiation: The actual implementation of something defined elsewhere
Listen: It means that a TCP socket is ready and listening for incoming connections
Multiplexing: It means that nodes on the network have the ability to direct traffic
toward many different receiving services
Options field: It is sometimes used for more complicated flow control protocols
Port: It is a 16-bit number that's used to direct traffic to specific services
running on a networked computer
Presentation layer: It is responsible for making sure that the unencapsulated
application layer data is actually able to be understood by the application in
question
PSH flag: One of the TCP control flags. PSH is short for push. This flag means that
the transmitting device wants the receiving device to push currently- buffered data
to the application on the receiving end as soon as possible
RST flag: One of the TCP control flags. RST is short for reset. This flag means
that one of the sides in a TCP connection hasn't been able to properly recover from
a series of missing or malformed segments
Sequence number: A 32-bit number that's used to keep track of where in a sequence
of TCP segments this one is expected to be
Server or Service: A program running on a computer waiting to be asked for data
Session layer: The network layer responsible for facilitating the communication
between actual applications and the transport layer
Socket: The instantiation of an endpoint in a potential TCP connection
Source port: A high numbered port chosen from a special section of ports known as
ephemeral ports
SYN flag: One of the TCP flags. SYN stands for synchronize. This flag is used when
first establishing a TCP connection and make sure the receiving end knows to
examine the sequence number field
SYN_RECEIVED: A TCP socket state that means that a socket previously in a listener
state, has received a synchronization request and sent a SYN_ACK back
SYN_SENT: A TCP socket state that means that a synchronization request has been
sent, but the connection hasn't been established yet
TCP checksum: A mechanism that makes sure that no data is lost or corrupted during
a transfer
TCP segment: A payload section of an IP datagram made up of a TCP header and a data
section
TCP window: The range of sequence numbers that might be sent before an
acknowledgement is required
URG flag: One of the TCP control flags. URG is short for urgent. A value of one
here indicates that the segment is considered urgent and that the urgent pointer
field has more data about this
Urgent pointer field: A field used in conjunction with one of the TCP control flags
to point out particular segments that might be more important than others
Terms and their definitions from previous weeks
A
Address class system: A system which defines how the global IP address space is
split up
Address Resolution Protocol (ARP): A protocol used to discover the hardware address
of a node with a certain IP address
ARP table: A list of IP addresses and the MAC addresses associated with them
ASN: Autonomous System Number is a number assigned to an individual autonomous
system
B
Bit: The smallest representation of data that a computer can understand
Border Gateway Protocol (BGP): A protocol by which routers share data with each
other
Broadcast address: A special destination used by an Ethernet broadcast composed by
all Fs
Broadcast: A type of Ethernet transmission, sent to every single device on a LAN
C
Cable categories: Groups of cables that are made with the same material. Most
network cables used today can be split into two categories, copper and fiber
Cables: Insulated wires that connect different devices to each other allowing data
to be transmitted over them
Carrier-Sense Multiple Access with Collision Detection (CSMA/CD): CSMA/CD is used
to determine when the communications channels are clear and when the device is free
to transmit data
Client: A device that receives data from a server
Collision domain: A network segment where only one device can communicate at a time
Computer networking: The full scope of how computers communicate with each other
Copper cable categories: These categories have different physical characteristics
like the number of twists in the pair of copper wires. These are defined as names
like category (or cat) 5, 5e, or 6, and how quickly data can be sent across them
and how resistant they are to outside interference are all related to the way the
twisted pairs inside are arranged
Crosstalk: Crosstalk is when an electrical pulse on one wire is accidentally
detected on another wire
Cyclical Redundancy Check (CRC): A mathematical transformation that uses polynomial
division to create a number that represents a larger set of data. It is an
important concept for data integrity and is used all over computing, not just
network transmissions
D
Data packet: An all-encompassing term that represents any single set of binary data
being sent across a network link
Datalink layer: The layer in which the first protocols are introduced. This layer
is responsible for defining a common way of interpreting signals, so network
devices can communicate
Demarcate: To set the boundaries of something
Demarcation point: Where one network or system ends and another one begins
Destination MAC address: The hardware address of the intended recipient that
immediately follows the start frame delimiter
Destination network: The column in a routing table that contains a row for each
network that the router knows about
DHCP: A technology that assigns an IP address automatically to a new device. It is
an application layer protocol that automates the configuration process of hosts on
a network
Dotted decimal notation: A format of using dots to separate numbers in a string,
such as in an IP address
Duplex communication: A form of communication where information can flow in both
directions across a cable
Dynamic IP address: An IP address assigned automatically to a new device through a
technology known as Dynamic Host Configuration Protocol
E
Ethernet frame: A highly structured collection of information presented in a
specific order
Ethernet: The protocol most widely used to send data across individual links
EtherType field: It follows the Source MAC Address in a dataframe. It's 16 bits
long and used to describe the protocol of the contents of the frame
Exterior gateway: Protocols that are used for the exchange of information between
independent autonomous systems
F
Fiber cable: Fiber optic cables contain individual optical fibers which are tiny
tubes made of glass about the width of a human hair. Unlike copper, which uses
electrical voltages, fiber cables use pulses of light to represent the ones and
zeros of the underlying data
Five layer model: A model used to explain how network devices communicate. This
model has five layers that stack on top of each other: Physical, Data Link,
Network, Transport, and Application
Flag field: It is used to indicate if a datagram is allowed to be fragmented, or to
indicate that the datagram has already been fragmented
Fragmentation offset field: It contains values used by the receiving end to take
all the parts of a fragmented packet and put them back together in the correct
order
Fragmentation: The process of taking a single IP datagram and splitting it up into
several smaller datagrams
Frame check sequence: It is a 4-byte or 32-bit number that represents a checksum
value for the entire frame
Full duplex: The capacity of devices on either side of a networking link to
communicate with each other at the exact same time
H
Half-duplex: It means that, while communication is possible in each direction, only
one device can be communicating at a time
Header checksum field: A checksum of the contents of the entire IP datagram header
Header length field: A four bit field that declares how long the entire header is.
It is almost always 20 bytes in length when dealing with IPv4
Hexadecimal: A way to represent numbers using a numerical base of 16
Hub: It is a physical layer device that broadcasts data to everything computer
connected to it
I
IANA: The Internet Assigned Numbers Authority, is a non-profit organization that
helps manage things like IP address allocation
Identification field: It is a 16-bit number that's used to group messages together
Interface: For a router, the port where a router connects to a network. A router
gives and receives data through its interfaces. These are also used as part of the
routing table
Interior gateway: Interior gateway protocols are used by routers to share
information within a single autonomous system
Internet Protocol (IP): The most common protocol used in the network layer
Internet Service Provider (ISP): A company that provides a consumer an internet
connection
Internetwork: A collection of networks connected together through routers - the
most famous of these being the Internet
IP datagram: A highly structured series of fields that are strictly defined
IP options field: An optional field and is used to set special characteristics for
datagrams primarily used for testing purposes
L
Line coding: Modulation used for computer networks
Local Area Network (LAN): A single network in which multiple devices are connected
M
MAC(Media Access Control) address: A globally unique identifier attached to an
individual network interface. It's a 48-bit number normally represented by six
groupings of two hexadecimal numbers
Modulation: A way of varying the voltage of a constant electrical charge moving
across a standard copper network cable
Multicast frame: If the least significant bit in the first octet of a destination
address is set to one, it means you're dealing with a multicast frame. A multicast
frame is similarly set to all devices on the local network signal, and it will be
accepted or discarded by each device depending on criteria aside from their own
hardware MAC address
N
Network Address Translation (NAT): A mitigation tool that lets organizations use
one public IP address and many private IP addresses within the network
Network layer: It's the layer that allows different networks to communicate with
each other through devices known as routers. It is responsible for getting data
delivered across a collection of networks
Network port: The physical connector to be able to connect a device to the network.
This may be attached directly to a device on a computer network, or could also be
located on a wall or on a patch panel
Network switch: It is a level 2 or data link device that can connect to many
devices so they can communicate. It can inspect the contents of the Ethernet
protocol data being sent around the network, determine which system the data is
intended for and then only send that data to that one system
Next hop: The IP address of the next router that should receive data intended for
the destination networking question or this could just state the network is
directly connected and that there aren't any additional hops needed. Defined as
part of the routing table
Node: Any device connected to a network. On most networks, each node will typically
act as a server or a client
Non-routable address space: They are ranges of IPs set aside for use by anyone that
cannot be routed to
O
Octet: Any number that can be represented by 8 bits
Organizationally Unique Identifier (OUI): The first three octets of a MAC address
OSI model: A model used to define how network devices communicate. This model has
seven layers that stack on top of each other: Physical, Data Link, Network,
Transport, Session, Presentation, and Application
P
Padding field: A series of zeros used to ensure the header is the correct total
size
Patch panel: A device containing many physical network ports
Payload: The actual data being transported, which is everything that isn't a header
Physical layer: It represents the physical devices that interconnect computers
Preamble: The first part of an Ethernet frame, it is 8 bytes or 64 bits long and
can itself be split into two sections
Protocol field: A protocol field is an 8-bit field that contains data about what
transport layer protocol is being used
Protocol: A defined set of standards that computers must follow in order to
communicate properly is called a protocol
R
Router: A device that knows how to forward data between independent networks
Routing protocols: Special protocols the routers use to speak to each other in
order to share what information they might have
S
Server: A device that provides data to another device that is requesting that data,
also known as a client
Service type field: A eight bit field that can be used to specify details about
quality of service or QoS technologies
Simplex communication: A form of data communication that only goes in one direction
across a cable
Source MAC address: The hardware address of the device that sent the ethernet frame
or data packet. In the data packet it follows the destination MAC address
Start Frame Delimiter (SFD): The last byte in the preamble, that signals to a
receiving device that the preamble is over and that the actual frame contents will
now follow
Static IP address: An IP address that must be manually configured on a node
Subnet mask: 32-bit numbers that are normally written as four octets of decimal
numbers
Subnetting: The process of taking a large network and splitting it up into many
individual smaller sub networks or subnets
T
Time-To-Live field (TTL): An 8-bit field that indicates how many router hops a
datagram can traverse before it's thrown away
Total hops: The total number of devices data passes through to get from its source
to its destination. Routers try to choose the shortest path, so fewest hops
possible. The routing table is used to keep track of this
Total length field: A 16-bit field that indicates the total length of the IP
datagram it's attached to
Transmission Control Protocol (TCP): The data transfer protocol most commonly used
in the fourth layer. This protocol requires an established connection between the
client and server
Transport layer: The network layer that sorts out which client and server programs
are supposed to get the data
Twisted pair cable: The most common type of cabling used for connecting computing
devices. It features pairs of copper wires that are twisted together
U
Unicast transmission: A unicast transmission is always meant for just one receiving
address
User Datagram Protocol (UDP): A transfer protocol that does not rely on
connections. This protocol does not support the concept of an acknowledgement. With
UDP, you just set a destination port and send the data packet
V
Virtual LAN (VLAN): It is a technique that lets you have multiple logical LANs
operating on the same physical equipment
VLAN header: A piece of data that indicates what the frame itself is. In a data
packet it is followed by the EtherType
///////////////////////////////////////////////////////////////////////////////
21-05-2023
There's no denying it,
computer networking is a complicated business that
involves many technologies, layers, and protocols.
At the end of the day, the main purpose
of computer networking is so
network services can be available to
answer requests for the data from clients.
The sheer number and variety of things that might
comprise a network service makes
it impossible to cover all of them.
But there are a lot of
network services and technologies that are
used to help make computer networking
more user-friendly and secure.
These network services and technologies are
ones that directly relate to
the business of networking itself,
and it's important to understand how those work.
If something on the network isn't working as expected,
the first place you should look at
are the services we'll be covering here.
Being asked to fix things that aren't working as
expected will be a major part
of being an IT support specialist.
By the end of this module,
you'll be able to describe
why name resolution is important,
identify the many steps involved with DNS lookup,
and understand the most common DNS record types.
You'll also be able to explain how
DHCP makes network administration a simpler task.
You'll be able to demonstrate how
NAT technologies help keep
networks secure and help
preserve precious IP address space.
Finally, you'll be able to describe how VPNs
and proxies help users get connected and stay secure.
As you can see, we've got a lot to
tackle so let's get started.
///////////////////////////////////////////////
name resolution
///////////////////////////
22-05-2023
At its most basic, DNS is a system hat converts domain names into IP addresses.
It's the way humans are likely to remember and categorize
things resolved into the way
computers prefer to think of things.
This process of using DNS to turn
a domain name into an IP address
is known as name resolution.
Let's take a closer look at exactly how this works.
The first thing that's important to know
is that DNS servers are one of
the things that need to be specifically
configured at a node on a network.
For a computer to operate on a modern network,
they need to have certain number of things configured.
Remember that MAC addresses are
hard-coded and tied to specific pieces of hardware,
but we've also covered that the IP address,
subnet mask and gateway for
a host must be specifically configured.
A DNS server is
the fourth and final part of
the standard modern network configuration.
These are almost always the four things that must be
configured for a host to
operate on a network in an unexpected way.
I should call out that a computer
can operate just fine without
DNS or without a DNS server being configured,
but this makes things difficult
for any human that might be using that computer.
There are five primary types of DNS servers.
Caching name servers, recursive name servers,
root name servers, TLD
name servers and authoritative name servers.
As we dive deeper into these,
it's important to note that
any given DNS server can fulfill
many of these roles at once.
Caching and recursive name servers are
generally provided by an ISP or your local network.
Their purpose is to store
domain name lookups for a certain amount of time.
As you'll see in a moment,
there are lots of steps in order to perform
a fully qualified resolution of a domain name.
In order to prevent this from happening every single
time a new TCP connection is established,
your ISP or local network will
generally have a caching name server available.
Most caching name servers are
also recursive name servers.
Recursive name servers are ones that
perform full DNS resolution requests.
In most cases, your local name server
will perform the duties of both,
but it's definitely possible for a name server to
be either just caching or just recursive.
Let's introduce an example
to better explain how this works.
You and your friend are both connected to
the same network and you
both want to check out facebook.com.
Your friend enters www.facebook.com into a web browser,
which means that their computer now
needs to know the IP of
www.facebook.com in order to establish a connection.
Both of your computers are on the same network,
which usually means that they've both
been configured with the same name server.
Your friend's computer asks the name server for
the IP of www.facebook.com,
which it doesn't know.
This name server now performs
a fully recursive resolution to
discover the correct IP for www.facebook.com.
This IP is then both delivered to
your friend's computer and stored locally in a cache.
A few minutes later,
you enter www.facebook.com into a web browser.
Again, your computer needs to
know the IP for this domain,
so your computer asks
the local name server it's been configured with,
which is the same one
your friend's computer was just talking to.
Since the domain name
www.facebook.com had just been looked up,
the local name server still has
the IP that it results to stored
and is able to deliver that back to
your computer without having to perform a full lookup.
This is how the same servers act as a caching server.
All domain names in
the global DNS system have a TTL or time to live.
This is a value, in seconds that can be
configured by the owner of a domain name for
how long a name server is allowed to cache an entry
before it should discard it
and perform a full resolution again.
Several years ago, it was normal
for these TTLs to be really long,
sometimes a full day or more.
This is because the general bandwidth
available on the Internet was just much less,
so network administrators didn't
want to waste what bandwidth
was available to them by
constantly performing full DNS lookups.
As the Internet has grown and gotten faster,
these TTLs for most domains have
dropped to anywhere from a few minutes to a few hours,
but it's important to know that sometimes you still
run into a domain names with very lengthy TTLs.
It means that it can take up to
the length of a total TTL for
a change in DNS record
to be known to the entire Internet.
Now let's look at what happens when
your local recursive server needs to
perform a full recursive resolution.
The first step is always to contact a root name server.
There are 13 total root name servers
and they're responsible for
directing queries toward the appropriate TLD name server.
In the past, these 13 root servers
were distributed to very specific geographic regions,
but today they're mostly
distributed across the globe via Anycast.
Anycast is a technique that's used to route traffic to
different destinations
depending on factors like location,
congestion or link health.
Using Anycast, a computer can
send a datagram to a specific IP,
but could see it routed to one of
many different actual destinations
depending on a few factors.
This should also make it clear that there aren't really
only 13 physical root name servers anymore.
It's better to think of them as 13 authorities that
provide root name lookups as a service.
The root servers will respond to
a DNS lookup with
the TLD name server that should be queried.
TLD stands for top-level domain and
represents the top of
the hierarchical DNS name resolution system.
A TLD is the last part of
any domain name using
www.facebook.com as an example again,
the.com portion should be thought of as the TLD.
For each TLD in existence,
there is a TLD name server.
But just like with root servers,
this doesn't mean there's only
physically one server in question.
It's most likely a global distribution of
Anycast accessible servers responsible for each TLD.
The TLD name servers will respond again with a redirect,
this time informing the computer performing
the name lookup with
what authoritative name server to contact.
Authoritative name servers are responsible
for the last two parts of any domain name,
which is the resolution at which
a single organization may be responsible for DNS lookups.
Using www.weather.com as an example,
the TLD name server will point
a lookup at the authoritative server for weather.com,
which would likely be controlled by the weather channel,
the organization itself that runs the site.
Finally, the DNS lookup could be
redirected at the authoritative server for weather.com,
which would finally provide
the actual IP of the server in question.
This strict hierarchy is
very important to the stability of the Internet.
Making sure that all full DNS resolutions
go through a strictly regulated and controlled series of
lookups to get the correct responses is
the best way to protect against
malicious parties redirecting traffic.
Your computer will blindly send
traffic to whatever IP it's told to,
so by using a hierarchical system
controlled by trusted entities in the way DNS does,
we can better ensure that the responses
to DNS lookups are accurate.
Now that you see how many steps are involved,
it should make sense why we trust
our local name servers to cache DNS lookups.
It's so that full lookup path doesn't have to
happen for every single TCP connection.
In fact, your local computer from your phone to
a desktop will generally have
its own temporary DNS cache as well.
That way, it doesn't have to bother
its local name server for every TCP connection either.
////////////////////////////////////////////////////////////////////
dns and udp
DNS is a great example of an application layer service that uses UDP for
the transport layer instead of TCP,
this can be broken down into a few simple reasons.
Remember that the biggest difference between TCP and UDP is that UDP is
connectionless this means there's no set up or tear down of a connection.
So much less traffic needs to be transmitted overall.
A single DNS request and its response can usually fit inside of a single UDP
datagram, making it an ideal candidate for a connectionless protocol,
it's also worth calling out that DNS can generate a lot of traffic.
It's true that caches of DNS entries are stored both on local machines and
cashing name servers, but it's also true that if the full resolution needs to be
processed, we're talking about a lot more traffic.
Let's see what it would look like for a full DNS look up to take place via TCP.
First, the host that's making the DNS resolution request would send a SYN
packet to the local name server on port 53 which is the port that DNS listens on.
This name server would then need to respond with a SYN- ACK packet.
That means the original host would have to respond with an ACK in order to complete
the three way handshake, that's three packets.
Now that the connection has been established,
the original host would have to send the actual request.
I'd like the IP address for food.com please, when it receives this request,
the name server would have to respond with another ACK.
I got your request for food.com, we're up to five packets sent now.
In our scenario,
the first cashing name server doesn't have anything cached for food.com.
So it needs to talk to a root name server,
to find out who's responsible for the .com TLD.
This would require a three way handshake, the actual request, the ACK or
the request, the response and then the ACK of the response.
Oof, finally, the connection would have to be closed via a four way handshake.
That's 11 more packets or 16 total.
Now that the recursive name server has the correct TLD name server, it needs to
repeat that entire process to discover the proper authority of name server.
That's 11 more packets bringing us up to 27 so far.
Finally, the recursive name server would have to repeat the entire process one
more time while talking to the authoritative name server in order to
actually get the IP of food.com.
This is 11 more packets for a running total of 38.
Now that the local name server finally has the IP address of food.com,
it can finally respond to the initial request.
It responds to the DNS resolver that originally made the request and
then this computer sends an ACK back to confirm that it received the response.
That's two more packets, putting us at 40.
Finally, the TCP connection needs to be closed via a four way handshake.
This brings us to a grand total of 44 packets at the minimum in order for
a fully recursive DNS request to be fulfilled via TCP.
44 packets isn't really a huge number in terms of how fast modern networks operate,
but it heads up fast as you can see,
remember that DNS traffic is just a precursor to actual traffic.
A computer almost always performs a DNS look up because it needs to know the IP of
a domain name in order to send it additional data,
not just because it's curious.
Now, let's check out how this would look with UDP,
spoiler alert, it doesn't take as many packets.
The original computer sends a UDP packet to its local name server
on port 53 asking for the IP for food.com, that's one packet.
The local name server acts as a recursive server and
sends up a UDP packet to the root server which sends a response containing
the proper TLD name server, that's three packets.
The recursive name server sends a packet to the TLD server and
receives back a response containing the correct authority server,
we're now at five packets.
Next, the recursive name server sends its final request to the authority of name
server which sends a response containing the IP for food.com, that's seven packets.
Finally, the local name server responds to the DNS resolver that made
the request in the first place with the IP for food.com.
That brings us to a grand total of eight packets.
See way less packets, you can see now how much overhead TCP really requires and
for something as simple as DNS, it's just not needed.
It's the perfect example for
why protocols like UDP exist in addition to the more robust TCP, you might be
wondering how error recovery plays into this since UDP doesn't have any.
The answer is pretty simple.
The DNS resolver just asks again if it doesn't get a response,
basically the same functionality that TCP provides at the transport layer
is provided by DNS at the application layer, in the most simple manner.
A DNS server never needs to care about doing anything but
responding to incoming lookups and a DNS resolver simply needs
to perform lookups and repeat them if they don't succeed.
A real showcase of the simplicity of both DNS and UDP,
I should call out that DNS over TCP does in fact exist and is also in use all over.
As the web has gotten more complex, it's no longer the case that all DNS
lookup responses can fit in a single UDP datagram.
In these situations, a DNS name server would respond with a packet
explaining that the response is too large.
The DNS client would then establish a TCP connection in order to perform the
lookup.
///////////////////////////////////
Remember, DNS is one of the most important technologies that an IT support
specialist needs to know in order to troubleshoot networking issues.
So let's get into the nitty-gritty.
DNS in practice, operates with a set of defined resource record types.
These allow for different kinds of DNS resolutions to take place.
There are dozens of different resource record types to find, but
a lot of them only serve very specialized purposes.
We'll cover the most basic ones here.
The most common resource record is known as an A record.
An A record is used to point a certain domain name at a certain IPv4 IP address.
In our earlier discussions of DNS, we made the assumption that the DNS resolver
was asking for the A record for a domain name.
In its most basic use, a single A record is configured for a single domain name,
but a single domain name can have multiple A records too.
This allows for a technique known as DNS round robin to be used to
balance traffic across multiple IPs.
Round robin is a concept that involves iterating over a list of items one
by one in an orderly fashion.
The hope is that this ensures a fairly equal balance of each entry
on the list that's selected.
Let's say we're in charge of a domain name www.microsoft.com.
Microsoft is a large company, and their website likely sees a lot of traffic.
To help balance this traffic across multiple servers,
we configure four A records for
www.microsoft.com at the authoritative name server for the microsoft.com domain.
We'll use the IPs 10.1.1.1, 10.1.1.2,
10.1.1.3, and 10.1.1.4.
When a DNS resolver performs a look up of www.microsoft.com,
all four IPs would be returned in the order, first configured.
10.1.1.1 followed by 10.1.1.2,
followed by 10.1.1.3, and finally 10.1.1.4.
The DNS resolving computer would know that it should try to use the first entry,
10.1.1.1.
But it knows about all four just in case a connection to 10.1.1.1 fails.
The next computer to perform a look up for www.microsoft.com, would also
receive all four IPs in the response, but the ordering will have changed.
The first entry would be 10.1.1.2,
followed by 10.1.1.3, followed by 10.1.1.4,
and finally 10.1.1.1 would be last on that list.
This pattern would continue for every DNS resolution attempt, cycling through
all of the A records configured, and balancing the traffic across these IPs.
That's the basics of how DNS round robin logic works.
Another resource record type that's becoming more and
more popular is the quad A record.
A quad A record is very similar to an A record,
except that it returns an IPv6 address instead of an IPv4 address.
The CNAME record is also super common.
A CNAME record is used to redirect traffic from one domain to another.
Let's say that Microsoft runs their web servers at www.microsoft.com.
They also want to make sure that anyone that enters just
microsoft.com into their web browser, will get properly redirected.
By configuring a CNAME record for
microsoft.com that resolves to www.microsoft.com, the resolving
client would then know to perform another resolution attempt, this time,
for www.microsoft.com, and then use the IP returned by that second attempt.
CNAMEs are really useful because they ensure you only have to change
the canonical IP address of a server in one place.
In fact, CNAME it's just shorthand for canonical name.
If we look again at our original example of making sure that visitors to
both microsoft.com and www.microsoft.com, get to the same place,
we could do this in two ways.
We could set up identical A records for both microsoft.com and
www.microsoft.com domain names.
And this would work just fine.
But if the underlying IP address ever changes, we need to change it in
two places, the A records for both microsoft.com and www.microsoft.com.
By setting up a CNAME that points microsoft.com at www.microsoft.com,
you'd only have to change the A record for www.microsoft.com.
And you know the clients pointing at either domain would get the new IP
address.
This might not seem like a huge deal with just two records to worry about,
but large companies with complex presences on the web might have dozens of these
kinds of redirections.
It's always easier to only have one source of truth.
Another important resource record type is the MX record.
MX stands for mail exchange, and
this resource record is used in order to deliver email to the correct server.
Many companies run their web and
mail servers on different machines with different IPs.
So the MX record makes it easy to ensure that email gets
delivered to a company's mail server,
while other traffic like web traffic, would get delivered to their web server.
Record type very similar to the MX record, is the SRV record.
SRV stands for service record, and
it's used to define the location of various specific services.
It serves the exact same purpose as the MX resource record type except for
one thing, while MX is only for mail services,
an SRV record can be defined to return the specifics of many different service
types.
For example, SRV records are often used to return the records of
services like Cal Dave, which is a calendar and scheduling service.
The text record type is an interesting one.
TXT stands for text, and was originally intended to be used only for
associating some descriptive text with a domain name for human consumption.
The idea was that you could leave notes or messages that humans could discover and
read to learn more about arbitrary specifics of your network.
But over the years as the internet and services that run on it have become more
and more complex, the text record has been increasingly used to convey additional
data intended for other computers to process.
Since the text record has a field that's entirely free form,
clever engineers have figured it out ways to use it to communicate data
not originally intended to be communicated by a system like DNS.
It's pretty clever, right?
This text record is often used to communicate configuration preferences
about network services that you've entrusted other organizations to handle
for your domain.
For example, it's common for the text record to be used
to convey additional info to an email as a service provider,
which is a company that handles your email delivery for you.
There are lots of other DNS resource record types in common use, like the NS or
SOA records which are used to define authoritative information about DNS zones.
/////////////////////
We've covered how authoritative name
servers are responsible for
responding to name resolution requests
for a specific domains,
but they do more than that.
An authoritative name server is actually
responsible for a specific DNS zone.
DNS zones are a hierarchical concept.
The root name servers we covered
earlier are responsible for the root zone.
Each TLD name server is responsible
for the zone covering its specific TLD.
What we referred to as authoritative name servers are
responsible for some even finer
grained zones underneath that.
The root and TLD name servers
are actually just authoritative name servers too.
It's just that the zones at
their authority for are special cases.
I should call out that zones don't overlap.
For example the administrative authority
of the TLD name server for
the.com TLD doesn't encompass the google.com domain.
Instead, it ends at
the authoritative server responsible for google.com.
The purpose of DNS zones is to allow
for easier control over multiple levels of a domain.
As the number of resource records
in a single domain increases,
it becomes more of a headache to manage them all.
Network administrators can ease this pain by
splitting up their configurations into multiple zones.
Let's imagine a large company that
owns the domain, largecompany.com.
This company has offices in
Los Angeles, Paris, and Shanghai.
Very cosmopolitan.
Let's say each office has around
200 people with
their own uniquely named desktop computer.
This would be 600A records to keep
track of if it was all configured as a single zone.
What the company could do instead is
split up each office into their own zone.
Now we can have
la.largecompany.com, pa.largecompany.com,
and sh.largecompany.com as subdomains,
each with their own DNS zone.
A total of four authoritative name servers
would now be required for the setup.
One for largecompany.com and
one for each of the sub domains.
Zones are configured through what are
known as zone files,
simple configuration files that declare
all resource records for a particular zone.
A zone file has to contain an SOA or
a Start of Authority resource record declaration.
This SOA record declares the zone
and the name of
the name server that is authoritative for it.
Along with the SOA record,
you'll usually find NS records which indicate
other name servers that might
also be responsible for this zone.
For simplicity sake, we've
been referring to server in the
singular when discussing what's
responsible for a zone weather at the root,
TLD or domain level.
But there are often going to be multiple physical servers
with their own FQDNs and IP addresses involved.
Having multiple servers in place for something
as important as DNS is pretty common.
Why? Well, if one server were to
have a problem or suffer a harbor failure,
you can always rely on one of
the other ones to serve DNS traffic.
Besides SOA and NS records,
you'll also find some or all of
the other resource record types we've already covered,
like A, Quad A and CNAME records,
along with configurations such as
default TTL values for the record served by this zone.
Just like how subdomains can go many layers deep,
zones can be configured to do this too.
But just like with subdomains,
it's rare to see zones deeper than just a few levels.
Sometimes you will also see what are
known as reverse lookup zone files.
These let DNS resolvers ask for an IP
and get the FQDN associated with it returned.
These files are the same as zone files,
except instead of A and
Quad A records which resolve names to IPs,
you'll find mostly pointer resource record declarations.
As you might have guessed, a PTR or
Pointer Record resolves an IP to a name.
/////////////////////////////////////////////////////
26-05-2023
Managing hosts on a network can be
a daunting and time-consuming task.
Every single computer on
a modern TCP IP-based network needs to
have at least four things specifically configured,
an IP address, the subnet mask for the local network,
a primary gateway, and a name server.
On their own, these four things don't seem like much,
but when you have to configure them
on hundreds of machines,
it becomes super tedious.
Out of these four things,
three are likely the same on
just about every node on the network, the subnet mask,
the primary gateway, and DNS server but the last item,
an IP address needs to be
different on every single node on the network.
That could require a lot of
tricky configuration work and this is where
DHCP or
Dynamic Host Configuration Protocol comes into play.
Listen up, because DHCP is critical to know
as an IT support specialist
when it comes to troubleshooting networks.
DHCP is an application layer protocol that
automates the configuration process
of hosts on a network.
With DHCP, a machine can query a DHCP server when
the computer connects to the network and receive
all the networking configuration in one go.
Not only does DHCP reduce the administrative overhead
of having to configure lots of
network devices on a single network,
it also helps address the problem of having
to choose what IP to assign to what machine.
Every computer on a network
requires an IP for communications,
but very few of them require
an IP that would be commonly known.
For servers or network equipment on your network,
like your gateway router,
a static and known IP address is pretty important.
For example, the devices on a network
need to know the IP of their gateway at all times.
If the local DNS server was malfunctioning,
network administrators would still need a way to
connect to some of these devices through their IP.
Without aesthetic IP configured for a DNS server,
it would be hard to connect to it,
to diagnose any problems if it was
malfunctioning but for a bunch of client devices,
like desktops or laptops,
or even mobile phones,
it's really only important that they
have an IP on the right network.
It's much less important exactly which IP that is.
Using DHCP, you can configure a range of
IP addresses that's set aside for these client devices.
This ensures that any of these devices
can obtain an IP address when they need one.
But solves the problem of having to maintain a list of
every node on the network and its corresponding IP.
There are a few standard ways that DHCP can operate.
DHCP, dynamic allocation is the most common,
and it works how we described it just now,
a range of IP addresses is set aside for
client devices and one of
these IPs is issued
to these devices when they request one.
Under a dynamic allocation,
the IP of a computer could be
different almost every time it connects to the network.
Automatic allocation is very
similar to dynamic allocation
in that a range of IP addresses
is set aside for assignment purposes.
The main difference here is that
the DHCP server is asked to keep
track of which IPs it's
assigned to certain devices in the past.
Using this information, the DHCP server will assign
the same IP to the same machine each time if possible.
Finally, there's what's known as fixed allocation.
Fixed allocation requires a manually specified list
of MAC address and their corresponding IPs.
When a computer requests an IP,
the DHCP server looks for its MAC address in
a table and assigns
the IP that corresponds to that MAC address.
If the MAC address isn't found,
the DHCP server might fall back
to automatic or dynamic allocation,
or it might refuse to assign an IP altogether.
This can be used as a security measure to ensure
that only devices that have had their MAC address
specifically configured at the DHCP server will
ever be able to obtain
an IP and communicate on the network.
It's worth calling out that DHCP discovery can be
used to configure lots of things
beyond what we've touched on here.
Along with things like IP address and primary gateway,
you can also use DHCP to assign things like NTP servers.
NTP stands for Network Time Protocol
and is used to keep all computers
on a network synchronized in time.
///////////////////////////////
DHCP is an application layer protocol,
which means it relies on the transport,
network, data link, and physical layers to operate.
But you might have noticed that the entire point of
DHCP is to help configure the network layer itself.
Let's take a look at exactly how DHCP works and how it
accomplishes communication's
without a network layer configuration in place.
Warning, geeky stuff ahead.
The process by which a client
configured to use DHCP attempts
to get network configuration information
is known as DHCP discovery.
The DHCP discovery process has four steps.
First, we have the server discovery step.
The DHCP client sends what's known as
a DHCP discover message out onto the network.
Since the machine doesn't have an IP and it
doesn't know the IP of the DHCP server,
a specially crafted broadcast message is formed instead.
DHCP listens on UDP port 67 and
DHCP discovery messages are always sent from UDP port 68.
The DHCP discover message is encapsulated in
a UDP datagram with a destination port
of 67 and a source port of 68.
This is then encapsulated inside of
an IP datagram with a destination IP of
255.255.255.255 and a source IP of 0.0.0.0.
This broadcast message would get delivered to
every node on the local area network,
and if a DHCP server is present,
it would receive this message.
Next, the DHCP server would examine
its own configuration and would make a decision on what,
if any, IP address to offer to the client.
This will depend on if it's
configured to run with dynamic,
automatic or fixed address allocation.
The response would be sent as
a DHCP offer message with a destination port of 68,
a source port of 67,
a destination broadcast IP of 255.255.255.255,
and its actual IP as the source.
Since the DHCP Offer is also a broadcast,
it would reach every machine on the network.
The original client would
recognize that this message was intended for itself.
This is because the DHCP offer
has the field that specifies
the MAC address of the client that
sent the DHCP discover message.
The client machine would now process
this DHCP offer to see what IP is being offered to it.
Technically, a DHCP client could reject this offer.
It's totally possible for
multiple DHCP servers to be
running on the same network and for
a DHCP client to be configured to only
respond to an offer of an IP within a certain range.
But this is rare. More often,
the DHCP client would respond to
the DHCP offer message with a DHCP request message.
This message essentially says,
yes, I would like to have an IP that you offered to me.
Since the IP hasn't been assigned yet,
this is again sent from an IP of 0.0.0.0
and to the broadcast IP of 255.255.255.255.
Finally, the DHCP server
receives the DHCP request message
and respond with
a DHCPACK or DHCP Acknowledgement message.
This message is again sent to
a broadcast IP of 255.255.255.255,
and with a source IP corresponding to
the actual IP of the DHCP server.
Again, the DHCP client
would recognize that this message was intended
for itself by inclusion of
its MAC address in one of the message fields.
The networking stack on
the client computer can now
use the configuration information
presented to it by the DHCP server
to set up its own network layer configuration.
At this stage, the computer that's
acting as the DHCP client should have
all the information it needs to operate in
a full-fledged manner on the network it's connected to.
All of this configuration is known as DHCP lease,
as it includes an expiration time.
A DHCP lease might last for
days or only for a short amount of time.
Once a lease has expired,
the DHCP client would need to negotiate a new lease
by performing the entire
DHCP discovery process all over again.
A client can also release its lease to the DHCP server,
which it would do when it disconnects from the network.
This would allow the DHCP server to return
the IP address that was assigned
to its pool of available IPs.
////////////////////////////////////
27/05/2023
/////////////////////////////////////////
NAT at the network layer is pretty easy to follow.
One IP address is translated to
another by a device, usually a router.
But at the transport layer,
things get a little bit more complicated and
several additional techniques come into
play to make sure everything works properly.
With one-to-many NAT,
we've talked about how hundreds,
even thousands of computers can all have
their outbound traffic translated via NAT to a single IP.
This is pretty easy to understand
when the traffic is outbound,
but a little more complicated
once return traffic is involved.
We now have potentially hundreds of
responses all directed at the same IP
and the router at this IP needs to
figure out which responses go to which computer.
The simplest way to do this is through port preservation.
Port preservation is a technique where
the source port chosen by
a client is the same port used by the router.
Remember that outbound connections
choose a source port at random from
the ephemeral ports or the ports in
the range 49,152 through 65,535.
In the simplest setup,
a router setup to
NAT outbound traffic will just keep track of what
the source port is and use
that to direct traffic back to the right computer.
Let's imagine a device with an IP of 10.1.1.100.
It wants to establish
an outbound connection and the networking stack of
the operating system chooses port
51,300 for this connection.
Once this outbound connection gets to the router,
it performs network address translation and places
its own IP in
the source address field of the IP datagram,
but it leaves the source port
in the TCP datagram the same,
and stores this data internally in a table.
Now, when traffic returns to the router on port 51,300,
it knows that this traffic needs to be forwarded back
to the IP, 10.1.1.100.
Even with how large the set of ephemeral ports is,
it's still possible for
two different computers on a network
to both choose the same source port around the same time.
When this happens, the router normally selects
an unused port at random to use instead.
Another important concept about
NAT and the transport layer is port forwarding.
Port forwarding is a technique where
specific destination ports can be configured
to always be delivered to specific nodes.
This technique allows for
complete IP masquerading while still
having services that can respond to incoming traffic.
Let's use our network 10.1.1.0/24,
again, to demonstrate this.
Let's say there's a web server configured with
an IP of 10.1.1.5.
With port forwarding, no one
would even have to know this IP.
Prospective web clients would only have to
know about the external IP of the router,
let's say it's 192.168.1.1.
Any traffic directed at port 80 on
192.168.1.1 would get
automatically forwarded to 10.1.1.5.
Response traffic would have the source IP
rewritten to look like the external IP of the router.
This technique not only allows for IP masquerading,
it also simplifies how external users might interact
with lots of services all run by the same organization.
Let's imagine a company with
both a web server and a mail server.
Both need to be accessible to the outside world
but they run on different servers with different IPs.
Again, let's say the web server has an IP of
10.1.1.5 and the mail server has an IP of 10.1.1.6,
with port forwarding,
traffic for either of these services could be aimed at
the same external IP and therefore the same DNS name,
but it would get delivered to
entirely different internal servers
due to their different destination ports.
////////////////////////////////////
supplemental reading
///////////////////////////////////////////////
VPNs
Businesses have lots of
reasons to want to keep their network secure.
They do this by using some of
the technologies we've already discussed,
firewalls, NAT,
the use of non-routable address space, things like that.
Organizations often have proprietary information
that needs to remain secure,
network services that are only intended
for employees to access and other things.
One of the easiest ways to keep
network secure is to use various securing technologies.
Only devices physically connected to
their local area network can access these resources.
But employees aren't always in the office.
They might be working from home or on a business trip,
and they might still need access to
these resources in order to get their work done.
That's where VPNs come in.
Virtual private networks, or VPNs,
or a technology that allows for the extension of
a private or local network to a host
them might not work on that same local network.
VPNs come in many flavors
and accomplish lots of different things.
But the most common example of how VPNs are used is for
employees to access their businesses network
when they're not in the office.
VPNs are a tunneling protocol,
which means they provision access
to something not locally available.
When establishing a VPN connection,
you might also say that
a VPN tunnel has been established.
Let's go back to the example of an employee who needs to
access company resources while not in the office.
The employee could use a VPN client to
establish a VPN tunnel to their company network.
This would provision their computer
with what's known as a virtual interface with
an IP that matches
the address space of the network
they've established a VPN connection to.
By sending data out of this virtual interface,
the computer could access internal resources,
just like if it was physically
connected to the private network.
Most VPNs work by using
the payload section of the transport layer to
carry an encrypted payload that actually
contains an entire second set of packets,
the network, the transport,
and the application layers of a packet
intended to traverse the remote network.
Basically, this payload is carried to
the VPN's endpoint where
all the other layers are stripped away and discarded.
Then the payload is unencrypted,
leaving the VPN server with
the top three layers of a new packet.
This gets encapsulated with
the proper data link layer information
and sent out across the network.
This process is completed in
the inverse in the opposite direction.
VPNs usually require strict authentication procedures
in order to ensure that
they can only be connected to buy
computers and users authorized to do so.
In fact, VPNs were one of
the first technologies where
two-factor authentication became common.
Two-factor authentication is a technique where more
than just a username and
password are required to authenticate.
Usually, a short-lived numerical token is
generated by the user through
a specialized piece of hardware or software.
VPNs can also be used
to establish site-to-site connectivity.
Conceptually, there isn't much difference between
how this works compared to
our remote employees situation.
It's just that the router,
or sometimes a specialized VPN device on one network,
establishes the VPN tunnel to
the router or VPN device on another network.
This way, two physically
separated offices might be able to
act as one network and
access network resources across the tunnel.
It's important to call out that just like Nat,
VPN or a general technology concept,
not a strictly defined protocol.
There are lots of unique implementations of VPNs
and the details of how they all work can differ a ton.
The most important takeaway is that VPNs are
a technology they use encrypted tunnels to
allow for a remote computer or network to act as if it's
connected to a network that it's
not actually physically connected to.
///////////////////////////////////
proxies
..
/////////////////////glosarry
Module 4 Glossary
New terms and their definitions: Course 2 Week 4
A record: The most common resource record, used to point a certain domain name at a
certain IPv4 IP address
Anycast: A technique that's used to route traffic to different destinations
depending on factors like location, congestion, or link health
Automatic allocation: A range of IP addresses is set aside for assignment purposes
Caching and recursive name servers: They are generally provided by an ISP or your
local network, and their purpose is to store domain name lookups for a certain
amount of time
CNAME: A resource record used to map one domain to another
DHCP discovery: The process by which a client configured to use DHCP attempts to
get network configuration information
Domain Name System (DNS): A global and highly distributed network service that
resolves strings of letters, such as a website name, into an IP address
DNS zones: A portion of space in the Domain Name System (DNS) that is controlled by
an authoritative name server
Domain: Used to demarcate where control moves from a top-level domain name server
to an authoritative name server
Domain name: A website name; the part of the URL following www.
Dynamic allocation: A range of IP addresses is set aside for client devices and one
of these IPs is issued to these devices when they request one
Fixed allocation: Requires a manually specified list of MAC address and the
corresponding IPs
Fully qualified domain name: When you combine all the parts of a domain together
IP masquerading: The NAT obscures the sender's IP address from the receiver
MX record: It stands for mail exchange and this resource record is used in order to
deliver email to the correct server
Name resolution: This process of using DNS to turn a domain name into an IP address
Network Address Translation (NAT): A mitigation tool that lets organizations use
one public IP address and many private IP addresses within the network
NS record: It indicates other name servers that may also be responsible for a
particular zone
NTP servers: Used to keep all computers on a network synchronized in time
Pointer resource record: It resolves an IP to a name
Port forwarding: A technique where specific destination ports can be configured to
always be delivered to specific nodes
Port preservation: A technique where the source port chosen by a client, is the
same port used by the router
Proxy service: A server that acts on behalf of a client in order to access another
service
Quad A (AAAA) record: It is very similar to an A record except that it returns in
IPv6 address instead of an IPv4 address
Recursive name servers: Servers that perform full DNS resolution requests
Reverse lookup zone files: They let DNS resolvers ask for an IP, and get the FQDN
associated with it returned
Reverse proxy: A service that might appear to be a single server to external
clients, but actually represents many servers living behind it
Round robin: It is a concept that involves iterating over a list of items one by
one in an orderly fashion
SRV record: A service record used to define the location of various specific
services
Start of authority: A declaration of the zone and the name of the name server that
is authoritative for it
Top Level Domain (TLD): The top level of the DNS or the last part of a domain name.
For example, the “com” in www.weather.com
Time-To-Live field (TTL): An 8-bit field that indicates how many router hops a
datagram can traverse before it's thrown away
Two-factor authentication: A technique where more than just a username and password
are required to authenticate. Usually, a short-lived numerical token is generated
by the user through a specialized piece of hardware or software
TXT record: It stands for text and was originally intended to be used only for
associating some descriptive text with a domain name for human consumption
Types of DNS servers: There are five primary types of DNS servers; caching name
servers, recursive name servers, root name servers, TLD name servers, and
authoritative name servers
Virtual Private Network (VPN): A technology that allows for the extension of a
private or local network, to a host that might not work on that same local network
Zone Files: Simple configuration files that declare all resource records for a
particular zone
Terms and their definitions from previous weeks
A
ACK flag: One of the TCP control flags. ACK is short for acknowledge. A value of
one in this field means that the acknowledgment number field should be examined
Acknowledgement number: The number of the next expected segment in a TCP sequence
Address class system: A system which defines how the global IP address space is
split up
Address Resolution Protocol (ARP): A protocol used to discover the hardware address
of a node with a certain IP address
Application layer payload: The entire contents of whatever data applications want
to send to each other
Application layer: The layer that allows network applications to communicate in a
way they understand
ARP table: A list of IP addresses and the MAC addresses associated with them
ASN: Autonomous System Number is a number assigned to an individual autonomous
system
B
Bit: The smallest representation of data that a computer can understand
Border Gateway Protocol (BGP): A protocol by which routers share data with each
other
Broadcast address: A special destination used by an Ethernet broadcast composed by
all Fs
Broadcast: A type of Ethernet transmission, sent to every single device on a LAN
C
Cable categories: Groups of cables that are made with the same material. Most
network cables used today can be split into two categories, copper and fiber
Cables: Insulated wires that connect different devices to each other allowing data
to be transmitted over them
Carrier-Sense Multiple Access with Collision Detection (CSMA/CD): CSMA/CD is used
to determine when the communications channels are clear and when the device is free
to transmit data
Client: A device that receives data from a server
CLOSE_WAIT: A connection state that indicates that the connection has been closed
at the TCP layer, but that the application that opened the socket hasn't released
its hold on the socket yet
CLOSE: A connection state that indicates that the connection has been fully
terminated, and that no further communication is possible
Collision domain: A network segment where only one device can communicate at a time
Computer networking: The full scope of how computers communicate with each other
Connection-oriented protocol: A data-transmission protocol that establishes a
connection at the transport layer, and uses this to ensure that all data has been
properly transmitted
Connectionless protocol: A data-transmission protocol that allows data to be
exchanged without an established connection at the transport layer. The most common
of these is known as UDP, or User Datagram Protocol
Copper cable categories: These categories have different physical characteristics
like the number of twists in the pair of copper wires. These are defined as names
like category (or cat) 5, 5e, or 6, and how quickly data can be sent across them
and how resistant they are to outside interference are all related to the way the
twisted pairs inside are arranged
Crosstalk: Crosstalk is when an electrical pulse on one wire is accidentally
detected on another wire
Cyclical Redundancy Check (CRC): A mathematical transformation that uses polynomial
division to create a number that represents a larger set of data. It is an
important concept for data integrity and is used all over computing, not just
network transmissions
D
Data offset field: The number of the next expected segment in a TCP packet/datagram
Data packet: An all-encompassing term that represents any single set of binary data
being sent across a network link
Datalink layer: The layer in which the first protocols are introduced. This layer
is responsible for defining a common way of interpreting signals, so network
devices can communicate
Demarcate: To set the boundaries of something
Demarcation point: Where one network or system ends and another one begins
Demultiplexing: Taking traffic that's all aimed at the same node and delivering it
to the proper receiving service
Destination MAC address: The hardware address of the intended recipient that
immediately follows the start frame delimiter
Destination network: The column in a routing table that contains a row for each
network that the router knows about
Destination port: The port of the service the TCP packet is intended for
DHCP: A technology that assigns an IP address automatically to a new device. It is
an application layer protocol that automates the configuration process of hosts on
a network
Dotted decimal notation: A format of using dots to separate numbers in a string,
such as in an IP address
Duplex communication: A form of communication where information can flow in both
directions across a cable
Dynamic IP address: An IP address assigned automatically to a new device through a
technology known as Dynamic Host Configuration Protocol
E
ESTABLISHED: Status indicating that the TCP connection is in working order, and
both sides are free to send each other data
Ethernet frame: A highly structured collection of information presented in a
specific order
Ethernet: The protocol most widely used to send data across individual links
EtherType field: It follows the Source MAC Address in a dataframe. It's 16 bits
long and used to describe the protocol of the contents of the frame
Exterior gateway: Protocols that are used for the exchange of information between
independent autonomous systems
F
Fiber cable: Fiber optic cables contain individual optical fibers which are tiny
tubes made of glass about the width of a human hair. Unlike copper, which uses
electrical voltages, fiber cables use pulses of light to represent the ones and
zeros of the underlying data
FIN_WAIT: A TCP socket state indicating that a FIN has been sent, but the
corresponding ACK from the other end hasn't been received yet
FIN: One of the TCP control flags. FIN is short for finish. When this flag is set
to one, it means the transmitting computer doesn't have any more data to send and
the connection can be closed
Firewall: It is a device that blocks or allows traffic based on established rules
Five layer model: A model used to explain how network devices communicate. This
model has five layers that stack on top of each other: Physical, Data Link,
Network, Transport, and Application
Flag field: It is used to indicate if a datagram is allowed to be fragmented, or to
indicate that the datagram has already been fragmented
Fragmentation offset field: It contains values used by the receiving end to take
all the parts of a fragmented packet and put them back together in the correct
order
Fragmentation: The process of taking a single IP datagram and splitting it up into
several smaller datagrams
Frame check sequence: It is a 4-byte or 32-bit number that represents a checksum
value for the entire frame
FTP: An older method used for transferring files from one computer to another, but
you still see it in use today
Full duplex: The capacity of devices on either side of a networking link to
communicate with each other at the exact same time
H
Half-duplex: It means that, while communication is possible in each direction, only
one device can be communicating at a time
Handshake: A way for two devices to ensure that they're speaking the same protocol
and will be able to understand each other
Header checksum field: A checksum of the contents of the entire IP datagram header
Header length field: A four bit field that declares how long the entire header is.
It is almost always 20 bytes in length when dealing with IPv4
Hexadecimal: A way to represent numbers using a numerical base of 16
Hub: It is a physical layer device that broadcasts data to everything computer
connected to it
I
IANA: The Internet Assigned Numbers Authority, is a non-profit organization that
helps manage things like IP address allocation
Identification field: It is a 16-bit number that's used to group messages together
Instantiation: The actual implementation of something defined elsewhere
Interface: For a router, the port where a router connects to a network. A router
gives and receives data through its interfaces. These are also used as part of the
routing table
Interior gateway: Interior gateway protocols are used by routers to share
information within a single autonomous system
Internet Protocol (IP): The most common protocol used in the network layer
Internet Service Provider (ISP): A company that provides a consumer an internet
connection
Internetwork: A collection of networks connected together through routers - the
most famous of these being the Internet
IP datagram: A highly structured series of fields that are strictly defined
IP options field: An optional field and is used to set special characteristics for
datagrams primarily used for testing purposes
L
Line coding: Modulation used for computer networks
Listen: It means that a TCP socket is ready and listening for incoming connections
Local Area Network (LAN): A single network in which multiple devices are connected
M
MAC(Media Access Control) address: A globally unique identifier attached to an
individual network interface. It's a 48-bit number normally represented by six
groupings of two hexadecimal numbers
Modulation: A way of varying the voltage of a constant electrical charge moving
across a standard copper network cable
Multicast frame: If the least significant bit in the first octet of a destination
address is set to one, it means you're dealing with a multicast frame. A multicast
frame is similarly set to all devices on the local network signal, and it will be
accepted or discarded by each device depending on criteria aside from their own
hardware MAC address
Multiplexing: It means that nodes on the network have the ability to direct traffic
toward many different receiving services
N
Network Address Translation (NAT): A mitigation tool that lets organizations use
one public IP address and many private IP addresses within the network
Network layer: It's the layer that allows different networks to communicate with
each other through devices known as routers. It is responsible for getting data
delivered across a collection of networks
Network port: The physical connector to be able to connect a device to the network.
This may be attached directly to a device on a computer network, or could also be
located on a wall or on a patch panel
Network switch: It is a level 2 or data link device that can connect to many
devices so they can communicate. It can inspect the contents of the Ethernet
protocol data being sent around the network, determine which system the data is
intended for and then only send that data to that one system
Next hop: The IP address of the next router that should receive data intended for
the destination networking question or this could just state the network is
directly connected and that there aren't any additional hops needed. Defined as
part of the routing table
Node: Any device connected to a network. On most networks, each node will typically
act as a server or a client
Non-routable address space: They are ranges of IPs set aside for use by anyone that
cannot be routed to
O
Octet: Any number that can be represented by 8 bits
Options field: It is sometimes used for more complicated flow control protocols
Organizationally Unique Identifier (OUI): The first three octets of a MAC address
OSI model: A model used to define how network devices communicate. This model has
seven layers that stack on top of each other: Physical, Data Link, Network,
Transport, Session, Presentation, and Application
P
Padding field: A series of zeros used to ensure the header is the correct total
size
Patch panel: A device containing many physical network ports
Payload: The actual data being transported, which is everything that isn't a header
Physical layer: It represents the physical devices that interconnect computers
Port: It is a 16-bit number that's used to direct traffic to specific services
running on a networked computer
Preamble: The first part of an Ethernet frame, it is 8 bytes or 64 bits long and
can itself be split into two sections
Presentation layer: It is responsible for making sure that the unencapsulated
application layer data is actually able to be understood by the application in
question
Protocol field: A protocol field is an 8-bit field that contains data about what
transport layer protocol is being used
Protocol: A defined set of standards that computers must follow in order to
communicate properly is called a protocol
PSH flag: One of the TCP control flags. PSH is short for push. This flag means that
the transmitting device wants the receiving device to push currently- buffered data
to the application on the receiving end as soon as possible
R
Router: A device that knows how to forward data between independent networks
Routing protocols: Special protocols the routers use to speak to each other in
order to share what information they might have
RST flag: One of the TCP control flags. RST is short for reset. This flag means
that one of the sides in a TCP connection hasn't been able to properly recover from
a series of missing or malformed segments
S
Sequence number: A 32-bit number that's used to keep track of where in a sequence
of TCP segments this one is expected to be
Server or Service: A program running on a computer waiting to be asked for data
Server: A device that provides data to another device that is requesting that data,
also known as a client
Service type field: A eight bit field that can be used to specify details about
quality of service or QoS technologies
Session layer: The network layer responsible for facilitating the communication
between actual applications and the transport layer
Simplex communication: A form of data communication that only goes in one direction
across a cable
Socket: The instantiation of an endpoint in a potential TCP connection
Source MAC address: The hardware address of the device that sent the ethernet frame
or data packet. In the data packet it follows the destination MAC address
Source port: A high numbered port chosen from a special section of ports known as
ephemeral ports
Start Frame Delimiter (SFD): The last byte in the preamble, that signals to a
receiving device that the preamble is over and that the actual frame contents will
now follow
Static IP address: An IP address that must be manually configured on a node
Subnet mask: 32-bit numbers that are normally written as four octets of decimal
numbers
Subnetting: The process of taking a large network and splitting it up into many
individual smaller sub networks or subnets
SYN flag: One of the TCP flags. SYN stands for synchronize. This flag is used when
first establishing a TCP connection and make sure the receiving end knows to
examine the sequence number field
SYN_RECEIVED: A TCP socket state that means that a socket previously in a listener
state, has received a synchronization request and sent a SYN_ACK back
SYN_SENT: A TCP socket state that means that a synchronization request has been
sent, but the connection hasn't been established yet
T
TCP checksum: A mechanism that makes sure that no data is lost or corrupted during
a transfer
TCP segment: A payload section of an IP datagram made up of a TCP header and a data
section
TCP window: The range of sequence numbers that might be sent before an
acknowledgement is required
Time-To-Live field (TTL): An 8-bit field that indicates how many router hops a
datagram can traverse before it's thrown away
Total hops: The total number of devices data passes through to get from its source
to its destination. Routers try to choose the shortest path, so fewest hops
possible. The routing table is used to keep track of this
Total length field: A 16-bit field that indicates the total length of the IP
datagram it's attached to
Transmission Control Protocol (TCP): The data transfer protocol most commonly used
in the fourth layer. This protocol requires an established connection between the
client and server
Transport layer: The network layer that sorts out which client and server programs
are supposed to get the data
Twisted pair cable: The most common type of cabling used for connecting computing
devices. It features pairs of copper wires that are twisted together
U
Unicast transmission: A unicast transmission is always meant for just one receiving
address
URG flag: One of the TCP control flags. URG is short for urgent. A value of one
here indicates that the segment is considered urgent and that the urgent pointer
field has more data about this
Urgent pointer field: A field used in conjunction with one of the TCP control flags
to point out particular segments that might be more important than others
User Datagram Protocol (UDP): A transfer protocol that does not rely on
connections. This protocol does not support the concept of an acknowledgement. With
UDP, you just set a destination port and send the data packet
V
Virtual LAN (VLAN): It is a technique that lets you have multiple logical LANs
operating on the same physical equipment
VLAN header: A piece of data that indicates what the frame itself is. In a data
packet it is followed by the EtherType