Thứ Năm, 27 tháng 2, 2014

THUẬT TOÁN DÒ ĐƯỜNG

Mục đích của việc dò đường: giúp cho robot di chuyển trên các vạch trắng có sẳn trên sân thi đấu để đến các mục tiêu và ghi điểm. Việc dò đường hay còn gọi là dò line làm tăng độ chính xác khi di chuyển của robot.
Cách lập trình dò đường:
- Dựa vào sự thay đổi trạng thái trên các cảm biến dò đường. Cảm biến dò đường được giới thiệu rất kỹ trong các tài liệu đã post trên diễn đàn. Nhưng có thể khái quát như sau:
Một cảm biến của robot thường gồm một con phát và một con thu như hình dưới, khi cấp nguồn thì con phát phát sáng. Mỗi khi đi qua vạch trắng ánh sáng phát từ con phát sẻ phản xạ xuống vạch trắng lên con thu, con thu nhận ánh sáng sẻ thay đổi mức điện áp từ 0v tương ứng với mức 0 thành 5v tương ứng với mức 1. Còn khi ở trên sân có các màu tối ánh sáng không phản xạ lên nên con thu luôn ở mức 0. Như vậy vi điều khiển sẻ liên tuc kiểm tra mức trạng thái có trên mỗi cảm biến thu để xác định được robot có đang ở trên vạch trắng hay không và xác định được độ lệch tương đối của robot so với vạch trắng dựa vào cách bố trí các cảm biến.

- Từ các giá trị của cảm biến đưa về vi điều khiển sẻ điều khiển tốc độ các động cơ dò đường một cách phù hợp nhất để đưa robot chạy vào giửa đường line nhằm đảm bảo độ chính xác khi di chuyển.
* Dưới đây là một số hình ảnh minh hoạ cho thuật toán dò đường theo vạch trắng.
(hình 1.2 và 1.3 trong file đính kèm)

Hình 3-24: Robot ở trạng thái lý tưởng trong quá trình dò đường.


Hình 3-25: Các trường hợp dò đường
a.      Robot đang bị lệch phải, trường hợp này xử lý bằng cách nạp tốc độ bánh phải lớn tốc độ hơn bánh trái.
b.      Robot đang bị lệch trái, trường hợp này xử lý bằng cách nạp tốc độ bánh trái lớn hơn tốc độ bánh phải.
Các bước để có một chương trình dò đường:
Xác định các trường hợp mà các cảm biến có thể nhận trong quá trình dò đường.
-          Ứng với mỗi giá trị từ module cảm biến, xác định vị trí lệch của robot so với vạch trắng.
Ví dụ:
8 cảm biến được nối vào 8 chân của vi điều khiển ở cổng P0 của vi điều khiển theo trình bày ở hình dưới:

Nếu giá trị tại cổng P0 là 00011000 thì giá trị tương ứng của mắt trái 1 và mắt phải 1 bằng 1, tức là hai mắt giửa của robot nhận được vạch trắng và có mức điện áp bằng 1, do đó ta biết được là robot đang nằm ở chính giửa vạch trắng.
Nếu giá trị tại cổng P0 là 11000000 thì giá trị tương ứng của mắt trái 4 và mắt trái 3 bằng 1, tức là hai mắt ngoài cùng bên trái của robot nhận được vạch trắng và có mức điện áp bằng 1, do đó ta biết được là robot đang nằm lệch nhiều về phía bên phải của vạch trắng.
Tương tự, nếu giá trị tại cổng P0 là 00000011 thì giá trị tương ứng của mắt phải 4 và mắt phải 3 bằng 1, tức là hai mắt ngoài cùng bên phải của robot nhận được vạch trắng và có mức điện áp bằng 1, do đó ta biết được là robot đang nằm lệch nhiều về phía bên trái của vạch trắng.
            Có khá nhiều các vị trí tương đối của cảm biến so với vạch trắng và với mỗi vị trí đó ta hoàn toàn có thể xác định độ lệch của robot trên vạch trắng và từ đó điều khiển tốc độ của hai động cơ dò đường cho phù hợp để đưa robot về chính giữa vạch trắng nhằm đảm bảo độ chính xác cho robot di chuyển tới mục tiêu.
           
-          như vậy sau khi đã xác định được các trường hợp mà khi dò đường robot có thể gặp phải, ta nhận giá trị của cảm biến và so sánh với các trường hợp đã thiết lập, nếu các cảm biến đang rơi vào trường hợp nào thì ta điều khiển động cơ cho từng trường hợp đó.
Chương trình dò đường đơn giản như sau:
void do_duong(void)
{
       while(1)
     {
            ACC=P0;  // nhận giá trị cảm biến từ cổng P0 vào thanh ghi đa chức năng ACC
if(ACC==11000000)                          // MT4 và MT3 nhận -> lệch phải nhiều
{         
                        RMOTOR=200;                      // bánh trái chạy chậm hơn bánh phải
                        LMOTOR=50;                        // để điều chỉnh robot vào giửa line
}
if(ACC==01100000)                          // MT3 và MT2 nhận -> lệch phải vừa
{         
                        RMOTOR=200;
                        LMOTOR=100;
}
if(ACC==00110000)                          // MT2 và MT1 nhận -> lệch phải ít
{         
                        RMOTOR=200;
                        LMOTOR=50;
}
if(ACC==00011000)                          // hai mắt giữa nhận -> không lệch
{         
                        RMOTOR=200;
                        LMOTOR=200;
}

if(ACC==00001100)                          // MP1 và MP2 nhận -> lệch trái ít
{         
                        RMOTOR=50;
                        LMOTOR=200;
}
if(ACC==00000110)                          // MP2 và MP3 nhận -> lệch trái vừa
{         
                        RMOTOR=100;
                        LMOTOR=200;
}
if(ACC==00000011)                          // MP3 và MP4 nhận -> lệch trái nhiều
{         
                        RMOTOR=150;                      // bánh phải chạy chậm hơn bánh trái
                        LMOTOR=200;                      // để điều chỉnh robot vào giửa line
}
     }
}
 .................................................................................................................................

Chương trình này chỉ chứa một số trường hợp đơn giản, vẫn còn khá nhiều trường hợp và nhiều giải thuật khác hay hơn, mình chỉ đưa ra một ví dụ đơn giản để các bạn có thể phát triển tối ưu hơn

Thứ Hai, 24 tháng 2, 2014

Giải thuật PID

