Mạng di động ngang hàng

Một phần của tài liệu Nghiên cứu triển khai mạng xã hội phạm vi gần trên thiết bị di động (Trang 25)

2.2.1. Khái niệm

Mạng di động ngang hàng (mobile p2pnetwork - MPPN) là một tập các đối tƣợng di chuyển kết nối thông qua các công nghệ không dậy phạm vi gần nhƣ IEEE 802.11, Wifi Direct, Bluetooth, hoặc Ultra Wide Band (UWB). Với các cơ chế kết nối, một đối tƣợng di chuyển nhận thông tin từ các nút lân cận nó, hoặc từ các đối tƣợng từ xa bởi sự truyền multi-hop qua các đối tƣợng trung gian. Công nghệ này cho phép các nút mạng truyền trực tiếp với nhau sử dụng bộ thu phát không dây mà không cần bất cứ một cơ sở hạ tầng cố định nào. Đây là một đặc tính riêng biệt so với các mạng không dây truyền thống nhƣ các mạng chia ô (cellular network) và mạng WLAN, trong đó các nút (ví dụ nhƣ các thuê bao điện thoại di động) giao tiếp với nhau thông qua các trạm vô tuyến cơ sở (base station).

Những ứng dụng của mạng di động p2p rất nhiều tiềm năng. Một mạng di động p2p có thể đƣợc sử dụng trong việc kết nối nhà sản xuất và ngƣời tiêu thụ. Ví dụ, cá nhân hay tập thể có thể sử dụng phƣơng pháp này để quảng cáo cho mục đích của họ. Xa hơn, mạng di động p2p có thể đƣợc sử dụng trong các mạng xã hội, khi

2 ngƣời kết nối trong không gian địa lý gần. Đặc biệt mạng này còn hữu ích trong các trƣờng hợp khẩn cấp, thiên tai.

Các mạng di động p2p đƣợc mong đợi sẽ làm cách mạng hóa thông tin không dây trong một vài năm tới bằng việc bổ sung thêm vào các mô hình mạng truyền thống nhƣ Internet, mạng viễn thông và truyền thông vệ tinh.

2.2.2. Kiến trúc mạng di động ngang hàng

a. Tổng quan

Tất cả các thực thể kết nối của mạng p2p có một tập chung lợi ích và tuân theo một tập chung các quy định. Kiến trúc này bao gồm các thành phần cơ bản [8]:

Hình 2.3 Kiến trúc mạng di động peer-to-peer

- Nút p2p: là một thực thể kết nối độc lập trong mạng p2p. Nó có thể là thiết bị mobile, PDA, một máy tính cá nhân, một server, một máy trạm (workstation) hoặc bất kỳ thiết bị nào có thể kết nối vào mạng.

- Mobile proxy: tất cả các thiết bị có thể là các nút độc lập trong kiến trúc p2p, nhƣng một số thì bị giới hạn về chức năng: nhƣ tốc độ, độ ổn định khi kết nối internet thấp và không thể thực thi nhƣ các nút tự trị. Mobile proxy là một chức

năng trong một nút mà thực thi nhƣ một proxy cho các thiết bị di động cho phép các thiết bị này có thể tham gia vào kiến trúc p2p.

Khái niệm mobile proxy giải quyết đƣợc các vấn đề của thiết bị di động nhƣ tính di động, băng thông, CPU, bộ nhớ, pin hoặc mức độ bao phủ. Giải pháp sử dụng proxy đã tiết kiệm đƣợc chi phí truyền tải vì không cần truyền tất cả dữ liệu trên mạng di động, mobile proxy có thể dừng, lọc và tập hợp dữ liệu thu đƣợc từ các mạng p2p. Các vấn đề về bảo mật, tính cá nhân, anti spam và virus có thể dễ dàng đƣợc thực thi trong kiến trúc proxy.

Hình 2.4 Kiến trúc peer-to-peer mobile thực thi các proxy mobile

