/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

ARP - Address Resolution Protocol

ARP (Address Resolution Protocol) - Giao thức phân giải địa chỉ: Là giao thức sử dụng data link Ethernet để tương quan giữa một địa chỉ IP - lớp 3 và một địa MAC - lớp 2 nhằm phục vụ cho việc đóng một gói tin IP vào một frame Ethernet.

Như chúng ta đã biết trong mô hình OSI và việc encapsulation / decapsulation là khi 2 host muốn kết nối với nhau thì chúng sẽ:

+ Sẽ tạo gói tin IP gồm: Source IP, Destination IP và dữ liệu từ lớp application
+ Gói tin IP này sẽ được encapsulated tại Ethernet frame với source MAC và destination MAC

Xét sơ đồ như bên dưới:


Ví dụ Host_01 muốn ping tới Host_02, ở mỗi lớp nó sẽ đóng gói với dữ liệu khác nhau:

Layer3-Network Layer: gói tin có source ip và destination ip sẽ được xác định là:
     + Source IP là IP của host_01: 192.168.1.1
     + Destination IP là địa chỉ của host_02: 192.168.1.2. 
Gói tin IP này sẽ được đóng gói Ethernet frame để có thể truyền đi được trên data link Ethernet. 

Layer2-Data link Layer: gói tin có source MAC và destination MAC sẽ được xác định là:
     + Source MAC: MAC address của host_01
     + Destination MAC: MAC address của host_02, tuy nhiên host_01 sẽ không biết được địa chỉ MAC của host_02 là gì, nhờ giao thức ARP đã hoạt động mà nó phân giải được địa chỉ MAC của host_02.

Mô tả hoạt động của giao thức ARP:


Ban đầu gói tin được tạo ra trên host_01 như hình trên, và nó không biết được địa chỉ MAC của host_02 là gì


Host_01 sẽ gửi Broadcast gói tin ARP Request đến địa chỉ ff:ff:ff:ff:ff:ff là tất cả các node trên mạng và hỏi "Ai có địa chỉ MAC tương ứng với IP 192.168.1.2" hãy cho tôi biết


Host_02 sẽ trả lời (ARP reply) gói unicast cho host_01 rằng: "địa chỉ MAC tương ứng của IP 192.168.1.2 là 50:00:00:02:00:00" (tất các host khác cũng nhận được gói broadcast từ host_01 tuy nhiên nó không biết nên nó không trả lời)


Khi nhận gói arp reply từ host_02, nó có được địa chỉ MAC mà nó cần tìm đó chính là địa chỉ MAC của host_02 là: 50:00:00:02:00:00 nhờ vào hoạt động phân giải ARP, Tiếp đến nó thực hiện đóng frame và thực hiện việc trao đổi dữ liệu với host_02, gói tin sẽ được chuyển xuống layer 1 và truyền đi. 


Ví dụ ở đây ping, kết quả nhận được là ping thành công.


Kiểm tra arp trên máy tinh - hệ điều hành windows cùng lệnh arp -a

Trên router dùng lệnh show ip arp

Hoạt động phân giải ARP sẽ được diễn ra tương tự với các host khác trên mạng LAN, và kết quả của host_01 (ARP đã phân giải) sẽ được cập nhật IP-MAC cho mọi thiết bị còn lại trong bảng ARP Cache.


Trên switch chúng ta có thể dùng lệnh show mac address-table để biết MAC đã được học thông qua cổng nào. Tham khảo bài cơ chế học MAC của switch sẽ biết rõ hơn.

Xong!

ARP - Address Resolution Protocol

ARP (Address Resolution Protocol) - Giao thức phân giải địa chỉ: Là giao thức sử dụng data link Ethernet để tương quan giữa một địa chỉ IP - lớp 3 và một địa MAC - lớp 2 nhằm phục vụ cho việc đóng một gói tin IP vào một frame Ethernet.

Như chúng ta đã biết trong mô hình OSI và việc encapsulation / decapsulation là khi 2 host muốn kết nối với nhau thì chúng sẽ:

+ Sẽ tạo gói tin IP gồm: Source IP, Destination IP và dữ liệu từ lớp application
+ Gói tin IP này sẽ được encapsulated tại Ethernet frame với source MAC và destination MAC

Xét sơ đồ như bên dưới:


Ví dụ Host_01 muốn ping tới Host_02, ở mỗi lớp nó sẽ đóng gói với dữ liệu khác nhau:

Layer3-Network Layer: gói tin có source ip và destination ip sẽ được xác định là:
     + Source IP là IP của host_01: 192.168.1.1
     + Destination IP là địa chỉ của host_02: 192.168.1.2. 
