Thứ Sáu, 21 tháng 1, 2011

Tết đến, Cảnh giác với PHARMING

Khoa học & Công nghệ
Jan 21, 2011 4:18 PMPublicPageviews 8 0
Cảnh báo về bảo mật thông tin

Thông báo quan trọng dành cho khách hàng sử dụng

Dịch vụ Internet Banking

Gần đây, khách hàng đã thường nhận được  thư điện tử giả mạo chỉ dẫn khách hàng tới một trang web ngân hàng giả.
Thư điện tử đó yêu cầu khách hàng của ANZ xác nhận các chi tiết tài khoản của họ. Khi nhấp chuột vào đường dẫn trong thư điện tử đó, một trang web đăng nhập ANZ Internet Banking giả xuất hiện và thông tin tài khoản có thể bị đánh cắp nếu bạn nhập các chi tiết vào đó.
Trong bất kỳ tình huống nào, bạn cũng không nên nhấp chuột vào đường dẫn đó, không trả lời thư điện tử đó hoặc cung cấp bất kỳ thông tin nào được yêu cầu.
Bạn hãy luôn luôn đăng nhập vào dịch vụ ANZ Internet Banking bằng cách gõ www.anz.com/vietnam vào thanh địa chỉ, thay vì đi theo đường dẫn tới trang web của ANZ. Không được làm theo bất kỳ hướng dẫn nào khác từ bất kỳ thư điện tử nào gửi đến cho bạn.
Những khách hàng nào đã nhận được thư điện tử đó và nghi ngại có thể liên hệ với Trung tâm Hỗ trợ Internet Banking ngân hàng ANZ theo 1800 1559 (Miễn phí với cuộc gọi trong nước), +84 4 38258190 Số máy lẻ 2163.
Đọc tài liệu Bảo vệ thông tin bảo mật qua mạng Internet.
Ví dụ về thư điện tử giả mạo:
Ví dụ về thư điện tử giả mạo

Thứ Hai, 17 tháng 1, 2011

Truy tìm hacker

Khoa học & Công nghệ
Jan 17, 2011 9:15 PMPublicPageviews 5 0
 
Thông tin từ Công ty cổ phần An ninh An toàn thông tin CMC (CMC InfoSec) ngày 17/1 cho biết, đơn vị này đã phát hiện ra một máy chủ điều khiển tấn công báo điện tử VietNamNet vào ngày 7/1.
 
 
Theo ông Minh, mục tiêu được ưu tiên cho VNN lúc này là cố gắng bảo đảm hệ thống vận hành ổn định. (Ảnh: Vietnam+)
Theo CMC InfoSec, ngày 14/1, đơn vị này đã nhận được thông báo khẩn của Trung tâm ứng cứu khẩn cấp máy tính Việt Nam về việc mẫu mã độc của Botnet [mạng máy tính cá nhân Windows đã bị tiếp quản bởi các chương trình phần mềm độc hại - PV] lớn tại Việt nam có khả năng tấn công vào nhiều mục tiêu khác nhau.

Sau khi phân tích, CMC InfoSec đã tìm thấy mã độc mang tên Trojan.Oxdex.vnn được đặt trong file GoogleCrashHandler.exe, được thiết kế với mục đích tấn công VietNamNet.


“Dựa vào phân tích, có thể khẳng định Trojan.Oxdex.vnn được thiết kế với mục đích chính là tấn công từ chối dịch vụ HTTP. Mã độc này được thiết kế khá đơn giản và lập trình bởi lập trình viên thiếu kinh nghiệm,” báo cáo của CMC InfoSec nói.


Ngoài ra, báo cáo của CMC InfoSec cũng cho biết, lần theo dấu vết, đơn vị này đã tìm ra Oxdex.com là tên miền của máy chủ điều khiển mạng máy tính ma, hiện đã không phân giải được địa chỉ.


Tuy nhiên, CMC InfoSec phát hiện Oxdex.com có IP 178.162.225.254, thuộc AS28753 quản lý bởi ISP Netdirekt – một Công ty của nước Đức. Đây cũng là đơn vị mang nhiều tai tiếng về dịch vụ đặt máy chủ rất nhiều mã độc, các trang lừa đảo và rác.


CMC InfoSec đã cập nhật mẫu phát hiện trojan Trojan.Oxdex.vnn. Người sử dụng có thể loại bỏ malware trên bằng phần mềm diệt virus CMC Internet Security/CMC Antivirus.


Trao đổi với phóng viên 
Vietnam+, ông Bùi Bình Minh, trợ lý Tổng Biên tập VietNamNet cho hay, hiện tại website này hoạt động trong tình trạng bình thường. Tuy nhiên, hacker vẫn tiếp tục tấn công từ chối dịch vụ vào hệ thống máy chủ của báo, nhưng lưu lượng giảm đi còn khoảng 50% so với trước.

Khi được hỏi, liệu VietNamNet có nhờ phía an ninh mạng của Đức can thiệp, tìm ra thủ phạm, ông Minh cho hay, trước lúc phát hiện ra, máy chủ này đã không còn hoạt động. Ngoài ra, dải địa chỉ tấn công VietNamNet tương đối phức tạp, có thể ở Đức, Mỹ… và rất khó để tìm ra thủ phạm.


Bởi vậy, mục tiêu được ưu tiên cho VietNamNet lúc này là cố gắng bảo đảm hệ thống vận hành ổn định.


Như vậy, đến thời điểm hiện tại VietNamNet đã bốn lần bị hacker “sờ gáy” nhưng vẫn chưa tìm ra được thủ phạm. Cơ quan chức năng vẫn đang tiếp tục điều tra.
Theo Trung Hiền (Vietnam+)

Chủ Nhật, 12 tháng 12, 2010

Diễn đàn VUI mà HỌC, HỌC mà VUI

NÀO CÙNG VÀO DIỄN ĐÀN ĐÊ!!!Bắt đầu từ hôm nay, Vitayson's Blog khai mạc diễn đàn: CÙNG VUI CHƠI, CÙNG HỌC HỎI. Mời tất cả bà con truy cập vào đây cùng trao đổi, buôn dưa lê mọi thứ...để cùng vui với nhau, cùng học hỏi! Ai có thắc mắc gì trong học tập...kể cả trong cuộc sống vào đây tâm sự với nhau, giải đáp cho nhau.
(Ai có điều khó nói chung chỉ muốn trao đổi riêng với VTS thì xin post vào Private comment - Lời bình riêng nhé)
Nội qui đơn giản: Vui và Học! Cấm SPAM!
Nào xin mới  các bạn!

      

Thứ Tư, 10 tháng 11, 2010

THANH TOÁN ĐIỆN TỬ

Khoa học & Công nghệ
Nov 10, 2010 8:01 AMPublicPageviews 2 0
 

Viễn thông lấn sân ngân hàng

Sau khi làm mưa làm gió trên thị trường di động, các hãng viễn thông bắt đầu lấn sân sang lĩnh vực ngân hàng. Nhiều dịch vụ ví điện tử phục vụ các hoạt động thanh toán nhanh gọn do nhà mạng cung cấp đã xuất hiện tại VN.