Dựa trên những thành phần cơ bản này sẽ có 2 loại mạng p2p: mạng p2p lai (hybrid p2p network) đƣợc quản lý bởi một nút điều khiển tập trung và mạng p2p thuần (pure p2p network) không có nút điều khiển.

- Kiến trúc p2p thuần: chỉ có các nút p2p trong kiến trúc này nhƣ hình 2.5 (a). Các kết nối giữa các nút p2p là những thực thể độc lập và có thể tham gia hoặc rời mạng p2p. Các thông điệp đƣợc gửi từ một nút p2p tới nút khác một cách trực tiếp hoặc thông qua các nút lân cận, trung gian.

- Kiến trúc p2p lai: đƣợc mô tả trong hình 2.5 (b), kiến trúc này giải quyết đƣợc những bất lợi của kiến trúc p2p thuần nhƣ định tuyến không hiệu quả,

chia rẽ mạng và thiếu bảo mật bằng cách thêm một nút điều khiển. Nút điều khiển cải thiện hiệu quả kiến trúc p2p thuần: cung cấp các chức năng cho việc lấy thông tin định tuyến tới nút đích, phát hiện nút p2p đầu tiên, khôi phục việc chia rẽ mạng p2p, cải thiện mô hình mạng và tính bảo mật nhƣ xác thực.

Hình 2.5 Kiến trúc peer-to-peer thuần và peer-to-peer lai

Để thực thi kiến trúc p2p lai thì nút điều khiển và nút gateway đƣợc định nghĩa nhƣ sau:

- Nút điều khiển: là một thực thể quản lý sự kết nối trong mạng p2p. Nó cung cấp một số chức năng độc lập với các ứng dụng đặc thù nhƣ phân giải tên, định tuyến dự phòng thông tin, phát hiện ra mạng p2p đầu tiên, tối ƣu hóa mạng, xác thực node và quản lý các nhóm multicast.

- Nút gateway: là một thực thể liên kết giữa mạng p2p thuần và mạng p2p lai, cung cấp cho các nút trong mạng p2p thuần một số chức năng proxy nhƣ định tuyến dự phòng thông tin, xác thực node và quản lý multicast.

Một nút điều khiển nhận một yêu cầu từ một nút p2p và cung cấp cho nó các thông tin định tuyến. Một nút gateway lựa chọn các thông tin trên mạng p2p thuần và báo cáo tới nút điều khiển. Một nút p2p trong mạng p2p lại báo cáo sự tồn tại của nó và các nút lân cận tới nút điều khiển và có thể kết nối với các nút khác bằng cách sử dụng thông tin định tuyến đƣợc cung cấp bởi nút điều khiển. Nút gateway

hỗ trợ kết nối liên tục giữa một nút trong mạng p2p thuần và một nút trong mạng p2p lai.

b. Mạng di động ngang hàng cho thiết bị di động

Đặc điểm khác của kiến trúc p2p là nó cho phép các thiết bị di động tham gia vào mạng p2p thông qua một nút mobile proxy. Trong tƣơng lai một thiết bị di động có thể có đủ khả năng để thực hiện nhƣ một nút p2p độc lập, nhƣng hiện tại nó vẫn có một số giới hạn:

- Khả năng lƣu trữ giới hạn - Bộ nhớ heap nhỏ

- Hiệu suất bộ vi xử lý còn hạn chế - Năng lƣợng pin hạn chế

Do đó một thiết bị di động hiện tại không thể thực thi đầy đủ vai trò của một nút p2p mà đƣa ra các dịch vụ tới các nút p2p khác trong mạng. Để kết hợp một thiết bị di động vào mạng p2p, một số chức năng cần đƣợc thực hiện bởi các nút khác thay cho thiết bị đó. Thông qua mobile proxy, một thiết bị có thể thực thi nhƣ một nút p2p và có thể thực hiện các chức năng cần thiết trong kiến trúc p2p. Có 3 cách nhƣ trong Hình 3.6 dƣới đây, để các thiết bị thực thi thông qua mobile proxy [8]:

- Các thiết bị mobile chia sẻ cùng một nút proxy. Mobile proxy thực thi nhƣ một nút p2p.

- Một thiết bị mobile có tên nút của nó và thực thi nhƣ nút p2p độc lập trong kiến trúc p2p. Với loại này, một số chức năng của proxy có thể thực thi với nút C nhƣ chuyển đổi thông điệp nhận đƣợc từ thiết bị mobile thành thông điệp của giao thức p2p.

- 2 thiết bị mobile và một proxy function xây dựng thành một nút p2p. Một thiết bị mobile có tên nút của nó và thực thi nhƣ một nút độc lập thông qua mobile proxy. Mobile proxy không thực hiện nhƣ một nút độc lập.

Hình 2.6 Kiến trúc mobile proxy

2.2.3. Bảo mật trong mạng di động ngang hàng

Vấn đề bảo mật là nhân tố chính ngăn cản việc sử dụng rộng rãi của mạng p2p. Điều gì xảy ra nếu một số nút trong mạng là nút độc hại và muốn phá hoại hoạt động của mạng? Những nút độc hại này có thể tấn công ở nhiều dạng khác nhau và nếu không có các cơ chế, tùy chọn bảo mật đầy đủ ngƣời dùng sẽ bị nguy hiểm. Hoạt động bảo mật là đảm bảo những thuộc tính sau đƣợc thực hiện trong mạng: availability (tính sẵn dùng), confidentiality (tính bí mật), intergrity (tính toàn vẹn), authentication (tính xác thực) và non-repudiation [9].

- Availability: đảm bảo sự chịu lỗi của mạng, mạng vẫn hoạt động khi bị tấn công từ chối dịch vụ DoS. Tấn công dịch vụ có thể xảy ra tại bất kỳ tầng nào của mạng. Trên các tầng điều khiển truy nhập vật lý và phƣơng tiện, kẻ tấn công có

thể gây nhiễu để ảnh hƣởng tới kết nối trên các kênh vật lý. Trên tầng mạng, kẻ tấn công có thể phá hoại giao thức định tuyến và ngắt kết nối mạng. Trên tầng cao hơn, có thể tấn công các dịch vụ quan trọng nhƣ dịch vụ quản lý khóa.

- Confidentiality: đảm bảo thông tin không bao giờ bị lộ với các đối tƣợng không xác thực. Sự truyền nhận của thông tin quan trọng yêu cầu tính bảo mật. Thông tin định tuyến cần duy trì bảo mật trong các trƣờng hợp cụ thể, bởi vì thông tin này có giá trị cho những kẻ tấn công xác định danh tính và vị trí của các nút trong mạng.

- Integrity: đảm bảo một thông điệp đƣợc truyền không bao giờ bị sửa đổi, bị hỏng bởi các lỗi nhƣ sự suy yếu của sóng radio, hoặc bởi các tấn công trên mạng.

- Authentication: làm cho một nút đảm bảo danh tính của nút ngƣời dùng nó đang kết nối. Nếu không xác thực, kẻ tấn công có thể mạo danh một nút, do đó có thể truy cập các tài nguyện và thông tin quan trọng và gây trở ngại với hoạt động của các nút khác.

- Non-repudiation: đảm bảo nguồn gốc của một thông điệp không thể

từ chối việc đã gửi thông điệp, nghĩa là xác định đƣợc nút nào là nút gửi thông điệp. Điều này có ích cho việc xác định và cách lý các nút tấn công. Khi nút A nhận các thông điệp lỗi từ nút B, tính chất này cho phép nút A tố cáo nút B bằng cách sử dụng thông điệp này và thuyết phục các nút khác để chỉ ra nút B là kẻ tấn công.