Gói tin IP này sẽ được đóng gói Ethernet frame để có thể truyền đi được trên data link Ethernet. 

Layer2-Data link Layer: gói tin có source MAC và destination MAC sẽ được xác định là:
     + Source MAC: MAC address của host_01
     + Destination MAC: MAC address của host_02, tuy nhiên host_01 sẽ không biết được địa chỉ MAC của host_02 là gì, nhờ giao thức ARP đã hoạt động mà nó phân giải được địa chỉ MAC của host_02.

Mô tả hoạt động của giao thức ARP:


Ban đầu gói tin được tạo ra trên host_01 như hình trên, và nó không biết được địa chỉ MAC của host_02 là gì


Host_01 sẽ gửi Broadcast gói tin ARP Request đến địa chỉ ff:ff:ff:ff:ff:ff là tất cả các node trên mạng và hỏi "Ai có địa chỉ MAC tương ứng với IP 192.168.1.2" hãy cho tôi biết


Host_02 sẽ trả lời (ARP reply) gói unicast cho host_01 rằng: "địa chỉ MAC tương ứng của IP 192.168.1.2 là 50:00:00:02:00:00" (tất các host khác cũng nhận được gói broadcast từ host_01 tuy nhiên nó không biết nên nó không trả lời)


Khi nhận gói arp reply từ host_02, nó có được địa chỉ MAC mà nó cần tìm đó chính là địa chỉ MAC của host_02 là: 50:00:00:02:00:00 nhờ vào hoạt động phân giải ARP, Tiếp đến nó thực hiện đóng frame và thực hiện việc trao đổi dữ liệu với host_02, gói tin sẽ được chuyển xuống layer 1 và truyền đi. 


Ví dụ ở đây ping, kết quả nhận được là ping thành công.


Kiểm tra arp trên máy tinh - hệ điều hành windows cùng lệnh arp -a

Trên router dùng lệnh show ip arp

Hoạt động phân giải ARP sẽ được diễn ra tương tự với các host khác trên mạng LAN, và kết quả của host_01 (ARP đã phân giải) sẽ được cập nhật IP-MAC cho mọi thiết bị còn lại trong bảng ARP Cache.


Trên switch chúng ta có thể dùng lệnh show mac address-table để biết MAC đã được học thông qua cổng nào. Tham khảo bài cơ chế học MAC của switch sẽ biết rõ hơn.

Xong!

Chuyển Đổi Thập Phân Sang Nhị Phân và Ngược Lại/Convert Decimal To Binary - Cách 2

Thường thì chúng ta làm việc với số thập phân và đếm từ 0 ->9, với hệ thống nhị phân thì chỉ làm việc với các số 0 và 1.

  • 0 = off
  • 1 = on.
Ví dụ: Dùng số nhị phân để tạo số thập phân

128
64
32
16
8
4
2
1

Dãy trên có 8 bit:
Bit bên trái cùng có giá trị là 128 là cao nhất (Most Significant Bit - MSB).
Bit bên phải cùng có giá trị là 1 là nhỏ nhât (Least Significant Bit - LSB).

1. Chuyển đổi Thập phân sang Nhị phân

Cho tất cả các bit nhị phân tắt-off thì cho cho ra số nhập phân là 0

128
64
32
16
8
4
2
1
0
0
0
0
0
0
0
0

Nếu muốn số thập phân có giá trị là 192 đổi sang nhị phân thì chúng ta bật-on các bit bắt đầu từ bít bên phải:
128
64
32
16
8
4
2
1
1
1
0
0
0
0
0
0

128 + 64 = 192
Vậy với số thập 192 đổi sang nhị phân sẽ là: 1100 0000

Ví dụ: Chuyển số thập phân 168 sang nhị phân
128
64
32
16
8
4
2
1
1
0
1
0
1
0
0
0

128 + 32 + 8 = 168  => 1010 1000

Ví dụ: Số thập phân 31
128
64
32
16
8
4
2
1
0
0
0
1
1
1
1
1

16 + + + + 1= 31 => 0001 1111

Ví dụ: Số thập phân 255
128
64
32
16
8
4
2
1
1
1
1
1
1
1
1
1

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

Để có được giá trị thập phân cao nhất đồng nghĩa với tất cả các bit nhị phân được bật-on.
Vậy số thập phân 255 đổi sang nhị phân sẽ là: 1111 1111

2. Chuyển đổi Nhị phân sang Thập phân

Chúng ta cũng có thể làm ngược lại với cách đổi trên để có được số thập phân

