Tìm hiểu về mạng máy tính qua ví dụ

CAPTURE THE FLAG LEAGUE
16:02 16/01/2019

Lưu ý: Các thuật ngữ và các định nghĩa kèm theo được trình bày theo ý kiến chủ quan của tác giả, để hiểu rõ và có kiến thức chuẩn hơn vui lòng đọc các rfc và các định nghĩa link tham khảo bên dưới.

Bài viết này dành cho những ai lần đầu tiếp xúc về các thuật ngữ về mạng, các chuyên gia nếu thấy có định nghĩa sai xin hãy gởi góp ý cho tác giả tại địa chỉ Ins3cl4b@gmail.com. Trân trọng cảm ơn.

Ví dụ 1:

“Trong ngành mạng máy tính, định tuyến (tiếng Anh: routing hay routeing) là quá trình chọn lựa các đường đi trên một mạng máy tính để gửi dữ liệu qua đó.” Trích “vi.wikipedia.org/wiki/Định_tuyến”. Đây là một giải thích cơ bản nhất về định tuyến trong mạng,

Mục đích sinh ra định tuyến trong mạng vì muốn kết nối các mạng khác subnet lại với nhau. Mỗi subnet sẽ được xem như là một vùng riêng. Để đi được từ một vùng này sang vùng khác phải dùng đến router*.

Như hình bên dưới. Ví dụ như người ở làng A muốn đi qua được làng B phải lên hỏi router 1 đường đi, router 1 thấy được làng B nằm phía dưới mình, nên chỉ đường cho người làng A đi qua được làng B. Đó là một ví dụ nhỏ về khả năng định tuyến của router.

Đầu tiên chúng ta sẽ cùng nhau thống nhất một số khái niệm để hiểu rõ hơn ví dụ 1:

Về cơ bản máy tính chỉ xử lý các bit 0 và 1 thôi. Và một địa chỉ IP sẽ là 32bit có dạng như sau: ví dụ đổi 192.168.1.1 ra dạng binary:

11000000 10101000 00000001 00000001

Các bạn có thể đổi bằng web này hoặc search với từ khóa “dec to bin”: https://www.rapidtables.com/convert/number/decimal-to-binary.html

Địa chỉ netmask cũng có format giống như địa chỉ ip, nhưng nó có nhiệm vụ khác với địa chỉ ip. Mỗi địa chỉ ip trong mạng giống như là một người dân trong làng, có một định danh riêng để phân biệt, còn địa chỉ netmask nhiệm vụ của nó là chia địa chỉ mạng làm 2 phần network identifier + subnet identifier và host identifier. Như hình bên trên thì router sẽ chỉ xử lý phần màu xanh, còn phần màu vàng sẽ không sử dụng.

Ví dụ 32 bit netmask ta là : 11111111 11111111 11111111 00000000. Vậy thì router sẽ chỉ đọc 24 bit 1 đầu tiên thôi, còn các bit 0 phía sau sẽ được bỏ qua. Địa chỉ netmask sẽ được đánh liên tiếp các số 1 từ trái qua phải. Khi hết phần quan tâm ta đánh phần còn lại là số 0 cho đủ 32 bit. Như ở ví dụ trên khi đổi ra số decimal sẽ là 255.255.255.0. Thông thường người ta còn biểu diễn netmask ở dạng /. Người ta sẽ đếm số bit 1 tồn tại trong netmask để quy đổi. ví dụ như 255.255.255.0 sẽ được quy đổi thành /24.

Trở lại hình ở ví dụ 1:

Dòng thứ 1 : Khi không biết đi đường nào(0.0.0.0/0) thì qua gateway có ip 10.8.34.1 thông qua interface có ip 10.8.34.38 có độ ưu tiên 25

Dòng thứ 2: Khi muốn đến được lớp mạng 10.8.34.0/24 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281

Dòng thứ 3: Khi muốn đến được lớp mạng 10.8.34.38/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281

Dòng thứ 4: Khi muốn đến được lớp mạng 10.8.34.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281

Dòng thứ 5: Khi muốn đến được lớp mạng 127.0.0.0/8 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306

Dòng thứ 6: Khi muốn đến được lớp mạng 127.0.0.1/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306

Dòng thứ 7: Khi muốn đến được lớp mạng 127.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306

Dòng thứ 8: Khi muốn đến được lớp mạng 192.168.56.0/24 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276

Dòng thứ 9: Khi muốn đến được lớp mạng 192.168.56.1/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276

Dòng thứ 10: Khi muốn đến được lớp mạng 192.168.56.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276

Dòng thứ 11: Khi muốn đến được lớp mạng 192.168.170.0/24 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276

Dòng thứ 12: Khi muốn đến được lớp mạng 192.168.170.1/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276

Dòng thứ 13: Khi muốn đến được lớp mạng 192.168.170.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276

Dòng thứ 14: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306

Dòng thứ 15: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276

