Hoạt động của giao thức UDP

Một phần của tài liệu Tìm hiểu công nghệ manet và xây dựng ứng dụng truyền tệp (Trang 71 - 86)

Khi một ứng dụng dựa trên giao thức UDP gửi dữ liệu tới một host khác trên mạng, UDP thêm vào một header có độ dài 8 byte chứa các số hiệu cổng nguồn và đích, cùng với tổng chiều dài dữ liệu và thông tin checksum. IP thêm vào header của riêng nó vào đâu mỗi datagram UDP để tạo lên một Datagram IP.

3.2.3.4. Các nhƣợc điểm của giao thức UDP

So với giao thức TCP, UDP có những nhược điểm sau [9]:

Thiếu các tín hiệu bắt tay: Trước khi gửi một đoạn, UDP không gửi các tín hiệu bắt tay giữa bên gửi và bên nhận. Vì thế phía gửi không có cách nào để biết datagram đã đến đích hay chưa. Do vậy, UDP không đảm bảo việc dữ liệu đã đến đích hay chưa.

Sử dụng các phiên: Để TCP là hướng liên kết, các phiên được duy trì giữa các host. TCP sử dụng các chỉ số phiên (Session ID) để duy trì các liên kết giữa hai host. UDP không hỗ trợ bất kỳ phiên nào do bản chất phi liên kết của nó.

Độ tin cậy: UDP không đảm bảo rằng chỉ có một bản sao dữ liệu tới đích. Để gửi dữ liệu tới các hệ thống cuối, UDP phân chia dữ liệu thành các đoạn nhỏ. UDP không đảm bảo rằng các đoạn này sẽ đến đích đúng thứ tự như chúng đã được tạo ra ở nguồn. Ngược lại, TCP sử dụng các số thứ tự cùng với số hiệu cổng và các gói tin xác thực thường xuyên, điều này đảm bảo rằng các gói tin đến đích đúng thứ tự mà nó đã được tạo ra.

Bảo mật: TCP có tính bảo mật cao hơn UDP. Trong nhiều tổ chức, firewall và router cấm các gói tin UDP, điều này là vì các hacker thường sử dụng các cổng UDP.

Kiểm soát luồng. UDP không có kiểm soát luồng; kết quả là, một ứng dụng UDP được thiết kế tồi có thể làm giảm băng thông của mạng.

3.2.3.5. Các ƣu điểm của UDP

Không cần thiết lập liên kết. UDP là giao thức phi liên kết, vì thế không cần phải thiết lập liên kết. Vì UDP không sử dụng các tín hiệu handshaking, nên có thể tránh được thời gian trễ. Đó chính là lý do tại sao DNS thường sử dụng giao thức UDP hơn là TCP-DNS sẽ chậm hơn rất nhiều khi dùng TCP.

Tốc độ: UDP nhanh hơn so với TCP. Bởi vì điều này, nhiều ứng dụng thường được cài đặt trên giao thức UDP hơn so với giao thức TCP.

Hỗ trợ hình trạng (Topology): UDP hỗ trợ các liên kết 1-1, 1-n, ngược lại TCP chỉ hỗ trợ liên kết 1-1.

Kích thước header: UDP chỉ có 8 byte header cho mỗi đoạn, ngược lại TCP cần các header 20 byte, vì vậy sử dụng băng thông ít hơn.

Bảng dưới đây tổng kết sự kác nhau giữa hai giao thức TCP và UDP [6]: Bảng 3.3: Sự kác nhau giữa hai giao thức TCP và UDP

3.2.3.6. Khi nào nên sử dụng UDP

Rất nhiều ứng dụng trên Internet sử dụng UDP. Dựa trên các ưu và nhược điểm của UDP chúng ta có thể kết luận UDP có ích khi sử dụng cho các phương thức truyền broadcasting và multicasting khi chúng ta muốn truyền tin với nhiều host:

 Kích thước datagram nhỏ và trình tự đoạn là không quan trọng.

 Không cần thiết lập liên kết.

 Ứng dụng không gửi các dữ liệu quan trọng.

 Không cần truyền lại các gói tin.

3.2.4. Gửi và nhận tệp

3.2.4.1. Môi trƣờng truyền dẫn vô tuyến