Không còn đơn thuần phục vụ việc thông tin, liên lạc, các hãng viễn thông đang có xu hướng biến chiếc điện thoại di động thành chiếc ví điện tử, giúp khách hàng thanh toán, chuyển tiền một cách thuận tiện nhất. Mới đây, hãng viễn thông di động VinaPhone đã phối hợp với một số ngân hàng lớn như Vietcombank, Vietinbank, ABBank... ra mắt ví điện tử có tên MoMo. Đây là hãng viễn thông đầu tiên trong số 8 mạng di động ở Việt Nam ra mắt loại hình dịch vụ ví điện tử.
Dịch vụ này cho phép khách hàng sử dụng các tiện ích như thanh toán tiền cước, điện nước, mua vé máy bay, hay thanh toán khi mua hàng hóa, dịch vụ. Muốn sử dụng ví điện tử MoMo khách hàng chỉ cần dùng một chiếc sim di động thiết kế riêng của VinaPhone nối với một tài khoản ngân hàng.
Người sử dụng không cần mang theo tiền mặt, các hoạt động thanh toán được thực hiện qua di động tại bất cứ nơi nào có sóng và là điểm kết nối của VinaPhone. Chiếc sim này được tích hợp với tài khoản của ngân hàng, khách hàng có thể chuyển tiền trực tiếp từ tài khoản ngân hàng vào ví và ngược lại... với giao dịch tối đa lên tới 20 triệu mỗi ngày.

VinaPhone đặt tham vọng sẽ có khoảng 1 triệu khách hàng sử dụng ví điện tử MoMo trong năm 2011. Ảnh minh họa.

Ông Hồ Đức Thắng, Phó giám đốc VinaPhone cho biết ví điện tử MoMo này sẽ kết nối với trên 15.000 đại lý các loại hàng hóa, dịch vụ thanh toán trực tuyến. Ngoài ra, các trường hợp con cái muốn chuyển tiền cho bố mẹ ở quê, hoặc bố mẹ muốn gửi tiền cho con đang học đại học... chỉ cần làm thao tác bắn tiền từ di động đến di động. "Đây là dịch vụ cộng thêm của ngân hàng và phục vụ các giao dịch nhỏ lẻ với mong muốn tạo điều kiện thuận lợi nhất cho người sử dụng di động", ông Thắng nói.
Mức cước thuê bao dành cho dịch vụ ví điện tử MoMo là 5.000 đồng mỗi tháng, mỗi một giao dịch khách hàng sẽ phải trả thêm 200 đồng. VinaPhone cho biết họ kỳ vọng dịch vụ ví điện tử MoMo sẽ thu hút được khoảng 1 triệu khách hàng trong năm 2011.
Trước đó, Viettel cũng Viettel và Ngân hàng Quân đội (MB) cũng cho ra mắt dịch vụ BankPlus cho phép khách hàng có thể thực hiện trực tiếp các giao dịch ngân hàng trên điện thoại di động. BankPlus cung cấp tính năng tra cứu số dư tài khoản, tra cứu lịch sử giao dịch, nộp hoặc rút tiền từ tài khoản, chuyển tiền trong hệ thống MB, chuyển tiền người nhận bằng chứng minh nhân dân, ví điện tử, thanh toán hóa đơn cho thuê bao di động trả sau, hóa đơn Homephone, hóa đơn ADSL, nạp tiền cho thuê bao di động trả trước của Viettel (cho chính chủ tài khoản hoặc cho người khác); thanh toán các loại hóa đơn khác,… Bankplus được cung cấp tại gần 1.000 điểm giao dịch của Viettel trên toàn quốc và 100 điểm giao dịch của MB.
Lãnh đạo Viettel từng đặt tham vọng khách hàng ra đường không cần mang ví tiền mà chỉ cần cầm theo chiếc di động. Chú dế sẽ làm nhiệm vụ thanh toán tiền nước uống, đồ ăn và các dịch vụ mua sắm của khách hàng, thậm chí là kiểm tra độ an toàn của bình gas ở nhà, và kiêm cả nhiệm vụ vệ sĩ khi chủ nhà đi vắng. "Tất nhiên, để triển khai dịch vụ này đòi hỏi sự tích hợp của hệ thống thanh toán, thói quen của người tiêu dùng và các dịch vụ khác cộng thêm...", một lãnh đạo Viettel nói.
Giới chuyên gia cho biết ví điện tử xuất hiện ở Việt Nam từ khá sớm. Nó giống như một người giữ tiền trung gian đứng ra thay mặt ngân hàng thực hiện thanh toán cho người sử dụng trong các hoạt động thương mại điện tử. Hàng loạt dịch vụ ví điện tử đang xuất hiện trên thị trường VN như Netcash của Công ty PayNet, Vcash của Công ty VinaPay, VnMart của Công ty cổ phần Giải pháp thanh toán Việt Nam (Vnpay), Smartlink của Công ty cổ phần dịch vụ thẻ Smartlink...
Mỗi dịch vụ ví đều được các doanh nghiệp cung cấp quảng cáo những tính năng hỗ trợ thanh toán tiện lợi khác nhau. Mỗi ví cũng khác nhau ở số lượng website thương mại điện tử và các sản phẩm mà nó cho phép thanh toán. Một đại diện ngân hàng Vietcombank cho rằng phương thức chuyển tiền từ di động tới thuê bao di động không phải là một dịch vụ cạnh tranh với ngân hàng. Đây đơn thuần là dịch vụ giá trị gia tăng, cộng thêm cho các phương thức thanh toán của ngân hàng - khi mà các giao nhỏ lẻ mà hệ thống ngân hàng chưa với tới.
Nguồn tin từ Công ty PayNet cho rằng người dùng hiện nay sử dụng ví điện tử để thanh toán chủ yếu trong thương mại điện tử, thanh toán hóa đơn, mua vé tàu xe, máy bay... sắp tới sẽ áp dụng trong thanh toán chính phủ điện tử. Trong tương lai sẽ có thể áp dụng để thanh toán ở ngoài đời như vé xe buýt, quán ăn, cà phê... Giao dịch điện tử đem lại rất nhiều lợi ích cho người tiêu dùng vì sẽ xóa bỏ khá nhiều khâu trung gian như đi lại, ký giấy tờ, rút tiền mặt... và tiết kiệm thời gian, đồng thời đảm bảo an toàn cho người dùng.
Ngoài ra, đối với những người dùng không có tài khoản ngân hàng như học sinh, người chưa đủ tuổi để mở tài khoản thì cha mẹ có thể mở cho con mình một tài khoản ví điện tử. Khi muốn cho con mặt hàng nào đó, cha mẹ chỉ việc chuyển số tiền cần thiết từ tài khoản ngân hàng của mình sang ví điện tử của con để thanh toán. Các ví điện tử còn có thể chuyển tiền giữa các tài khoản với nhau, giúp những người dùng có thể tặng tiền, cho mượn tiền, thanh toán giúp... dễ dàng. Từ đó tạo nên một cộng đồng thanh toán không tiền mặt.
Giới chuyên gia cho rằng ở nhiều nước trên thế giới các hoạt động thanh toán chủ yếu thông qua thẻ, ví điện tử được coi là công cụ khá hữu hiệu và rất phát triển. Tuy nhiên tại Việt Nam, văn hóa người tiêu dùng chủ yếu vẫn thanh toán bằng tiền mặt, số người dùng ví điện tử còn rất ít bởi họ không có được nhiều thông tin về loại hình dịch vụ này. Bên cạnh đó, điểm hạn chế lớn nhất của ví điện tử này là sự tích hợp bởi hệ thống các cửa hàng, đại lý kinh doanh và bày bán hàng hóa, dịch vụ.
Một chuyên gia cho rằng hiện nay rất nhiều ví điện tử có mặt trên thị trường nhưng không liên thông với nhau nên làm khó người sử dụng. Giống như trước kia chưa có sự liên kết giữa các ngân hàng làm việc rút tiền từ các máy ATM rất khó khăn. Do vậy, để chiếc ví điện tử này thực sự trở thành phương tiện thanh toán hữu ích cho người tiêu dùng đòi hỏi nhà mạng không chỉ bắt tay tốt với ngân hàng, mở rộng vùng phủ sóng mà còn phải mở rộng các điểm giao dịch, liên thông với các dịch vụ hàng hóa...
Hồng Anh

Chủ Nhật, 24 tháng 10, 2010

Đệ nhất MC!!!