I. TỔNG QUAN VỀ PID CONTROLLER
    1. Giới thiệu
        Trong quá khứ, hiện tại cũng như trong tương lai, việc điều khiển một hệ thống sao cho luôn đáp ứng được đúng những giá trị mong muốn của người điều khiển là một trong những vấn đề gặp phải trong điều khiển nói chung và điều khiển công nghiệp, robot ... nói riêng. Do đó, bên cạnh những mô hình điều khiển khác, PID controller ra đời và nổi lên như một giải pháp cho vấn đề chống sai số trong điều khiển bằng cách dùng các mô hình điều khiển lặp và điều chỉnh đáp ứng ngõ ra của hệ thống dựa trên các giá trị hồi tiếp của quá trình.
        Robocon là một trong những lĩnh vực đòi hỏi khả năng điều khiển hệ thống đạt đến độ chính xác cao. Do đó, nhu cầu về việc xây dựng một module điều khiển vận tốc của robot bằng PID ngày càng cần thiết. Để xây dựng một module PID tương đối hoàn chỉnh nhằm phục vụ cho điều khiển robot trong các mùa robocon sau này, chúng tôi, dưới sự chỉ dẫn của các anh các thầy trong câu lạc bộ phần cứng máy tính khoa KH&KTMT, đã xây dựng bộ tài liệu này như một bộ tham khảo nhanh và có thể áp dụng thực tế về PID controller.

    2. PID là gì?
        Bộ điều khiển PID là một cơ chế điều khiển lặp hồi tiếp được sử dụng rộng rãi trong hệ thống điều khiển công nghiệp do dễ áp dụng và dễ sử dụng. Một bộ điều khiển PID cố gắng điều chỉnh giữa giá trị biến đo được và giá trị mong muốn đạt được bằng cách tính toán và xuất ra một "hành động điều chỉnh" nhanh chóng để giữ cho lỗi ở mức nhỏ nhất có thể được.
        Bộ điều khiển PID gồm 3 thống số hay 3 chế độ: Proportional, Integral và Derivative.
       
                     
            Proportional: xác định tương tác với giá trị lỗi hiện tại.
            Integral: xác định tương tác với tổng giá trị lỗi gần đây ( lỗi tích lũy trong " quá khứ").
            Derivative: xác định tương tác với tốc độ thay đổi lỗi.
        Một vài ứng dụng chỉ cần sử dụng một hoặc hai chế độ trong việc điều khiển hệ thống. Điều này đạt được bằng cách gán cho hằng số không muốn sử dụng bằng không. Do đó, PID controller có thể trở thành PD, PI, P, I ...controller.
         Mô hình P, PI, PID được sử dụng thông dụng nhất.

    3. Lý thuyết điều khiển PID
        Mô hình điều khiển PID được cấu thành từ 3 thành phần, gọi tham số thao tác điều chỉnh là MV thay đổi theo thời gian t:
            MV(t) = Pout + Iout + Dout
        Trong đó: Pout, Iout, Dout là các hàm đóng góp vào giá trị ngõ ra sau cùng của MV(t).
        Hàm lỗi tại thời điểm t:
            E(t) = SP - PV
        Trong đó: SP : Setpoint ( giá trị mong muốn), PV: measurable output( giá trị đo được).
       
        a. Proportional ( hàm tỉ lệ)
            Hàm tỉ lệ giúp thay đổi mức điều khiển ( output) tỉ lệ với giá trị lỗi hiện tại.
                Pout = Kp x E(t)
            Kp: hằng số tỉ lệ, tham số dùng để tinh chỉnh.
            Hằng số Kp càng lớn thì sự điều chỉnh càng lớn khi E(t) càng lớn. Ngược lại, Kp càng nhỏ thì sẽ đáp ứng điều chỉnh nhỏ đối với lỗi.
         b. Integral term ( hàm tích phân)
             Hàm tích phân điều chỉnh mức điều khiển tương ứng với mức lỗi được tích lũy theo thời gian
                   
             Ki: hằng số điều chỉnh hàm tích phân.
             Hàm tích phân giúp cho khả năng điều chỉnh nhanh chóng đạt đến mức mong muốn và hạn chế giá trị dư thừa lỗi còn hạn chế ở hàm tỉ lệ.
        c. Derivative term ( hàm đạo hàm )
            Hàm đạo hàm đáp ứng với tốc độ thay đổi của lỗi, hay độ dốc lỗi, theo thời gian
                   

            Kd: hằng số điều chỉnh hàm đạo hàm.
            Hàm đạo hàm giúp nhanh chóng đạt được mức ổn định của giá trị mong muốn ( nếu chọn được Kd phù hợp ). Còn nếu Kd không phù hợp thì giá trị output sẽ giao động quanh giá trị mong muốn.

    4. Phương pháp tinh chỉnh các tham số trong PID
        Trong PID Controller, một trong số những vấn đề gặp phải cần giải quyết là phải chọn được giá trị các tham số ( hằng số Kp, Ki, Kd) cho từng hàm hiệu chỉnh PID sao cho phù hợp nhất có thể để PID Controller đạt được hiệu quả cao nhất. Nếu lựa chọn các tham số không phù hợp thì quá trình điều khiển sẽ không ổn định, và không chính xác như mong muốn.
        Vì vậy, trong thực tế sử dụng đã có một vài phương pháp phục vụ cho quá trình tinh chỉnh này, trong đó, phổ biến phải kể đến là manual tuning, Ziegler-Nichols, Software tools, Cohen-Coon.
        Trong giới hạn về phạm vi áp dụng là robocon, manual tuning ( tinh chỉnh bằng tay) là tương đối dễ dàng tiếp cận nhất so với các phương pháp còn lại.
        Phương pháp được áp dụng tương đối đơn giản như sau:
        - Bước 1: cho Ki = 0, Kd = 0, thay đổi giá trị Kp sao cho đạt được tốc độ phản ứng với lỗi gần như mong muốn.
        - Bước 2: bắt đầu thay đổi Ki, Kd. Bằng nhiều phép thử và kiểm tra tính đáp ứng của hệ thống, chúng ta rút ra một bộ các tham số Kp, Ki, Kd phù hợp gần với mong muốn nhất.
   
    5. Nhu cầu sử dụng PID Controller trong Robocon 
        Bên cạnh lối di chuyển truyền thống của robot là di chuyển theo line ( vạch trắng) bằng cách dò đường dùng mạch dò ( sensor), để thay đổi và tạo đột phá trong cách di chuyển cũng như tạo ra sự khác biệt, cùng với khả năng di chuyển không theo line, bỏ cách dò đường truyền thống mà chạy theo quỹ đạo mong muốn có thể là đường cong, đường zic-zac, ... bằng cách dùng nhiều kỹ thuật khác nhau, mà chủ yếu là dùng encoder. Để cải tiến hơn nữa sự đa dạng trong lối di chuyển của robot và tăng tính ổn định, chính xác lên cao hơn, PID Controller được kết hợp vào quá trình điều khiển nhằm đạt được những mục tiêu trên.

II. ÁP DỤNG VÀ HIỆN THỰC PID CONTROLLER CHO ROBOCON
    1. Mô hình truyền thống
        a. Mô hình
            
Sử dụng 1 vi điều khiển ( H8, ATMega64 ...) quản lý toàn bộ hoạt động của robot trong đó PID controller được tích hợp như một hàm giải thuật. 
            PID được áp dụng vào giải thuật và hoạt động dưới dạng một hàm với thông số vào là giá trị vận tốc mong muốn và "lỗi" tham chiếu, giá trị đầu ra là pwm điều khiển động cơ. Hàm tính toán cho PID được gọi trong giải thuật di chuyển của robot, còn hàm cập nhật giá trị lỗi tham chiếu liên tục được cập nhật bằng timer (thường là 5ms).
            PID Controller được tích hợp vào trong giải thuật điều khiển robot với giá trị output là giá trị pwm điều xung cho 2 động cơ 2 bánh sao cho đạt được giá trị vận tốc mong muốn. Ứng dụng giải thuật PID được áp dụng truyền thống này  thì chủ yếu chỉ điều khiển vận tốc cho robot chạy thẳng với giá trị vận tốc mong muốn hoặc luôn chạy giữa line với vận tốc cố định, giá trị lỗi tham chiếu để tính toán trong giải thuật PID có thể là độ lệch của bộ led sensor dò đường so với line trắng ( thường dùng) hoặc là độ sai lệch về số xung giữa encoder bên bánh trái và encoder bên bánh phải.
      
                
                                                                

    2. Mô hình áp dụng trong tương lai
        a. Mô hình
            