Dòng thứ 16: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276

Dòng thứ 17: Khi muốn đến được lớp mạng 224.0.0.0/4 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281

Dòng thứ 18: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 127.0.0.1 có độ ưu tiên 306

Dòng thứ 19: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.56.1 có độ ưu tiên 276

Dòng thứ 20: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 192.168.170.1 có độ ưu tiên 276

Dòng thứ 21: Khi muốn đến được lớp mạng 255.255.255.255/32 thì qua gateway là on-link(cắm trực tiếp) thông qua interface có ip 10.8.34.38 có độ ưu tiên 281.

Ta có thể vẽ sơ đồ routing bên trên như thế này: Từ vị trí A thông qua các interface trên router 1 ta có thể đến được các lớp mạng được mô tả trong bảng routing phía trên.

Router: đây là thiết bị định tuyến, làm nhiệm vụ chỉ đường. Trong thực tế chúng ta thường bắt gặp các router như là các thiết bị mà nhà cung cấp ISP (viettel, vnpt, fpt, …) cung cấp cho chúng ta khi lắp đặt mạng. Các cục phát wifi trong công ty,… Các thiết bị này thường là router tích hợp nhiều chức năng)

Subnet: là một nhóm các địa chỉ IP

Ví dụ 2:

Đầu tiên ta sẽ nói về mục đích của việc tại sao phải chia subnet ra chứ không xài 1 subnet lớn. Ví dụ ở đây là subnet lớn 172.16.0.0/16. Thì đối với subnet này sẽ có được 2^16 địa chỉ có thể được sử dụng  (địa chỉ có thể gán được cho các card mạng trong mô hình).

Tại sao có 2^16 địa chỉ có thể sử dụng.???

Tại vì địa chỉ ip chia làm 2 phần. Phần host và phần net. Phần host là các bit được quy định bởi netmask. Ví dụ ở đây netmask là 16. Ta biểu diễn như sau (quy đổi ra binary):

172.16.0.0

1

0

1

0

1

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Netmask

/16

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

                                  

Ở đây còn một định nghĩa nữa trong ip là octet. 1 octet là 8bit. Một địa chỉ ip sẽ có 4 octet.

Đối với địa chỉ ip trên, phần host là phần được quy định bởi 16 bit 0 của địa chỉ mask.

Mỗi bit sẽ nhận giá trị là 0 hoặc 1. Áp dụng quy tắc nhân Vậy sẽ có 2x2x2x2x2x2x2x2x2x2x2x2x2x2x2x2 trường hợp có thể xảy ra đối với 16 bit => 2^16. Vì vậy từ bây giờ ta có thể sử dụng tính nhanh để tính số bit host có thể có bằng cách lấy 2 lũy thừa (32 – subnetmask). Phần net trong một subnet sẽ cố định, nên ta chỉ cần tính phần host thôi

Vậy thì ta có => 2^(32-16)=65536. Vậy là sẽ có được 65536 địa chỉ ip có thể sử dụng.

Số địa chỉ ip được yêu cầu đối với mô hình mạng trên:

30000+12000+4000+4000+4000+4000=58000. Vậy đối với số lượng địa chỉ ip đã được cung cấp  (65536 địa chỉ) sẽ đủ để chia ra cho các subnet con. Vấn đề cần chia subnet thường là để chia vùng mạng ra nhiều vùng để dễ quản lý. Ví dụ như phòng IT có lớp mạng riêng, phòng Kế toán có lớp mạng riêng, v.v… khi cần thiết lập chính sách các máy tính cho phòng kế toán thì chỉ cần áp dụng chính sách cho lớp mạng cụ thể, không cần phải tìm kiếm ip nào của phòng nào.

Trở lại với bài toán: VLSM là giải pháp để giải quyết vấn đề chia một subnet ip lớn ra thành các lớp subnet con cho phù hợp và dễ quản lí các subnet.

Ta có công thức tính như sau:

Trích : https://cuongquach.com/tu-hoc-ccna-phuong-phap-chia-mang-con-vlsm.html

Để giải thích cụ thể hơn.  Đối với vlsm ta sẽ chia subnet có nhiều địa chỉ IP hơn trước:

Ta sẽ chia subnet có 30000 địa chỉ IP trước .

Bước 1. Xác định số subnet.

Việc xác định số subnet là xác định subnet mask của subnet sẽ chứa 30000 địa chỉ IP.

Netmask

/17

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Đối với vlsm để xác định chính xác subnet mask của subnet được chia. Ta tìm subnet có thể chứa số lượng ip gần nhất với số lượng ip cần chia. Nhưng số lương ip có thể có của subnet sẽ là 2^x. Theo quy tắc nhân đã chứng minh trước đó. Vậy ta sẽ thay x lần lượt giảm dần để tìm được subnet mask cần tính.

