The OSI model is considered the primary conceptual model for inter-computer communications.
The OSI model provides a consistent framework for network architecture. The OSI model divides the problem of network communication between computers into seven smaller and more manageable layers, each layer specifying a particular network function.
Here's a description of the seven layers of the OSI (Open Systems Interconnection) model:
Physical Layer:
The Physical layer is the first layer of the OSI model. It is responsible for the physical connection between devices. This layer deals with the hardware components of a network, such as cables, switches, and network interface cards. It handles the transmission and reception of raw bit streams over a physical medium, including voltage levels, timing, data rates, and physical connectors.
Data Link Layer:
The Data Link layer is the second layer of the OSI model. It is responsible for node-to-node data transfer and error detection and correction. This layer ensures that data is transferred reliably across the physical link by organizing bits into frames. It includes two sublayers:
Logical Link Control (LLC): Manages communication and error checking.
Media Access Control (MAC): Controls how devices on the network gain access to the data and permission to transmit it.
Network Layer: The Network layer is the third layer of the OSI model. It is responsible for the logical addressing and routing of data packets. This layer determines the best path for data to travel from the source to the destination. It handles packet forwarding, including routing through intermediate routers. Protocols like IP (Internet Protocol) operate at this layer.
Transport Layer: The Transport layer is the fourth layer of the OSI model. It provides end-to-end communication services for applications. This layer is responsible for ensuring complete data transfer and error recovery. It segments and reassembles data into a data stream and provides reliable or unreliable delivery, depending on the protocol used (e.g., TCP for reliable delivery, UDP for faster but less reliable delivery).
Session Layer: The Session layer is the fifth layer of the OSI model. It manages sessions or connections between applications. This layer establishes, maintains, and terminates connections between devices. It controls the dialogue between computers, managing session restoration and keeping track of data exchange (e.g., managing multiple sessions, dialogue control, and synchronization).
Presentation Layer: The Presentation layer is the sixth layer of the OSI model. It acts as a translator between the application and the network. This layer is responsible for data translation, encryption, and compression. It ensures that data sent from the application layer of one system is readable by the application layer of another system by translating between different data formats and encoding schemes.
Application Layer: The Application layer is the seventh and topmost layer of the OSI model. It provides network services directly to end-user applications. This layer interacts with software applications that implement a communicating component. It is responsible for functions such as resource sharing, remote file access, directory services, and email services. Protocols like HTTP, FTP, SMTP, and DNS operate at this layer.
These layers work together to enable communication between different networked devices and ensure that data is transmitted accurately and efficiently across a network.
Understanding Classic Load Balancer and Layer 4 of OSI
The Classic ELB has a number of features available to help provide high availability, monitoring, and better security for your application stack.
The AWS Classic Load Balancer (CLB) operates at Layer 4 of the OSI model.
What this means is that the load balancer routes traffic between clients and backend servers based on IP address and TCP port.
Example: An ELB at a given IP address receives a request from a client on TCP port 80 (HTTP).
It will then route that request based on the rules previously configured when setting up the load balancer to a specified
port on one of several backend servers.
The port on which the load balancer routes to the target server will often be port 80 (HTTP) or 443 (HTTPS).
The backend destination server will then fulfill the client request, and send the requested data back to the ELB,
which will then forward the backend server reply to the client.
From the client’s perspective, this request will appear to have been entirely fulfilled by the ELB.
The client will have no knowledge of the backend server or servers fulfilling client requests.
Understanding the Application Load Balancer and Layer 7 of the OSI model
AWS Application Load Balancer (ALB) operates at Layer 7 of the OSI model.
At Layer 7, the ELB has the ability to inspect application-level content, not just IP and port.
This lets it route based on more complex rules than with the Classic Load Balancer.
Example: An (ELB) Elastic Load Balancer at a given IP will receive a request from the client on port 443 (HTTPS).
The Application Load Balancer will process the request, not only by receiving port, but also by looking at the destination URL.
Multiple services can share a single load balancer using path-based routing.
In the example given here, the client could request any of the following URLs:
https://www.cplusoop.com
The Application Load Balancer will be aware of each of these URLs based on patterns set up when configuring the
load balancer and can route to different clusters of servers depending on application need. Rules can also be added at a later time as you add new functionality to your stack. The Application Load Balancer also integrates with EC2 Container Service (ECS) using Service Load Balancing. This allows for dynamic mapping of services to ports as specified in the ECS task definition. Multiple containers can be targeted on the same EC2 instance, each running different services on different ports.
The ECS task scheduler will automatically add these tasks to the ALB.