Sử dụng 3 vi điều khiển: 1 vi điều khiển (ATMega64) đóng vai trò master quản lý toàn bộ hoạt động chính của robot, 2 vi điều khiển còn lại ( 2 vi điều khiển P89V51) quản lý việc nhân xung encoder ( 1 vi điều khiển cho mỗi bên: trái, phải) và tính toán PID controller sao cho đạt được giá trị vận tốc mà master truyền lệnh xuống cho slaver cần quản lý để robot luôn đạt được như mong muốn. Giao tiếp giữa master và slaver thông qua giao tiếp UART ( giao tiếp này hoàn toàn có thể được sử dụng để đồng bộ quá trình ở hai Slaver khi di chuyển), giao tiếp giữa slaver nhằm đồng bộ quá trình trong quản lý di chuyển của robot thông qua ngắt ngoài và 1 bit PORT I/O.

                    
        b. Các ký thuật mới so với mô hình truyền thống
 
           + Slaver - P89V51
               Trong mô hình mới này, P89V51 được sử dụng chuyên cho việc nhận xung encoder và tính toán PID điều khiển động cơ theo đúng giá trị vận tốc mong muốn. Do đó, việc điều khiển đạt được độ chính xác cao hơn so với mô hình truyền thống.
            + Chống mất xung encoder
               P89V51 có một chức năng phần cứng cho phép nhận xung encoder mà không còn bị ảnh hưởng từ timer hay mức ưu tiên ngăt, đó là bộ timer 2 được cài đặt ở chế độ auto reload. Với chế độ này, timer 2 sẽ nhận xung encoder làm xung đếm cho timer, giá trị xung encoder được lưu lại trong TH2 và TL2 ( TH2 và TL2 sẽ được tư động lưu vào RCAP2H, RCAP2L), và chương trình sẽ lấy giá trị trong 2 thanh ghi này để tính toán giá trị lỗi tham chiếu trên xung encoder.
            + Điều khiển vận tốc theo lộ trình
               Kỹ thuật sử dụng trong mô hình này được cải tiến hơn so với cách điều khiển trong mô hình truyền thống. Lộ trình tổng thể được chia thành các giai đoạn, các lộ trình con ( gọi là segment), trong mỗi segment này, vi điều khiển phải đảm bảo được robot chạy đúng mỗi segment vơi các giá trị tham số ứng với mỗi segment, ví dụ: quãng đường phải đi được ( tính bằng số xung encoder), vận tốc tối đa cần đạt( số xung encoder l đơn vị thời gian), khoảng thời gian delay để chuyển tiếp qua segment tiếp theo d_time, gia tốc trong chuyển động accel...
                 

              
        Giao tiếp UART theo định dạng frame
 
           Để master AVR giao tiếp ổn định và đạt độ chính xác cao với 2 slaver P89V51, mô hình này định dạng frame giao tiếp thông qua UART.
             + ADDR: địa chỉ slaver được dùng để xác định slaver nào sẽ giao tiếp với master AVR.
                 ADDR = { LEFR_ID(0x10),RIGHT_ID(0x20),BROADCAST(0xFF)}
                 Dạng thu gọn: L, R, B.
             + Command: dùng để chỉ ra lệnh truyền/nhận là gì.
                Command = {A,D,E,G,L,N,Q,R,S,T,V,X}
           
            A(Accelerator): thay đổi tham số gia tốc của một segment xác định.
            D(Distance): Thay đổi tham số khoảng cách của một segment xác định.
            V(Velocity limit): Thay đổi tham số vận tốc giới hạn của một segment xác định.
            T(Time): Thay đổi tham số khoảng thời gian của một segment xác định.
            G(Go): Ra lệnh chạy các segment xác định.
            L(Loop): ra lệnh chạy và lặp lại một bộ các segments.
            Q(Query): xác nhận sự hiện diện của slaver.     
            E(read Encoder): yêu cầu tổng số xung encoder đi được kể từ lần đọc encoder gần nhất.
            N(Normal mode): slaver thiết lập giá trị PWM được chỉ ra trong frame lệnh.
            X(Velocity mode): slaver quản lý vận tốc motor như mong muốn.
            R(Reset): thiết lập tất cả các tham số về giá trị khởi tạo ban đầu.
            S(Stop): động cơ ngừng hoạt động ngay lập tức, vận tốc lúc đó bằng 0.
                                               

              


         
       c. Mô hình giải thuật
            
Master - AVR
           
          
            Slave - P89V51

          

            Mô hình lập trình PID trên P89V51 
                Trong giải thuật này UpdTraj() là hàm tương đối quan trọng nên chỉ thể hiện mô hình này của hàm, còn các hàm khác như UpdPos(), CalcPID(), CalcError() tương đối dễ hiểu nên không thể hiện ở đây)

          
          
            Giải thuật chi tiết trong UpdTraj()
          

Thứ Bảy, 22 tháng 2, 2014

Giới thiệu mạng di động GSM

Định nghĩa GSM
GSM là viết tắt của từ " The Global System for Mobile Cpommunication" - Mạng thông tin di động toàn cầu.
- GSM là tiêu chuẩn chung cho các thuê bao di động di chuyển giữa các vị trí địa lý khác nhau mà vẫn giữ được liên lạc .

 Các mạng điện thoại GSM ở việt nam .
Ở Việt Nam và các nước trên Thế giới , mạng điện thoại GSM vẫn chiếm đa số, Việt Nam có 3 mạng điện thoại GSM đó là :
- Mạng Vinaphone : 091 => 094...
- Mạng Mobiphone : 090 => 093...
- Mạng Vietel 098...

 Công nghệ của mạng GSM
Các mạng điện thoại GSM sử dụng công nghệ TDMA - TDMA là viết tắt của từ Time Division Multiple Access " - Phân chia các truy cập theo thời gian .

Giải thích : Đây là công nghệ cho phép 8 máy di động có thể sử dụng chung 1 kênh để đàm thoại , mỗi máy sẽ sử dụng 1/8 khe thời gian để truyền và nhận thông tin.
 Công nghệ CDMA .
Khác với công nghệ TDMA của các mạng GSM là công nghệ CDMA của các mạng như
- Mạng Sphone 095...
- Mạng EVN.Telecom 096...
- Mạng HTL 092...
CDMA là viết tắt của Code Division Multiple Access " -
Phân chia các truy cập theo mã .
Giải thích : Công nghệ CDMA sử dụng mã số cho mỗi cuộc gọi, và nó không sử dụng một kênh để đàm thoại như công nghệ TDMA mà sử dụng cả một phổ tần (nhiều kênh một lúc)
 vậy công nghệ này có tốc độ truyền dẫn tín hiệu cao hơn công nghệ TDMA
 Cấu trúc cơ bản của mạng di động .
Mỗi mạng điện thoại di động có nhiều tổng đài chuyển mạch MSC ở các khu vực khác nhau ( Ví dụ như tổng đài miền Bắc, miền Trung, miền Nam) và mỗi Tổng đài lại có nhiều trạm thu phát vô tuyến BSS




Băng tần GSM 900 MHz .
- Nếu bạn sử dụng thuê bao mạng Vinaphone, Mobiphone hoặc Vietel là bạn đang sử dụng công nghệ GSM.
Công nghệ GSM được chia làm 3 băng tần
- Băng tần GSM 900MHz
- Băng tần GSM 1800MHz
- Và băng tần GSM 1900MHz
Tất cả các mạng điện thoại ở Việt Nam hiện đang phát ở băng tần 900MHz , các nước trên Thế giới sử dụng băng tần 1800MHz, Mỹ sử dụng băng tần 1900MHz .


Băng tần GSM 900MHz
 Với băng GSM 900MHz , Điện thoại di động thu ở dải sóng 935MHz đến 960MHz và phát ở dải sóng 890MHz đến 915MHz
 Khi điện thoại dd thu từ đài phát trên một tần số nào đó (trong giải 935MHz đến 960MHz) nó sẽ trừ đi 45MHz để lấy ra tần số phát, khoảng cách giữa tần số thu và phát của băng GSM 900 luôn luôn là 45MHz .
Tần số thu và phát của máy di động là do tổng đài điều khiển .

Băng tần GSM 1800 MHz .



Băng tần GSM 1800 MHz
 Ở băng 1800M, Điện thoại dđ thu ở dải sóng 1805MHz đến 1880MHz và phát ở dải sóng 1710MHz đến 1785MHz
 Khi điện thoại dd thu từ đài phát trên một tần số nào đó ( trong giải 1805MHz đến 1880MHz ) nó sẽ trừ đi 95MHz để lấy ra tần số phát , khoảng cách giữa tần số thu và phát của băng GSM 1800 là 95MHz .

 So sánh 2 băng tần .

Băng tần GSM 900MHz và băng tần GSM 1800MHz

 Tái sử dụng tần số .


 Toàn bộ dải tần phát cho mạng GSM 900M chỉ có từ 890MHz đến 915MHz tức là có 25MHz, mỗi kênh chiếm một khe tần số 200KHz => như vậy có khoảng 125 kênh thoại có thể sử dụng một lúc, mỗi kênh thoại được chia thành 8 khe thời gian trong đó 1/8 thời gian giành cho tín hiệu điều khiển, 7/8 khe thời gian còn lại dành cho 7 thuê bao và như vậy tổng số thuê bao có thể liên lạc trong một thời điểm là 125 x 7 = 875.

 875 thuê bao có thể liên lạc đồng thời trong một thời điểm cho một mạng di động, đây là con số quá ít không đáp ứng được nhu cầu sử dụng, vì vậy tái sử dụng tần số là phương pháp làm tăng số thuê bao di động có thể liên lạc trong một thời điểm lên tới con số hàng triệu .

 Phương pháp tái sử dụng tần số .