Oct 24, 2010 7:03 AMPublicPageviews 4 0
Mời các bạn nghe "đệ nhất MC LẠI VĂN SÂM"
đang bôi bác Tiếng Anh trong Liên hoan Phim quốc tế
Việt Nam 2010

Ngô Ngạn Tổ: Good evening Ladies and Gentlemen. I just want to say what a pleasure and honor being to take place, take part in the first Vietnam international film festival in this beautiful city of Hanoi on its 1000 birthday.
Lại Văn Sâm: Vâng. Ngô Ngạn Tổ có gửi tới lời chào tới tất cả những người biết anh, hâm mộ anh qua những tiếng reo hò khi anh xuất hiện. Cảm ơn tất cả mọi người đã chào đón anh ở thủ đô Hà Nội. Nơi mà anh cũng biết rất nhiều qua báo đài.
Ngô Ngạn Tổ: I think this week has been full of new and interesting challenges for everyone, but what true is a passion of films is very much alive here.
Lại Văn Sâm: À...ơ...Và anh ấy... cũng rất phấn khởi khi được mời tới dự liên hoan phim quốc tế lần đâu tiên tổ chức tại Việt Nam và anh ấy tin tưởng rằng với đà này thì sự phát triển của điện ảnh Việt Nam.. sẽ có tương lai rất sáng.
Ngô Ngạn Tổ: I think the goal of any film festival is not only to bring world cinema to local audiences but also bring local cinema to world audiences and I think that’s certainly’s been achieved here.
(..... có một ai đó đang cố ngăn cản sự quá đà của Chú Sâm ... “chúng tôi biết rằng”..nhưng bất lực trước khí thế của chú ta )
Lại Văn Sâm: Và anh nói rằng ở Hà Nội trong những ngày qua thì anh cũng đã được chứng kiến những dòng người đổ đến các rạp để xem các phim trình chiếu trong liên hoan phim quốc tế như thế nào. Xin cảm ơn. Then kiu ve ri mớt. Then kiu ve ri mớt.
Ngô Ngạn Tổ: Thank you.
Theo kịch bản thì đã hết nhưng ai ngờ anh Ngô muốn nói thêm. Chú Sâm ta hoảng hồn liền hỏi:
Lại Văn Sâm: À, yeah. du oan tu xay xăm xinh mo? (You want to say something more?)

Ngô Ngạn Tổ: Last one....

Nhất quyết muốn chứng tỏ trình độ tiếng Anh của mình Chú Sâm ta lại chặn họng Ngô Ngạn Tổ...
Lại Văn Sâm: ô kê, ô kê, bờ lít, du  oen câm ,  oen câm (OK! OK! Please, You welcome, welcome!)

Tăng Thanh Hà không thể nhịn cười nổi!
Ngô Ngạn Tổ: I just want to say that I wish the best of luck for the future of the Vietnam international film festival and I hope I will have a opportunity to come back again, thank you.

Do phần này không được Ngô Ngạn Tổ viết sẵn ra giấy (bằng Tiêng Anh) Chú Lại ta bối rối kêu cứu cô phiên dịch...
Lại Văn Sâm: Ly à. Ly ơi...
Ly: Vâng, thưa quý vị! Anh đã chúc cho liên hoan phim một thành công tốt đẹp nhất.
Nghe nói Chú Lại Văn Sâm là cây trụ cột của làng MC  Việt Nam và đã đạt được nhiều giải thưởng trong ngành. Chắc  là Chú ta có "Chứng chỉ Tiếng Anh loại C..."
.Khâm phục Tăng Thanh Hà nín cười giỏi thiệt !

Xin mời nghe trực tiếp...


Thứ Sáu, 22 tháng 10, 2010

Chính xác!



Sep 22, 2010 9:53 AMPublicPageviews 1 0




 
Bên Hồ Gươm, Cụ Rùa nổi lên chào đón 1000 năm Thăng Long...

Đoàn khách nước ngoài được mời dự đại lễ mừng rỡ, tíu tít chụp ảnh. Hướng dẫn viên du lịch cao giọng giới thiệu:

- Cụ Rùa này đã sống thọ 409 năm 1 tháng lẻ 3 ngày!
Du khách thắc mắc:
- Làm sao anh biết chính xác đến thê?
- À, có gì đâu, ngày 19/08/2001, Cụ cũng nổi lên, hôm đó Giáo sư "chuyên rùa" Hà Đình Đức cũng có mặt và Ông đã tuyên bố với mọi người là Cụ Rùa lúc ấy đã 400 tuổi!

Thứ Năm, 23 tháng 9, 2010

ĐỊA CHỈ IP


Sep 23, 2010 7:26 PMPublicPageviews 1 0
Địa chỉ IP là gì?

IP là chữ viết tắt của Internet Protocol (giao thức Internet). Mỗi gói tin IP sẽ bao gồm một địa chỉ IP nguồn và một địa chỉ IP đích. Tất nhiên, hệ thống "số nhà" trên Internet phức tạp và thú vị hơn nhiều so với nhà cửa trong thực tế.

IP tĩnh và động

Mỗi thiết bị trong một mạng IP được chỉ định bằng một địa chỉ vĩnh viễn (IP tĩnh) bởi nhà quản trị mạng hoặc một địa chỉ tạm thời, có thể thay đổi (IP động) thông qua công cụ DHCP (giao thức cấu hình host động sẽ tự động xác định địa chỉ IP tạm thời) ngay trên Windows Server.

Các router (bộ định tuyến), firewall (tường lửa) và máy chủ proxy dùng địa chỉ IP tĩnh còn máy khách có thể dùng IP tĩnh hoặc động.

Thường thì các nhà cung cấp Internet DSL hay cáp sẽ chỉ định loại IP động cho bạn. Trong các router và hệ điều hành, cấu hình mặc định cho các máy khách cũng là IP động. Loại địa chỉ này hay được dùng cho máy tính xách tay kết nối Wi-Fi, PC truy cập bằng Dial-up hay mạng riêng.

Phân phối địa chỉ IP


Trên thế giới có hàng chục triệu máy chủ và hàng trăm nghìn mạng khác nhau. Do đó, để quản lý sao cho địa chỉ IP không trùng nhau, một tổ chức mang tên Network Information Center (NIC) ra đời với nhiệm vụ phân phối Net ID (địa chỉ mạng) cho các quốc gia. Ở mỗi nước lại có một trung tâm quản lý Internet làm công việc phân phối Host ID (địa chỉ máy chủ). Tại Việt Nam, nếu muốn thiết lập một hệ thống máy chủ, khách hàng có thể tới VNNIC để đăng ký IP tĩnh với mức phí từ 1 đến 285 triệu đồng, tùy theo quy mô sử dụng. (Xem chi tiết tại đây)

Cấu trúc và phân lớp địa chỉ IP

Các địa chỉ này được viết dưới dạng một tập hợp bộ số (octet) ngăn cách nhau bằng dấu chấm (.). Nếu biết địa chỉ IP của một website, bạn có thể nhập vào trình duyệt để mở mà không cần viết tên miền. Hiện nay có 2 phiên bản là IPv4 và IPv6, trong đó IPv4 là chuẩn đang dùng rộng rãi với độ dài 32 bit. Nhưng trong tương lai, khi quy mô của mạng mở rộng, người ta có thể phải dùng đến IPv6 là chuẩn 128 bit.

Xét trong phiên bản IPv4, địa chỉ 32 bit này được chia làm 4 bộ, mỗi bộ 8 bit (viết theo dạng nhị phân gồm các số 0 và 1) được đếm thứ tự từ trái sang phải. Bạn đọc có thể dùng
trang web này để chuyển đổi giữa hai hệ đếm.Nếu viết theo dạng thập phân (thường dùng để dễ nhận biết), địa chỉ IP có công thức là xxx.xxx.xxx.xxx, trong đó x là số thập phân từ 0 đến 9. Tuy vậy, khi 0 đứng đầu mỗi bộ số, bạn có thể bỏ đi, ví dụ 123.043.010.002 được viết thành 123.43.10.2.