Kết luận chƣơng 2

Trong chƣơng 2, ta đã phân tích kiến trúc và phƣơng thức hoạt động của mô hình mạng xã hội phạm vi gần. Qua đó, ta có thể thấy các lợi thế đặc trƣng của loại hình mạng xã hội đang trở thành xu hƣớng mới này nhƣ không yêu cầu kết nối Internet, không cần server quản lý tập trung nhƣ các mô hình mạng xã hội truyền thống.

Xu hƣớng mạng xã hội phạm vi gần còn đƣợc minh chứng bởi một số nền tảng phát triển ứng dụng cho mạng di động ngang hàng đƣợc khai sinh trong một vài năm gần đây. Trong chƣơng 3, ta sẽ phân tích hai nền tảng nổi bật nhất là AllJoyn của Qualcomm và Chord của Samsung.

CHƢƠNG 3. CÁC GIẢI PHÁP PHẦN MỀM CHO MẠNG XÃ HỘI PHẠM VI GẦN

Dịch vụ dựa trên vị trí là một trong những xu hƣớng đang đƣợc phát triển mạnh mẽ trên các nền tảng thiết bị di động. Do đó, các lập trình viên ngày càng đƣợc cung cấp nhiều công cụ và giải pháp cho dịch vụ này. Chƣơng 3 sẽ đƣa ra các phân tích và đánh giá ƣu nhƣợc điểm của các nền tảng hỗ trợ phát triển mạng xã hội phạm vi gần, từ đó đảm bảo ứng dụng khi hoàn thành có tính khả dụng cao.

3.1. Hệ điều hành Android 3.1.1. Tổng quan 3.1.1. Tổng quan

Android là hệ điều hành đƣợc thiết kế cho các thiết bị di động có màn hình cảm ứng, đang đƣợc phát triển bởi Google và dựa trên nền tảng Linux. Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở(Open Handset Alliance) đƣợc thành lập bao gồm các công ty phần cứng, phần mềm và viễn thông với mục đích tạo ra các tiêu chuẩn mở cho thiết bị di động. Android chính là sản phẩm đầu tiên của Liên minh này, một nền tảng thiết bị di động đƣợc xây dựng trên nhân Linux phiên bản 2.6. Google công bố hầu hết mã nguồn của Android theo giấy phép Apache, cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên đƣợc điều chỉnh và phân phối Android một cách tự do. Hệ điều hành Android gồm 3 triệu dòng mã XML, 2.8 triệu dòng mã C, 2.1 triệu dòng mã Java và 1.75 triệu dòng mã C++ [10].

Bảng 3.1 Thị phần toàn cầu của các nền tảng di động

Nền tảng Q4/2014 Q4/2013 Q4/2012 Q4/2011 Android 76.6% 78.2% 70.4% 52.8% iOS 19.7% 17.5% 20.9% 23.0% Windows Phone 2.8% 3.0% 2.6% 1.5% BlackBerry 0.4% 0.6% 3.2% 8.1% Nền tảng khác 0.5% 0.8% 2.9% 14.6%

Nhờ ƣu thế vƣợt trội của đặc tính mã nguồn mở, Android đang là hệ điều hành thống lĩnh thị trƣờng di động, phục vụ rộng rãi các phân khúc thị trƣờng với kho ứng dụng Google Play đạt trên 1 triệu ứng dụng.

3.1.2. Phần mềm ứng dụng trên Android

Các ứng dụng Android đƣợc phát triển dựa trên ngôn ngữ lập trình bậc cao Java. Các thành phần có thể đƣợc sử dụng để tạo nên ứng dụng Android bao gồm 5 loại cơ bản nhƣ sau [10]:

Activity: Activity là nền tảng cơ bản của ứng dụng Android. Khi khởi động 1 ứng dụng nào đó luôn luôn có 1 main activity đƣợc gọi, hiển thị lên màn hình của thiết bị. Mỗi Activity quản lý một màn hình giao diện của ứng dụng và có vòng đời độc lập với nhau.