Người ta chia một Thành phố ra thành nhiêu ô hình lục giác => gọi là Cell , mỗi ô có một trạm BTS để thu phát tín hiệu, các ô không liền nhau có thể phát chung một tần số ( như hình dưới thì các ô có cùng mầu xanh hay mầu vàng có thể phát chung tần số )
- Với phương pháp trên người ta có thể chia toàn bộ giải tần ra làm 3 để phát trên các ô không liền kề như 3 mầu dưới đây, và như vậy mỗi ô có thể phục vụ cho 875 / 3 = khoảng 290 thuê bao .
- Trong một Thành phố có thể có hàng trăm trạm thu phát BTS vì vậy nó có thể phục vụ được hàng chục ngàn thuê bao có thể liên lạc trong cùng một thời điểm .



Thành phố được chia thành nhiều ô hình lục giác, mỗi ô được đặt một trạm thu phát BTS .

 Phát tín hiệu trong mỗi ô
Tín hiệu trong mỗi ô được phát theo một trong hai phương pháp
- Phát đẳng hướng
- Phát có hướng theo góc 120o






2 - Các thành phần của mạng di động



 Mạng Điện thoại di động GSM





 Máy cầm tay MS ( Mobile Station )
Trong mỗi máy di động cầm tay khi liên lạc, nhà quản lý điều hành mạng sẽ quản lý theo hai mã số .
- Số SIM đây là mã nhận dạng di động thuê bao Quốc tế, dựa vào mã số này mà nhà quản lý có thể quản lý được các cuộc gọi cũng như các dịch vụ gia tăng khác .
- Số IMEI đây là số nhận dạng di động Quốc tế, số này được nạp vào bộ nhớ ROM khi điện thoại được xuất xưởng, mỗi máy điện thoại có một số IMEI duy nhất, ở các nước trên thế giới - số IMEI được các nhà cung cấp dịch vụ quản lý, vì vậy ở nước ngoài nếu một điện thoại di động bị đánh cắp thì chúng cũng thể sử dụng được
- Với các công nghệ tiên tiến ngày nay, nếu bạn bật máy điện thoại lên, người ta có thể biết bạn đang đứng ở đâu chính xác tới phạm vi 10mđó là công nghệ định vị toàn cầu .



 Ý nghĩa số IMEI



 Ý nghĩa số SIM


Số thuê bao IMSI




 Hệ thống tổng đài


Các giao diện vô tuyến
 Kênh vật lý và kênh Logic
Kênh vật lý là kênh tần số dùng để truyền tải thông tin. Ví dụ: Kênh tần số 890MHz là kênh vật lý. Kênh logic là kênh do kênh vật lý chia tách. Trong GSM, một kênh vật lý được chia ra làm 8 kênh logic. Một kênh Logic chiếm 1/8 khe thời gian của kênh vật lý. Kênh vật lý là kênh có tần số xác định, có dải thông 200KHz


Một kênh Logic chiếm 1/8 khe thời gian của kênh vật lý
Kênh vật lý là kênh có tần số xác định, có dải thông 200KHz
 Kênh đàm thoại .
Lưu lượng kênh đàm thoại sẽ được truyền đi trên các kênh Logic, mỗi kênh vật lý có thể hỗ trợ 7 kênh đàm thoại và một kênh điều khiển .
 Kênh điều khiển
Mỗi kênh vật lý sử dụng 1/8 thời gian làm kênh điều khiển, kênh điều khiển sẽ gửi từ Đài phát đến máy thu các thông tin điều khiển của tổng đài .


3 - Các công nghệ vô tuyến



Các kỹ thuật điều chế tín hiệu .


 Kỹ thuật điều biên :


Kỹ thuật điều biên làm thay đổi biên độ tín hiệu theo tín hiệu số


 Kỹ thuật điều tần .


Kỹ thuật điều tần làm thay đổi tần số tín hiệu theo tín hiệu số


 Kỹ thuật điều pha


Kỹ thuật điều pha làm thay đổi pha tín hiệu theo tín hiệu số Công nghệ di động sử dụng kỹ thuật điều pha, đây là kỹ thuật thường được sử dụng cho mạch điều chế số .

 Điều khiển công suất phát của máy di động .
Vì sao phải điều khiển công suất phát của máy di động ? => Để giảm công suất phát của máy di động khi không cần thiết để tiết kiệm năng lượng tiêu thụ cho pin .
=> Giảm được nhiễu cho các kênh tần số lân cận
=> Giảm ảnh hưởng sức khoẻ cho người sử dụng .



 Khi ta bật nguồn Mobile, kênh thu sẽ thu tín hiệu quảng bá của đài phát, tín hiệu thu được đối chiếu với dữ liệu trong bộ nhớ SIM để Mobile có thể nhận ra mạng chủ của mình, sau đó Mobile sẽ phát tín hiệu điều khiển về đài phát (khoảng 3-4 giây), tín hiệu được thu qua các trạm BTS và được truyền về tổng đài MSC, tổng đài sẽ ghi lại vị trí của Mobile vào trong
Data Base.
 Sau khi phát tín hiệu điều khiển về tổng đài, Mobile của bạn sẽ chuyển sang chế độ nghỉ (không phát tín hiệu) và sau khoảng 15 phút nó mới phát tín hiệu điều khiển về tổng đài 1 lần .
 Thu tín hiệu ngắt quãng
Đài phát phát đi các tín hiệu quảng bá nhưng tín hiệu này cũng phát xen kẽ với các khoảng thời gian rỗi và thời gian phát tin nhắn .


 Khi không có cuộc gọi thì điện thoại sẽ thu được tín hiệu ngắt quãng đủ cho điện thoại giữ được sự liên lạc với tổng đài .
 Khi thuê bao di chuyển giữa các ô ( Cell )
Khi bạn đứng trong Cell thứ nhất, bạn bật máy và tổng đài thu được tín hiệu trả lời tự động từ điện thoại của bạn => tổng đài sẽ lưu vị trí của bạn trong Data Base. Khi bạn di chuyển sang một Cell khác, nhờ tín hiệu thu từ
kênh quảng bá mà điện thoại của bạn hiểu rằng tín hiệu thu từ trạm BTS thứ nhất đang yếu dần và có một tín hiệu thu từ một trạm BTS khác đang mạnh dần lên, đến một thời điểm nhất định, điện thoại của bạn sẽ tự động phát tín hiệu điều khiển về đài phát để tổng đài ghi lại vị trí mới của bạn. Khi có một ai đó cầm máy gọi cho bạn, ban đầu nó sẽ phát đi một yêu cầu kết nối đến tổng đài, tổng đài sẽ tìm dấu vết thuê bao của bạn trong cơ sở dữ liệu, nếu tìm thấy nó sẽ cho kết nối đến trạm BTS mà bạn đang đứng để phát tín hiệu tìm thuê bao của bạn . Khi tổng đài nhận được tín hiệu trả lời sẵn sàng kết nối ( do máy của bạn phát lại tự động ) tổng đài sẽ điều khiển các trạm. BTS tìm kênh còn rỗi để thiết lập cuộc gọi => lúc này máy của bạn mới có rung và chuông.

Subnet mask và cách chia

Ở bài Cấu trúc IP ta đã biết sơ qua về khái niệm và cấu trúc của IPv4. Bài này mình sẽ trình bày rõ về cách chia Subnetmask
Subnet là gì?: Hiểu đơn giản vầy. Khi ta chia một Network ra thành nhiều Network nhỏ hơn thì các Network nhỏ này được gọi là Subnet.
 
Vì sao cần phải chia Subnet mask?