Cấu trúc trên thể hiện 3 thành phần chính là

Class bitNet IDHost IDPhần 1 là bit nhận dạng lớp, dùng để xác định địa chỉ đang ở lớp nào.

Địa chỉ IP được phân thành 5 lớp A, B, C, D, E, trong đó lớp D, E chưa dùng tới. Ta xét 3 lớp đầu với hệ đếm nhị phân.
Lớp A: Như vậy, bit nhận dạng thứ nhất của lớp A bằng 0, 7 bit còn lại dành cho địa chỉ mạng Net ID, phần tiếp theo dành cho địa chỉ máy chủ Host ID. Vùng số của mạng được gọi là tiền tố mạng (network prefix). Lớp A áp dụng khi địa chỉ network ít và địa chỉ máy chủ nhiều. Tính ra, ta được tối đa 126 mạng và mỗi mạng có thể hỗ trợ tối đa 167.777.214 máy chủ. Vùng địa chỉ lý thuyết tính theo hệ đếm thập phân từ 0.0.0.0 đến 127.0.0.0 (thực tế ta không dùng các địa chỉ đều có giá trị bit bằng 0 hay 1).
Lớp B:Bit nhận dạng của lớp B là 10, 14 bit còn lại dành cho Net ID. Lớp này áp dụng khi địa chỉ mạng và địa chỉ máy chủ ở mức vừa. Tính ra, ta được tối đa 16.382 mạng, mỗi mạng phục vụ tối đa 65.534 máy chủ. Vùng địa chỉ lý thuyết từ 128.0.0.0 đến 191.255.0.0.Lớp C:
Bit nhận dạng của lớp C là 110, 21 bit còn lại dành cho Net ID. Lớp này áp dụng khi địa chỉ mạng nhiều và địa chỉ máy chủ ít. Tính ra, ta được tối đa 2.097.150 mạng, mỗi mạng phục vụ tối đa 254 máy chủ. Vùng địa chỉ lý thuyết từ 192.0.0.0 đến 223.255.255.0.
Địa chỉ IP cho mạng riêng
Trên thực tế, khi phạm vi hoạt động mạng mở rộng, nếu công ty phải đi xin thêm địa chỉ thì sẽ tốn kém. Hơn nữa, có khi một mạng nhỏ chỉ gồm vài chục máy chủ và điều này gây lãng phí rất nhiều địa chỉ còn lại. Do đó, người ta nghĩ đến mạng riêng (private network) để tận dụng nguồn tài nguyên. Các thiết bị trong một mạng nội bộ sẽ dùng địa chỉ IP riêng mà không kết nối trực tiếp với Internet.

Các mạng riêng này trở nên phổ biến với thiết kế LAN vì nhiều tổ chức thấy rằng họ không cần địa chỉ IP cố định trên toàn cầu cho mỗi máy tính, máy in, máy fax... Các router trên Internet thường được định cấu hình để từ chối kết nối dùng địa chỉ IP riêng. Chính sự "cách ly" này đã khiến mạng riêng trở thành hình thức bảo mật cơ bản vì người ngoài không kết nối trực tiếp được với máy trong network đó. Cũng vậy, do các mạng riêng này không thể kết nối trực tiếp với nhau nên chúng có thể dùng một vùng địa chỉ IP con giống nhau mà không gây xung đột gì.

Cách phân chia địa chỉ mạng con như sau:

Về bản chất, ta sẽ tận dùng các bộ số không dùng đến của địa chỉ máy chủ để mở rộng quy mô cho mạng. Subnet Mask (giá trị trần của từng mạng con) cho phép bạn chuyển đổi một mạng lớp A, B hay C thành nhiều mạng nhỏ, tùy theo nhu cầu sử dụng. Với mỗi giá trị trần này, bạn có thể tạo ra một tiền tố mạng mở rộng để thêm bit từ số máy chủ vào tiền tố mạng. Việc phân chia này sẽ dễ hiểu hơn khi bạn dùng hệ đếm nhị phân.

- Các bit được đánh số 1 nếu bit tương ứng trong địa chỉ IP là một phần của tiền tố mạng mở rộng.

- Các bit được đánh số 0 nếu bit là một phần của số máy chủ.

Ví dụ tiền tố mạng lớp B luôn bao gồm 2 bộ số đầu của địa chỉ IP, nhưng tiền tố mạng mở rộng của lớp B lại dùng cả bộ số thứ 3.

Ví dụ 1: Nếu có địa chỉ IP lớp B là 129.10.0.0 và bạn muốn dùng cả bộ số thứ 3 làm một phần của tiền tố mạng mở rộng thay cho số máy chủ, bạn phải xác định một giá trị trần của mạng con là: 11111111.11111111.11111111.00000000 (255.255.255.0). Như vậy, giá trị trần này chuyển địa chỉ của lớp B sang địa chỉ lớp C, nơi số máy chủ chỉ gồm bộ số thứ 4. Ký hiệu /24 thể hiện bạn đã dùng 24 bit đầu để làm tiền tố mạng mở rộng.

Ví dụ 2: Nếu bạn chỉ muốn dùng một phần của bộ số thứ 3 cho tiền tố mạng mở rộng, hãy xác định giá trị trần của địa chỉ mạng con là 11111111.11111111.11111000.00000000 (255.255.248.0), trong đó chỉ có 5 bit của bộ số thứ 3 được đưa vào tiền tố mạng mở rộng. Lúc này ta có ký hiệu /21.

Xác định địa chỉ để sử dụng với giá trị trần của mạng con

Địa chỉ cho lớp C

Đối với một mạng có từ 2 đến 254 máy chủ, bộ số thứ 4 sẽ được dùng đến, bắt đầu từ 0. Ví dụ, mạng con 8 máy chủ (/29) sẽ có vùng địa chỉ như sau:

Mạng con /29 (255.255.255.248)Vùng địa chỉ192.168.0.0192.168.0.0 - 192.168.0.7192.168.0.8192.168.0.8 - 192.168.0.15192.168.0.16192.168.0.16 - 192.168.0.31......192.168.0.248192.168.0.248 -192.168.0.255Chú ý: địa chỉ đầu tiên và cuối cùng của mạng con được giữ lại. Bạn không dùng được 192.168.0.0 hay 192.168.0.7.

Nói tóm lại, các vùng địa chỉ sau được chỉ định cho mạng riêng:
  • 10.0.0.0 - 10.255.255.255 (lớp A)
  • 172.16.0.0 - 172.31.255.255 (lớp B)
  • 192.168.0.0 - 192.168.255.255 (lớp C)
Thiết lập và xem địa chỉ IP trên máy tính
Khi xây dựng một mạng nội bộ gồm máy chủ và máy khách, bạn sẽ phải vào hệ thống để lập địa chỉ IP. Nhấn chuột phải vào biểu tượng My network places, chọn Properties. Tiếp tục nhấp chuột phải vào biểu tượng Local Area Connection > Properties > chọn Internet Protocol (TCP/IP) > Properties.
Bạn có thể thiết lập IP tự động hoặc bằng tay. Ảnh chụp màn hìnhMuốn xem địa chỉ này, bạn vào menu Start > All Programs > Accessories > Command Prompt. Khi màn hình Dos hiện ra, gõ ngay vào vị trí con trỏ chữ "ipconfig". Cách khác: Start > Run > gõ ipconfig > OK.

Khi một thiết bị nào đó trên network riêng cần liên hệ với các mạng khác, người dùng phải đảm bảo mạng ngoài có dùng địa chỉ IP thực để các router chấp nhận kết nối. Thường thì "cánh cổng" router này chính là thiết bị dịch địa chỉ mạng (NAT - network address translation) hoặc công đoạn đó được thực hiện nhờ một máy chủ
proxy.

