Cuộc sống con người ngày càng hiện đại, kèm theo đó là sự phát triển thịnh vượng, vượt bậc của khoa học công nghệ, giúp con người thuận tiện trong mọi công việc và đời sống. Sự giao tiếp và truyền thông tin của con người ngày càng nhiều và trở nên rất quan trọng. Nhờ sự phát triển của kỹ thuật, công nghệ mà ngày nay con người đã có thể truyền dữ liệu, gửi thông tin, giao tiếp một cách dễ dàng. Việc giao tiếp, truyền phát dữ liệu về cơ bản được chia làm 2 loại: Không dây và có dây. Tuy nhiên, không phải việc truyền thông tin lúc nào cũng thực hiện được hay chính xác tuyệt đối mà bị tác động bởi nhiều yếu tố như môi trường ( thời tiết…), xung đột tín hiệu trên đường truyền…Vậy nên các quy tắc chuẩn hay Protocol được đưa ra để giải quyết vấn đề này. CSMA/CA là một trong những giao thức truyền tin giúp tránh sự xung đột dữ liệu trong đường truyền. Trong đề tài này, chúng em sẽ khái quát về cách thức hoạt động của protocol này và mô phỏng việc truyền gói tin giữa các host dựa trên hoạt động đó.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN I
TÌM HIỂU VÀ LẬP TRÌNH GIAO THỨC TRUY CẬP MẠNG
NGẪU NHIÊN CSMA/CA
Điện tử 07 - K60
CN Điện tử 01 - K61
Trang 205/10-01/11/2018 Đọc hiểu tài liệu, viết báo cáo slide hàng tuần
02/11-15/12/2018 Hiểu đề tài, lập trình mô phỏng giao thức, chỉnh sửa 16/12/2018- nay Tiếp tục đọc hiểu, chỉnh sửa code, viết báo cáo
PHÂN CHIA CÔNG VIỆC
Thành viên thực hiện Công việc
Cả nhóm Đọc hiểu tài liệu, thảo luận
Lam (60%) + Khang (40%) Chuẩn bị slide báo cáo hàng tuần
Lam (40%) + Khang (60%) Hiểu code, chỉnh sửa code
Lam Viết báo cáo, chỉnh sửa báo cáo
ĐIỂM ĐÁNH GIÁ CÁ NHÂN
Hà Mạnh Lam Doãn Xuân Khang
Trang 3I: PROTOCOL……… Trang 5 1: Khái niệm……… Trang 5 2: Hoạt động……… Trang 5 3: Một số Protocol thông dụng……… Trang 6
II: CSMA/CA Trang 8 1: Đặt vấn đề…….……… Trang 8 2: Khái niệm CSMA/CA……… Trang 8
2.1 Đa truy nhập, xung đột……… Trang 8
2.2 CSMA……… Trang 9
2.3 CSMA/CA……… Trang 11 3: Hoạt động… ……… Trang 12
3.1 CSMA trong mạng không dây……… Trang 12
3.2 Tránh va đập trong mạng không dây……… Trang 13
3.3 Các trường hợp gửi nhận gói tin giữa nguồn và đích ……… Trang 15
III: LẬP TRÌNH MÔ PHỎNG GIAO THỨC……… Trang 19 1: Mô tả chung……… Trang 19 2: Logic thực hiện ……… Trang 19 3: Code……….……… Trang 20 4: Kết quả thực hiện……… Trang 28
IV: NHẬN XÉT……… Trang 32 KẾT LUẬN……… Trang 34 TÀI LIỆU THAM KHẢO……… Trang 35
Trang 4dữ liệu, gửi thông tin, giao tiếp một cách dễ dàng
Việc giao tiếp, truyền phát dữ liệu về cơ bản được chia làm 2 loại: Không dây và có dây Tuy nhiên, không phải việc truyền thông tin lúc nào cũng thực hiện được hay chính xác tuyệt đối mà bị tác động bởi nhiều yếu tố như môi trường ( thời tiết…), xung đột tín hiệu trên đường truyền…Vậy nên các quy tắc chuẩn hay Protocol được đưa ra để giải quyết vấn
đề này
CSMA/CA là một trong những giao thức truyền tin giúp tránh sự xung đột dữ liệu trong đường truyền Trong đề tài này, chúng em sẽ khái quát về cách thức hoạt động của protocol này và mô phỏng việc truyền gói tin giữa các host dựa trên hoạt động đó
Học phần Đồ Án I đã giúp chúng em tìm hiểu thêm cũng như tiếp cận và kết nối lý thuyết với thực tế hơn Trong báo cáo cũng như quá trình thực hiện thiết kế mô phỏng và làm báo cáo còn nhiều sai sót về độ chính xác và chất lượng Vậy nhóm em rất mong nhận được sự thông cảm và đóng góp tích cực của cô để rút kinh nghiệm, cải thiện kĩ năng và
có thêm kiến thức học tập trong học phần này
Chúng em xin chân thành cảm ơn !
Hà Nội, ngày 22 tháng 12 năm 2018
Trang 5
Hình 8 Sơ đồ mô tả đầy đủ cơ chế CSMA/CA Hình 9 Quá trình gửi nhận thành công lần đầu Hình 10 Quá trình truyền với lỗi nhận bản tin CTS Hình 11 Quá trình truyền với lỗi nhận data
Hình 12 Quá trình truyền với lỗi bản tin phản hồi ACK Hình 13 Khảo sát giá trị Throughput và Time theo lambda
CTS Clear to send RTS Request to send NAV Network Allocation Vector
Trang 6ĐỒ ÁN I – CSMA/CA 5
I: PROTOCOL
1 Khái niệm
Giao thức giao tiếp hay còn gọi là giao thức truyền thông, giao thức liên mạng, giao
thức tương tác, giao thức trao đổi thông tin (tiếng Anh là communication protocol) - trong công nghệ thông tin gọi tắt là giao thức (protocol), tuy nhiên, tránh nhầm với giao thức trong các ngành khác - là một tập hợp các quy tắc chuẩn dành cho việc biểu diễn dữ liệu, phát tín hiệu, chứng thực và phát hiện lỗi dữ liệu - những việc cần thiết để gửi thông tin qua các kênh truyền thông, nhờ đó mà các máy tính (và các thiết bị) có thể kết nối và trao đổi thông tin với nhau Các giao thức truyền thông dành cho truyền thông tín hiệu số trong mạng máy tính có nhiều tính năng để đảm bảo việc trao đổi dữ liệu một cách đáng tin cậy qua một kênh truyền thông không hoàn hảo Các giao thức có thể được thực hiện bằng phần cứng, phần mềm hoặc kết hợp cả hai
Một giao thức xác định:
- Định dạng và thứ tự thông điệp trao đổi giữa hai hoặc nhiều thực thể giao tiếp
- Các hành động trong quá trình truyền/ nhận
Các giao thức khác nhau thực hiện các nhiệm vụ giao tiếp khác nhau
Các giao thức còn được gọi là các nghi thức hoặc định ước của máy tính
2 Hoạt động
Toàn bộ hoạt động truyền dữ liệu trên mạng phải được chia thành nhiều bước riêng biệt
có hệ thống Ở mỗi bước, một số hoạt động sẽ diễn ra và không thể diễn ra ở bất kỳ bước nào khác Mỗi bước có những nguyên tắc và giao thức riêng
Các bước phải được thực hiện theo một trình tự nhất quán giống nhau trên mỗi máy tính mạng Ở máy tính gửi, những bước này phải được thực hiện từ trên xuống Ở máy tính nhận, chúng phải được thực hiện từ dưới lên
Trang 7ĐỒ ÁN I – CSMA/CA 6
Hình 1: Hoạt động truyền dữ liệu của protocol
Cả máy tính gửi và máy tính nhận cần thực hiện từng bước theo cùng một cách để dữ liệu lúc nhận sẽ không thay đổi so với lúc gửi Chẳng hạn, hai giao thức có thể chia thành nhiều gói và bổ sung thêm các thông tin thứ tự, thông tin thời lượng và thông tin kiểm lỗi, tuy nhiên mỗi giao thức lại thực hiện việc này theo cách khác nhau Do đó, máy tính dùng giao thức này sẽ không thể giao tiếp thành công với máy tính dùng giao thức khác
và đúng thứ tự TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch
vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ
Trang 8• FTP (File Transfer Protocol): Cho phép trao đổi tập tin qua Internet, thường được dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCP/IP (chẳng hạn như Internet - mạng ngoại bộ - hoặc Intranet - mạng nội bộ)
• SMTP (Simple Mail Transfer Protocol): Là một chuẩn truyền tải thư điện tử, cho phép gởi các thông điệp thư điện tử (e-mail) qua Internet
• POP3 (Post Office Protocol, phiên bản 3): Là một giao thức tầng ứng dụng, dùng
để lấy thư điện tử từ server mail, thông qua kết nối TCP/IP POP3 và IMAP4 (Internet Message Access Protocol) là 2 chuẩn giao thức Internet thông dụng nhất dùng để lấy nhận email Hầu như các máy tính hiện nay đều hỗ trợ cả hai giao thức
• MIME (Multipurpose Internet Mail Extension): Là một tiêu chuẩn Internet về định dạng cho thư điện tử Hầu như mọi thư điện tử Internet được truyền qua giao thức SMTP theo định dạng MIME Vì gắn liền với chuẩn SMTP và MIME nên đôi khi thư điện tử Internet còn được gọi là thư điện tử SMTP/MIME, cho phép gởi kèm các tập tin nhị phân, phim, nhạc, theo thư điện tử
• WAP (Wireless Application Protocol): Là một tiêu chuẩn công nghệ cho các hệ thống truy nhập Internet từ các thiết bị di động như điện thoại, PDA Mặc dù tiêu chuẩn này chưa được chuẩn hóa trên toàn cầu, nhưng những ứng dụng của giao thức này đã tác động rất lớn đến ngành công nghiệp di động và các lĩnh vực dịch vụ liên quan WAP là mang lại rất nhiều ứng dụng cho người sử dụng thiết bị đầu cuối di động như E-mail, web, mua bán trực tuyến, ngân hàng trực tuyến …
Trang 9dữ liệu lên đường truyền Trong quá trình truyền tải, nó đồng thời lắng nghe, nhận lại các
dữ liệu mà nó đã gửi đi để xem có sự đụng độ với dữ liệu của các thiết bị khác hay không CSMA/CD được phát triển từ CSMA để tăng hiệu quả của phương thức CSMA, bằng cách dừng việc truyền tín hiệu ngay khi phát hiện thấy xung đột, giảm thiểu thời gian chờ
để thực hiện việc truyền tiếp theo (CSMA không kết thúc việc truyền dữ liệu nếu phát hiện xung đột, những máy đang truyền sẽ tiếp tục truyền, những máy gây xung đột sau khi nhận được thông báo sẽ dừng một khoảng thời gian trước khi cố gắng truyền tiếp)
Một cuộc đụng độ xảy ra nếu cả hai thiết bị cùng truyền dữ liệu một cách đồng thời Khi đụng độ xảy ra, mỗi thiết bị sẽ tạm dừng một khoảng thời gian ngẫu nhiên nào đó trước khi thực hiện truyền lại dữ liệu bị đụng độ Khi mạng càng bận rộn thì tần suất đụng độ càng cao Hiệu suất của mạng giảm đi một cách nhanh chóng khi số lượng các thiết bị nối kết vào mạng tăng lên
Giải pháp: Sử dụng cơ chế tránh xung đột trong quá trình truyền – Collision Avoidance
2 Khái niệm CSMA/CA
2.1 Đa truy nhập, xung đột
a) Đa truy nhập:
- Là cơ chế truy nhập trong đó người sử dụng sử dụng chung một băng tần
- Nhiều người sử dụng có thể truy cập kênh truyền tại cùng một thời điểm
• Ưu điểm: Không phải thiết lập kênh truyền trước khi gửi dữ liệu
• Nhược điểm: Có sự tranh chấp tài nguyên đường truyền dẫn đến xung đột dữ liệu trên đường truyền
- Đa truy nhập phù hợp cho cơ chế truyền không liên kết
Trang 10- Cơ chế truy nhập kênh
Hình 2: Cơ chế truy nhập kênh 1-persistent CSMA
Trang 11- p-persistent CSMA khắc phục nhược điểm của 1-persistent CSMA
- p-persistent CSMA đưa ra khái niệm mini slot: với tms << ts, thông thường là thời gian lan truyền tối đa của tín hiệu trên kênh (2 x round trip propagation delay)
- Cơ chế truy nhập kênh:
+ Khi kênh truyền rỗi, trạm truy nhập kênh với xác suất p
+ Ngược lại, trạm đợi một mini slot với xác suất (1-p) sau đó kiểm tra trạng thái kênh
Hình 3: Cơ chế truy nhập kênh p-persistent CSMA
Trang 12- Cơ chế truy nhập kênh:
Hình 4: Cơ chế truy nhập kênh none-persistent CSMA
- Nhận xét: Nếu thời gian back-off lớn, hiệu suất cũng giảm
2.3 CSMA/CA
CSMA/CA ( Carrier Sense Multiple Access with Collision Avoidance) là cơ chế đa truy cập (hoạt động như CSMA) nhưng tránh xung đột thuộc tầng vật lý kiểm soát phương thức truy cập được sử dụng trong IEEE 802.11 (Wi Fi) mạng LAN không dây (WLAN)
Điểm khác biệt ở đây là CSMA/CA sẽ chỉ truyền khi bên kia sẵn sàng nhận và không truyền nhận dữ liệu nào khác trong lúc đó
Điều này đặc biệt quan trọng đối với các mạng không dây, trong đó việc phát hiện
va chạm của CSMA/CD thay thế là không đáng tin cậy do vấn đề nút ẩn Chúng ta
sẽ đi sâu vào làm rõ sự hoạt động của giao thức này để thấy được ưu điểm của nó
so với CSMA và CSMA/CD
Trang 13ĐỒ ÁN I – CSMA/CA 12
3 Hoạt động
3.1 CSMA trong mạng không dây
- Carrier Sense : Trước khi truyền, trước tiên một nút lắng nghe phương tiện được chia sẻ (chẳng hạn như nghe tín hiệu không dây trong mạng không dây)
để xác định xem một nút khác có truyền hay không Lưu ý rằng vấn đề nút
ẩn có nghĩa là một nút khác có thể đang truyền mà không bị phát hiện ở giai đoạn này
- Nếu kênh truyền bận: Đợi đến khi kênh truyền rỗi (idle)
- Sau đó đợi thêm một khoảng thời gian DIFS (DCF Inter-Frame Space – 34us) cho trước (DIFS=RTT)
- Back-off một số mini slot tBO ngẫu nhiên Sau mỗi mini slot: tBO = tBO -1
- Nếu trong thời gian back-off kênh truyền lại bận thì trạm dừng đếm lùi và bảo toàn giá trị tBO tại thời điểm dừng
- Sau khi kênh truyền chuyển sang trạng thái rỗi một khoảng thời gian DIFS, trạm tiếp tục đếm lùi
- Nếu tBO = 0, truy nhập kênh và gửi gói
Hình 5: Cơ chế gửi gói tin trong CSMA mạng không dây
- Do kênh truyền vô tuyến là kênh không tin cậy:
+ Sau khi nhận được gói một khoảng SIFS (Service Inter-Frame Space), phía thu sẽ trả lại phía phát một gói ACK
+ SIFS < DIFS, gói ACK có độ ưu tiên cao hơn gói dữ liệu
Trang 14ĐỒ ÁN I – CSMA/CA 13
Hình 6: Cơ chế gửi - nhận trong CSMA mạng không dây
3.2 Tránh va đập trong mạng không dây
• Mạng không dây không sử dụng cơ chế phát hiện va đập (CD) mà sử dụng cơ chế tránh va đập (Collision Avoidance - CA)
• Collision Avoidance:
- Trước khi phát: phía phát quảng bá bản tin RTS (Ready-To-Send)
- Khi nhận được RTS, phía thu quảng bá bản tin CTS (Clear-To-Send) Giả sử
A gửi dữ liệu cho B, C khi nhận được CTS => C trì hoãn gửi dữ liệu cho B
- Trong RTS và CTS mang theo bản tin NAV (Network Allocation Vector) chứa thời gian chiếm kênh của phía phát
- Các trạm khác dừng việc truy nhập kênh trong khoảng thời gian được chỉ ra trong NAV
Hình 7: Tránh va đập trong mạng không dây
Trang 15ĐỒ ÁN I – CSMA/CA 14
Hình 8: Sơ đồ mô tả đầy đủ cơ chế CSMA/CA
• RTS/CTS (Yêu cầu gửi/ Xoá để gửi): Để giảm bớt vấn đề của các nút ẩn (Các nút
ẩn trong mạng không dây là các nút nằm ngoài phạm vi của các nút khác hoặc tập hợp các nút) bởi vì, ví dụ, trong một mạng không dây, Điểm truy cập chỉ phát hành CTS - Xóa để gửi đến một nút tại một thời điểm Tuy nhiên, việc triển khai 802.11 không dây thường không triển khai RTS / CTS cho tất cả các kênh truyền; họ có thể tắt hoàn toàn hoặc ít nhất là không sử dụng nó cho các gói nhỏ (chi phí hoạt động của RTS, CTS và truyền tải quá lớn cho việc truyền dữ liệu nhỏ)
• SIFS - Short interframe space: Không gian liên khung ngắn, là lượng thời gian tính bằng micrô giây cần thiết cho giao diện không dây để xử lý khung nhận được và phản hồi với khung phản hồi Thời gian SIFS bao gồm độ trễ trong RF thu , độ trễ PLCP và độ trễ xử lý MAC , phụ thuộc vào lớp vật lý được sử dụng Trong các mạng IEEE 802.11 , SIFS là khoảng cách giữa các khung hình trước khi truyền khung ACK , khung Clear to send (CTS)
• Chuẩn 802.11 mô tả giao thức DCF , điều khiển truy cập vào môi trường vật lý Một trạm phải cảm nhận trạng thái của môi trường không dây trước khi truyền Nếu nó thấy rằng phương tiện liên tục không hoạt động trong khoảng thời gian DCF Interframe Space (DIFS), thì nó được phép truyền một khung Nếu kênh được tìm thấy bận trong khoảng thời gian DIFS, trạm sẽ trì hoãn việc truyền phát
ACK
Trang 16ĐỒ ÁN I – CSMA/CA 15
Bảng 1: DIFS theo các chuẩn kết nối không dây
Bảng 2: SIFS theo các chuẩn kết nối không dây
3.3 Các trường hợp gửi – nhận gói tin giữa nguồn và đích
Về cơ bản, có 3 trường hợp chính xảy ra trong quá trình truyền phát gói tin giữa phía phát (nguồn) và phía thu (đích):
• Thành công ngay lần đầu
• Phía phát không nhận được bản tin CTS
• Phía phát không nhận được bản tin ACK
a) Gửi gói tin thành công ngay lần đầu
Trang 17ĐỒ ÁN I – CSMA/CA 16
Hình 9: Quá trình gửi nhận thành công lần đầu
- Đầu tiên nút muốn truyền dữ liệu sẽ nghe ngóng đường truyền xem có nút khác đang truyền hay không Nếu không, nó sẽ đợi 1 khoảng thời gian DIFS rồi gửi đi bản tin RTS (request to send) yêu cầu phía nhận chuẩn bị kết nối
- Quá trình truyền dữ liệu kết thúc, hoặc phía phát và phía thu sẽ bắt đầu một quá trình gửi – nhận mới
b) Phía phát không nhận được bản tin CTS
- Không phải lúc nào phía thu cũng sẵn sàng nhận dữ liệu từ phía phát
- Sau khi gửi bản tin RTS, nếu phía thu không sẵn sàng nhận dữ liệu, nó sẽ không gửi lại bản tin CTS Hoặc do một nguyên nhân nào đó khiến cho bản tin RTS bị mất, phía thu không nhận được yêu cầu gửi Trong trường hợp đó, phía phát sẽ tiếp tục chờ cho đến khi nhận được bản tin phản hồi Nhưng
Trang 18ĐỒ ÁN I – CSMA/CA 17
không thể chờ mãi, vậy nên một khoảng thời gian Time-out được tạo ra tính
từ khi gửi bản tin RTS để trong trường hợp chờ, phía phát sẽ chỉ chờ trong khoảng thời gian này
Hình 10: Quá trình truyền với lỗi nhận bản tin CTS
- Khi hết Time-out, phía phát sẽ quay lại nghe ngóng đường truyền, chờ 1 khoảng DIFS và gửi lại tín hiệu RTS tới phía thu Quá trình lặp đi lặp lại cho đến khi nhận được bản tin CTS
c) Phía phát không nhận được bản tin ACK
- Có 2 trường hợp phía phát không nhận được bản tin phản hồi ACK:
+ Dữ liệu (Data) bị lỗi hoặc mất trên đường truyền
+ Bản tin phản hồi ACK bị mất trên đường truyền
• Dữ liệu bị lỗi hoặc mất trên đường truyền
- Sau khi nhận được bản tin CTS, phía phát gửi dữ liệu (chia nhỏ thành các gói tin) cho phía thu, đồng thời đặt một Time-out Nếu phía thu không nhận được
dữ liệu hoặc dữ liệu bị lỗi, nó sẽ không gửi lại bản tin phản hồi ACK Khi đó, phía phát sẽ căn cứ vào Time-out đã đặt và thực hiện truyền phát lại từ đầu