Như ta đã biết mạng Internet sử dụng địa chỉ IPv4 32 bit và phân chia ra các lớp A,B,C,D , tuy nhiên, với một hệ thống địa chỉ như vậy việc quản lý vẫn rất khó khăn . Nếu như một mạng được cấp một địa chỉ lớp A thì có nghĩa nó có thể chứa tới 16*1.048.576 địa chỉ ( máy tính ) .Với số lượng máy tính lớn như vậy rất ít công ty hoặc tổ chức dùng hết được điều đó gây lãng phí địa chỉ IP. Để tránh tình trạng đó các nhà nghiên cứu đưa ra một phương pháp là sử dụng mặt nạ mạng con ( Subnet mask ) để phân chia mạng ra thành những mạng con gọi là Subnet. Subnet mask là một con số 32 bit bao gồm n bit 1 ( thường là các bit cao nhất ) dùng để đánh địa chỉ mạng con và m bit 0 dùng để đánh địa chỉ máy trong mạng con với n+m=32 .
Subnet mask phải được cấu hình cho mỗi máy tính trong mạng và phải được định nghĩa cho mỗi giao diện Router. Như vậy, ta phải dùng cùng một Subnet mask cho toàn bộ mạng vật lý cùng chung một địa chỉ Internet. Trong thực tế, để dễ dàng cho hoạt động quản lý các máy trong mạng, thường chia nhỏ các mạng lớn trong các lớp mạng (A, B, C) thành các mạng nhỏ hơn. Quá trình này được thực hiện bằng cách lấy một số bit ở phần định danh host để sử dụng cho việc đánh địa chỉ mạng. Tuỳ theo cách sử dụng của người quản trị mạng ( số subnet và số host trên mỗi subnet ) mà số lượng bit lấy ở phần host nhiều hay ít.
Để tách biệt giữa địa chỉ mạng và địa chỉ host người ta dùng netmask. Để tách biệt giữa Subnet address và địa chỉ host người ta dùng Subnet mask.

Theo quy ước, các địa chỉ IP được chia ra làm ba lớp như sau:
Class  Subnet mask trong dạng nhị phân              Subnet mask
Lớp A 11111111 00000000 00000000 00000000   255.0.0.0
Lớp B 11111111 11111111 00000000 00000000   255.255.0.0
Lớp C 11111111 11111111 11111111 00000000   255.255.255.0 

Như ta đã biết, lớp A sử dụng 1 octet đầu tiên làm Network ID. Sử dụng 8 bit đầu được set  giá trị thành 1, và 24 bit sau set giá trị 0 => có Subnet Mask 255.0.0.0. Tương tự với các lớp kia.
Ví dụ IP: 192.168.1.0/24
Đây là địa chỉ thuộc lớp C. Và con số 24 có nghĩa là ta sử dụng 24 bit cho phần Network ID, và còn lại 8 bit cho Host ID.

Chia Subnet Mask như thế nào?

Ở đây, trình bày cách ngắn gọn giúp bạn có thể tính nhẩm được. Lấy ví dụ cụ thể như sau:
Công ty thuê một đường IP là 192.168.1.0. Bây giờ ông giám đốc yêu cầu phân làm chia làm 3 mạng con cho ba phòng ban trong công ty. Hãy thực hiện việc chia subnet này.

Trước hết ta phân tích cấu trúc của địa chỉ: 192.168.1.0 như sau:
+ Địa chỉ NetMask: 255.255.255.0
+ Network ID: 11111111.11111111.11111111
+ HostID: 00000000

Trong ví dụ này ta cần chia làm 3 mạng con (3 subnet) nên ta cần sử dụng 2 bit ở phần Host ID để thêm vào Network ID. Làm sao để biết được số bit cần mượn thêm? Ta có công thức : 2^n>=m (với m là số subnet cần chia, n là số bit cần mượn). Ở đây 2^2>=3.
Sau khi mượn 2 bit, ta có cấu trúc mới ở dạng nhị phân là (bit mượn ta set giá trị bằng 1 nhé):
+ Địa chỉ NetMask:: 11111111.11111111.11111111.11000000
+ Network ID: 11111111.11111111.11111111.11
+ Host ID: 000000
=> Ở dạng thập phân là: 255.255.255.192

Địa chỉ IP mới lúc này là: 192.168.1.0/26 (con số 26 là 24 + 2 bits mượn).
Ta xác định "bước nhảy" cho các subnet:
Bước nhảy k=256-192=64
=> Ta có các mạng con sau:
Ip: 192.168.1.0         Netmask: 255.255.255.192
Ip: 192.168.1.64        Netmask:  255.255.255.192
Ip: 192.168.1.128      Netmask: 255.255.255.192
Ip: 192.168.1.192      Netmask: 255.255.255.192

Như vậy số máy trên mỗi mạng bằng bao nhiêu?
Số bits của Host ID còn lại sau khi đã bị Network ID mượn: x = 32-26 = 6
=> Số máy trên mỗi mạng: 2^n-2 = 2^6-2 = 62 máy

Cấu trúc IP

Giới thiệu chung:
Như chúng ta đã biết Internet là một mạng máy tính toàn cầu , do hàng nghìn mạng máy tính từ khắp mọi nơi nối lại tạo nên. Khác với cách tổ chức theo các cấp: nội hạt, liên tỉnh, quốc tế của một mạng viễn thông như mạng thoại chẳng hạn, mạng Internet tổ chức chỉ có một cấp, các mạng máy tính dù nhỏ, dù to khi nối vào Internet đều bình đẳng với nhau. Do cách tổ chức như vậy nên trên Internet có cấu trúc địa chỉ, cách đánh địa chỉ đặc biệt, trong khi cách đánh địa chỉ đối với mạng viễn thông lại đơn giản hơn nhiều.
Đối với mạng viễn thông như mạng thoại chẳng hạn, khách hàng ở các vùng khác nhau hoàn toàn có thể có cùng số điện thoại, phân biệt với nhau bằng mã vùng, mã tỉnh hay mã quốc tế. Đối với mạng Internet , do cách tổ chức chỉ có một cấp nên mỗi một khách hàng hay một máy chủ ( Host ) hoặc Router đều có một địa chỉ internet duy nhất mà không được phép trùng với bất kỳ ai. Do vậy mà địa chỉ trên Internet thực sự là một tài nguyên.
Hàng chục triệu máy chủ trên hàng trăm nghìn mạng. Để địa chỉ không được trùng nhau cần phải có cấu trúc địa chỉ đặc biệt quản lý thống nhất và một Tổ chức của Internet gọi là Trung tâm thông tin mạng Internet - Network Information Center ( NIC ) chủ trì phân phối, NIC chỉ phân địa chỉ mạng ( Net ID ) còn địa chỉ máy chủ trên mạng đó ( Host ID ) do các Tổ chức quản lý Internet của từng quốc gia một tự phân phối. (Trong thực tế để có thể định tuyến (routing ) trên mạng Internet ngoài địa chỉ IP còn cần đến tên riêng của các máy chủ (Host) - Domain Name ). Các phần tiếp theo chúng ta hãy nghiên cứu cấu trúc đặc biệt của địa chỉ Internet.
a/ Thành phần và hình dạng của địa chỉ IP:Địa chỉ IP đang được sử dụng hiện tại (IPv4) có 32 bit chia thành 4 Octet ( mỗi Octet có 8 bit, tương đương 1 byte ) cách đếm đều từ trái qua phải bít 1 cho đến bít 32, các Octet tách biệt nhau bằng dấu chấm (.), bao gồm có 3 thành phần chính.
Bit 1............................................................................ 32
  • Bit nhận dạng lớp ( Class bit )
  • Địa chỉ của mạng ( Net ID )
  • Địa chỉ của máy chủ ( Host ID )
 Ghi chú:  Tên là Địa chỉ máy chủ nhưng thực tế không chỉ có máy chủ mà tất cả các máy con (Workstation), các cổng truy nhập v.v..đều cần có địa chỉ.
Bit nhận dạng lớp (Class bit) để phân biệt địa chỉ ở lớp nào.
1/ - Địa chỉ Internet biểu hiện ở dạng bit nhị phân:

x y x y x y x y. x y x y x y x y. x y x y x y x y. x y x y x y x y
x, y = 0 hoặc 1.

Ví dụ:
            0     0 1 0 1 1 0 0.     0 1 1 1 1 0 1 1.     0 1 1 0 1 1 1 0.     1 1 1 0 0 0 0 0