Thứ Sáu, 17 tháng 9, 2010

Mã Hamming

Tìm hiểu về mã tự sửa sai HAMMING

Sep 17, 2010 7:56 AMPublicPageviews 2 1
Giao thức TCP/IP có tính năng thực hiện việc phát hiện sai và tự sửa sai các bit truyền đi trong một gói tin (Error detection & correction). Một trong các biện pháp thực hiện tính năng đó là sử dụng các mã phát hiện sai hay tự sửa sai.
VTS sưu tầm giúp các bạn tự tìm hiểu về mã Hamming, một mã tự sửa sai cho đến nay rất phổ biến và được xem là hiệu quả nhất.

Mã Hamming

Trong viễn thông (telecommunication), mã Hamming là một mã sửa lỗi tuyến tính (linear error-correcting code), được đặt tên theo tên của người phát minh ra nó, Richard Hamming. Mã Hamming có thể phát hiện một bit hoặc hai bit bị lỗi (single and double-bit errors). Mã Hamming còn có thể sửa các lỗi do một bit bị sai gây ra. Ngược lại với mã của ông, mã chẵn lẻ (parity code) đơn giản vừa không có khả năng phát hiện các lỗi khi 2 bit cùng một lúc bị hoán vị (0 thành 1 và ngược lại), vừa không thể giúp để sửa được các lỗi mà nó phát hiện thấy.

 Lịch sử

Trong những năm của thập niên kỷ 1940, Hamming làm việc tại Bell Labs trên máy tính Bell Model V, một máy điện cơ (electromechanical) dùng rơ-le (relay-based), với tốc độ rất chậm, mấy giây đồng hồ một chu kỳ máy. Nhập liệu được cho vào máy bằng những cái  thẻ đục lỗ (punch cards), và hầu như máy luôn luôn gây lỗi trong khi đọc. Trong những ngày làm việctrong tuần, những mã đặc biệt được dùng để tìm ra lỗi và mỗi khi tìm được, nó nhấp nháy đèn báo hiệu, báo cho người điều khiển biết để họ sửa, điều chỉnh máy lại. Trong thời gian ngoài giờ làm việc hoặc trong những ngày cuối tuần, khi người điều khiển máy không có mặt, mỗi khi có lỗi xảy ra, máy tính tự động bỏ qua chương trình đương chạy và chuyển sang công việc khác.
Hamming thường làm việc trong những ngày cuối tuần và ông càng ngày càng trở nên bực tức mỗi khi ông phải khởi động lại các chương trình ứng dụng từ đầu, do chất lượng kém, không đáng tin cậy (unreliability) của bộ máy đọc các thẻ đục lỗ. Mấy năm tiếp theo đó, ông dồn tâm lực vào việc xây dựng hằng loạt các thuật toán có hiệu quả cao để giải quyết vấn đề sửa lỗi. Năm 1950, ông đã công bố một phương pháp mà hiện nay được biết là Mã Hamming. Một số chương trình ứng dụng hiện thời vẫn còn sử dụng mã này của ông.

Các mã trước thời kỳ của Hamming

Nhiều mã phát hiện lỗi đơn giản đã được sử dụng trước khi có mã Hamming, nhưng không có mã nào hiệu quả bằng mã Hamming với một tổng phí tương đương.

Mã chẵn lẻ

Mã chẵn lẻ dùng biện pháp thêm một bit vào trong dữ liệu gốc, và bit cho thêm này cho biết số lượng bit có giá trị 1 của đoạn dữ liệu nằm trước là một số chẵn hay một số lẻ. Nếu một bit bị thay đổi trong quá trình truyền dữ liệu, giá trị chẵn lẻ trong thông điệp sẽ thay đổi và do đó có thể phát hiện được lỗi (Chú ý rằng bit bị thay đổi có thể lại chính là bit kiểm tra). Theo quy ước chung, bit kiểm tra có giá trị bằng 1 nếu số lượng bit có giá trị 1 trong dữ liệu là một số lẻ, và giá trị của bit kiểm tra bằng 0 nếu số lượng bit có giá trị 1 trong dữ liệu là một số chẵn. Nói cách khác, nếu đoạn dữ liệu và bit kiểm tra được gộp lại cùng với nhau, số lượng bit có giá trị bằng 1 luôn luôn là một số chẵn.
Việc kiểm tra dùng mã chẵn lẻ là một việc không được chắc chắn cho lắm, vì nếu số bit bị thay đổi là một số chẵn (2, 4, 6 - cả hai, bốn hoặc sáu bit đều bị hoán vị) thì mã này không phát hiện được lỗi. Hơn nữa, mã chẵn lẻ không biết được bit nào là bit bị lỗi, kể cả khi nó phát hiện là có lỗi xảy ra. Toàn bộ dữ liệu đã nhận được phải bỏ đi, và phải truyền lại từ đầu. Trên một kênh truyền bị nhiễu, việc truyền nhận thành công có thể mất rất nhiều thời gian, nhiều khi còn không truyền được nữa. Mặc dù việc kiểm tra bằng mã chẵn lẻ không được tốt cho lắm, song vì nó chỉ dùng 1 bit để kiểm tra cho nên nó có số tổng phí (overhead) thấp nhất, đồng thời, nó cho phép phục hồi bit bị thất lạc nếu người ta biết được vị trí của bit bị thất lạc nằm ở đâu.

Mã hai-trong-năm

Trong những năm của thập niên kỷ 1940, Bell có sử dụng một mã hiệu phức tạp hơn một chút, gọi là mã hai-trong-năm (two-out-of-five code). Mã này đảm bảo mỗi một khối 5 bit (còn được gọi là khối-5) có chính xác hai bit có giá trị bằng 1. Máy tính có thể nhận ra là dữ liệu nhập vào có lỗi nếu trong một khối 5 bit không 2 bit có giá trị bằng 1. Tuy thế, mã hai-trong-năm cũng chỉ có thể phát hiện được một đơn vị bit mà thôi; nếu trong cùng một khối, một bit bị lộn ngược thành giá trị 1, và một bit khác bị lộn ngược thành giá trị 0, quy luật hai-trong-năm vẫn cho một giá trị đúng (remained true), và do đó nó không phát hiện là có lỗi xảy ra.

Tái diễn dữ liệu