Như chúng ta biết có một số kiểu truyền dẫn như Infrared (Hồng ngoại), Laser, Narrow-band radio (Sóng radio băng thông hẹp), Spread- spectrum radio (Sóng radio băng thông rộng), Microwave (Sóng cực ngắn).

Tín hiệu âm tần có tần số từ 20 Hz đến 20 KHz đây chính là tần số mà tai người cảm nhận được và tần số này qúa thấp không có khả năng lan truyền đi xa trong không gian. Để tín hiệu âm tần có khả năng truyền xa trong không gian người ta sử dụng kỹ thuật điều chế để gởi sóng âm tần trên 1 sóng cao tần rồi sau đó cho nó bức xạ ra ngoài không gian dưới dạng sóng điện từ. Tín hiệu truyền thông không dây giữa các máy tính và các thiết bị là các dạng sóng điện có tần số thấp hơn 3000 gigahéc (GHz) truyền tự do trong không gian trải dài từ tần số radio đến tần số hồng ngoại [7].

3.2.4.2. Môi trƣờng cài đặt

 NET Framework 3.5 trở lên: Là một thành phần cơ bản của

Windows cho việc xây dựng và chạy các ứng dụng viết bởi các ngôn ngữ lập trình mới (ứng dụng thế hệ kế tiếp).

 Môi trường phát triển tích hợp Visual Studio .NET (sử dụng C#):

C# là một ngôn ngữ lập trình hướng đối tượng thuần túy. Kiểm tra an toàn kiểu. C# có thể sử dụng để viết các kiểu ứng dụng khác nhau như game, các ứng dụng cho doanh nghiệp, các ứng dụng cho thiết bị di động: PC Pocket, PDA , cell phone. Các ứng dụng quản lý đơn giản như ứng dụng quản lý thư viện, quản lý thông tin cá nhân,…

3.2.4.3. Thuật toán truyền tệp sử dụng giao thức TCP

 Bài toán truyền tệp sử dụng giao thức TCP (SOCK_STREAM)

Hình 3.16: Sơ đồ khối truyền tệp sử dụng phương thức TCP (SOCK_STREAM)

 Mô tả thuật toán: Với mô hình Client-Server sử dụng dịch vụ hướng kết nối, đầu tiên Server (bên nhận) được khởi động và chờ đợi một kết nối từ client (bên gửi) qua một cổng kết nối . Sau khi kết nối được thiết lập, hai bên luân phiên nhau gửi nhận dữ liệu thông qua đường truyền, nó đảm bảo giữa bên gửi và bên nhận dữ liệu phải chính xác (khác với phương thức UDP). Vì vậy hai bên sẽ phải bắt tay rất nhiều lần khi truyền được dữ liệu. Thí dụ như bên gửi sẽ gửi n gói tin (packet), bên nhận sẽ kiểm tra có bị mất hay sai gói tin nào hay không, nếu đủ thì nó sẽ yêu cầu bên gửi gửi tiếp n gói tin tiếp theo, ngược lại thì nó sẽ yêu cầu gửi lại). Công việc thực hiện đến khi nào server nhận toàn bộ dữ liệu được gửi từ client thì sẽ đóng lại và kết thúc quá trình truyền nhận tệp.

3.2.4.4. Yêu cầu và quy trình thực hiện

 Không có firewall ở phía máy nhận hoặc mở cổng 7000 (không bị

chặn). Các máy tính kết nối vào mạng qua giao thức TCP/IP và không có chương trình khác chạy trên cổng 7000.

 Máy gửi tệp gửi dữ liệu tới máy nhận và yêu cầu nhận tệp bao gồm

tên, dung lượng tệp sau đó chờ máy nhận trả lời.

 Nếu máy nhận tệp đồng ý thì máy gửi tệp sẽ đọc file vào bộ đệm

lần lượt 1024 bytes, sau đó tính toán tỷ lệ phần trăm dung lượng hoàn thành rồi tiến hành gửi tệp. Quá trình thực hiện lặp đi lặp lại đến khi máy nhận dữ liệu báo nhận hoàn thành và đóng kết nối, khi đó máy gửi dữ liệu cũng báo đã thực hiện xong. Ngược lại nếu quá trình gửi bị lỗi thì máy gửi sẽ báo lỗi.

