What is Client Server Architecture?
Client server architecture is a network application that breaks down tasks and workloads between clients and servers that are located on the same system, or are connected via a computer network. Here clients send a request for something particular, that being a song, or for example here. You as the user clicked on this article, and by doing so you're requesting to see all the text that you see here and then the server sends you back this data
1. You request to see something on the webpage
2. The server accepts your request
3. The server sends back the data you requested and you are now viewing it!
Benefits Of Client Server Architecture
1. We can be using cheap tablets and call servers to perform expensive tasks
2. Many clients can connect to the server at the same time
3. Clients do not require dependencies
What is Remote Procedure Call (RPC)?
Remote Procedure Call is a software communication protocol that one program can use to request a service from a program located in another computer on a network without having to understand the network's details.
Why Do we need a communication model?
We need a communication model so that different technologies can communicate with eachother using standard protocols. Without this, the servers would not know to communicate with eachother
What is The OSI Model(Open System Interconnection Model)?
The purpose of networking is to allow two hosts to share data with one another, and in order to do so they must follow some rules in order to be able to communicate. Just like English speakers talk to English speakers, or Spanish Speakers talk to other Spanish speakers, they must follow their own set of rules, and in networking this is called the OSI Model
The OSI model splits the network communication between two devices on a network into seven abstraction layers.
- 1. Physical Layer: responsible for transmitting raw bits of data across a physical connection
- 2. Data Link Layer: It takes the raw bits from the physical layer and organizes them into frames.
- 3. Network Layer: responsible for routing data frames across different networks
- 4. Transport Layer: handles end to end communication between two nodes. (TCP and UDP) live here; TCP provides reliable, end to end communication between devices, and it does this by dividing the data into small managable segments and sending each segment individually. Each segment has a sequence number attached to it, the receiving end uses the sequence numbers to reassemble the data in the correct order. TCP also provides error checking to make sure that the data was not corrupted during transmission. UDP another protocol in the transport layer, it's similar to TCP but it is simpler and faster. UDP does not provide the same level of error-checking and reliability as TCP. UDP sends packets of data from one device to another, meanwhile the receiving end checks if the packets were received correctly, and if some of the packets contained an error, then that packet will be discarded
Layers 5-6-7 are mostly dealt with as one single layer

Layer 7 - Application - HTTP/FTP/gRPC
Layer 6 - Presentation, Encoding, Serialization
Layer 5 - Session, Connection establishment, TLS
Layer 4 - Transport - UDP/TCP
Layer 3 - Network - IP
Layer 2 - Data link - Frames, Mac address, Ethernet(both 1 and 2)
Layer 1 - Physical, electrical signals, fiber or radio waves
Side note: By default, HTTPS connections use TCP port 443. HTTP, the unsecure protocol, uses port 80.
-
Layer 7 - Application Layer:
- This layer provides services directly to the end-user or application. It enables communication between different applications and handles tasks such as data encryption, compression, and presentation.
-
Layer 6 - Presentation Layer:
- The presentation layer is responsible for data translation, encryption, and compression. It ensures that data sent from the application layer of one system can be understood by the application layer of another system.
-
Layer 5 - Session Layer:
- The session layer establishes, maintains, and terminates communication sessions between applications. It manages dialog control and synchronization between devices.
-
Layer 4 - Transport Layer:
- The transport layer ensures reliable and transparent data transfer between end systems. It segments data into smaller units and ensures that they are delivered error-free and in the correct order. Protocols like TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) operate at this layer.
-
Layer 3 - Network Layer:
- The network layer is responsible for routing data packets across different networks. It determines the best path for data transmission, handles logical addressing, and performs packet forwarding. IP (Internet Protocol) operates at this layer.
-
Layer 2 - Data Link Layer:
- The data link layer provides error-free transmission of data frames over the physical network medium. It establishes and terminates logical links between nodes, performs error detection and correction, and manages access to the physical medium. Ethernet, Wi-Fi, and PPP (Point-to-Point Protocol) operate at this layer.
-
Layer 1 - Physical Layer:
- The physical layer deals with the physical transmission of data over the network medium. It defines the electrical, mechanical, and procedural specifications for transmitting data signals. This layer includes hardware components such as cables, connectors, hubs, and network interface cards (NICs).