Một mã nữa được dùng trong thời gian này là mã hoạt động bằng cách nhắc đi nhắc lại bit dữ liệu vài lần (tái diễn bit được truyền - giống như thông thường, khi nói một từ quan trọng nào đó, sợ người nghe chưa rõ thì ta nhắc đi nhắc lại một số lần!) để đảm bảo bit dữ liệu được truyền đến nơi nhận trọn vẹn, không sai lạc. Chẳng hạn, nếu bit dữ liệu cần được truyền có giá trị bằng 1, một mã tái diễn n=3 sẽ cho truyền gửi giá trị "111". Nếu ba bit nhận được không giống nhau, thì hiện trạng này báo cho ta biết rằng, lỗi trong truyền thông đã xảy ra. Nếu kênh truyền không bị nhiễu, tương đối đảm bảo, thì với hầu hết các lần truyền, trong nhóm ba bit được gửi, chỉ có một bit là bị thay đổi. Do đó các nhóm 001, 010, và 100 đều tương đương cho một bit có giá trị 0, và các nhóm 110, 101, và 011 đều tương đương cho một bit có giá trị 1 - lưu ý số lượng bit có giá trị 0 trong các nhóm được coi là có giá trị 0, là đa số so với tổng số bit trong nhóm, hay 2 trong 3 bit, tương đương như vậy, các nhóm được coi là giá trị 1 có số lượng bit bằng 1 nhiều hơn là các bit có giá trị 0 trong nhóm - chẳng khác gì việc các nhóm bit được đối xử như là "các phiếu bầu" cho bit dữ liệu gốc vậy. Một mã có khả năng tái dựng lại thông điệp gốc trong một môi trường nhiễu lỗi được gọi là mã "sửa lỗi" (error-correcting code).
Tuy nhiên, những mã này không thể sửa tất cả các lỗi một cách đúng đắn hoàn toàn. Chẳng hạn chúng ta có một ví dụ sau: nếu một kênh truyền đảo ngược hai bit và do đó máy nhận thu được giá trị "001", hệ thống máy sẽ phát hiện là có lỗi xảy ra, song lại kết luận rằng bit dữ liệu gốc là bit có giá trị bằng 0. Đây là một kết luận sai lầm. Nếu chúng ta tăng số lần các bit được nhắc lại lên 4 lần, chúng ta có thể phát hiện tất cả các trường hợp khi 2 bit bị lỗi, song chúng ta không thể sửa chữa chúng được (số phiếu bầu "hòa"); với số lần nhắc lại là 5 lần, chúng ta có thể sửa chữa tất cả các trường hợp 2 bit bị lỗi, song không thể phát hiện ra các trường hợp 3 bit bị lỗi.
Nói chung, mã tái diễn là một mã hết sức không hiệu quả, giảm công suất xuống 3 lần so với trường hợp đầu tiên trong ví dụ trên của chúng ta, và công suất làm việc giảm xuống một cách nhanh chóng nếu chúng ta tăng số lần các bit được nhắc lại với mục đích để sửa nhiều lỗi hơn.

Mã Hamming

Mô hình của một mã 7-bit, bao gồm 4 bit dữ liệu (3,5,6,7) và 3 bit chẵn lẻ (1,2,4). Sự liên quan của các bit dữ liệu với bit chẵn lẻ được biểu hiện bằng các phần của hình tròn gối lên nhau. Bit thứ 1 kiểm tra bit thứ (3, 5, 7), trong khi bit 2 kiểm tra bit (3, 6, 7). Lưu ý, các vị trị (1,2,4 v.v.) thực ra là vị trí 20, 21, 22 v.v.
Các bit dữ liệu và bit chẵn lẻ trong mối quan hệ chồng gối với nhau. Các bit chẵn lẻ được tính dùng quy luật "số chẵn". Giá trị của nhóm dữ liệu là 1100110 - các bit chẵn lẻ được in đậm, và đọc từ phải sang trái.
Càng nhiều bit sửa lỗi thêm vào trong thông điệp, và các bit ấy được bố trí theo một cách là mỗi bỗ trí của nhóm các bit bị lỗi tạo nên một hình thái lỗi riêng biệt, thì chúng ta có thể xác định được những bit bị sai. Trong một thông điệp dài 7-bit, chúng ta có 7 khả năng một bit có thể bị lỗi, như vậy, chỉ cần 3 bit kiểm tra (23 = 8) là chúng ta có thể, không những chỉ xác định được là lỗi trong truyền thông có xảy ra hay không, mà còn có thể xác định được bit nào là bit bị lỗi.
Hamming nghiên cứu các kế hoạch mã hóa hiện có, bao gồm cả mã hai-trong-năm, rồi tổng quát hóa khái niệm của chúng. Khởi đầu, ông xây dựng một danh mục (nomenclature) để diễn tả hệ thống máy, bao gồm cả số lượng bit dùng cho dữ liệu và các bit sửa lỗi trong một khối. Chẳng hạn, bit chẵn lẻ phải thêm 1 bit vào trong mỗi từ dữ liệu (data word). Hamming diễn tả phương pháp này là mã (8,7). Nó có nghĩa là một từ dữ liệu có tổng số bit là 8 bit, trong đó chỉ có 7 bit là các bit của dữ liệu mà thôi. Theo phương pháp suy nghĩ này, mã tái diễn (nhắc lại) ở trên phải được gọi là mã (3,1). Tỷ lệ thông tin là tỷ lệ được tính bằng việc lấy con số thứ hai chia cho con số thứ nhất. Như vậy với mã tái diễn (3,1) ở trên, tỷ lệ thông tin của nó là
\begin{matrix} \frac{1}{3} \end{matrix}
.
Hamming còn phát hiện ra nan đề với việc đảo giá trị của hai hoặc hơn hai bit nữa, và miêu tả nó là "khoảng cách" (distance) (hiện nay nó được gọi là khoảng cách Hamming (Hamming distance) - theo cái tên của ông). Mã chẵn lẻ có khoảng cách bằng 2, vì nếu có 2 bit bị đảo ngược thì lỗi trong truyền thông trở nên vô hình, không phát hiện được. Mã tái diễn (3,1) có khoảng cách là 3, vì 3 bit, trong cùng một bộ ba, phải bị đổi ngược trước khi chúng ta được một từ mã khác. Mã tái diễn (4,1) (mỗi bit được nhắc lại 4 lần) có khoảng cách bằng 4, nên nếu 2 bit trong cùng một nhóm bị đảo ngược thì lỗi đảo ngược này sẽ đi thoát mà không bị phát hiện.
Cùng một lúc, Hamming quan tâm đến hai vấn đề; tăng khoảng cách và đồng thời tăng tỷ lệ thông tin lên, càng nhiều càng tốt. Trong những năm thuộc niên kỷ 1940, ông đã xây dựng môt số kế hoạch mã hóa. Những kế hoạch này đều dựa trên những mã hiện tồn tại song được nâng cấp và tiến bộ một cách sâu sắc. Bí quyết chìa khóa cho tất cả các hệ thống của ông là việc cho các bit chẵn lẻ gối lên nhau (overlap), sao cho chúng có khả năng tự kiểm tra lẫn nhau trong khi cùng kiểm tra được dữ liệu nữa.
Thuật toán cho việc sử dụng bit chẵn lẻ trong 'mã Hamming' thông thường cũng tương đối đơn giản:
  1. Tất cả các bit ở vị trí là các số mũ của 2 (powers of two) được dùng làm bit chẵn lẻ. (các vị trí như 1, 2, 4, 8, 16, 32, 64 v.v. hay nói cách khác 20, 21, 22, 23, 24, 25, 26 v.v.)
  2. Tất cả các vị trí bit khác được dùng cho dữ liệu sẽ được mã hóa. (các vị trí 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.)
  3. Mỗi bit chẵn lẻ tính giá trị chẵn lẻ cho một số bit trong từ mã (code word). Vị trí của bit chẵn lẻ quyết định chuỗi các bit mà nó luân phiên kiểm tra và bỏ qua (skips).
    • Vị trí 1 (n=1): bỏ qua 0 bit(n-1), kiểm 1 bit(n), bỏ qua 1 bit(n), kiểm 1 bit(n), bỏ qua 1 bit(n), v.v.
    • Vị trí 2(n=2): bỏ qua 1 bit(n-1), kiểm 2 bit(n), bỏ qua 2 bit(n), kiểm 2 bit(n), bỏ qua 2 bit(n), v.v.
    • Vị trí 4(n=4): bỏ qua 3 bit(n-1), kiểm 4 bit(n), bỏ qua 4 bit(n), kiểm 4 bit(n), bỏ qua 4 bit(n), v.v.
    • Vị trí 8(n=8): bỏ qua 7 bit(n-1), kiểm 8 bit(n), bỏ qua 8 bit(n), kiểm 8 bit(n), bỏ qua 8 bit(n), v.v.
    • Vị trí 16(n=16): bỏ qua 15 bit(n-1), kiểm 16 bit(n), bỏ qua 16 bit(n), kiểm 16 bit(n), bỏ qua 16 bit(n), v.v.
    • Vị trí 32(n=32): bỏ qua 31 bit(n-1), kiểm 32 bit(n), bỏ qua 32 bit(n), kiểm 32 bit(n), bỏ qua 32 bit(n), v.v.
    • và tiếp tục như trên.