3.2.5. Xây dựng giao diện chƣơng trình 3.2.5.1. Giao diện chƣơng trình gửi tệp

 Chọn tệp cần gửi: Chọn tệp dữ liệu cần gửi cho máy khác.

 Nhập địa chỉ IP máy nhận: Nhập địa chỉ IP của máy nhận dữ liệu.

 Thực hiện: Thực hiện kết nối với máy nhận dữ liệu qua cổng truyền

Cho phép nghe kết nối từ máy nhận và thực hiện truyền dữ liệu.

 Thoát: Kết thúc chương trình.

 IP máy hiện tại: Hiển thị địa chỉ IP của máy.

 Danh sách IP: Lấy danh sách các máy đang kết nối trong mạng.

 Trạng thái gửi: Thể hiện quá trình gửi dữ liệu.

Hình 3.17: Giao diện chương trình gửi tệp

3.2.5.2. Giao diện chƣơng trình nhận tệp

Thiết kế giao diện chương trình nhận tệp với các thông số như sau:

 Dữ liệu được lưu vào: Hiển thị đường dẫn để lưu dữ liệu.

 Danh sách IP: Lấy danh sách các máy đang kết nối trong mạng.

 IP máy hiện tại: Hiển thị địa chỉ IP của máy.

 Thoát: Kết thúc chương trình.

Hình 3.18: Giao diện chương trình nhận tệp

3.2.6. Thực hiện truyền và nhận dữ liệu 3.2.6.1. Truyền và nhận tệp thành công 3.2.6.1. Truyền và nhận tệp thành công

 Tại máy truyền tệp chọn tệp dữ liệu cần gửi.

 Nhập địa chỉ IP của máy nhận dữ liệu (có thể dùng chuột chọn trực tiếp

các địa chỉ IP xuất hiện trong danh sách).

Hình 3.19: Chọn tệp cần gửi và nhập địa chỉ IP máy nhận tệp

 Tại máy nhận tệp xuất hiện thông báo có dữ liệu từ máy truyền và

có nhận dữ liệu hay không.

Hình 3.20: Màn hình thông báo khi có dữ liệu gửi từ máy truyền

 Khi chọn nút "Yes" thì chương trình yêu cầu chọn thư mục cần lưu.

 Nhấn nút OK để chọn thư mục lưu tệp, chương trình sẽ bắt đầu thực hiện nhận dữ liệu.

Hình 3.22: Máy nhận tệp đang nhận dữ liệu

 Khi chương trình nhận dữ liệu tiếp nhận thể hiện trên thanh trạng thái

nhận thì màn hình chương trình gửi cũng thể hiện trạng thái gửi dữ liệu.

 Khi gửi và nhận dữ liệu thành công sẽ có thông báo trên màn hình.

Hình 3.24: Thông báo kết quả gửi dữ liệu thành công

Hình 3.25: Thông báo kết quả nhận dữ liệu thành công

3.2.6.2. Truyền và nhận tệp không thành công

 Khi thực hiện truyền và nhận dữ liệu nếu bên nhận nhấn nút "No" không đồng ý nhận thì sẽ có thông báo ở máy gửi như hình 3.25.

Hình 3.26: Máy truyền tệp nhận thông báo không nhận dữ liệu từ máy gửi

 Khi thực hiện truyền và nhận dữ liệu nếu bên nhận dữ liệu nhấn nút "Thoát" không đồng ý nhận hoặc máy gửi vào địa chỉ máy không chạy chương trình nhận tệp thì sẽ có thông báo ở máy gửi như hình 3.26.

3.2.7. So sánh kết quả truyền tệp với một vài phƣơng thức khác

Với một vài kết quả thực nghiệm tác giả đã tổng hợp được bảng so sánh truyền dữ liệu của phần mềm luận văn thực hiện với một vài phương thức truyền tệp khác: Bảng 3.4: So sánh kết quả thực nghiệm Dung lượng tệp Khoảng cách truyền thử nghiệm (m)

Chi phí thời gian (giây) Phần mềm tác giả làm thử nghiệm Truyền và nhận tệp qua Yahoo chat (đường truyền 3Mb/s) Truyền và nhận tệp qua Skype chat (đường truyền 3Mb/s)  1 MB  3m  6  8  4  10 MB  10m  50  60  36  100 MB  10m  365  385  338  500 MB  5m  1650  1780  1540  1000 MB  2m  3120 Không thực hiện được  3000