bit nhị phân     Octet 1           Octet 2             Octet 3                Octet 4
2/ - Địa chỉ Internet biểu hiện ở dạng thập phân: xxx.xxx.xxx.xxx
x là số thập phân từ 0 đến 9
Ví dụ: 146. 123. 110. 224
Dạng viết đầy đủ của địa chỉ IP là 3 con số trong từng Octet. Ví dụ: địa chỉ IP thường thấy trên thực tế có thể là 53.143.10.2 nhưng dạng đầy đủ là 053.143.010.002.
b / Các lớp địa chỉ IP
Địa chỉ IP chia ra 5 lớp A,B,C, D, E. Hiện tại đã dùng hết lớp A,B và gần hết lớp C, còn lớp D và E Tổ chức internet đang để dành cho mục đích khác không phân, nên chúng ta chỉ nghiên cứu 3 lớp đầu.


Qua cấu trúc các lớp địa chỉ IP chúng ta có nhận xét sau:
  • Bit nhận dạng là những bit đầu tiên - của lớp A là 0, của lớp B là 10, của lớp C là 110.
  • Lớp D có 4 bit đầu tiên để nhận dạng là 1110, còn lớp E có 5 bít đầu tiên để nhận dạng là 11110.
  • Địa chỉ lớp A: Địa chỉ mạng ít và địa chỉ máy chủ trên từng mạng nhiều.
  • Địa chỉ lớp B: Địa chỉ mạng vừa phải và địa chỉ máy chủ trên từng mạng vừa phải.
  • Địa chỉ lớp C: Địa chỉ mạng nhiều, địa chỉ máy chủ trên từng mạng ít.


Như vậy nếu chúng ta thấy 1 địa chỉ IP có 4 nhóm số cách nhau bằng dấu chấm, nếu thấy nhóm số thứ nhất nhỏ hơn 126 biết địa chỉ này ở lớp A, nằm trong khoảng 128 đến 191 biết địa chỉ này ở lớp B và từ 192 đến 223 biết địa chỉ này ở lớp C.

    Ghi nhớ: Địa chỉ thực tế không phân trong trường hợp tất cả các bit trong một hay nhiều Octet sử dụng cho địa chỉ mạng hay địa chỉ máy chủ đều bằng 0 hay đều bằng 1. Điều này đúng cho tất cả các lớp địa chỉ.
I - Địa chỉ lớp A:
Tổng quát chung:
  • Bit thứ nhất là bit nhận dạng lớp A = 0.
  • 7 bit còn lại trong Octet thứ nhất dành cho địa chỉ mạng.
  • 3 Octet còn lại có 24 bit dành cho địa chỉ của máy Chủ.

- net id: 126 mạng
- host id:16.777.214 máy chủ trên một mạng
 a/ Địa chỉ mạng (Net ID)
        1/ Khả năng phân địa chỉ

Khi đếm số bit chúng ta đếm từ trái qua phải, nhưng khi tính giá trị thập phân 2n của bit lại tính từ phải qua trái, bắt đầu từ bit 0. Octet thứ nhất dành cho địa chỉ mạng, bit 7 = 0 là bit nhận dạng lớp A. 7 bit còn lại từ bit 0 đến bit 6 dành cho địa chỉ mạng ( 2 7 ) = 128. Nhưng trên thực tế địa chỉ khi tất cả các bit bằng 0 hoặc bằng 1 đều không phân cho mạng. Khi giá trị các bit đều bằng 0, giá trị thập phân 0 là không có nghĩa, còn địa chỉ là 127 khi các bit đều bằng 1 dùng để thông báo nội bộ, nên trên thực tế còn lại 126 mạng.

Cách tính địa chỉ mạng lớp A.
 Số thứ tự Bit (n)- tính từ phải qua trái: 6 5 4 3 2 1 0
 Giá trị nhị phân (0 hay 1) của Bit: x x x x x x x
 Giá trị thập phân tương ứng khi giá trị bit = 1 sẽ là 2 n
 Giá trị thập phân tương ứng khi giá trị bit = 0 không tính.
 Giá trị thập phân lớn nhất khi giá trị của 7 bit đều bằng 1 là 127.
 Xin xem bảng tính trọn vẹn giá trị của tất cả các Bit
Như vậy khả năng phân địa chỉ của lớp A cho 126 mạng
2/ Biểu hiệu địa chỉ trên thực tế: Từ 001 đến 126
B / Địa chỉ của các máy chủ trên một mạng
1/ Khả năng phân địa chỉ

Ba Octet sau gồm 24 bit được tính từ bit 0 đến bit 23 dành cho địa chỉ máy chủ trên từng mạng.
Với cách tính như trên, để được tổng số máy chủ trên một mạng ta có.

Địa chỉ khi các bit đều bằng 0 hay bằng 1 bỏ ra. Trên thực tế còn lại 224-2 = 16 777 214
Như vậy khả năng phân địa chỉ cho 16 777 214 máy chủ.
2/ Biểu hiện địa chỉ trên thực tế

          Octet 2                        Octet 3                  Octet 4



Tổng quát lại tại địa chỉ của một mạng, khi lần lượt thay đổi các giá trị của các Octet 2, 3, 4.ta sẽ có 16 777 216 khả năng thay đổi mà các con số không trùng lặp nhau ( Combinations ) có nghiã là 16 777 216 địa chỉ của máy chủ trên mạng, nhưng thực tế phân chỉ là

    (256 x 256 x 256) - 2 =16 777 214
    Biểu hiện trên thực tế là ba số thập phân trong 3 Octet cách nhau dấu.
    Từ 000. 000. 0001 đến 255. 255. 254
    Kết luận: Địa chỉ lớp A có thể phân cho 126 mạng và mỗi một mạng có 16 777 214 máy chủ. Nói cách khác địa chỉ thực tế sẽ từ 001.000.000.001 đến 126.255.255.254
    Ví dụ: Một địa chỉ đầy đủ của lớp A: 124. 234. 200. 254. Trong đó:
    Địa chỉ mạng: 124
    Địa chỉ máy chủ: 234.200.254
II - Địa chỉ lớp B:
Tổng quát chung:
  • 2 bit đầu tiên để nhận dạng lớp B là 1 và 0.
  • 14 bit còn lại trong 2 Octet đầu tiên dành cho địa chỉ mạng.
  • 2 Octet còn lại gồm 16 bit dành cho địa chỉ máy Chủ.

- net id:      16.382 mạng
-host id: 65.534 máy chủ trên một mạng

a/ Địa chỉ mạng
1/ Khả năng phân địa chỉ


            Octet 1                   Octet 2
 Hai Octet đầu tiên có 16 bit để phân cho địa chỉ mạng, 2 bit ( bit 1 và bit 2 ) kể từ trái sang có giá trị lần lượt là 1 và 0 dùng để nhận dạng địa chỉ lớp B. Như vậy còn lại 14 bit để cho Net ID - địa chỉ mạng.

Theo cách tính như của địa chỉ mạng Lớp A ta có

  Tương tự như địa chỉ Lớp A, các bit đều bằng 0 và các bit đều bằng 1 được bỏ ra, nên thực tế giá trị thập phân chỉ từ 1 đến 16 382 có nghĩa phân được cho 16 382 mạng.
2/ Biểu hiện trên thực tế.
Biểu hiện địa chỉ trên thực tế thể hiện số thập phân trong 2 Octet cách nhau bằng dấu chấm (. ). Cách tính số thập phân cho từng Octet một.


Địa chỉ mạng của Lớp A từ 001 đến 126. ( không phân 127 ). Như vậy địa chỉ mạng của Lớp B ở Octet thứ nhất sẽ từ 128 cho đến 191.
Như vậy giá trị thập phân của Octet 1 từ 128 đến 191.

                     Octet 2

Như vậy giá trị thập phân của Octet 2 từ 001 đến 254.
Như vậy: Địa chỉ mạng lớp B biểu hiện trên thực tế gồm 2 Octet từ 128.001 cho đến 191. 254 có nghĩa phân được cho 16 382 mạng ( 214 - 2 ).
b / Địa chỉ các máy chủ trên một mạng
1 / Khả năng phân địa chỉ
Octet 3 và 4 gồm 16 bit để dành cho địa chỉ của các máy chủ trên từng mạng.
Địa chỉ của các bit bằng 0 và bằng 1 bỏ ra, Khả năng thực tế còn lại 65534 địa chỉ ( 216 - 2)để phân cho các máy chủ trên một mạng.
2/ Biểu hiện địa chỉ trên thực tế
              Octet 3





