Skip to main content

Posts

Showing posts from October, 2018

Về việc tổ chức bảng MACVLAN với 10000 phần tử

Bài viết này là phần ứng dụng của bài viết trước về bảng băm (hash table). Nếu các bạn chưa nắm được khái niệm về tổ chức dữ liệu trong bảng băm. Các bạn vui lòng đọc lại bài viết trước tại đây Các kiến thức cơ sở Bảng MACVLAN là một cơ sở dữ liệu được sử dụng trong các thiết bị mạng như Router/Switch/ONT/OLT với mục đích tìm kiếm cổng ra của một bản tin dựa vào địa chỉ MAC đích của bản tin đó. Nếu các bạn chưa biết địa chỉ MAC của một cổng mạng là gì, các bạn có thể vào command line của hệ điều hành Linux và gõ ifconfig Địa chỉ MAC (màu vàng) hay còn gọi là địa chỉ vật lý (có độ dài 48bit) là địa chỉ duy nhất được gắn cho mỗi cổng mạng của một máy tính, địa chỉ này được sử dụng để nhận biết chính xác từng máy trong môi trường mạng IP. Xem xét một sơ đồ mạng như sau Giả sử máy tính A có địa chỉ MACA, máy tính B có địa chỉ MACB, máy tính C có địa chỉ MACC được cắm lần lượt vào cổng 1, 2, 3 của Switch. Trong quá trình hoạt động của mình, Switch sẽ tìm cách học các đ...

Về một phương pháp quản lý bộ nhớ động trong Linux

Các kiến thức cơ bản về hệ thống Thư viện glibc trong Linux cung cấp cho chúng ta bốn hàm cơ bản để quản lý bộ nhớ động, ba trong số đó là các hàm cấp phát bộ nhớ, hàm còn lại là giải phóng bộ nhớ Hàm void *malloc(size_t size) nhận đầu vào số byte cần cấp phát và trả lại vùng nhớ được cấp phát. Nếu không tìm thấy vùng nhớ thỏa mãn độ dài cần cấp phát malloc sẽ trả về NULL Hàm void *calloc(size_t nmemb, size_t size ) sẽ cấp phát bộ nhớ cho một mảng nmemb*size và trả về con trỏ tới vùng nhớ được cấp phát, nhớ rằng mặc dù cấp phát bộ nhớ cho một mảng các phần tử nhưng nó vẫn là một vùng nhớ liên tục trong heap, vùng nhớ này được ghi giá trị 0 trên toàn vùng trước khi trả về Hàm void *realloc(void *ptr, size_t size) sẽ thay đổi số byte được cấp phát ở ptr và trả lại một vùng nhớ được cấp phát có độ dài size và có nội dung như là vùng nhớ ở ptr. Vùng nhớ được trả lại bởi realloc có thể chính là ptr trong trường hợp các vùng xung quanh ptr có thể đủ khả năng cung cấp một vùng dài h...