Nói cách khác, bit chẵn lẻ tại vị trí 2k kiểm các bit ở các bit ở vị trí t có giá trị logic của phép toán AND giữa k và t là khác 0

Ví dụ dùng (11,7) mã Hamming

Lấy ví dụ chúng ta có một từ dữ liệu dài 7 bit với giá trị là "0110101". Để chứng minh phương pháp các mã Hamming được tính toán và được sử dụng để kiểm tra lỗi, xin xem bảng liệt kê dưới đây. Chữ d (data) được dùng để biểu thị các bit dữ liệu và chữ p (parity) để biểu thị các bit chẵn lẻ (parity bits).
Đầu tiên, các bit của dữ liệu được đặt vào vị trí tương thích của chúng, sau đó các bit chẵn lẻ cho mỗi trường hợp được tính toán dùng quy luật bit chẵn lẻ số chẵn[1].
Cách tính các bit chẵn lẻ trong mã Hamming (từ trái sang phải) Thứ tự bit 1 2 3 4 5 6 7 8 9 10 11Vị trí bit chẵn lẻ và các bit dữ liệu p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7Nhóm dữ liệu (không có bit chẵn lẻ): 0 1 1 0 1 0 1p1 p2 p3 p4 Nhóm dữ liệu (với bit chẵn lẻ):
101011
001001
0110
0101
10001100101
Nhóm dữ liệu mới (new data word) - bao gồm các bit chẵn lẻ - bây giờ là "10001100101". Nếu chúng ta thử cho rằng bit cuối cùng bị thoái hóa (gets corrupted) và bị lộn ngược từ 1 sang 0. Nhóm dữ liệu mới sẽ là "10001100100"; Dưới đây, chúng ta sẽ phân tích quy luật kiến tạo mã Hamming bằng cách cho bit chẵn lẻ giá trị 1 khi kết quả kiểm tra dùng quy luật số chẵn bị sai.
Kiểm tra các bit chẵn lẻ (bit bị đảo lộn có nền thẫm) Thứ tự bit 1 2 3 4 5 6 7 8 9 10 11Vị trí bit chẵn lẻ và các bit dữ liệu p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Kiểm chẵn lẻ Bit chẵn lẻNhóm dữ liệu nhận được: 1 0 0 0 1 1 0 0 1 0 0 1 p1 p2 p3 p4
101010Sai1
001000Sai1
0110Đúng0
0100Sai1
Bước cuối cùng là định giá trị của các bit chẵn lẻ (nên nhớ bit nằm dưới cùng được viết về bên phải - viết ngược lại từ dưới lên trên). Giá trị số nguyên của các bit chẵn lẻ là 11(10), và như vậy có nghĩa là bit thứ 11 trong nhóm dữ liệu (data word) - bao gồm cả các bit chẵn lẻ - là bit có giá trị không đúng, và bit này cần phải đổi ngược lại.
p4 p3 p2 p1 Nhị phân Thập phân 8 2 1 Σ = 11
1011
Khi hai bit dữ liệu (3,7) có cùng bit chẵn lẻ kiểm tra tại vi trí 2k - ví dụ (1,2) - biến đổi giá trị (lỗi trong truyền thông) thì giá trị của bit chẵn lẻ vẫn đúng như giá trị gốc (0,1)
Việc đổi ngược giá trị của bit thứ 11 làm cho nhóm
10001100100
trở lại thành
10001100101.
Bằng việc bỏ đi phần mã Hamming, chúng ta lấy được phần dữ liệu gốc với giá trị là
0110101.
Lưu ý, các bit chẵn lẻ không kiểm tra được lẫn nhau, nếu chỉ một bit chẵn lẻ bị sai thôi, trong khi tất cả các bit khác là đúng, thì chỉ có bit chẵn lẻ nói đến là sai mà thôi và không phải là các bit nó kiểm tra (not any bit it checks).
Cuối cùng, giả sử có hai bit biến đổi, tại vị trí xy. Nếu xy có cùng một bit tại vị trí 2k trong đại diện nhị phân của chúng, thì bit chẵn lẻ tương ứng với vị trí đấy kiểm tra cả hai bit, và do đó sẽ giữ nguyên giá trị, không thay đổi. Song một số bit chẵn lẻ nào đấy nhất định phải bị thay đổi, vì xy, và do đó hai bit tương ứng nào đó có giá trị x và y khác nhau. Do vậy, mã Hamming phát hiện tất cả các lỗi do hai bit bị thay đổi — song nó không phân biệt được chúng với các lỗi do 1 bit bị thay đổi.

Mã Hamming (7,4)

Hiện thời, khi nói đến mã Hamming chúng ta thực ra là muốn nói đến mã (7,4) mà Hamming công bố năm 1950. Với mỗi nhóm 4 bit dữ liệu, mã Hamming thêm 3 bit kiểm tra. Thuật toán (7,4) của Hamming có thể sửa chữa bất cứ một bit lỗi nào, và phát hiện tất cả lỗi của 1 bit, và các lỗi của 2 bit gây ra. Điều này có nghĩa là đối với tất cả các phương tiện truyền thông không có chùm lỗi đột phát (burst errors) xảy ra, mã (7,4) của Hamming rất có hiệu quả (trừ phi phương tiện truyền thông có độ nhiễu rất cao thì nó mới có thể gây cho 2 bit trong số 7 bit truyền bị đảo lộn).

Ví dụ về cách dùng các ma trận thông qua GF(2)

Nguyên lý của mã Hamming bắt nguồn từ việc khai triển và mở rộng quan điểm chẵn lẻ. Việc khai triển này bắt đầu bằng việc nhân các ma trận, được gọi là Ma trận Hamming (Hamming matrices), với nhau. Đối với mã Hamming (7,4), chúng ta sử dụng hai mã trận có liên quan gần gũi, và đặt tên cho chúng là:
H_e := \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 \\
0 & 1 & 1 & 1 \\
1 & 0 & 1 & 1 \\
1 & 1 & 0 & 1 \\
\end{pmatrix}