Ví dụ: Chuyển số nhị phân 1011 1110 sang thập phân
128
64
32
16
8
4
2
1
1
0
1
1
1
1
1
0

128 + 32 + 16 + 8 + 4 + 2 + 0 = 190

Ví dụ: 
128
64
32
16
8
4
2
1
0
0
0
1
0
1
1
0

16 + 4 + 2 = 22


Xong!

Chuyển Đổi Thập Phân Sang Nhị Phân và Ngược Lại/Convert Decimal To Binary - Cách 1

1. Chuyển đổi Thập phân sang Nhị phân:
    Lấy số cần chuyển chia cho 2 ta được:
    - Phần nguyên: lấy phần nguyên chia tiếp cho 2 và chia cho đến khi phần nguyên bằng 1 thì dừng.
    - Phần số dư: kết quả thu được là tập hợp các số dư 


    Ví dụ: Chuyển đổi số 10 của hệ thập phân sang hệ nhị phân.

    + Lấy 10 chia 2 bằng 50
    + Lấy 5 chia 2 bằng 21
    + Lấy 2 chia 2 bằng 10  => dừng (vì phần nguyên bằng 1)

    Cách ghi kết quả là ta nghi ngược phần dư từ dưới lên trên và bắt đầu là số 1 của phần nguyên: 1010

    Ví dụ: chuyển đổi số 25 từ thập phân sang nhị phân:

     kết quả chuyển đổi là: 11001

    Ví dụ
    Chuyển đổi số 78 từ hệ thập phân sang hệ nhị phân



    2. Chuyển đổi Nhị phân sang Thập phân:
      Từ 1 số nhị phân chuyên sang số thập phân chúng sẽ đánh dấu thứ tự từ phải sang trái và bắt đầu bằng số 0. 
      Ví dụ: chuyển đổi số nhị phân 1000111 sang thập phân

      Số nhị phân
      1
      0
      0
      0
      1
       1 
      1
      Thứ tự
      6
      5
      4
      3
      2
      1
      0
      Bảng: Cách đánh số thứ tự khi chuyển đổi

      1x26 + 0x250x240x231x221x211x20 = 640 + 0 + 0 + 42 + 1 = 71

      Bảng kết 2x cần ghi nhớ

      Ví dụ: Chuyển đổi 11001 về số thập phân
      1x24 + 1x23 + 0x22 + 0x21 + 1x20 = 16 + 8+ 0 + 0 + 1 = 25

      Áp dụng vào tính Wildcard Mask/Bits

      Xong!

      IP - Internet Protocol Version 4

      Nên xem phần chuyển đổi nhị phân trước khi xem bài này

      Tóm tắt bài học trước:


      IP - Internet Protocol: tạm hiểu là định danh được gán vào thiết bị vật lý dùng để nhận dạng và liên lạc với nhau trong mạng máy tính nếu chúng sử dụng giao thức internet.

      1. Các đặc điểm chung:
      • Hoạt động ở lớp Network của mô hình OSI
      • Connectionless protocol: Bản thân nó không có thiết lập kết nối, dữ liệu của ip được thiết bị lớp 3 chuyển đi ngay lập tức và nhanh nhất có thể (Best-effort), không có cơ chế báo nhận hay điều khiển luồng nào được sử dụng với IP, các gói tin IP cũng không được đánh số thứ tự khi trao đổi trên mạng.
      • Packs treated independently: Mỗi gói tin IP khi đến với thiết bị lớp 3, chúng sẽ được sử lý hoàn toàn độc lập với các gói tin khác
      • Hierarchical addressing: Giao thức IP sử dụng cơ chế đánh địa chỉ theo kiểu phân cấp. Chúng ta sẽ thảo luận trong phần Subneting. Cấu trúc của điạ chỉ IP gồm có 2 phần đó là: Network-ID và Host-ID (sẽ được thảo luận sau).
      • No data-recovery features: không có cơ chế phục hồi lại gói tin bị mất trên đường đi. Việc này giao cho các giao thức lớp trên của host đầu cuối.
      Giao thức IP cũng sử dụng gói tin (IP packet) cấu trúc được chia thành 2 phần đó là Header và Data, trong đó header chứa thông tin quản lý gói tin và data chính là dữ liệu cần truyền và chúng được đóng gói trong gói tin IP. Nếu so sánh gói tin IP như một kiện hàng header chính là phần ghi lại thông tin về hàng hóa còn data chính là hàng hóa được vận chuyển. Kiến trúc của IP header như hình:


      Có rất nhiều trường trong phần IP header, trong phần này chỉ chú trọng các trường: Ver., Protocol, Source Address, Destination Address, các trường còn lại chúng ta tìm hiểu trong phần IP Header.
      • Ver.: Trường này cho biết version của giao thức IP đang sử dụng. Hiện tại có 2 version của giao thức IP đó là: Version 4 và Version 6.
      • Protocol: Trường này cho biết giao thức nào đang truyền tải phần data của gói tin. ví dụ: TCP, UDP, icmp, ospf,...
      • Source Address: Cho biết địa chỉ của thiết bị gửi gói tin
      • Destination Address: Cho biết địa chỉ sẽ nhận gói tin
      2. Cấu trúc địa chỉ ip:


      Cấu trúc của địa chỉ IP gồm 32 bít nhị phân phân được chia thành 4 cụm mỗi cụm 8 bit, mỗi cụm này có tên gọi là octet. Các octet được ngăn cách nhau bởi dấu chấm khi biểu diễn chúng dưới dạng thập.

      Địa chỉ IP được chia thành 2 phần:
      • Mạng - Network-ID: giống như tên của một con đường
      • Host-ID: giống các địa chỉ trên con đường ấy, và địa chỉ là duy nhất.
      Việc chia IP như vậy chúng tuân theo quy tắc:
      • Tất cả các bit phần mạng không đồng thời bằng 0. (1)
                          Ví dụ: địa chỉ 0.0.0.1 có phần mạng là 0.0.0 là không hợp lệ
      • Nếu tất cả các bit của phần host đồng thời bằng 0 thì ta có địa chỉ mạng (sẽ thảo luận trong phần Subneting.) 
                          Ví dụ: địa chỉ 192.168.1.0 có phần host là 0 đây là địa chỉ mang không thể gắng cho host được.
      • Nếu tất cả các bit của phần host đồng thời bằng 1 thì ta có địa chỉ broadcast (sẽ thảo luận trong phần Subneting.)
                          Ví dụ: địa chỉ 192.168.1.255 đây là địa chỉ broadcast cho mạng 192.168.1.0

      3. Các lớp địa chỉ IP
      Có 3 lớp mạng khác nhau có thể gắng được cho host đó là:


      Điểm khác nhau giữa 3 lớp này là số lượng host có thể sử dụng trong mỗi lớp


      Để biết được IP đó thuộc lớp mạng nào chúng ta căn cứ vào bit đầu tiên của nó.
      • Lớp A: bit đầu tiên luôn luôn được cố định là: 0
      • Lớp B: 2 bit đầu tiên luôn luôn có giá trị cố định là: 10
      • Lớp C: 3 bit đầu tiên luôn luôn có giá trị cố định là: 110
      Nếu tính giá trị thập phân thì chúng có giá trị là:
      • Lớp A: 0.0.0.0 - 127.0.0.0. 
                  + Với qui tắc (1) về chia IP nên mạng 0.0.0.0 không hợp lệ.
                  + Mạng 127.0.0.0 sự dụng làm mạng loopback nên không thuộc lớp A

      Từ máy tính vào command prompt và gõ ping 127.0.0.1 thấy kết quả trả lời là Reply 
      C:\Users\admin>ping 127.0.0.1
      Pinging 127.0.0.1 with 32 bytes of data:
      Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
      Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
      Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
      Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
      Ping statistics for 127.0.0.1:
          Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
      Approximate round trip times in milli-seconds:
          Minimum = 0ms, Maximum = 0ms, Average = 0ms

      Vậy các mạng trong lớp A: 1.0.0.0 - 126.0.0.0
      Có 24 bit làm phần host => mỗi mạng lớp A có là: (224 - 2) host.
      • Lớp B: 128.0.0.0 - 191.255.0.0. 
                  + Có tất cả 214 mạng trong lớp B
                  + Có 16 bit làm host => mỗi mạng lớp B có là: (216 - 2) host.
      • Lớp C: 192.0.0.0 - 223.255.255.0
                  + Có tất cả 221 mạng trong lớp C
                  + Có 8 bit làm host => mỗi mạng lớp C có là: (28 - 2) host.

      Ngoài ra chúng ta còn có các lớp mạng không thể cài đặt cho host:
      • Lớp D: 4 bit đầu tiên luôn luôn có giá trị cố định là: 1110
                  + Gồm các địa chỉ thuộc dải: 224.0.0.0 -> 239.255.255.255
                  + Được sử dụng để làm địa chỉ multicast
                  + Ví dụ: 224.0.0.5 dùng cho OSPF; 224.0.0.9 dùng cho RIPv2
      • Lớp E: 4 bit đầu tiên luôn luôn có giá trị cố định là: 1111
                  + Từ 240.0.0.0 trở đi
                  + Được sử dụng cho mục đích dự phòng

      4. Địa chỉ broadcast:
      • Flooded broadcast hay Local broadcast: Khi một địa chỉ trong một mạng nội bộ muốn gửi broadcast đến địa chỉ 255.255.255.255 thì tất cả các host trọng mạng nội bộ của nó sẽ nhận được. Router sẽ drop không cho gói tin này lang truyền đến mạng khác.
      • Directed broadcast: Xét một máy có địa chỉ Ip là 192.168.1.1/24 muốn gửi Broadcast đến tất các máy thuộc mạng 192.168.200.0/24 thì nó phải gửi broadcast đến địa chỉ là 192.168.200.255 lúc này các máy trong lớp mạng 192.168.200.0/24 nhận được. Các máy trong lớp mạng 192.168.1.0/24 không nhận được gói tin này.

      5. Địa chỉ Private và Public:

      • Private: chỉ được sử dụng trong mạng nội bộ (mạng LAN), không được định tuyến trong môi trường Internet. Có thể được sử dụng lặp đi lặp lại trong các mạng LAN khác nhau.
      • Public: là địa chỉ IP sử dụng cho các gói tin đi trên môi trường Internet, định tuyến trên môi trường Internet. Địa chỉ public phải là địa chỉ duy nhất cho mỗi host tham gia vào Internet.
      • Dải địa chỉ private (được qui định trong Request For Comments - RFC1918)
                     + Lớp A: 10.0.0.0  - 10.255.255.255  (10/8 prefix)
                     + Lớp B: 172.16.0.0 - 172.31.255.255  (172.16/12 prefix)
                     + Lớp C: 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
      • Kỹ thuật NAT (Network Address Translation) được sử dụng chuyển đổi giữa IP private và IP public (sẽ được thảo luận trong chuyên đề NAT)
      • Việc sử dụng địa chỉ IP private nhằm tiết kiệm địa chỉ IP public
      6. Subnet mask và số prefix-length
      • Subnet mask là một dãy nhị phân dài 32 bit đi kèm với một địa chỉ IP chỉ cho phép xác định lớp mạng mà IP thuộc về. Máy tính sẽ thực hiện phép AND địa chỉ IP với subnet mast theo từng cặp bit một.

      Ví dụ: Xét địa IP 192.168.1.1 với subnet mast 255.255.255.0. Xác đinh địa chỉ ip này thuộc lớp mạng nào.  Thực hiện phép AND 192.168.1.1 với 255.255.255.0


      Dạng thập phân
      Dạng nhị phân

      Địa chỉ IP
      192.168.1.1
      1100 0000.1010 0000.0000 0001.0000 0001
      AND
      Subnet mask
      255.255.255.0
       1111 1111 .1111 1111 .1111 1111 .0000 0000
      Địa chỉ mạng - Network
      192.168.1.0
      1100 0000.1010 0000.0000 0000.0000 0000
       kết quả

      Trong phép toán AND nếu có số 0 thì cho kết quả bằng 0, còn lại bằng 1
      0 AND 0 = 0
      0 AND 1 = 0
      1 AND 0 = 0
      1 AND 1 = 1

      • Xác định subnet mask: phần mạng của địa chỉ chạy đến đâu thì các bit 1 của phần subnet mask chạy đến đó

      Subnet mask chuẩn cho các lớp địa chỉ A, B và C là:
                     + Lớp A: 255.0.0.0
                     + Lớp B: 255.255.0.0
                     + Lớp C: 255.255.255.0
      • Prefix - length: là số bit mạng của một địa chỉ IP. Giá trị này được viết ngay sau địa chỉ IP và ngăn cách bởi dấu "/"
      Ví dụ: 192.168.1.1/24, 172.16.0.1/16, 10.0.0.1/8,.... 
                     + Lớp A: 255.0.0.0 ~ /8
                     + Lớp B: 255.255.0.0 ~ /16
                     + Lớp C: 255.255.255.0 ~ /24

      Tóm tắt:
      • Địa chỉ IP có 2 phần: network và host
      • Tất cả các bit host bằng 0 ta có địa chỉ mạng
      • Tất cả các bit host bằng 1 ta có địa chỉ broadcast
      • Các lớp mạng có thể cài đặt cho host: lớp A, lớp B, lớp C
      • Địa chỉ IP có: private và public
      • Prefix-length là cách viết khác (viết gọn) của subnet-mask

      Xong!
      /*header slide*/