Từ kết quả thực nghiệm như trên với thời gian đo ở mức tương đối, số lần thực hiện chưa nhiều và khoảng cách ngắn, cho thấy chương trình truyền tệp thử nghiệm truyền chậm hơn Skype nhưng nhanh hơn Yahoo. Tuy nhiên chương trình cũng còn nhiều hạn chế như chưa truyền được tệp có dung lượng lớn hơn 1000MB, tốc độ chưa thực sự nhanh, chưa truyền được đồng thời nhiều tệp cùng lúc tới nhiều máy.

3.3. Kết luận chƣơng 3

Chương 3 của luận văn đã thực hiện thiết lập kết nối MANET, giới thiệu về môi trường truyền dẫn không dây, lập trình socket với phương thức truyền tệp TCP và UDP, phân tích bài toán và xây dựng sơ đồ khối truyền tệp theo phương thức TCP, xây dựng và thử nghiệm chương trình truyền tệp

KẾT LUẬN

KếT LUậN

Sau một thời gian tìm hiểu và hoàn thành luận văn, tác giả đã nắm bắt được cơ bản về công nghệ MANET và xây dựng phần mềm truyền tệp đơn giản trên mạng MANET. Cụ thể tác giả đã kết nối mạng Adhoc giữa một vài máy tính và chạy chương trình truyền tệp, truyền thành công tệp có dung lượng vừa và nhỏ.

Tuy nhiên công nghệ MANET thì trên thế giới đã và đang nghiên cứu nhưng cũng còn nhiều hạn chế như vấn đề năng lượng, chất lượng dịch vụ, vấn đề bảo mật,...Tác giả hy vọng rằng với việc tìm hiểu công nghệ MANET và xây dựng ứng dụng truyền tệp cũng như mở rộng thêm một số chức năng khác, trong tương lai gần sẽ giúp cho việc kết nối mạng không dây giữa các máy tính đơn giản hơn khi không phải phụ thuộc nhiều vào cơ sở hạ tầng, truyền dữ liệu giữa các máy được nhanh, an toàn và thuận lợi hơn trở thành hiện thực.

Mặc dù tác giả đã cố gắng, nỗ lực trong nghiên cứu và thực hiện đề tài, nhưng chắc chắn luận văn không tránh khỏi nhiều thiếu sót. Kính mong Quý thầy cô và các bạn gửi chỉ bảo, giúp đỡ để luận văn được hoàn thiện và có tính thực tế hơn.

Trong thời gian tiếp theo sẽ tiếp tục nghiên cứu về công nghệ MANET, mở rộng chương trình hiện tại có thể quản lý và điều khiển các máy tính trong mạng, có thể ứng dụng thực tế.

TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt

1. Khương Anh, Nguyễn Hồng Sơn (2006), Giáo trình hệ thống mạng

CCNA Semester 4, Nhà xuất bản Lao động Xã hội.

2. Phương Lan (2009), Lập trình Windows với C#.net, Nhà xuất bản Lao

động Xã hội.

3. Phạm Văn Trung (2009), Luận văn thạc sĩ CNTT, Đại học Huế.

4. http://megavnn.com.vn/chi-tiet/cac-giao-thuc-dinh-tuyen-trong-mang- MANET/526.html 5. http://aptech.vn 6. http://congdongsach.net/ebook/web/f9951-Lap-trinh-Socket.html 7. http://www.wirelessvn.com

Tài liệu Tiếng Anh

8. Qasim Nadia, Said Fatin & Aghvami Hamid (2009), Mobile Adhoc

Networking Protocol’s Evaluation through Simulation for Quality of

service, IAENG International Journal of Computer Science, 36:1,

JCS_36_1_10, 17 February.

9. Frank Ohrtman and Konrad Roeder (2008), Wi-Fi Handbook Building

802.11b Wireless Networks- Wi-Fi Security, McGraw- Hill.

10. http://datatracker.ietf.org/wg/MANET/charter 11. http://www.Adhocnets.org/2010/index.html

Một phần của tài liệu Tìm hiểu công nghệ manet và xây dựng ứng dụng truyền tệp (Trang 71 - 86)

Tải bản đầy đủ (PDF)

(86 trang)