H_d := \begin{pmatrix}
0 & 0 & 0 & 1 & 1 & 1 & 1 \\
0 & 1 & 1 & 0 & 0 & 1 & 1 \\
1 & 0 & 1 & 0 & 1 & 0 & 1 \\
\end{pmatrix}
Các cột vectơ trong He là nên tảng hạch của Hd và phần trên của He (4 hàng đầu) là một ma trận đơn vị (identity matrix). Ma trận đơn vị cho phép vectơ dữ liệu đi qua trong khi làm tính nhân, và như vậy, các bit dữ liệu sẽ nằm ở 4 vị trí trên cùng (sau khi nhân). Sau khi phép nhân hoàn thành, khác với cách giải thích ở phần trước (các bit chẵn lẻ nằm ở vị trí 2k), trật tự của các bit trong từ mã (codewords) ở đây khác với cách bố trí đã nói (các bit dữ liệu nằm ở trên, các bit kiểm chẵn lẻ nằm ở dưới).
Chúng ta dùng một nhóm 4 bit dữ liệu (số 4 trong cái tên của mã là vì vậy) chủ chốt, và cộng thêm vào đó 3 bit dữ liệu thừa (vì 4+3=7 nên mới có số 7 trong cái tên của mã). Để truyền gửi dữ liệu, chúng ta hãy nhóm các bit dữ liệu mà mình muốn gửi thành một vectơ. Lấy ví dụ, nếu dữ liệu là "1011" thì vectơ của nó là:
\mathbf{p}=\begin{pmatrix} 1 \\ 0 \\ 1 \\ 1 \end{pmatrix}
Giả sử, chúng ta muốn truyền gửi dữ liệu trên. Chúng ta tìm tích của Hep, với các giá trị môđulô 2 :
H_e\mathbf{p} = \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 \\
0 & 1 & 1 & 1 \\
1 & 0 & 1 & 1 \\
1 & 1 & 0 & 1 \\
\end{pmatrix}\begin{pmatrix} 1 \\ 0 \\ 1 \\ 1 \end{pmatrix}=
\begin{pmatrix} 1 \\ 0 \\ 1 \\ 1 \\ 0 \\ 1 \\ 0 \end{pmatrix}=\mathbf{r}
Máy thu sẽ nhân Hd với r, để kiểm tra xem có lỗi xảy ra hay không. Thi hành tính nhân này, máy thu được (một lần nữa, các giá trị đồng dư môđulô 2):
H_d\mathbf{r} = \begin{pmatrix}
0 & 0 & 0 & 1 & 1 & 1 & 1 \\
0 & 1 & 1 & 0 & 0 & 1 & 1 \\
1 & 0 & 1 & 0 & 1 & 0 & 1 \\
\end{pmatrix}\begin{pmatrix} 1 \\ 0 \\ 1 \\ 1 \\ 0 \\ 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ 0 \end{pmatrix}
Vì chúng ta được một vectơ toàn số không cho nên máy thu có thể kết luận là không có lỗi xảy ra
Sở dĩ một vectơ toàn số không có nghĩa là không có lỗi, bởi vì khi He được nhân với vectơ dữ liệu, một sự thay đổi trong nền tảng xảy ra đối với không gian bên trong vectơ (vector subspace), tức là hạch của Hd. Nếu không có vấn đề gì xảy ra trong khi truyền thông, r sẽ nằm nguyên trong hạch của Hd và phép nhân sẽ cho kết quả một vectơ toàn số không.
Trong một trường hợp khác, nếu chúng ta giả sử là lỗi một bit đã xảy ra. Trong toán học, chúng ta có thể viết:
\mathbf{r}+\mathbf{e}_i
môđulô 2, trong đó eivectơ đơn vị đứng thứ i (ith unit vector), có nghĩa là, một vectơ số 0 có một giá trị 1 trong vị trí i (tính từ 1 tính đi). Biểu thức trên nói cho chúng ta biết rằng có một bit bị lỗi tại vị trí i.
Nếu bây giờ chúng ta nhân Hd với cả hai vectơ này:
H_d(\mathbf{r}+\mathbf{e}_i) = H_d\mathbf{r} + H_d\mathbf{e}_i
r là dữ liệu thu nhận được không có lỗi, cho nên tích của Hdr bằng 0. Do đó
 H_d\mathbf{r} + H_d\mathbf{e}_i = \mathbf{0} + H_d\mathbf{e}_i = H_d\mathbf{e}_i
Vậy, tích của Hd với vectơ nền chuẩn tại cột thứ i (the ith standard basis vector) làm lộ ra cột ở trong Hd, vì thế mà chúng ta biết rằng lỗi đã xảy ra tại vị trí cột này trong Hd. Vì chúng ta đã kiến tạo Hd dưới một hình thức nhất định, cho nên chúng ta có thể hiểu giá trị của cột này như một số nhị phân - ví dụ, (1,0,1) là một cột trong Hd, tương đồng giá trị với cột thứ 5, do đó chúng ta biết lỗi xảy ra ở đâu và có thể sửa được nó.
Lấy ví dụ, giả sử chúng ta có:
\mathbf{s} = \mathbf{r}+\mathbf{e}_2 = \begin{pmatrix} 1 \\ 1 \\ 1 \\ 1 \\ 0 \\ 1 \\ 0 \end{pmatrix}
Nếu thực hiện phép nhân:
H_d\mathbf{s} = \begin{pmatrix}
0 & 0 & 0 & 1 & 1 & 1 & 1 \\
0 & 1 & 1 & 0 & 0 & 1 & 1 \\
1 & 0 & 1 & 0 & 1 & 0 & 1 \\
\end{pmatrix}\begin{pmatrix} 1 \\ 1 \\ 1 \\ 1 \\ 0 \\ 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}
Tích của phép nhân cho chúng ta một kết quả tương đương với cột thứ 2 ("010" tương đương với giá trị 2 trong số thập phân), và do đó, chúng ta biết rằng lỗi đã xảy ra ở vị trí thứ 2 trong hàng dữ liệu, và vì vậy có thể sửa được lỗi.
Chúng ta có thể dễ dàng thấy rằng, việc sửa lỗi do 1 bit bị đảo lộn gây ra, dùng phương pháp trên là một việc thực hiện được. Bên cạnh đó, mã Hamming còn có thể phát hiện lỗi do 1 bit hoặc 2 bit bị đảo lộn gây ra, dùng tích của Hd khi tích này không cho một vectơ số không. Tuy thế, song mã Hamming không thể hoàn thành cả hai việc.

Mã Hamming và bit chẵn lẻ bổ sung

Nếu chúng ta bổ sung thêm một bit vào mã Hamming, thì mã này có thể dùng để phát hiện những lỗi gây ra do 2 bit bị lỗi, và đồng thời nó không cản trở việc sửa các lỗi do một bit gây ra. Nếu không bổ sung một bit vào thêm, thì mã này có thể phát hiện các lỗi do một bit, hai bit, ba bit gây ra, song nó sẽ cản trở việc sửa các lỗi do một bit bị đảo lộn. Bit bổ sung là bit được áp dụng cho tất cả các bit sau khi tất cả các bit kiểm của mã Hamming đã được thêm vào.
Khi sử dụng tính sửa lỗi của mã, nếu lỗi ở một bit chẵn lẻ bị phát hiện và mã Hamming báo hiệu là có lỗi xảy ra thì chúng ta có thể sửa lỗi này, song nếu chúng ta không phát hiện được lỗi trong bit chẵn lẻ, nhưng mã Hamming báo hiệu là có lỗi xảy ra, thì chúng ta có thể cho rằng lỗi này là do 2 bit bị đổi cùng một lúc. Tuy chúng ta phát hiện được nó, nhưng không thể sửa lỗi được.

Ghi chú

  1. * 
    7 bit dữ liệubyte có bit chẵn lẻ
    Quy luật số chẵnQuy luật số lẻ
    00000000000000000000001
    10100011010001110100010
    11010011101001011010011
    11111111111111111111110
    Cách tính bit chẵn lẻ trong nhóm các bit dữ liệu, dùng quy luật số chẵn như sau: nếu số lượng bit có giá trị bằng 1 (the bit is set) là một số lẻ, thì bit chẵn lẻ bằng 1(2) (và do việc cộng thêm một bit có giá trị 1(2) này vào dữ liệu, tổng số bit có giá trị 1(2) sẽ là một số chẵn - bao gồm cả bit chẵn lẻ, còn không thì bit chẵn lẻ sẽ có giá trị 0(2). Ngược lại, bit chẵn lẻ dùng quy luật số lẻ sẽ có giá trị 1(2) nếu số lượng các bit có giá trị bằng 1(2) là một số chẵn - do việc thêm bit chẵn lẻ có giá trị bằng 1(2) vào nhóm dữ liểu, tổng số bit có giá trị 1(2) là một số lẻ - và bằng 0 nếu ngược lại.
  2. * GF (Galois field - hay gọi finite field),  "Trường hữu hạn".
  3. * Môđulô (Modulo) là phép tính số dư trong tính chia. Ví dụ 100/3 = 1 (được 33 dư 1). Trong toán học, nếu có hai số nguyên a và b, cùng một số dư n nào đó, thì biểu thức ab (mod n) - nói là a và b có đồng dư môđunlô n - có nghĩa là a và b có cùng số dư khi được chia cho n, hay nói một cách tương tự, a-b là một bội số (multiple) của n.