Service: Service là thành phần chạy ẩn trong Android. Service đƣợc sử dụng để cập nhật dữ liệu, đƣa ra các cảnh báo (Notification) và không bao giờ hiển thị trên giao diện ngƣời dùng.

Content Provider: là đối tƣợng quản lý tập dữ liệu của ứng dụng và cho phép các ứng dụng khác có thể truy cập hay chỉnh sửa dữ liệu của ứng dụng đó. Dữ liệu này có thể đƣợc lƣu trữ trong file hệ thống, trong cơ sở dữ liệu SQLite, hoặc các thiết bị lƣu trữ khác mà ứng dụng có thể truy cập.

Broadcast Receiver:là thành phần của ứng dụng có nhiệm vụ đáp ứng lại các thông báo đƣợc phát đi từ mức hệ thống hoặc từ các ứng dụng Android khác. Broadcast receiver không hiển thị lên giao diện ngƣời dùng mà chúng có thể tạo các thông báo hoặc gọi lên các service để đáp ứng lại sự kiện mà ứng dụng nhận đƣợc.

Intent: Activity, service và broadcast recevier của một ứng dụng Android có thể đƣợc kích hoạt nhờ một bản tin bất đồng bộ đó là intent. Intent là các đối tƣợng chứa bản tin kích hoạt một thành phần ứng dụng cụ thể hoặc một loại thành phần ứng dụng. Ứng dụng Android có thể gồm nhiều thành phần hoạt động độc lập,

intent nhằm mục đích liên kết các thành phần đó lại với nhau trong hệ thống thống nhất.

Các thành phần trong ứng dụng Android có thể đƣợc xây dựng hoàn toàn độc lập với nhau, qua đó cung cấp một cách linh hoạt các chức năng cho ngƣời dùng. Activity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android.

3.2. Nền tảng phát triển phần mềm AllJoyn framework 3.2.1. Tổng quan 3.2.1. Tổng quan

AllJoyn là một nền tảng phát triển phần mềm mã nguồn mở, nằm trong chiến lƣợc hiện thực hóa Internet of Things. Nền tảng AllJoyn cung cấp các công cụ giúp lập trình viên dễ dàng phát triển ứng dụng tƣơng tác trực tiếp giữa các thiết bị trong phạm vi gần mà không gặp trở ngại về khác biệt phần cứng, chủng loại thiết bị hay hệ điều hành.

Nền tảng AllJoyn đƣợc Qualcomm khởi xƣớng và hiện đang đƣợc phát triển bởi Hiệp hội AllSeen Alliance, với hơn 140 công ty thành viên đóng góp trong việc phát triển các chuẩn giao tiếp cho thiết bị, ứng dụng và dịch vụ hƣớng tới chiến lƣợc Internet of Things.

Các thiết bị, dịch vụ và ứng dụng sử dụng nền tảng AllJoyn có thể giao tiếp với nhau thông qua các lớp truyền dẫn khác nhau nhƣ WiFi, cổng Ethernet hay đƣờng dây nguồn và không phụ thuộc vào nhà sản xuất phần cứng hay hệ điều hành và không yêu cầu kết nối Internet. Phần mềm đã và đang đƣợc mở rộng nhằm hỗ trợ lập trình viên phát triển ứng dụng đa nền tảng trên Linux, Android, iOS hay Windows.

Hình 3.1 Mô hình mạng mục tiêu của AllJoyn framework

3.2.2. Kiến trúc AllJoyn framework

Nền tảng AllJoyn bao gồm hai thành phần chính: Application và Router. Hai thành phần này giao tiếp với nhau trong quá trình ứng dụng chạy. Thành phần

Một phần của tài liệu Nghiên cứu triển khai mạng xã hội phạm vi gần trên thiết bị di động (Trang 25)