tắt Tiếng Anh Tiếng ViệtACK Acknowledgment Frame Khung xác nhận tích cựcABM Asynchronous Balanced Mode Chế độ cân bằng không đồng bộARQ Automatic Repeat Request Yêu cầu lặp lại tự độngCH
Trang 1tắt Tiếng Anh Tiếng Việt
ACK Acknowledgment Frame Khung xác nhận tích cựcABM Asynchronous Balanced Mode Chế độ cân bằng không đồng bộARQ Automatic Repeat Request Yêu cầu lặp lại tự độngCHAP Challenge-Handshake Authentication Protocol Giao thức chứng thực bắt tay
HDLC High-level Data Link Control Điều khiển liên kết dữ liệu mức cao
LCP Link Control Protocol Giao thức điều khiển liên kếtNAK Negative Acknowledgment Frame Khung xác nhận tiêu cựcNCP Network Control Protocol Giao thức điều khiển mạngNRM Normal Response Mode Chế độ trả lời bình thường
PAP Password Authentication Protocol Giao thức chứng thực mật khẩu
PPP Point-to-Point Protocol Giao thức điểm-nối-điểm
SABM Set Asynchronous Balanced Mode Thiết lập chế độ cân bằng không đồng bộ
SNRM Set Normal Response Mode Thiết lập chế độ trả lời bình thườngTCP Transmission Control Protocol Giao thức điều khiển truyền dẫn
UA Unnumbered Acknowledgment Xác nhận không số
UDP User Datagram Protocol Giao thức lớp giao vậnVoIP Voice over Internet Protocol Truyền giọng nói trên giao thức IP
Trang 3Bảng 2.1 Hiệu quả của Stop-and-Wait ARQ trong trường hợp không lỗi Bảng 2.2 Tóm tắt kết quả thực hiện
Bảng 2.3 Kích thước cửa sổ cần thiết khi kết hợp trễ và tốc độ bít
Trang 4Hình 2.1 Thực thể lớp n thực hiện một giao thức cung cấp dịch vụ cho lớp n+1 Hình 2.2 Giao thức peer-to-peer hoạt động qua hop mạng
Hình 2.3 Giao thức peer-to-peer hoạt động qua mạng đầu cuối
Hình 2.4 Giao thức peer-to-peer hoạt động qua mạng đầu cuối
Hình 2.5 Chức năng thích ứng
Hình 2.6 Bản tin, luồng và thứ tự các khối
Hình 2.7 Hướng tiếp cận của End-to-end với Hop-by-hop
Hình 2.8 Thành phần cơ bản của ARQ
Hình 2.9 Sự truyền khung không theo thứ tự
Hình 2.10 Sự cố khi nhầm lẫn các tín hiệu ACK
Hình 2.11 Thông tin trạng thái hệ thống Stop-and-Wait ARQ
Hình 2.12 Khung thăm dò trong Stop-and-Wait ARQ
Hình 2.13 Cơ chế hoạt động giao thức Go-Back-N ARQ
Hình 2.14 Sự tương quan giữa Stop-and-Wait ARQ và Go-Back-N ARQ
Hình 2.15 Go-Back-N ARQ
Hình 2.16 Kích thước cửa sổ nên bé hơn 2 m
Hình 2.17 Khôi phục lỗi cho NAK
Hình 2.18 Các thông số trong hệ thống Go-Back-N ARQ 2 chiều
Hình 2.19 Tính toán các giá trị thời gian chờ
Hình 2.20 ARQ phát lặp chọn lọc
Hình 2.21 Khôi phục lỗi trong ARQ phát lặp chọn lọc
Hình 2.22 Kích thước cửa sổ tối đa trong ARQ phát lặp chọn lọc
Hình 2.23 Các thành phần trễ trong Stop-and-Wait ARQ
Hình 2.24 Hiệu quả truyền dẫn của giao thức ARQ
Hình 2.25 Kích thước khung tối ưu
Hình 2.26 Điều khiển luồng ON-OFF
Hình 2.27 Điều khiển luồng cửa sổ trượt
Hình 2.28 Khôi phục thời gian
Hình 2.29 Tốc độ đồng hồ và ảnh hưởng của nó trên đường truyền
Hình 2.30 Khôi phục đồng hồ thích ứng
Hình 2.31 Khôi phục đồng hồ trong mạng đồng bộ
Hình 2.32 Minh họa TCP
Trang 6DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH VẼ
Trang 7LỜI NÓI ĐẦU
Ngày nay với mức độ phổ biến của máy tính cá nhân và mạng Internet, mạng ngang hàng với nhiều đặc tính phù hợp cho các hệ thống phân tán, ngày càng thu hút được nhiều chú ý của người sử dụng và giới nghiên cứu phát triển ứng dụng Cùng với xu thế đó mô hình mạng ngang hàng có cấu trúc cũng dành được nhiều sự quan tâm và phát triển do đặc điểm là mạng ngang hàng thuần túy, không yêu cầu có sự tham gia của các máy chủ trung tâm Đặc điểm này giúp mạng ngang hàng cấu trúc có khả năng mở rộng tốt hơn tuy nhiên cũng tạo
ra nhiều các vấn đề kỹ thuật cần phải giải quyết
Rất nhiều ứng dụng phức tạp đã được phát triển trên nền tảng mạng ngang hàng có cấu trúc như các hệ thống truy vấn dữ liệu, hay hệ thống quản trị cơ sở
dữ liệu… Các ứng dụng chia sẻ file, hay thoại VoIP, video truyền hình…ngày càng được sử dụng rộng rãi trên toàn thế giới Cũng như các công nghệ ra đời trong thời gian gần đây, thì vấn đề giao thức là đặc biệt quan trọng Việc nắm chắc giao thức là chìa khóa thành công của việc triển khai mỗi một công nghệ mới vào thực tế Chính vì vậy, trong nội dung của đồ án tốt nghiệp này, em xin
được giới thiệu về “Các giao thức truyền số liệu P2P” với nội dung chính như
sau:
Chương 1: Tổng quan về mạng ngang hàng P2P
Chương 2 : Các giao thức truyền số liệu P2P
Chương 3 : Điều khiển liên kết dữ liệu và một số ứng dụng phát triển trên nền tảng giao thức P2P
Trong quá trình thực hiện đồ án em xin gửi lời cảm ơn đến giảng viên TS.Nguyễn Văn Giáo đã hướng dẫn chỉ bảo tận tình để em có thể hoàn thành tốt
Đồ án tốt nghiệp này Em xin chân thành cảm ơn các Thầy, Cô trong bộ môn đã giảng dạy, cung cấp cho em nhiều kiến thức trong khóa học vừa qua tại trường Học viện Kỹ thuật quân sự
Trang 8Do thời gian tìm hiểu còn ngắn, kiến thức của em còn hạn hẹp nên đồ án còn nhiều thiếu xót Em mong các thầy, cô chỉ bảo thêm để em có thể hoàn thiện tốt hơn đề tài này Em xin chân thành cảm ơn.
Học viên thực hiện Kiều Văn Quyết Chiến
Trang 9Chương 1 TỔNG QUAN VỀ MẠNG NGANG HÀNG P2P 1.1 Giới thiệu
Mạng ngang hàng (Peer-to-Peer) xuất hiện từ năm 1999 và đã thu hút sự quan tâm của giới CNTT trong những năm gần đây Đặc biệt việc áp dụng các
mô hình P2P trong việc xây dựng những ứng dụng chia sẻ file (file sharing), điện thoại trên nền Internet (Internet-based telephony) đã đạt được nhiều thành công
Hiện nay các ứng dụng P2P chiếm khoảng 50%(thậm chí 75%) băng thông trên Internet
1.2 Định nghĩa P2P
Mạng ngang hàng (tiếng Anh: peer-to-peer network ), còn gọi là mạng đồng đẳng, là một mạng máy tính trong đó hoạt động của mạng chủ yếu dựa vào khả năng tính toán và băng thông của các máy tham gia chứ không tập trung vào một số nhỏ các máy chủ trung tâm như các mạng thông thường Mạng đồng đẳng thường được sử dụng để kết nối các máy thông qua một lượng kết nối dạng
ad học Mạng đồng đẳng có nhiều ứng dụng Ứng dụng thường xuyên gặp nhất
là chia sẻ tệp tin, tất cả các dạng như âm thanh, hình ảnh, dữ liệu, hoặc để truyền dữ liệu thời gian thực như điện thoại VoIP
Mạng đồng đẳng đúng nghĩa là một kiểu mạng được thiết kế cho các thiết
bị trong đó có chức năng và khả năng của các thiết bị đó là như nhau.Mạng P2P không có khái niệm máy trạm (client) hay máy chủ (server), nói cách khác, tất
cả các máy tham gia đều bình đẳng và được gọi là peer, là một nút mạng đóng vai trò như cả client và server
Overlay network: Là mạng máy tính được xây dựng trên nền của một mạng khác Các nodes trong mạng overlay được xem là nối với nhau bằng liên kết ảo (logical links), mỗi liên kết ảo có thể bao gồm rất nhiều các liên kết vật lí của mạng nền
Trang 10Rất nhiều mạng P2P được gọi là overlay networks vì nó được xây dựng và hoạt động trên nền internet VD: Gnutella, Freenet, DHTs….Dial-up Internet cũng là một overlay network trên nền telephone network.
Bảng 1 So sánh mô hình P2P với mô hình Client/Server
_Một mạng ngang hàng cho phép các
node (PCs) đóng góp, chia sẻ nguồn
tài nguyên với nhau Tài nguyên riêng
rẽ của các node (ổ cứng, CD-ROM,
máy in….), các nguồn tài nguyên này
có thể được truy cập từ bất cứ node
nào trong mạng
_Các node đóng vai trò như cả Client
(truy vấn thông tin) và Server (cung
cấp thông tin)
_ Dữ liệu được lưu trữ ở một Server trung tâm, tốc độ cao (Tốc độ truy cập thường lớn hơn mạng P2P)
_Khi một máy client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu
Ưu nhược điểm của mạng P2P và Client/Server
Ưu điểm:
Không cần server riêng, các client
chia sẻ tài nguyên Khi mạng càng
được mở rộng thì khả năng hoạt
Đắt
Phức tạp trong việc bảo trì, duy trì hoạt động của mạng
Trang 111.3 Phân loại mạng ngang hàng
Mạng ngang hàng có thể được phân loại theo mục đích sử dụng, ví dụ:
• Chia sẻ file (file sharing)
• Điện thoại VoIP (telephony)
• Đa phương tiện media streaming (audio, video)
• Diễn đàn thảo luận (Discussion forums)
Mạng ngang hàng còn có thể được phân loại theo mức độ tập trung của mạng (đối với P2P overlay networks) như sau:
Mạng đồng đẳng thuần túy:
• Các máy trạm có vai trò vừa là máy chủ vừa là máy khách
• Không có máy chủ trung tâm quản lý mạng
• Không có máy định tuyến (bộ định tuyến) trung tâm, các máy trạm có khả năng tự định tuyến
Bao gồm:
• Hệ thống mạng ngang hàng tập trung (Centralized):
• Hệ thống mạng ngang hàng thuần túy (Pure)
• Các mạng ngang hàng lai (Hybrid)
Trang 12Thuần túy
Lai
DHT cơ bản
Hình 1 Mạng ngang hàng có cấu trúc (Structured)
1.3.1 Hệ thống mạng ngang hàng tập trung (Centralized)
Đây là mạng ngang hàng thế hệ thứ nhất, đặc điểm là vẫn còn dựa trên một máy chủ tìm kiếm trung tâm, chính vì vậy nó còn được gọi là mang ngang hàng tập trung (centralized Peer-to-Peer networks) Cấu trúc Overlay của mạng ngang hàng tập trung có thể được mô tả như một mạng hình sao
Hình 1 Mạng ngang hàng tập trung thế hệ thứ nhất (Napster) [6].
Trang 13Nguyên tắc hoạt động:
• Mỗi client lưu trữ files định chia sẻ với các node khác trong mạng
• Một bảng lưu trữ thông tin kết nối của người dùng đăng kí (IP address, connection bandwidth ….)
• Một bảng liệt kê danh sách các files mà mỗi người dùng định chia sẻ (tên file, dung lượng, thời gian tạo file …….)
Mọi máy tính tham gia mạng được kết nối với máy chủ tìm kiếm trung tâm, các yêu cầu tìm kiếm được gửi tới máy chủ trung tâm phân tích, nếu yêu cầu được giải quyết máy chủ sẽ gửi trả lại địa chỉ IP của máy chứa tài nguyên trong mạng và quá trình truyền file được thực hiện theo đúng cơ chế của mạng ngang hàng, giữa các host với nhau mà không cần quan máy chủ trung tâm
Cần quản trị mạng (Central Server)
Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng của thế hệ thứ nhất, chúng được dùng cho việc chia sẻ các file giữa các người dùng Internet, được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi yếu tố về luật pháp Khái niệm và kiến trúc của Napster vẫn còn được sử dụng trong các ứng dụng khác như: Audiogalaxy, WinMX
Với Napster, việc tìm kiếm file bị thất bại khi bảng tìm kiếm trên máy chủ
vì lý do nào đó không thực hiện được Chỉ có các file truy vấn và việc lưu trữ được phân tán, vì vậy máy chủ đóng vai trò là một nút cổ chai Khả năng tính toán và lưu trữ của máy chủ tìm kiếm phải tương xứng với số nút mạng trong hệ thống, do đó khả năng mở rộng mạng bị hạn chế rất nhiều
Trang 141.3.2 Mạng ngang hàng thuần túy (Pure)
Mạng ngang hàng thuần túy là một dạng khác của thế hệ thứ nhất trong hệ thống các mạng ngang hàng Không còn máy chủ tìm kiếm tập trung như trong mạng Napster, nó khắc phục được vấn đề nút cổ chai trong mô hình tập trung Tuy nhiên vấn đề tìm kiếm trong mạng ngang hàng thuần túy lại sử dụng cơ chế Flooding, yêu cầu tìm kiếm được gửi cho tất cả các node mạng là láng giềng với
nó, điều này làm tăng đáng kể lưu lượng trong mạng Đây là một yếu điểm của các mạng ngang hàng thuần túy Các phần mềm tiêu biểu cho mạng ngang hàng dạng này là Gnutella 4.0, FreeNet
Hình 1 Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet) [6].
Ưu điểm:
Dễ xây dựng
Đảm bảo tính phân tán hoàn toàn cho các node tham gia mạng, các node tham gia và rời khỏi mạng một cách tùy ý mà không ảnh hưởng đến cấu trúc của mạng
Nhược điểm:
Tốn băng thông
Phức tạp trong tìm kiếm.Các node có khả năng khác nhau (CPU power, bandwidth, storage) đều có thểphải chịu tải (load) như nhau
Trang 151.3.3 Các mạng ngang hàng lai Hybrid.
Để khắc phục nhược điểm của mạng ngang hàng thuần túy, một mô hình mang ngang hàng mới được phát triển với tên gọi là mạng ngang hàng lai.Đây được gọi là mạng ngang hàng thế hệ 2 Phần mềm tiêu biểu cho mạng ngang hàng kiểu này là Gnutella 0.6 và JXTA (Juxtapose) JXTA được bắt đầu phát triển bởi SUN từ 2001 (Đây là giao thức P2P mã nguồn mở) JXTA được sử dụng cho PCs, mainframes, cell phones, PDAs – để giao tiếp theo cách không tập trung Skype cũng được xây dựng dựa trên cấu trúc này
Hình 1 Các mạng ngang hàng lai Hybrid [6].
Trong mô hình mạng ngang hàng lai tồn tại một trật tự phân cấp bằng việc định nghĩa các Super Peers.Các SupperPeer tạo thành một mạng không cấu trúc,
có sự khác nhau giữa SupperPeers và ClientPeers trong mạng, mỗi SupperPeer
có nhiều kết nối đến các ClientPeers.Mỗi SupperPeer chứa một danh sách các file được cung cấp bởi các ClientPeer và địa chỉ IP của chúng vì vậy nó có thể trả lời ngay lập tức các yêu cầu truy vấn từ các ClientPeer gửi tới
Ưu điểm:
Hạn chế việc Flooding các query, làm giảm lưu lượng trong mạng, nhưng vẫn tránh được hiện tượng nút cổ chai (do có nhiều SuperPeers)
Trang 16Khắc phục được nhược điểm về sự khác nhau về CPU power, bandwidth
… ở mạng ngang hàng thuần túy, các SuperPeer sẽ chịu tải chính, các node khác chịu tải nhẹ
Một mạng đồng đẳng không cấu trúc khi các liên kết giữa các nút mạng trong mạng phủ được thiết lập ngẫu nhiên (tức là không theo quy luật nào) Những mạng như thế này dễ dàng được xây dựng vì một máy mới khi muốn tham gia mạng có thể lấy các liên kết có sẵn của một máy khác đang ở trong mạng và sau đó dần dần tự bản thân nó sẽ thêm vào các liên kết mới của riêng mình Khi một máy muốn tìm một dữ liệu trong mạng đồng đẳng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền trên cả mạng để tìm ra càng nhiều máy chia sẻ càng tốt Hệ thống này thể hiện rõ nhược điểm: không có gì đảm bảo tìm kiếm sẽ thành công Đối với tìm kiếm các dữ liệu phổ biến được chia sẻ trên nhiều máy, tỉ lệ thành công là khá cao, ngược lại, nếu dữ liệu chỉ được chia sẻ trên một vài máy thì xác suất tìm thấy là khá nhỏ Tính chất này là hiển nhiên vì trong mạng đồng đẳng không cấu trúc, không có bất kì mối tương quan nào giữa một máy và dữ liệu nó quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển một cách ngẫu nhiên đến một số máy trong mạng Số lượng máy trong mạng càng lớn thì khả năng tìm thấy thông tin càng nhỏ
Một nhược điểm khác của hệ thống này là do không có định hướng, một yêu cầu tìm kiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốn một lượng lớn băng thông của mạng, dẫn đến hiệu quả tìm kiếm chung của mạng thấp
Hầu hết các mạng đồng đẳng phổ biến là không cấu trúc như Napster, Gnutella, Fasttrack và eDonkey2000
1.3.4 Mạng ngang hàng có cấu trúc Structured
Mạng đồng đẳng có cấu trúc khắc phục nhược điểm của mạng không cấu trúc bằng cách sử dụng hệ thống DHT (Bảng Băm Phân Tán, tiếng anh: Distributed Hash Table) Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút
Trang 17mạng sẽ chịu trách nhiệm đối với một phần dữ liệu chia sẻ trong mạng Với cấu trúc này, khi một máy cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả.
Một số mạng đồng đẳng có cấu trúc nổi tiếng bao gồm Chord, CAN, Kademlia, Pastry và Tapestry
Đặc điểm:
• Topo mạng được kiểm soát chặt chẽ
• File hoặc con trỏ tới File được đặt ở một vị trí xác đinh
• Điều quan trọng đối với những hệ thống có cấu trúc là cung cấp sự liên kết (mapping) giữa nội dung (ví dụ: id của file) và vị trí node (ví dụ: địa chỉ node) Việc này thường dựa trên một cấu trúc dữ liệu bảng băm phân tán (Distributed Hash Table)
Trang 18Hình 1 Cơ chế của bảng băm phân tán (DHT) [6].
Dựa trên cấu trúc bảng băm phân tán đã có nhiều nghiên cứu và đề xuất ra các mô hình mạng ngang hàng có cấu trúc, điển hình là cấu trúc dạng vòng: Chord, Pastry…, và cấu trúc không gian đa chiều: CAN, Viceroy
Ưu điểm:
Khả năng mở rộng hệ thống mạng trong mô hình không cấu trúc thường
bị hạn chế bởi các kỳ thuật trong việc xây dựng mạng chẳng hạn như: Mô hình tập trung dẫn tới việc thắt nút cổ chai khi mở rộng, kỹ thuật Flooding dẫn tới việc tăng lưu lượng mạng khi mở rộng mạng Trong khi đó khả năng mở rộng với mô hình mạng có cấu trúc được nâng cao rõ rệt
Nhược điểm:
Việc quản lí cấu trúc của topo mạng gặp khó khăn, đặc biệt trong trong trường hợp tỷ lệ vào/ra mạng của các nodes cao
Vấn đề cân bằng tải trong mạng
Sự khác biệt về topology trên mạng overlay và mạng liên kết vật lý dẫn đến thời gian trễ truy vấn trung bình cao
Trang 191.3.5 Ưu thế của mạng ngang hàng
Một mục đích quan trọng của mạng đồng đẳng là trong mạng tất cả các máy tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán Do đó khi càng có nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng càng lớn Ngược lại, trong cấu trúc máy chủ-máy khách, nếu số lượng máy chủ là cố định, thì khi số lượng máy khách tăng lên khả năng chuyển dữ liệu cho mỗi máy khách sẽ giảm xuống
Tính chất phân tán của mạng đồng đẳng cũng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố Đối với cấu trúc tập trung, chỉ cần máy chủ gặp sự
cố thì cả hệ thống sẽ ngưng trệ
Đối với mạng Napster, thuật ngữ đồng đẳng nói lên tính chất quan trọng của giao thức giao tiếp đồng đẳng, còn thực ra thành công của Napster phải nhờ vào sự liên kết chặt chẽ giữa các máy tham gia với máy chủ trung tâm lưu trữ danh sách nội dung tệp trên các máy tham gia Nhờ vậy việc tìm kiếm trở nên nhanh và hiệu quả hơn, tuy nhiên, đây cũng chính là điểm yếu dẫn đến các rắc rối pháp lý mà kết cục là sự sụp đổ của Napster
Thứ nhất, Server phụ thuộc rất nhiều vào phần cứng Sẽ không có vấn đề
gì nếu Server của bạn chỉ lưu trữ mỗi một nội dung nhất định, nhưng thực tế thì mỗi Server phải xử lí hàng trăm yêu cầu khác nhau từ mỗi Client, chẳng hạn như Toonima – bạn muốn đọc bài A thì Server phải xử lí và cho ra nội dung bài A, một bạn khác muốn đọc bài B thì Server phải xử lí và cho ra nội dung bài B – mỗi lần như thế sẽ khiến Server sử dụng một phần CPU và RAM để xử lí, Server sẽ cần nâng cấp nếu khả năng xử lí không đủ đáp ứng nhu cầu của Client
Đó chính là giới hạn về phần cứng của Server
Thứ hai, mỗi Client sử dụng một phần nhỏ đường truyền mạng của Server, ví dụ: Server của bạn có đường truyền mạng khoảng 100MB/s, tức nếu bạn có 100 Client cùng sử dụng thì mỗi người sẽ có 1 MB/s để dùng, nhưng nếu
có khoảng 1000 Client thì mỗi người chỉ còn 100KB/s mà thôi Đấy chính là giới hạn về đường truyền của Server
Trang 20Và cuối cùng, đó chính là giá thành của dung lượng, nếu có 1 file nặng khoảng 1MB và được 1000 người tải xuống thì tổng dung lượng của dữ liệu được tải xuống sẽ là 1GB Bạn sẽ không phải trả tiền cho 1MB dữ liệu này, nhưng nhà quản trị web phải trả số tiền đó, thử nghĩ 1 bộ phim nặng khoảng 1GB và có khoảng 10.000 người tải xuống thì số tiền họ phải trả là bao nhiêu? Giá thành quá đắt chính là giới hạn của mô hình Server – Client.
1.3.6 Kết luận chương 1
Mạng ngang hàng (P2P) là mạng mà trong đó hai hay nhiều máy tính chia sẻ tập tin và truy cập các thiết bị như máy in mà không cần đến máy chủ hay phần mềm máy chủ Ởdạng đơn giản nhất, mạng P2P được tạo ra bởi hai hay nhiều máy tính được kết nối với nhau và chia sẻ tài nguyên mà không phải thông qua một máy chủ dành riêng Mạng P2P có thể là kết nối tại chỗ – hai máy tính nối với nhau qua cổng USB để truyền tập tin P2P cũng có thể là cơ sở hạ tầng thường trực kết nối 5-6 máy tính với nhau trong một văn phòng nhỏ bằng cáp đồng Hay nó cũng có thể là một mạng có quy mô lớn hơn nhiều, dùng các giao thức và ứng dụng đặc biệt để thiết lập những mối quan hệ trực tiếp giữa người dùng trên internet Ứng dụng ban đầu của mạng P2P là sự tiếp nối của việc triển khai các máy tính cá nhân độc lập vào đầu những năm 1980 Khác với máy tính lớn (cỡ mini) ngày ấy có vai trò máy tính xử lý và lưu trữ trung tâm phục vụ các tác vụ xử lý văn bản và những ứng dụng khác cho các thiết bị đầu cuối (terminal), PC đời mới lúc đó có riêng đĩa cứng và CPU Nó còn có sẵn các ứng dụng, nghĩa là nó có thể triển khai trên bàn làm việc và thực sự hữu dụng mà không cần phải nối đến máy tính lớn.Người dùng cảm thấy được giải phóng khi có máy tính dùng riêng trên bàn làm việc của mình Nhưng sau đó, họ thấy cần phải có phương thức để chia sẻ tập tin và máy in Phương pháp dễ dàng nhất là lưu tập tin trên đĩa mềm và mang nó đến cho người nhận hay gửi đi bằng đường thư nội bộ
Thực tế đó đã dẫn đến thuật ngữ mạng thủ công (sneaker net) Điểm cuối thường gặp nhất của mạng thủ công tiêu biểu là nhân viên có máy in nối vào
Trang 21máy tính của họ.Tuy sneaker net là sự pha trộn kỳ lạ của công nghệ mới và dạng vận chuyển cổ lỗ sĩ nhất nhưng mô hình này lại là nền tảng thực sự cho những nhóm làm việc nhỏ P2P ngày nay.Trong khi mô hình tính toán tập trung hoá ban đầu và hệ thống client/server hiện nay nhìn chung được coi như môi trường bị điều khiển, trong đó mỗi cá nhân dùng máy tính theo cách thức do cấp cao hơn quyết định, mạng làm việc nhóm p2p cổ điển lại hoàn toàn mở về chia sẻ tập tin và thiết bị.Nói chung mạng p2p văn phòng và gia đình dùng chuẩn Ethernet (10Mb/s) hay Fast Ethernet (100M b/s) và kết nối theo mô hình hub-and spoke Cáp đồng category 5 (xoắn đôi) nối giữa các PC và Ethernet hub hay switch, cho phép người dùng PC nối mạng này truy cập chia sẻ đĩa cứng, máy in hay ngay cả kết nối internet.
Mỗi PC được kết nối đồng thời vừa làm máy chủ vừa làm máy khách Không có hệ điều hành mạng chuyên dụng chạy trên máy tính mạnh để hỗ trợ các ứng dụng đặc biệt của phía máy chủ như dịch vụ thư mục (cơ sở dữ liệu chuyên dụng kiểm soát người nào truy cập vào cái gì).Trong môi trường P2P, quyền truy cập được điều khiển bằng cách thiết lập các thông số về quyền chia sẻ trên từng máy tính.Ví dụ, nếu PC của người dùng A kết nối với một máy in mà người dùng B muốn truy cập đến, người dùng A phải cài đặt máy của mình để cho phép (chia sẻ) truy cập đến máy in Tương tự nếu người dùng B muốn truy cập đến thư mục, tập tin hay thậm chí toàn bộ đĩa cứng trên PC của người dùng A, A phải cho phép việc chia sẻ tập tin trên PC của mình
Trang 22Chương 2 CÁC GIAO THỨC TRUYỀN SỐ LIỆU P2P 2.1 Tổng quan về giao thức
2.1.1 Khái niệm về giao thức
Giao thức (protocol) 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ờ đó 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 Nói một cách dễ hiểu giao thức là tiêu chuẩn giao tiếp giữa hai hệ thống giúp chúng hiểu
và trao đổi dữ liệu được với nhau [6]
2.1.2 Vai trò của giao thức trong truyền thông
• Đóng gói: Trong quá trình trao đổi thông tin, các gói dữ liệu được thêm
vào 1 số thông tin điều khiển, bao gồm địa chỉ đích, mã phát hiện lỗi, điều khiển giao thức việc thêm thông tin điều khiển vào gói dữ liệu được gọi
là quá trình đóng gói (Encapsulation) Bên thu sẽ được thực hiện ngược lại, thông tin điều khiển sẽ được gỡ bỏ khi gói tin chuyển từ tầng dưới lên tầng trên [7]
Trang 23• Phân đoạn và tái hợp: Mạng truyền thông chỉ chấp nhận kích thước các
gói dữ liệu cố định Các giao thức ở các tầng thấp cần phải cắt dữ liệu thành những gói có kích thước quy định Quá trình này gọi là quá trình phân đoạn Ngược với quá trình phân đoạn bên phát là quá trình hợp lại bên thu Dữ liệu phân đoạn cần phải được hợp lại thành thông điệp thích hợp ở tầng ứng dụng (application) Vì vậy vấn đề bảo đảm thứ tự các gói đến đích là rất quan trọng Gói dữ liệu trao đổi giữa hai thực thể qua giao thức gọi là đơn vị giao thức dữ liệu PDU (Protocol Data Unit) [7]
• Điều khiển liên kết: Trao đổi thông tin giữa các thực thể có thể thực hiện
theo 2 phương thức: hướng liên kết (Connection Oriented) và không liên kết (Connectionless) Truyền thông liên kết không yêu cầu có độ tin cậy cao, không yêu cầu chất lượng dịch vụ và không yêu cầu xác nhận (do giao thức UDP đảm nhận) Ngược lại truyền theo phương thức hướng liên kết yêu cầu độ tin cậy cao, đảm bảo chất lượng dịch vụ và có xác nhận, trước khi 2 thực thể trao đổi thông tin với nhau giữa chúng 1 kết nối được thiết lập và sau khi trao đổi xong kết nối sẽ được giải phóng (do giao thức TCP đảm nhận) [7]
• Giám sát: Các gói tin PDU có thể lưu chuyển độc lập theo các con đường
khác nhau, khi đến đích có thể không theo thứ tự như khi phát Trong phương thức hướng liên kết, các gói tin phải được yêu cầu giám sát Mỗi một PDU có một mã tập hợp duy nhất và được đăng ký theo tuần tự Các thực thể nhận sẽ khôi phục thứ tự các gói tin như thứ tự bên phát [7]
• Điều khiển lưu lượng: Liên quan đến khả năng tiếp nhận các gói dữ liệu
của thực thể bên thu và số lượng hoặc tốc độ của dữ liệu được truyền bởi thực thể bên phát sao cho bên thu không bị tràn ngập, đảm bảo tốc độ cao nhất Một dạng đơn giản của điều khiển lưu lượng là thủ tục dừng và đợi (Stop and Wait) , trong đó mỗi PDU đã phát cần phải được xác nhận trước khi truyền gói tin tiếp theo Có độ tin cậy cao khi truyền 1 số lượng nhất định dữ liệu mà không cần xác nhận Kỹ thuật cửa sổ trượt là thí dụ cơ
Trang 24chế này Điều khiển lưu lượng là một chức năng quan trọng cần phải được thực hiện trong 1 số giao thức [7].
• Điều khiển lỗi: Là kỹ thuật cần thiết nhằm bảo vệ dữ liệu không bị mất
hoặc bị hỏng trong quá trình trao đổi thông tin Phát hiện và sửa lỗi bao gồm việc phát hiện lỗi trên cơ sở kiểm tra khung và truyền lại các PDU khi có lỗi Nếu một thực thể nhận xá nhận PDU lỗi, thông thường gói tin
đó sẽ được gửi trả lại [7]
• Đồng bộ hóa: Các thực thể giao thức có tham số về các trạng thái và định
nghĩa trạng thái, đó là các tham số về kích thước cửa sổ, tham số liên kết
và giá trị thời gian Hai thực thể truyền thông trong giao thức mạng cần phải đồng thời trong cùng một trạng thái xác định Ví dụ cùng trạng thái khởi tạo, điểm kiểm tra và hủy bỏ, được gọi là đồng bộ hóa Đồng bộ hóa
sẽ khó khăn nếu thực chỉ xác định được trạng thái của thực thể khác ghi nhận các gói tin Các gói tin không đến ngay mà phải mất 1 thời gian để lưu chuyển từ nguồn đến đích và các gói tin PDU cũng có thể bị thất lạc trong quá trình truyền [7]
• Địa chỉ hóa: hai thực thể có thể truyền thông được với nhau cần phải
nhận dạng được nhau Trong mạng quảng bá các thực thể phải nhận dạng định danh của nó trong gói tin Trong gói các mạng chuyển mạch, mạng cần phân biệt thực thể đích để định tuyến dữ liệu trước khi thiết lập kết nối [7]
2.2 Giao thức P2P
2.2.1 Đặt vấn đề
Trang 25Hình 2 Thực thể lớp n thực hiện một giao thức dịch vụ cho lớp n+1[3]
Trong hình 2.1, hai thực thể hoặc các quá trình đẳng thực hiện một cuộc trao đổi tại mỗi lớp Các thông tin liên lạc giữa các lớp thực thể n+1 là ảo và thực tế được thực hiện bởi một dịch vụ cung cấp bởi lớp n Các giao thức peer-to-peer được thực hiện bởi các quá trìnhđẳng lớp n nhằm cung cấp các dịch vụ mong muốn Quá trình diễn ra từ khi lớp n+1 yêu cầu trao đổi một đơn vị dữ liệu dịch vụ (SDU) cho đến khi SDU được giao cho lớp n+1 Các quá trình đẳng lớp n xây dựng giao thức đơn vị dữ liệu (PDU) và truyền đạt thông tin điều khiển thông qua các header và câu hỏi đặt ra là làm thế nào mỗi quá trình đẳng duy trì trạng thái này khi có tác động nào đó xảy ra
Trong phần này quan tâm đến việc kiểm tra các giao thức peer-to-peer trong hai trường hợp Trường hợp đầu tiên giao thức liên kếtdữ liệu P2P được sử dụng để cung cấp thông tin liên lạc đáng tin cậy qua đường truyền kỹ thuật số Trường hợp thứ hai, giao thức peer-to-peer hoạt động trong mạng đầu cuối Trong trường hợp này, các giao thức được sử dụng để cung cấp dịch vụ đáng tin cậy và chức năng thích ứng khác để đối phó với suy giảm truyền tải trong mạng
Chương trình được tổ chức như sau:
• Giao thức Peer-to-peer và các mô hình dịch vụ Nơi giao thức peer-to-peer xảy ra (qua một hop mạng hay qua đầu cuối của mạng).Các loại hình dịch vụ được cung cấp bởi giao thức peer-to-peer
• Giao thức tự động yêu cầu (ARQ) cung cấp truyền thông tin đáng tin cậy qua một mạng hướng kết nối hoặc qua một liên kết dữ liệu
• Các chức năng thích ứng khác (về nhịp,lưu lượng kỹ thuật điều khiển, thời gian khôi phục, TCP )
2.2.2 Giao thức P2P và mô hình dịch vụ
Một giao thức peer-to-peer liên quan đến sự tương tác của hai quá trình hoặc các thực thể thông qua việc trao đổi các đơn vị giao thức dữ liệu (PDU) Mục đích của một giao thức là cung cấp một dịch vụ cho một lớp cao hơn Thông thường các dịch vụ liên quan đến việc gửi và nhận các thông tin hoặc xác nhận và bảo đảm thứ tự truyền các thông tin Ngoài ra liên quan đến trễvà sự
Trang 26biến động phát sinh của các PDU Các dịch vụ được cung cấp bởi một giao thức được mô tả bằng một mô hình dịch vụ.
Hình 2.2 cho thấy một giao thức peer-to-peer hoạt động trên một hop đơn trong mạng Phần (a) sử dụng hai lớp thấp hơn trong mô hình để hiển thị cách thức các giao thức lớp liên kết dữ liệu truyền gói tin trên mạng Các lớp liên kết
dữ liệu lấy gói tin từ tầng mạng, gói gọn chúng trong khung qua đường truyềntới lớp mạng ở đầu kia.Hình 2.2b mô tả chi tiết hơn về tình hình trong phần (a) Mỗi hình bát giác tượng trưng cho một chuyển đổi trong mạng chuyển mạch gói.Mỗi một chuyển mạch có một thực thể lớp mạng duy nhất và một số cặp liên kết dữ liệu và các liên kết vật lý Gói tin thông qua lớp liên kết dữ liệu đến thực thể lớp mạng Thực thể lớp mạng quy định cách thức định tuyến mỗi gói tin,chuyển các gói tin đó tới thực thể lớp liên kếtdữ liệu để truyền gói tin theo trong lộ trình
(a)
(b)
Gói tinGói tin
Trang 27Hình 2 Giao thức peer-to-peer hoạt động qua hop mạng
Hình 2.3 cho thấy một giao thức peer-to-peer hoạt động qua mạng đầu cuối Trong hình các quá trình đẳng lớp vận tải nhận các gói tin từ những lớp cao hơn và chuyển những gói tin này bằng cách trao đổi các phân đoạn Việc trao đổi các phân đoạn được thực hiện bằng cách sử dụng các dịch vụ lớp mạng.Hình 2.4Các giao thức peer-to-peer hoạt động trên một mạng ba nút Các phân đoạn được trao được đóng gói trong các gói tin truyền đi trong mạng ba nút.Giả sử mạng lưới hoạt động tại nút gói tin Sau đó các gói tin sẽ theo những con đường khác nhau trên mạng và như vậy các phân đoạn tương ứng của nó có thể không đến theo thứ tự.Một số các gói tin hoặc phân đoạn của nócó thể bị trễ thậm chí bị mất Các quá trình đồng đẳng của lớp vận tải phải xem xét tất cả các đặc điểm của phân đoạn được truyền đến để cung cấp các dịch vụ mong muốn cho các lớp cao hơn Lưu ý các giao thức đồng đẳng mạng đầu cuối có thể được thực hiện ở các lớp cao hơn lớp vận tải, ví dụ HTTP ở lớp ứng dụng
Thực thể lớp mạng 3
Thực thể lớp liên kết dữ liệu 2
Trang 28Hình 2 Giao thức peer-to-peer hoạt động qua mạng đầu cuối [3]
Hình 2 Giao thức peer-to-peer hoạt động qua mạng đầu cuối [3]
Ứng dụng tiêu biểu
Gọi điện thoại Mục tiêu là để cung cấp các luồng thông tin hai chiều cho thoại.Các thông tin thoại phải rõ ràng và gần như tức thời cho phép sự tương tác giữa con người được tự nhiên hơn Thư điện tử (e-mail), dạng đơn giản nhất liên quan đến việc truyềntin nhắn văn bản theo luồng một chiều
Trang 29Video theo yêu cầu là một ứng dụng mới nổi nó dựa trên các công nghệ truyền hình và VCR quen thuộc.Ở đây người dùng đòi hỏi việc cung cấp video chất lượng cao từ một máy chủ ở xa.Bởi vì video theo yêu cầu liên quan đến việc phát các tài liệu ghi lại, việc truyền tải không nhất thiết phải tức thời.
Cuối cùng, hãy xem xét World Wide Web (WWW).Một trong những dịch
vụ chạy trên Internet.Nó là một tập hợp các tài liệu văn bản và các tài nguyên khác được liên kết bởi các siêu liên kết và URL, do trình duyệt web truy cập từ máy chủ web
2.2.2.1 Mô hình dịch vụ
Các mô hình dịch vụ của một lớp quy định cụ thể cách thức truyền thông tin.Có hai loại mô hình dịch vụ chính, đó là hướng kết nối và không kết nối.Trong các dịch vụ hướng kết nối thủ tục thiết lập kết nối trước khi truyền thông tin.Thiết lập kết nối này khởi tạo thông tin trạng thái cho hai quá trình đồng đẳng.Trong giai đoạn chuyển giao dữ liệu, trạng thái thông tin này cung cấp môi trường cho các quá trình đồng đẳng trao đổi các PDU cũng như trao đổi SDUs với các lớp cao hơn.Ngoài ra còn liên quan đến thủ tục giải phóng kết nối, xóa bỏ trạng thái và giải phóng các tài nguyên được phân bổ cho các kết nối đó.Các dịch vụ phi kết nối không liên quan đến thủ tục thiết lập kết nối Không yêu cầu phải thiết lập trước mỗi giao tiếp giữa hai hệ thống gửi và nhận Hệ thống gửi chỉ đơn giản bắt đầu gửi các gói tin (được gọi là datagram) đến đích Dịch vụ này không có độ tin cậy như phương pháp hướng kết nối, nhưng nó hữu dụng cho các buổi truyền định kỳ và nhiều dữ liệu Các phương pháp này được thực hiện tại các lớp liên kết dữ liệu và trong lớp vận tải ( transfer layers) của giao thức tùy thuộc vào các kết nối vật lý và các dịch vụ được yêu cầu bởi các
hệ thống đang giao tiếp TCP (Transmission Control Protocol) là một giao thức vận tải hướng kết nối trong khi IP (Internet Protocol) là một giao thức mạng không kết nối
Các mô hình dịch vụ cũng có thể bao gồm một (QoS) quản lý chất lượng dịch vụ, là khả năng giúp cho việc truyền dữ liệu với thời gian trễ tối thiểu và
Trang 30cung cấp băng thông cho những ứng dụng truyền thông đa phương tiện thời gian thực QoS bao gồm hai thành phần chính:
• Tìm đường qua mạng nhằm cung cấp cho dịch vụ được yêu cầu
• Duy trì hiệu lực hoạt động của dịch vụ
2 mô hình cung cấp chất lượng dịch vụ được sử dụng phổ biến ngày nay là:
• Mô hình dịch vụ tích hợp IntServ (Intergrated Service): Tùy theo yêu cầu của dịch vụ và chính sách quản lý băng thông mà mạng sẽ cung cấp tài nguyên phục vụ cho từng ứng dụng
• Mô hình dịch vụ phân biệt DiffServ (Differentiated Service): Lưu lượng vào mạng được phân loại và được cung cấp theo chỉ tiêu của chính sách quản lý băng thông Chất lượng dịch vụ được áp dụng cho từng luồng dữ liệu riêng biệt hoặc một nhóm luồng
2.2.2.2 Các yêu cầu đầu cuối và chức năng thích nghi
• Tính bảo mật, tính bảo toàn và tính xác thực
Để thích ứng với một loạt các dịch vụ, mạng phải có khả năng xử lý bản tin của người sử dụng với kích cỡ khác nhau Nhiều file dữ liệu máy tính có kích thước rất lớn có thể chia thành các đơn vị nhỏ hơn là các khối dữ liệu và tập hợp lại ở phía cuối đường truyền để tái tạo thành tập tin hoàn chỉnh.Trong trường hợp điện thoại và videothông tin truyền đạt bản chất có tính rời rạc Nó có thể được biểu diễn bởi một chuỗi ghép gồm nhiều phần tử từ tập hợp các ký hiệu (symbol)
Dịch vụ mạng
MạngỨng dụng
Hàm thích ứng
Trang 312 hoặc nhiều khối
2 hoặc nhiều khối
1 khối
Trang 32Hình 2 Bản tin, luồng và thứ tự các khối
Cụ thể hơn thông tin điện thoại là của một luồng giọng nóiliên tục được lấy mẫu kỹ thuật số, như thể hiện trong hình 2.6b, vì thế 1 cuộc gọi điện thoại tương đương với 1 chuỗi byte tương ứng với các mẫu giọng nói.(Lưu ý một tập tin rất lớn cũng có được xem như một dòng bit hoặc byte, không giống như điện thoại, không yêu cầu thời gian thực)
Video được xem như là sự kết hợp giữa thoại và âm thanh,khi đó video được biểu diễn như một luồng bit tín hiệu số hóa, hoặc biểu diễn như một chuỗi các thông điệp tương ứng với một khung hoặc hình ảnh trong các tín hiệu truyền hình.Trong hình 2.6c, bản tin dài được tách ra thành một chuỗi các khối hoặc nhiều bản tin nhỏ được gộp thành một khối và khi đó ta cần có thủ tụ phân đoạn
và tái hợp bản tin trên đường truyền
Nhiều ứng dụng liên quan đến việc truyền một hoặc nhiều bản tin không
bị lỗi, theo thứ tự và có sự lặp lại Mặt khác nhiều mạng thông tin việc truyền thông tin xảy ra lỗi, hoặc bị mất đi hoặc bị sao chép trong quá trình truyền Bằng cách kết hợp phát hiện lỗi mã hóa, tự động truyền lại và truyền theo tuần tự, nó tạo ra các giao thức truyền tin đáng tin cậy và tuần tự
Việc truyền thông tin đầu cuối đáng tin cậy không những liên quan tớiviệc truyền tin cậy chúng đến đích mà còn liên quan tới việc phân phối chúng khi tới điểm đích Chẳng hạn như, thông tin thoại cho người nghe, hay tệp dữ liệu cho máy tính cá nhân Vấn đề phát sinh ở đây là hệ thống không đủ bộ đệm để lưu trữ các bản tin đến nên trong một số trường hợp có thể bị mất các bản tin đến Vấn đề này càng xảy ra hơn khi bên phát phát đi những bản tin với tốc độ lớn hơn so với bên thu có thể chấp nhận nó Để cải thiện vấn đề này trong phần tiếp
Trang 33theo sẽ đề cập đến giao thức cửa sổ trượt, nhằm cung cấp thêm cách thức truyền tin và điều khiển tốc độ mà bên phát truyền đi.
Các ứng dụng như giọng nói, âm thanh, và video liên quan đến việc truyền thông tin dạng luồng có liên quan đến yếu tố thời gian Đặc biệt, mỗi một ứng dụng đòi hỏi phải có một thủ tục để phát lại các thông tin cho máy thu cuối.Hệ thống thực hiện phát lại này cần phải có thời gian thích hợp để tái tạo lại tín hiệu thông tin ban đầu.Ví dụ, trong trường hợp của thoại kỹ thuật số, máy thu phải biết được tốc độ lấy mẫu thích hợp rồi đưa vào bộ chuyển đổi tương tự-số
Trong nhiều ứng dụng một kết nối mạng được chia sẻ cho nhiều người dùng Ví dụ trong lĩnh vực truyền thông các máy chủ có thể đồng thời chia sẻ một kết nối mạng nhất định cho các máy tính khách Trong tình huống truyền bản tin, cần phải sử dụng thông tin địa chỉ máy chủ dễ phân tách và hợp chúng lại Việc chia sẻ các kết nối như vậy gọi là ghép kênh
Lưu ý các chức năng thích ứng không thể được sử dụng để đáp ứng tất cả các yêu cầu ứng dụng đầu cuối Ví dụ, các ứng dụng như điện thoại và truyền hình hội nghị là thời gian thực theo nghĩa là thông tin phải được truyền đi có trễ nhưng trong sự cho phép nhất định Khả năng cung cấp thông tin trong phạm vi trễ theo yêu cầu được quyết định bởi hiệu suất của mạng mà không thể tăng giảm các chức năng thích ứng đi được
2.2.2.4 So sánh End-to-End với Hop-by-Hop
Như thể hiện trong hình 2.7, để cung cấp thông tin liên lạc đáng tin cậy phải có thủ tục điều khiển lỗi tại mỗi hop (giữa mỗi cặp nút liền kề trong một đường dẫn trên mạng).Mỗi nút sau đó được yêu cầu phải thực hiện một giao thức để kiểm tra các lỗi và yêu cầu truyền các tín hiệu ACK và NAK đến một khối thông tin một cách chính xác Sau đó các khối chuyển tiếp dọc theo các hop đến các nút tiếp theo Còn theo End-to-end thì việc loại bỏ và phục hồi được lỗi
từ các nút trung gian Thay vào đó các khối thông tin được chuyển tiếp qua các đường dẫn, và chỉ có các hệ thống đầu cuối có trách nhiệm chính để khôi phục lỗi
Trang 34Có một sự đánh đổi cơ bản trong việc lựa chọn giữa hai phương pháp này Cách tiếp cận Hop-by-hop hồi phục lỗi nhanh hơn và cung cấp dịch vụ đáng tin cậy hơn.Mặt khác, quá trình xử lý tại mỗi nút lại phức tạp hơn Ngoài ra, đối với phương pháp tiếp cận Hop-by-hop có hiệu quả trên cơ sở end-to-end vì mọi thành phần trong chuỗi End-to-end phải hoạt động một cách chính xác.Ví dụ, các phương pháp tiếp cận Hop-by-hop trong hình 2.7 dễ bị ảnh hưởng đến sự xuất hiện lỗi trong các thiết bị chuyển mạch Khả năng xuất hiện các lỗi như vậy đòi hỏi phải có thủ tục phục hồi lỗi End-to-end.
Hình 2 Hướng tiếp cận của End-to-end với Hop-by-hop [3]
Trong trường hợp dịch vụ đáng tin cậy, cả hai phương pháp trên được thực hiện.Trường hợp xảy ra lỗi không thường xuyên thì cơ chế End-to-end là thích hợp hơn Vì thế theo cơ chế End-to-end ta có ví dụ cụ thể về dịch vụ truyền đáng tin cậy TCP, với Hop-by-hop là các điều khiển liên kết dữ liệuởmức cao(HDLC:High Data Link Control )
Việc xuất hiện End-to-end hay Hop-by-hop là tùy vào trường hợp khác nhau Ví dụ như điều khiển lưu lượng và điều khiển tắc nghẽn có thể được thực hiện trên một Hop-by-hop hoặc một End-to-endcơ bản Cơ chế bảo mật thông tin cung cấp thông tin tin cậy cho người dùng.Phương pháp thường được lựa chọn là xác định lớp chồng giao thức cung cấp các chức năng mong muốn.Vì
Trang 35vậy, cơ chếđiều khiển tắc nghẽn và cơ chếbảo mật có sẵn tại các lớp liên kết dữ liệu, lớp mạng và lớp vận chuyển.
2.2.3 Giao thức ARQ
Yêu cầu lặp lại tự động (Automatic Repeat Request-ARQ) là một kỹ thuật được sử dụng để điều khiển luồng và điều khiển chống tắc nghẽn ARQ tạo cơ
sở cho các giao thức peer-to-peer hoạt độngtruyền thông tin đáng tin cậy [6]
Giả định người dùng tạo ra một chuỗi các khối thông tin để truyền.Các cơ chế ARQ đòi hỏi các khối phải chứa một tiêu đề vào khối thông tin đó để hoạt động một cách phù hợp, như thể hiện trong hình 2.8 Máy phát sẽ nối bit kiểm tra CRC và tiêu đề vào các bit thông tin cho phép người nhận xác định lỗi xảy ra trong quá trình truyền ARQ ở đây đảm bảo độ tin cậy cho đường truyền Khi đường truyền thông tin đã trở nên ổn định, các giao thức ARQ thực hiện thường xuyên hơn ở các cạnh của mạng để cung cấp độ tin cậy trong việc truyền tải gói
dữ liệu qua nhiều chặng trong mạng, nghĩa là, trên nhiều kênh truyền thông và thiết bị mạng khác nhau Ta giả định các kênh hoặc chuỗi các kênh là ‘wirelike’ nghĩa là các khung frame được gửi cho phía nhận theo tuần tự Trường hợp trên đường truyền thông tin có nhiều chặng thì việc đảm bảo truyền thông tin trong khung sao cho an toàn là cần thiết Giao thức ARQ đảm bảo cho các gói tin đến đích an toàn không lỗi không trùng lặp mà vẫn theo tuần tự
Ngoài các mã phát hiện lỗi, các yếu tố cơ bản khác của các giao thức ARQ bao gồm khung thông tin (I-frame), khung điều khiển, và các cơ chế thời gian như thể hiện trong hình 2.8.Khung điều khiển là các khối nhị phân ngắn bao gồm một tiêu đềcung cấp các thông tin điều khiển, tiếp theo là CRC.Khung điều khiển bao gồm ACK, là tín hiệu xác nhận bên thu; NAKs, là tín hiệu báo bên nhận nhận được dữ liệu không toàn vẹn tức là có lỗi xảy ra trên đường truyền; và một khung yêu cầu ENQ đưa ra lệnh cho bên thu để báo cáo tình trạng của nó
Trang 36Hình 2 Thành phần cơ bản của ARQ [3].
Các cơ chế thời gian được yêu cầu để nhắc nhở hành động nào đó nhằm duy trì các luồng khung Chúng ta có thể hình dung được các máy phát và máy thu làm việc cùng nhau để đảm bảo việc chuyển giaothông tin đúng và tuần tự
2.2.3.1 Stop-and-Wait ARQ
Stop-and-Wait ARQ là một dạng của điều khiển dòng truyền dừng và đợi
đã mở rộng để chứa các chức năng truyền lại dữ liệu trong trường hợp dữ liệu bị mất hoặc hư hỏng Quan sát hình 2.9, tại thời điểm ban đầu, trạm A và B đang làm việc thông qua việc truyền khung 0 Lưu ý mỗi trạm bên A gửi một I-frame
nó bắt đầu một bộ đếm thời gian I-frame, sau đó sẽ kết thúc sau một khoảng thời gian chờ Các khoảng thời gian chờ được chọn để nó lớn hơn thời gian cần thiết nhận các khung ACK tương ứng Hình 2.9a cho thấy những chuỗi sự kiện sau:
Trang 37Hình 2 Sự truyền khung không theo thứ tự [3].
• Trạm A truyền khung 0 sau đó dừng và chờ một xác nhận từ bên thu
• Khung 0 truyền đi mà không có lỗi thì trạm B truyền tín hiệu ACK
• Trạm A nhận được ACK không có lỗi vì vậy trạm A biết khung 0 đã được truyền chính xác
• Trạm A tiến hành truyền khung 1 và sau đó reset bộ đếm thời gian
• Khung 1 bị lỗi khi truyền Có thể là trạm B nhận được khung 1 và phát hiện các lỗi thông qua việc kiểm tra CRC; hoặc cũng có thể khung 1 bị mất thông tin mà trạm Bkhông hay biết gì về việc truyền tải này.Trong cả 2 trường hợp trạm B không thực hiện bất cứ hành động nào
• Hết khoảng thời gian chờ timeout, khung 1 sẽ được truyền lại
Trong hình 2.9b là trường hợp tín hiệu ACK bị lỗi Và ở trạm A cũng sau khoảng thời gian chờtrạm sẽ tiến hành truyền lại khung(khung 1) trong khi khung 1 đã được truyền 1 cách chính xác đến cho trạm B Như vậy sự mất mát của tín hiệu ACK dẫn đến việc truyền gói tin bị trùng lặp Để tránh sự việc này
sử dụng các tiêu đề được gắn vào các I-frame Trạm B biết rằng việc nhận lại khung 1 lần thứ hai là bản sao, loại bỏ chúng sau đó gửi tín hiệu ACK để truyền khung tiếp theo
Một sự nhầm lẫn nữa xảy ra nếu tín hiệu ACK không theo thứ tự Như thể hiện trong hình 2.10 thì khung 0 được truyền đi nhưng thời gian chờ đã hết, và
Trang 38khung 0 được nhận một cách chính xác, tín hiệu trả về ACK không theo thứ tự Sau khoảng thời gian chờ trạm A sẽ truyền lại khung 0 Ngay sau đó trạm A nhận được tín hiệu ACK giả sử cho khung trước, trạm sẽ tiến hành truyền khung
1 và bị lỗi đường truyền Trong khi đó việc truyền khung 0 lần thứ hai được xác nhận ở trạm B, trạm A nhận được ACK lầm tưởng của khung 1, tiến tới trạm truyền khung 2
Hình 2 Sự cố khi nhầm lẫn các tín hiệu ACK [3].
Ví dụ này cho thấy rằng thời gian chờ timeout (hoặc sự chậm trễ của ACK) kết hợp với sự mất mát của I-khung có thể dẫn đến những khoảng trống trong truyền tin Sự cố này được giải quyết bằng cách cung cấp đánh số thứ cho các khung xác nhận ACK cho phép các máy phát xác định khung đã được nhận.Các số thứ tự không thể được đánh số một cách tùy ý vì chỉ có một số hữu hạn các bit có sẵn trong các tiêu đề khung.Hình 5.11 cho thấy các thông tin hoặc
"trạng thái" được duy trì bởi các máy phát và máy thu Máy phát phải theo dõi các số thứ tự Slast của khung được gửi đi, đếm thời gian liên kết của nó, và khung
đó trong trường hợp bắt buộc truyền lại.Các máy thu theo dõi các số thứ tự Rnext
của khung kế tiếp khi nhận được
Giả sửban đầu các máy phát và máy thu được đồng bộ nghĩa là trạm A gửi một khung với Slast =0 và trạm B mong muốn Rnext = 0.Trong hình 2.11 các trạng thái chung của hệ thống được xác định bởi các cặp (Slast , Rnext), vì thế ban đầu hệ thống ở trạng thái (0,0)
Trang 39Hình 2 Thông tin trạng thái hệ thống Stop-and-Wait ARQ [3].
Hệ thống này sẽ không thay đổi cho đến khi bên trạm B nhận được một bản lỗi của khung 0 Nghĩa là trạm A sẽ tiếp tục gửi lại khung 0 sau thời gian chờ Sau khi nhận được khung 0 trạm B thay đổi Rnext =1 và gửi đến trạm A với Rnext
=1 ám chỉ việc nhận khung 0 Tại thời điểm này trạng thái chung của hệ thống là (0,1) Bất kỳ các khung sau đó có số thứ tự là 0 được coi là bản sao và trạm B loại bỏ nó, sau đó gửi tín hiệu xác nhận Rnext =1 Cuối cùng bên trạm A nhận được tín hiệu xác nhận với Rnext =1, sau đó bắt đầu truyền khung tiếp theo sử dụng đánh số với Slast =1 Hệ thống ở trong trạng thái (1,1) Máy phát và máy được đồng bộ một lần nữa và tiến hành truyền khung 1 tiếp theo
Cơ chế ARQ trên có thể thay đổi bằng việc bổ sung thêm khung điều khiển
Ví dụ trong kiểm tra phục hồi lỗi có thể giải quyết nhanh thông qua việc sử dụng khung điều khiển ngắn gọi là các khung thăm dò ENQ Khi thời gian chờ kết thúc nếu khung được truyền lại rất dài, các máy phát có thể gửi một ENQ Một trạm khi nhận được tín hiệu đó buộc phải truyền lại khung trước đó ( Hình 2.12) Theo quy ước tín hiệu ACK và NAK bao gồm Rnext cho thấy khung tiếp theo sẽ được truyền và mặc nhiên thừa nhận việc truyền chính xác các khung trước đó
Trang 40Hình 2 Khung thăm dò trong Stop-and-Wait ARQ [3].
Cơ chế Stop-and-Wait ARQ trở nên kém hiệu quả khi trễ đường truyền lớn hơn nhiều so với thời gian để truyền một khung Ví dụ, giả sử ta đang truyền khung dữ liệu có độ dài là 1000 bít trên một kênh có tốc độ 1,5 Mb/giây và giả
sử thời gian từ khi bắt đầu truyền khung đến khi thừa nhận khung đó là 40ms
Số bít có thể được truyền qua kênh này trong 40 ms là:40.103.1,5.106 =60000bit tuy nhiên Stop-and-Wait ARQ chỉ có thể truyền 1000 bít trong khoảng thời gian này Việc truyền kém hiệu quả như vậy là do máy phát phải chờ xác nhận của một khung trước đó trước khi tiến hành truyền khung tiếp theo Tình hình trở nên tệ hơn khi xuất hiện lỗi trong khi truyền Các kết quả ở trên được coi là sự hạn chế trong vấn đề truyền dữ liệu trên mạng
2.2.3.2 Go-Back-N ARQ
Giao thức Go-Back-N ARQ hoạt động bằng cách gửi liên tục các gói tin nằm trong khung cửa sổ để giữ sao cho kênh truyền luôn bận Điều này làm giảm ảnh hưởng của Tích trễ-Băng thông Khung cửa sổ N = WS (window size) được chọn sao cho luôn lớn hơn Tích trễ-Băng thông (hình 2.13)
Bên gửi