Host được cấp có 2^16 = 65536 địa chỉ IP > 30000 địa chỉ cần. Vậy ta sẽ giảm x( giảm số bit phần host đi từ từ),

Do số bit phần hót giảm nên bit phần host sẽ tăng nên ta có công thức bên dưới:

bit host = 32 - bit net.

Phần host sẽ còn 2^(32-17)=32768 >30000 địa chỉ cần . Ta tiếp tục tăng phần net lên 1 bit.

Phần host sẽ còn 2^(32-18)=16384 <30000 địa chỉ cần. Vậy nên Ta sẽ chọn subnet mask cho subnet đầu tiên là /17. Có thể chứa 32768 địa chỉ IP và gần và lớn hơn với 30000 nhất

Bước 2: Số host/ subnet

Bước 3: bước nhảy

2^m=2^(32-17)=2^15=32768. Tại sao là 2^m là bước nhảy. Bước nhảy ở đây có nghĩa là số ip cần để qua được subnet mới mà có cùng subnet mask. Ở đây là 17.

Đổi 32758 ra nhị phân: 10000000 00000000 sau đó cộng với 172.16.0.0 đổi ra nhị phân.

Vậy thì địa chỉ subnet để chứa 30000 IP sẽ có địa chỉ từ 172.16.0.0/17 – 172.16.127.255/17

Đổi thành binary sẽ có dạng: 10101100 00010000 00000000 00000000 - 10101100 00010000 01111111 11111111.

Tiếp tục chia thêm 12000 IP từ subnet 172.16.128.0/17:

Các bước tương tự

2^14=16384  gần và lớn hơn 12000 nhất.

 [172.16.128.0] + [01000000 00000000]. Cộng theo octet ta có subnet mới:

172.16.192.0/18

=> Vậy subnet chứa 12000 IP có địa chỉ từ 172.16.128.0/18 – 172.16.191.255/18. Biểu diễn dạng binary: 10101100 00010000 10000000 00000000 - 10101100 00010000 10111111 11111111.

Tiếp theo chia mạng 4000 IP từ 172.16.192.0/18

2^12 gần với 4000 nhất. => subnet mask sẽ là 32-12= 20

Ta có thể vẽ biểu đồ như sau để hình dung:

Giả sử 172.16.0.0/16 được chia đều IP (65536 IP) ra làm các ô vuông. Mỗi ô là 4096 IP.

Vậy là chúng ta đã chia 65536 IP ra làm 6 subnet. Áp dụng VLSM sẽ giải quyết được bài toán nếu phòng ban nào cần ít địa chỉ IP, phòng nào cần nhiều địa chỉ IP. Nếu không dùng VLSM sẽ có thể có tình trạng thừa địa chỉ IP hoặc thiếu IP cung cấp cho tổ chức.

Ví dụ 3:

A: Subnet address: 100.1.1.0/ Broadcast: 100.1.1.255

B: Subnet address: 100.1.2.0/ Broadcast: 100.1.2.255
C Subnet address: 100.1.3.0/ Broadcast: 100.1.3.255
D Subnet address: 100.1.4.0/ Broadcast: 100.1.4.255
E Subnet address: 100.1.0.0/ Broadcast: 100.1.0.3
F Subnet address: 100.1.0.4/ Broadcast: 100.1.0.7
G Subnet address: 100.1.0.8/ Broadcast: 100.1.0.11
H Subnet address: 100.1.0.12/ Broadcast: 100.1.0.15
I Subnet address: 100.1.0.16/ Broadcast: 100.1.0.19
L Subnet address: 100.2.0.0/ Broadcast: 100.2.0.3

Ví dụ 4:

Quy ước: với một đỉnh X có ký hiệu (1,B) thì 1 là khoảng cách hiện tại từ A đến X, B là đỉnh liền trước X trong đường đi từ A đến X.

Tham khảo thêm: https://tools.ietf.org/html/rfc1812

TIN LIÊN QUAN
Federated Learning (FL): Khái niệm Các mô hình ML/DL truyền thống thường yêu cầu dữ liệu gốc của người dùng được gửi lên một server trung tâm để train tập trung, điều này gây ảnh hưởng đến quyền riêng tư (privacy). Do đó, các mô hình hiện nay thường sử...
Chào các bạn yêu thích nghiên cứu và công nghệ thông tin! Sau sự thành công của WannaResearch Episode 06, chúng tôi xin trân trọng thông báo về sự trở lại của chuỗi sự kiện nghiên cứu uy tín với Episode 07: "Audio Deepfake Detection." Buổi seminar này sẽ mang...
💨 SẮP TỚI CNSC CÓ GÌ? 🔥 KHOÁ HỌC LẬP TRÌNH PYTHON đã có mặt tại CNSC !!! 💼 Và đặc biệt hơn những ưu đãi vô cùng hấp dẫn cho “người nhà” các bạn SINH VIÊN UIT, các bạn đã sẵn sàng sắm ngay chứng chỉ này cho mình...