Biểu hiện địa chỉ máy chủ trên thực tế của Lớp B là từ 000. 001 đến 255. 254
Kết luận: Địa chỉ Lớp B có thể phân cho 16 382 mạng và mỗi mạng có đến 65 534 máy chủ. Nói cách khác địa chỉ phân trong thực tế sẽ từ 128. 001. 000. 001 đến 191. 254. 255. 254
Ví dụ: Một địa chỉ đầy đủ của lớp B là 130.130.130.130. Trong đó:
Địa chỉ mạng: 130.130
Địa chỉ máy chủ: 130.130
III - Địa chỉ Lớp C:

Tổng quát chung:
  •     3 bit đầu tiên để nhận dạng lớp C là 1,1,0.
  •     21 bit còn lại trong 3 Octet đầu dành cho địa chỉ mạng.
  •     Octet cuối cùng có 8 bit dành cho địa chỉ máy chủ.

- net id: 2.097.150 mạng
- host id: 254 máychủ/1 mạng

a / Địa chỉ mạng
1/ Khả năng phân địa chỉ

21 bit còn lại của 3 Octet đầu dành cho địa chỉ mạng

Các bit đều bằng 0 hay bằng 1 không phân, nên khả năng phân địa chỉ cho mạng ở lớp C là 2 097 150 hoặc bằng 221 - 2.
2/ Biểu hiện trên thực tế

                          Octet 1

                                 Octet 2

                    Octet 3

Kết luận: Địa chỉ dành cho mạng của lớp C có khả năng phân cho 2097150 mạng, nói cách khác trên thực tế sẽ từ 192. 000. 001 đến 223. 255. 254
b / địa chỉ máy chủ trên từng mạng
1/ Khả năng phân địa chỉ

Octet 4 có 8 bit để phân địa chỉ cho các máy chủ trên một mạng.
                 Octet 4


Như vậy khả năng cho máy chủ trên từng mạng của địa chỉ lớp C là 254 hay 28 - 2.

2/ Biểu hiện trên thực tê: Từ 001 đến 254.
Kết luận: Địa chỉ lớp C có thể phân cho 2 097 150 mạng và mỗi một mạng có 254 máy chủ. Nói cách khác sẽ từ 192. 000. 001. 001 đến 223. 255. 254.254

    Ví dụ một địa chỉ Internet lớp C đầy đủ: 198. 010. 122. 230. Trong đó:
    Địa chỉ mạng: 198.010.122
    Địa chỉ máy chủ: 230

    Ví dụ: Trung tâm thông tin mạng Internet vùng Châu á - Thái bình dương ( APNIC ) phân cho VDC 8 địa chỉ của lớp C có thể phân cho 8 mạng từ 203.162.0.0 cho đến 203.162.7.0. Nhóm số thứ nhất là 203 cho biết đây là những khối địa chỉ ở lớp C.

    Địa chỉ đầy đủ của một khối địa chỉ 203.162.0.0 phải là 203.162.000.000, chúng ta được sử dụng trọn vẹn octet cuối cùng có nghĩa là được 254 địa chỉ máy chủ và đầu cuối trên một mạng. Ví dụ mạng 203.162.0 sẽ có địa chỉ đầu cuối từ 203.162.0.000 đến 203.162.0. 255. Như vậy tổng cộng VDC có 8x254=2032 địa chỉ lý thuyết để phân cho các máy chủ và đầu cuối trên 8 mạng 203.162.0 ; 203.162.1;.....203.162.7 v.v..

    Như vậy địa chỉ mạng là cố định, chúng ta chỉ được quyền phân địa chỉ cho máy chủ trên mạng đó.
IV - Địa chỉ mạng con của Internet (IP subnetting):
a/ Nguyên nhân
Như đã nêu trên địa chỉ trên Internet thực sự là một tài nguyên, một mạng khi gia nhập Internet được Trung tâm thông tin mạng Internet ( NIC) phân cho một số địa chỉ vừa đủ dùng với yêu cầu lúc đó, sau này nếu mạng phát triển thêm lại phải xin NIC thêm, đó là điều không thuận tiện cho các nhà khai thác mạng.
Hơn nữa các lớp địa chỉ của Internet không phải hoàn toàn phù hợp với yêu cầu thực tế, địa chỉ lớp B chẳng hạn, mỗi một địa chỉ mạng có thể cấp cho 65534 máy chủ, Thực tế có mạng nhỏ chỉ có vài chục máy chủ thì sẽ lãng phí rất nhiều địa chỉ còn lại mà không ai dùng được . Để khắc phục vấn đề này và tận dụng tối đa địa chỉ được NIC phân, bắt đầu từ năm 1985 người ta nghĩ đến Địa chỉ mạng con.
Như vậy phân địa chỉ mạng con là mở rộng địa chỉ cho nhiều mạng trên cơ sở một địa chỉ mạng mà NIC phân cho, phù hợp với số lượng thực tế máy chủ có trên từng mạng.
b/ Phương pháp phân chia địa chỉ mạng con
Trước khi nghiên cứu phần này chúng ta cần phải hiểu qua một số khái niệm liên quan tới việc phân địa chỉ các mạng con.
1/ - Default Mask: (Giá trị trần địa chỉ mạng) được định nghĩa trước cho từng lớp địa chỉ A,B,C. Thực chất là giá trị thập phân cao nhất (khi tất cả 8 bit đều bằng 1) trong các Octet dành cho địa chỉ mạng - Net ID.

    Default Mask:

    Lớp A 255.0.0.0

    Lớp B 255.255.0.0

    Lớp C 255.255.255.0

2/ - Subnet Mask: ( giá trị trần của từng mạng con)

Subnet Mask là kết hợp của Default Mask với giá trị thập phân cao nhất của các bit lấy từ các Octet của địa chỉ máy chủ sang phần địa chỉ mạng để tạo địa chỉ mạng con.

Subnet Mask bao giờ cũng đi kèm với địa chỉ mạng tiêu chuẩn để cho người đọc biết địa chỉ mạng tiêu chuẩn này dùng cả cho 254 máy chủ hay chia ra thành các mạng con. Mặt khác nó còn giúp Router trong việc định tuyến cuộc gọi.

Nguyên tắc chung:

Lấy bớt một số bit của phần địa chỉ máy chủ để tạo địa chỉ mạng con.
Lấy đi bao nhiêu bit phụ thuộc vào số mạng con cần thiết (Subnet mask) mà nhà khai thác mạng quyết định sẽ tạo ra.
Vì địa chỉ lớp A và B đều đã hết, hơn nữa hiện tại mạng Internet của Tổng công ty do VDC quản lý đang được phân 8 địa chỉ mạng lớp C nên chúng ta sẽ nghiên cứu kỹ phân chia địa chỉ mạng con ở lớp C.
a/ Địa chỉ mạng con của địa chỉ lớp C
Class c:

Địa chỉ lớp C có 3 octet cho địa chỉ mạng và 1 octet cuối cho địa chỉ máy chủ vì vậy chỉ có 8 bit lý thuyết để tạo mạng con, thực tế nếu dùng 1 bit để mở mạng con và 7 bit cho địa chỉ máy chủ thì vẫn chỉ là một mạng và ngược lại 7 bit để cho mạng và 1 bit cho địa chỉ máy chủ thì một mạng chỉ được một máy, như vậy không logic, ít nhất phải dùng 2 bit để mở rộng địa chỉ và 2 bit cho địa chỉ máy chủ trên từng mạng. Do vậy trên thực tế chỉ dùng như bảng sau.
Default Mask của lớp C : 255.255.255.0
Như vậy một địa chỉ mạng ở lớp C chỉ có 5 trường hợp lựa chọn trên (Hay 5 Subnet Mask khác nhau), tuỳ từng trường hợp cụ thể để quyết định số mạng con.
1/ Trường hợp 1 - Hai mạng con
Subnet Mask 255.255.255.192.
Từ một địa chỉ tiêu chuẩn tạo được địa chỉ cho hai mạng con, mỗi một mạng có 62 máy chủ.
Sử dụng hai bit (bit 7 và 6) của phần địa chỉ máy chủ để tạo mạng con. Như vậy còn lại 6 bit để phân cho máy chủ.

