Bangladesh Reference Institute for Chemical Measurements
Post: Assistant Programmer
Exam Taker: BRiCM, Exam Date: 24.02.2025
1. Explain Three-Way Handshaking in TCP Protocol.
3-Way Handshake Protocol in TCP Connection Establishment
The 3-way handshake is a mechanism used by TCP to establish a reliable connection between a client and a server.
- Step 1: SYN (Synchronization)
- Client → Server: The client initiates the connection by sending a SYN packet to the server.
- The SYN packet contains a randomly generated sequence number.
- Step 2: SYN-ACK (Synchronization and Acknowledgment)
- Server → Client: The server responds with a SYN-ACK packet.
- The packet contains:
- ACK flag to acknowledge the client’s SYN.
- SYN flag with the server’s own sequence number.
- The server also advertises its window size and maximum segment size.
- Step 3: ACK (Acknowledgment)
- Client → Server: The client sends an ACK packet confirming receipt of the SYN-ACK.
- After this step, the TCP connection is established and data transmission begins.

TCP Connection Establishment-এ 3-Way Handshake Protocol
3-way handshake হলো TCP-তে ব্যবহৃত একটি process যা client এবং server-এর মধ্যে একটি reliable connection স্থাপন করে।
- Step 1: SYN (Synchronization)
- Client → Server: Client server-এর কাছে একটি SYN packet পাঠিয়ে connection শুরু করে।
- এই SYN packet-এ একটি randomly generated sequence number থাকে।
- Step 2: SYN-ACK (Synchronization and Acknowledgment)
- Server → Client: Server, client-এর SYN পাওয়ার পর একটি SYN-ACK packet পাঠায়।
- এই packet-এ থাকে:
- ACK flag, যা client-এর SYN acknowledge করে।
- SYN flag, যা server-এর sequence number নির্দেশ করে।
- Server তার window size এবং maximum segment size-ও পাঠায়।
- Step 3: ACK (Acknowledgment)
- Client → Server: Client, server-এর SYN-ACK পাওয়ার পর একটি ACK packet পাঠায়।
- এই ধাপের পর TCP connection সম্পূর্ণভাবে establish হয় এবং data transmission শুরু হয়।

2. Using the TCP/IP model, match each device and protocol to its appropriate layer and explain how they work together to enable communication between two computers on the internet.
Devices: Router, Switch, Network Interface Card (NIC), Web Server.
Protocols: HTTP, TCP, IP, Ethernet.
Devices: Router, Switch, Network Interface Card (NIC), Web Server.
Protocols: HTTP, TCP, IP, Ethernet.

How They Work Together:
When a user accesses a website, the Application Layer uses HTTP to request data from a Web Server.
The Transport Layer (TCP) ensures reliable communication by managing data transmission and error checking.
The Internet Layer (IP) assigns logical addresses and routes packets through routers across networks.
Finally, the Network Access Layer (Ethernet) enables data transfer over the local network using switches and NICs.
3. Explain Functionality of OSI reference model.
7 | Application Layer | Human-computer interaction layer, where applications can access the network services. |
6 | Presentation Layer | Ensures that data is in a usable format and is where data encryption occurs. |
5 | Session Layer | Maintains connections and is responsible for controlling ports and sessions. |
4 | Transport Layer | Transmits data using transmission protocols including TCP and UDP. |
3 | Network Layer | Decides which physical path the data will take. |
2 | Data Link Layer | Defines the format of data on the network. |
1 | Physical Layer | Transmits raw bit stream over the physical medium. |
4. Design Basic gate using NOR gate or Show that NOR is gate Universal gate.
A NOR gate is called a universal gate because any Boolean function (AND, OR, NOT, NAND, XOR, etc.) can be implemented using only NOR gates.
5. What methodology would you use in software engineering?
The methodology I would use in software engineering is the Agile Methodology.
Reason: Agile focuses on iterative development, continuous feedback, and fast delivery of working software. It is suitable when requirements may change and quick deployment is needed.
Main Features of Agile:
- Development is divided into small iterations called Sprints.
- Frequent communication with stakeholders.
- Continuous testing and integration.
- Quick adaptation to changing requirements.
Why Agile is Preferred:
- Faster delivery of functional software.
- Improved customer satisfaction.
- Reduced project risk.
- Flexible and adaptable process.
Therefore, Agile methodology is effective for modern software projects where speed, flexibility, and customer feedback are important.
Software Engineering-এ আমি Agile Methodology ব্যবহার করবো।
কারণ: Agile Iterative Development, Continuous Feedback এবং দ্রুত Working Software প্রদান করার উপর গুরুত্ব দেয়। Requirements পরিবর্তন হলে সহজে মানিয়ে নেওয়া যায়।
Agile-এর প্রধান বৈশিষ্ট্য:
- Development ছোট ছোট Sprint-এ ভাগ করা হয়।
- Stakeholder-এর সাথে নিয়মিত যোগাযোগ।
- Continuous Testing ও Integration।
- পরিবর্তিত Requirement সহজে গ্রহণ করা যায়।
Agile ব্যবহারের সুবিধা:
- দ্রুত কার্যকর Software সরবরাহ।
- Customer Satisfaction বৃদ্ধি।
- Project Risk কম।
- Flexible ও Adaptable Process।
অতএব, আধুনিক Software Project-এ Agile Methodology বেশি কার্যকর।
