An interactive educational project that demonstrates how data is structured and transmitted at the Data Link Layer using various framing techniques — through both Graphical Visualization (Web App) and Command-Line Implementations (C Programs).
Built with HTML, CSS, JavaScript, and C, this project bridges theory and practice by showing how framing works internally and visually.
This project has two main parts:
An interactive interface to visualize and understand how different data framing techniques work in real time.
Simple and modular C programs that implement each framing method step by step — suitable for labs, assignments, and command-line demonstrations.
-
Fixed-Size Framing
Data is divided into fixed-length frames; the last frame is padded if necessary. -
Byte Stuffing
Uses FLAG and ESC characters to mark frame boundaries and escapes internal occurrences. -
Bit Stuffing
Inserts a0after every five consecutive1s to avoid confusion with frame delimiters.
- Beautiful and responsive interface
- Real-time frame animation with color-coded bits and markers
- Dark Mode toggle 🌙
- Built-in Info Page explaining concepts
- Comparison table between methods
- Fully responsive for mobile and desktop
- No dependencies — just open
index.htmlor Live Link -> (https://nezchan0.github.io/Data_Framer/)
Each framing method also has a C implementation located in the FramingMethods/ folder.
These programs read input data from the user and output the framed data on the terminal.
gcc fixed_size_framing.c -o fixed
./fixedgcc variable_size_byte_stuffing.c -o byte
./bytegcc variable_size_bit_stuffing.c -o bit
./bitEach program:
- Accepts user input (data and framing parameters)
- Displays the framed output
- Optionally shows internal processing (if enabled in code)
| Technology | Purpose |
|---|---|
| HTML5 | Web structure |
| CSS3 | Styling, layout, animations |
| JavaScript (Vanilla) | Visualization logic |
| C | CLI-based framing implementations |
This dual-format project is ideal for:
- Computer Networks courses
- Data Link Layer lab demonstrations
- Comparing implementation vs. visualization of framing
- Interactive learning for students and instructors
Fixed-Size Framing (C):
Enter data: HELLOWORLD
Enter frame size: 3
→ Frames: [HEL] [LOW] [ORL] [D__]
Byte Stuffing (C):
Enter data: AFEBFCD
FLAG: F
ESC: E
→ Stuffed: F | A | EF | EE | B | EF | C | D | F
Bit Stuffing (C):
Enter bit sequence: 011111011111110
→ Stuffed: 011111001111110010
- Add CRC/Error detection to C and Web versions
- Include real-time transmission simulation
- Integrate WebAssembly (WASM) to run C logic in-browser
- Extend to Frame Check Sequences (FCS) visualization
This project is licensed under the MIT License — feel free to use, modify, and distribute it freely, with attribution.
Alok Kumar Maurya – Developer | Email: alok05.maurya@gmail.com