a/ Tính địa chỉ mạng
Địa chỉ của mạng là giá trị của bit 7 và 6 lần lượt bằng 0 và 1. Trong trường hợp chia địa chỉ mạng con không bao giờ được dùng địa chỉ khi các bit đều bằng 0 hay bằng 1. Do vậy trường hợp 2 mạng con nói trên, địa chỉ mạng con sẽ là:
    Mạng con 1: Địa chỉ mạng xxx.xxx.xxx.64
    Mạng con 2: Địa chỉ mạng xxx.xxx.xxx.128

b/ Tính địa chỉ cho máy chủ cho mạng con 1

Chúng ta chỉ còn 6 bit cho địa chỉ máy chủ trên từng mạng.

Mỗi mạng còn lại 62 địa chỉ cho máy chủ.
Mạng 1: Từ xxx.xxx.xxx. 065 đến xxx.xxx.xxx.126
c/ Tính địa chỉ cho máy chủ cho mạng con 2
Tương tự như cách tính trên ta có

Mạng 2: Địa chỉ máy chủ trên mạng 2.
Từ xxx.xxx.xxx.129 đến xxx.xxx.xxx.190.
Tổng quát lại:

a/ Mạng con thứ nhất
* / Địa chỉ mạng con: xxx.xxx.xxx.064
* / Địa chỉ các máy chủ trên mạng con này từ.
            xxx.xxx.xxx. 065

            xxx.xxx.xxx. 066

            xxx.xxx.xxx. 067

            ..............

            đến xxx.xxx.xxx. 126
 b/ Mạng con thứ 2

*/ Địa chỉ mạng con: xxx.xxx.xxx. 128

*/ Địa chỉ các máy chủ trên mạng con này từ.

            xxx.xxx.xxx. 129

            xxx.xxx.xxx. 130

            .............

            đến xxx.xxx.xxx. 190

Địa chỉ máy chủ từ 1 đến 62 và từ 193 đến 254 và 127 ; 191 bị mất, nghĩa là mất 130 địa chỉ.
Ví dụ: Địa chỉ tiêu chuẩn lớp C là 196. 200. 123
Subnetmask 255.255.255.192
Từ địa chỉ này ta có 2 mạng con là:
* Mạng 1: Địa chỉ mạng 196.200.123.064

Địa chỉ Máy chủ trên mạng này.
Từ 196.200.123.065 đến 196. 200. 123. 126.
* Mạng 2: Địa chỉ mạng 196.200.123.128
Địa chỉ máy chủ trên mạng này.
Từ 196.200.123.129 đến 196.200.123. 190

2/ Trường hợp 2 - Sáu mạng con
Subnetmask: 255.255.255.224.
Tạo được 6 mạng con, mỗi mạng con có 30 máy chủ
 a/ Tính địa chỉ Mạng con
Trưòng hợp này sử dụng 3 bit ( bit 7,6,5) của địa chỉ máy chủ (Octet 4) bổ sung cho địa chỉ mạng tiêu chuẩn để tạo mạng con.

 Bỏ trường hợp các bit đều bằng 0 hay 1, chúng ta còn lại địa chỉ của 6 mạng con sau.

            xxx.xxx.xxx.32 ; Mạng con 1

            xxx.xxx.xxx.64 ; Mạng con 2

            xxx.xxx.xxx.96 ; Mạng con 3

            xxx.xxx.xxx.128 ; Mạng con 4

            xxx.xxx.xxx.160 ; Mạng con 5

            xxx.xxx.xxx.192 ; Mạng con 6

b / Tính địa chỉ máy chủ cho mạng con 1

Như vậy địa chỉ máy chủ của mạng con 1 sẽ từ 33 đến 62.
Tương tự như cách tính đã nêu trên chúng ta có thể tính được cho tất cả các trường hợp còn lại (xem bảng 1) và được tổng hợp lại như sau.
1/ Trường hợp 1: Subnetmask 255.255.255.192
  • 2 mạng con.
  • 62 máy chủ mỗi mạng.
2/ Trường hợp 2: Subnetmask 255.255.255.224
  • 6 mạng con.
  • 30 máy chủ mỗi mạng.
3/ Trường hợp 3: Subnetmask 255.255.255.240
  • 14 mạng con.
  • 14 máy chủ mỗi mạng
4/ Trường hợp 4: Subnetmask 255.255.255.248
  • 30 mạng con.
  • 6 máy chủ mỗi mạng.
5/ Trường hợp 5: Subnetmask 255.255.255.252.
  • 62 mạng con.
  • 2 máy chủ mỗi mạng.

Xem bảng tính địa chỉ cho các trường hợp trên

Ví dụ: Địa chỉ mạng lớp C mà NIC phân cho VDC là 203.162.4.0. Trên địa chỉ này phân ra 2 mạng con thì địa chỉ sẽ là.
Mạng 1: Địa chỉ mạng 203.162.4.64.
Địa chỉ máy chủ trên mạng đó từ 203.162.4.65 đến 203.162.4.126
Mạng 2: Địa chỉ mạng 203.162.4.128.
Địa chỉ máy chủ trên mạng đó từ 203.162.4.129 đến 203.162.4.190

b/ Địa chỉ mạng con từ địa chỉ lớp B

Default Mask của lớp B là 255.255.0.0
Class B:

Net ID - Khi phân địa chỉ mạng con sử dụng Octet 3
Địa chỉ lớp B có 2 Octet thứ 3 và thứ 4 dành cho địa chỉ máy chủ nên về nguyên lý có thể lấy được cả 16 bit để tạo địa chỉ mạng . Nếu từ một địa chỉ mạng được NIC phân chúng ta định mở rộng lên 254 mạng và mỗi mạng sẽ có 254 máy chủ. Trường hợp này sẽ lấy hết 8 bit của octet thứ 3 bổ sung vào địa chỉ mạng và chỉ còn lại 8 bit thực tế cho địa chỉ máy chủ, theo cách tính số thập phân 2n giá trị của 8 bit như đã nêu ở phần lớp C, chúng ta sẽ có:

Bảng phân chia địa chỉ mạng con ở lớp B
Địa chỉ lớp B về lý thuyết có 2 octet đầu cho địa chỉ mạng, khi chia mạng con theo phương pháp sử dụng tất cả 8 bit trong 3 octet cho địa chỉ mạng, trên thực tương ứng với lớp C, như vậy về địa chỉ NIC phân là lớp B nhưng cách tổ chức địa chỉ lại ở lớp C ( Xem Bảng phụ lục phân địa chỉ mạng con ở lớp B ).
Trong bảng này cần chú ý ở cột 6 - khoảng cách địa chỉ giữa 2 mạng con giới thiệu cho chúng ta cách tính địa chỉ các mạng con, địa chỉ các máy chủ trên từng mạng liên quan tới cột 7,8,9,10.
Ví dụ: Trường hợp Subnetmask 255.255.240.0 là rõ nhất.
Chia được 14 mạng con, mỗi mạng con có 4094 máy chủ, khoảng cách địa chỉ giữa hai mạng con là 16.0 có nghĩa.
  • Mạng con 1 có địa chỉ là xxx.yyy.16.0 ; Mạng con 2 sẽ có địa chỉ là xxx.yyy.16.0 + 16.0 = xxx.yyy.32.0 cứ tiếp tục như vậy ta sẽ tính được địa chỉ của từng mạng con và mạng con 14 là xxx.yyy. 224.0.
  • Địa chỉ máy chủ đầu tiên trên mạng con 1 là xxx.yyy.16.1 ; địa chỉ máy chủ đầu tiên trên mạng con 2 sẽ là xxx.yyy.16.1 + 16.0 = xxx.yyy.32.1. Tiếp tục như vậy ta sẽ tính địa chỉ được máy chủ đầu tiên của mạng con 14 là xxx.yyy.224.1 v.v..
  • Tương tự chúng ta biết được địa chỉ cuối cùng của các máy chủ trên một mạng con.
Theo hướng dẫn này chúng ta sẽ tìm được các trường hợp khác.
Tóm lại chia địa chỉ mạng con cũng phải theo một quy luật nhất định ngoài ý muốn của chúng ta, khi chia mạng con cũng bị mất khá nhiều địa chỉ, mất ít hay nhiều tuỳ thuộc vào các trường hợp cụ thể.
Bảng phân chia địa chỉ mạng con ở lớp B:

Nguồn: Internet