Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
309,7 KB
Nội dung
4 TRUYỀN THÔNG GIỮA CÁC TIẾN TRÌNH 4.1 Giới thiệu Chương hai chương nghiên cứu kiến thức liên quan đến truyền thông mức middleware Chương nghiên cứu vấn đề liên quan đến việc thiết kế mức tối (được thể hình 4.1) Lớp thảo luận chương xem xét đến lời gọi thủ tục từ xa, chương kiến thức liên quan đến mô hình truyền thông gián tiếp 4.2 API cho giao thức Internet 4.2.1 Các đặc điểm truyền thông tiến trình 4.2.1.1 Đồng không đồng Một hàng đợi kết hợp với điểm đến thông điệp Tiến trình gửi đưa thông điệp vào hàng đợi từ xa tiến trình nhận đọc thông điệp từ hàng đợi địa phương Truyền thông tiến trình gửi nhận đồng không đồng Trong hình thức đồng bộ: tiến trình gửi nhận đồng hóa thông điệp Người gửi bị “khóa” nghĩa bị “đóng băng” gửi có phản hồi từ người nhận Ví dụ: Yêu cầu rút tiền từ máy ATM, máy ATM bị khóa nhận xác nhận quyền truy xuất từ ngân hàng Trong hình thức không đồng bộ: tiến trình gửi không bị chặn, tiến trình nhận bị chặn không chặn Người gửi thực tiến trình khác sau thông điệp gửi Ví dụ: email thông điệp không đồng bộ, bạn gửi email sau làm việc khác chờ phản hồi 4.2.1.2 Nơi đến thông điệp Trong chương giải thích rằng, giao thức Internet thông điệp gửi đến theo cặp (địa Internet cổng cục bộ) Một cổng cục nơi đến máy tính, quy định số nguyên Một cổng có người nhận (trừ multicast) có nhiều người gửi Một nhiều thông điệp gửi đến cổng tiến trình sử dụng hay nhiều cổng để nhận thông điệp Bất kì tiến trình biết số cổng mà gửi thông điệp đến Các server thường công khai số cổng họ để phục vụ khách hàng sử dụng 4.2.1.3 Độ tin cậy Chương định nghĩa đáng tin cậy thời hạn hiệu lực toàn vẹn Một dịch vụ tin nhắn point – to – point mô tả đáng tin cậy thông điệp đảm bảo giao có số “hợp lí” gói tin bị rơi mất, ngược lại không đáng tin cậy Đối với tính toàn vẹn, tin nhắn đến phải không bị hỏng không bị trùng lặp 4.2.1.4 Tính có thứ tự Một số ứng dụng đòi hỏi thông điệp phải nhận có thứ tự thứ tự mà chúng chuyển người gửi Thông điệp phân phối theo thứ tự gửi 4.2.2 Sockets 4.2.2.1 Khái niệm Socket thiết bị truyền thông hai chiều tương tự tập tin , đọc hay ghi lên , nhiên socket thành phần mối nối máy mạng máy tính thao tác đọc/ghi trao đổi liệu ứng dụng nhiều máy khác Sử dụng socket mô hai phương thức liên lạc thực tế: liên lạc thư tín (socket đóng vai trò bưu cục), liên lạc điện thoại (socket đóng vai trò tổng đài) 4.2.2.2 Các thuộc tính socket: -Type: định nghĩa đặc điểm liên lạc -Sự tin cậy: -Sự bảo toàn thứ tự liệu: -Lặp lại liệu: -Chế độ nối kết: -Bảo toàn giới hạn thông điệp -Khả gửi thông điệp khẩn Để thực liên lạc socket cần thực thao tác: -Tạo lập hay mở socket -Gắn kết socket với địa -Liên lạc: có kiểu liên lạc tùy thuộc vào chế độ nối kết 4.2.2.3 Các hình thức liên lạc socket a Liên lạc chế độ không liên kết: liên lạc theo hình thức hộp thư - Hai tiến trình liên lạc với không kết nối trực tiếp -Mỗi thông điệp phải kèm theo địa người nhận Hình thức liên lạc có đặc điểm: -Người gửi không chắn thông điệp họ gửi đến người nhận -Một thông điệp gửi nhiều lần -Hai thông điệp gửi theo thứ tự đến tay người nhận theo thứ tự khác Một tiến trình sau mở socket sử dụng để liên lạc với nhiều tiền trình khác nhờ sử dụng hai primitive send receive b Liên lạc chế độ kết nối Một liên kết thành lập hai tiến trình Trước mối liên kết thiết lập, hai tiến trình phải đợi tiến trình khác yêu cầu kết nối Có thể sử dụng socket để liên lạc theo mô hình client – server Trong mô hình server sử dụng lời gọi hệ thống listen accept để kết nối với client, sau client server trao đổi thông tin cách sử dụng primitive send receive Ví dụ: giao thức truyền thông TCP, mối nối hai máy tính xác định port, khái niệm port cổng giao tiếp thiết bị vật lí mà khái niệm logic cách nhìn người lập trình, port tương ứng với số nguyên dương 4.2.3 UDP 4.2.3.1 Message size Tiến trình nhận phải định mảng byte kích thước cụ thể để nhận thông điệp Nếu thông điệp lớn mảng cắt ngắn đến Các giao thức IP cho phép độ dài gói tin lên đến 16 byte, bao gồm tiêu đề thông điệp Tuy nhiên hầu hết môi trường áp đặt hạn chế kích thước 8KB Bất kỳ ứng dụng yêu cầu thông điệp lớn mức tối đa phải phân đoạn vào khối kích thước 4.2.3.2 Blocking Socket thông thường cung cấp non-blocking sends blocking receives truyền thông theo gói Việc gửi trả lại trao thông điệp đến giao thức UDP IP (có trách nhiệm truyền tải thông điệp đến đích) Khi đến thông điệp đặt hàng đợi cho socket Thông điệp thu thập lời gọi giải lời gọi tương lai trình nhận socket Thông điệp bỏ vào điểm đến tiến trình có socket bị ràng buộc vào cổng đích Phương thức nhận bị chặn gói nhận, trừ có thời gian chờ thiết lập socket Nếu tiến trình gọi phương thức nhận có công việc khác để làm thời gian chờ thông điệp, nên bố trí sử dụng luồng riêng biệt Chủ đề luồng riêng biệt thảo luận chương Ví dụ: server nhận thông điệp từ client, thông điệp định công việc để làm, trường hợp server sử dụng luồng riêng biệt để làm việc chờ đợi thông điệp từ client khác 4.2.3.3 Timeouts Việc nhận thông điệp bị tắc nghẽn mãi mà server chờ đợi để nhận yêu cầu từ phía client, số chương trình thích hợp tiến trình sử dụng hệ điều hành, tình phải đợi vô hạn mà tiến trình gửi bị rơi thông điệp dự kiến bị Để cho phép yêu cầu vậy, thời gian chờ thiết lập vào socket Chọn khoảng thời gian thích hợp khó, nên chọn khoảng thời gian lớn nhiều so với thời gian để chuyển thông điệp 4.2.3.4 Receive from any Các phương pháp nhận không ghi rõ nguồn gốc xuất xứ thông điệp Thay vào có lời gọi nhận thông điệp gửi tới socket từ nguồn gốc Các phương pháp nhận trả địa Internet cổng nội người gửi cho phép người nhận kiểm tra thông điệp đến từ đâu Có thể có kết nối từ datagram socket tới cổng từ xa đặc biệt địa Internet, trường hợp socket gửi thông điệp đến nhận thông điệp từ địa 4.2.4 TCP 4.2.4.1 Message size Ứng dụng chọn liệu viết vào dòng đọc từ Nó đối phó với liệu nhỏ lớn Các thực dòng TCP định liệu thu thập trước truyền đi, nhiều gói tin IP Khi đến nơi liệu giao cho bên ứng dụng theo yêu cầu Nếu cần thiết ứng dụng buộc liệu gửi 4.2.4.2 Lost message Các giao thức TCP sử dụng “tin báo nhận” Mô đun TCP đầu gửi lại tin báo nhận (acknowledgement) cho gói tin nhận thành công, "đồng hồ" (timer) nơi gửi báo time-out không nhận tin báo nhận khoảng thời gian round-trip time (RTT), liệu (được coi bị thất lạc) gửi lại 4.2.4.3 Flow control Các giao thức TCP cố gắng để phù hợp với tốc độ tiến trình đọc , ghi liệu vào dòng Nếu việc ghi nhanh cho việc đọc, chặn lại việc ghi việc đọc xử lí hết liệu 4.2.4.4 Message duplication and ordering TCP kiểm tra để đảm bảo gói tin bị thất lạc cách gán cho gói tin "số thứ tự" (sequence number) Số thứ tự sử dụng để đảm bảo liệu trao cho ứng dụng đích theo thứ tự 4.2.4.5 Message destinations TCP đòi hỏi thiết lập kết nối trước bắt đầu gửi liệu kết thúc kết nối việc gửi liệu hoàn tất Cụ thể, kết nối TCP có ba pha: Thiết lập kết nối Truyền liệu Kết thúc kết nối Để thiết lập kết nối, TCP sử dụng quy trình bắt tay bước (3-way handshake) Trước client thử kết nối với server, server phải đăng ký cổng mở cổng cho kết nối: gọi mở bị động Một mở bị động thiết lập client bắt đầu mở chủ động Để thiết lập kết nối, quy trình bắt tay bước xảy sau: Client yêu cầu mở cổng dịch vụ cách gửi gói tin SYN (gói tin TCP) tới server, gói tin này, tham số sequence number gán cho giá trị ngẫu nhiên X Server hồi đáp cách gửi lại phía client tin SYN-ACK, gói tin này, tham số acknowledgment number gán giá trị X + 1, tham số sequence number gán ngẫu nhiên giá trị Y Để hoàn tất trình bắt tay ba bước, client tiếp tục gửi tới server tin ACK, tin này, tham số sequence number gán cho giá trị X + tham số acknowledgment number gán giá trị Y + Tại thời điểm này, client server xác nhận rằng, kết nối thiết lập 4.3 Biểu diễn liệu marshalling Biểu diễn liệu bên ngoài: tiêu chuẩn thống cho đại diện cấu trúc liệu giá trị nguyên thủy Marshalling: trình lấy tập hợp mục liệu lắp ráp chúng thành hình thức thích hợp để truyền Unmarshalling: tháo (khôi phục) liệu ban đầu đến 4.3.1 CORBA’s Common Data Representation (CDR) Biểu diễn dự liệu phổ biến đại diện cho tất loại liệu sử dụng làm tham số giá trị trả lời gọi đối tượng từ xa CORBA Gồm 15 loại bản: short (16-bit), long (32-bit), unsigned short, unsigned long, float (32bit),double (64-bit), char, boolean (TRUE, FALSE), octet (8-bit), số loại có cấu trúc mô tả hình 4.7 Các loại bản: CDR xác định diễn tả có thứ tự cho big – endian little – endian Các giá trị truyền theo thứ tự người gửi xác định thông điệp Người nhận dịch đòi hỏi trật tự khác Ví dụ: thông điệp chứa 2byte (16bits) theo big – endian bit có trọng số lớn (MSB) chiếm byte đầu tiên, bit có trọng số nhỏ (LSB) chiếm byte thứ hai Các loại có cấu trúc: giá trị bao gồm loại có cấu trúc thêm vào chuỗi byte theo thứ tự định (hình 4.7) Hình 4.8 cho thấy thông điệp CORBA CDR có chứa ba trường cấu trúc mà loại tương ứng string, string unsigned long Hình cho thấy chuỗi byte với bốn byte hàng 4.3.2 Java object serialization Java cung cấp chế, gọi đối tuợng (object serialization) nơi mà đối tuợng đuợc biểu diễn chuỗi bytes đuợc xếp bao gồm liệu đối tượng thông tin kiểu đối tượng kiểu liệu lưu trữ đối tượng Sau đối tuợng ghi lưu trữ xuống thành file (tệp tin), đọc từ tập tin tái tạo lại đối tượng từ tập tin lưu trữ theo trình tự nạp trình hóa, trình giải hóa (deserialized) Serialization trình chuyển cấu trúc liệu đối tượng thành định dạng lưu trữ (vào file, in-memory buffer, truyền qua network), sau phục hồi lại cấu trúc liệu đối tượng ban đầu, môi trường môi trường khác Tiến trình deserialized đối tượng kiểm tra xem có phiên lớp Đối tượng Java chứa tham chiếu đến đối tượng khác Khi đối tượng hóa, tất đối tượng mà tham chiếu đến hóa để đảm bảo đối tượng xây dựng lại tham chiếu thực điểm đến Tham chiếu handles, trường hợp handle tham chiếu đến đối tượng hình thức tuần tự, ví dụ: số chuỗi số nguyên dương, thủ tục serialization phải đảm bảo có tương ứng – đối tượng tham chiếu handle Thông thường thuật toán Serialization thực công việc sau: - Ghi xuống siêu liệu (metadata) class (ví dụ tên class, version class, tổng số field class,….) , đối tượng - Ghi đệ quy thông tin chi tiết lớp cha gặp class Object - Sau hoàn tất việc ghi siêu liệu, tiến trình bắt đầu ghi liệu thật đối tượng Mỗi lớp đưa xử lý, lớp viết nhiều lần đến dòng byte (handle viết thay vào cần thiết) Nội dung biến loại như: integers, chars, boolean, bytes hay longs viết định dạng nhị phân cách sử dụng phương pháp lớp ObjectOutputStream Các chuỗi kí tự viết UTF, sử dụng phương thức UTF – cho phép kí tự ASCII đại diện không đổi byte, kí tự Unicode đại diện nhiều byte Các chuỗi bắt đầu số byte mà chiếm dòng Như ví dụ, xem xét serialization đối tượng sau đây: Person p = new Person ("Smith", "London", 1984); Biến (1984) số nguyên có độ dài cố định, biến chuỗi đứng đầu số độ dài Để sử dụng Java serialization, ví dụ để hóa đối tượng Person, tạo thể lớp ObjectOutputStream gọi phương pháp writeObject nó, qua đối tượng Person đối số Để giải hóa đối tượng từ dòng liệu, mở ObjectInputStream dòng sử dụng phương pháp readObject để tái tạo lại đối tượng ban đầu Serialization deserialization đối số kết lời gọi từ xa thường thực tự động lớp middleware, mà tham gia lập trình viên ứng dụng Nếu cần thiết lập trình viên với yêu cầu đặc biệt viết thêm phiên riêng họ phương pháp đọc ghi đối tượng Để tìm hiểu làm để làm điều có thêm thông tin serialization Java, đọc hướng dẫn đối tượng serialization java.sun.com II 4.3.3 XML XML (viết tắt từ tiếng Anh eXtensible Markup Language, "Ngôn ngữ đánh dấu Mở rộng") ngôn ngữ đánh dấu với mục đích chung W3C đề nghị, để tạo ngôn ngữ đánh dấu khác Đây tập đơn giản SGML, có khả mô tả nhiều loại liệu khác Mục đích XML đơn giản hóa việc chia sẻ liệu hệ thống khác nhau, đặc biệt hệ thống kết nối với Internet Các ngôn ngữ dựa XML: RDF, RSS, MathML, XHTML, SVG, GML cXML, định nghĩa theo cách thông thường, cho phép chương trình sửa đổi kiểm tra hợp lệ ngôn ngữ mà không cần có hiểu biết trước hình thức chúng XML cung cấp phương tiện dùng văn (text) để mô tả thông tin áp dụng cấu trúc kiểu cho thông tin Tại mức bản, thông tin thể dạng text, chen thẻ đánh dấu (markup) với nhiệm vụ ký hiệu phân chia thông tin thành cấu trúc có thứ bậc liệu ký tự, phần tử dùng để chứa liệu, thuộc tính phần tử Về mặt đó, XML tương tự với biểu thức S (S-expression) ngôn ngữ lập trình LISP chỗ chúng mô tả cấu trúc mà nút có danh sách tính chất riêng Hình 4.10 cho thấy mô tả XML cấu trúc Person đó: - phần tử: phần tử XML bao gồm nội dung liệu nằm thẻ mở đóng, ví dụ: liệu Smith nằm cặp thẻ , lưu ý phần tử nằm phần tử khác với cặp thẻ đây cấu trúc có thứ bậc liệu XML - thuộc tính: thẻ mở bao gồm cặp tên thuộc tính liên quan giá trị id=”123456789” cú pháp giống với HTML tên thuộc tính theo sau dấu = giá trị thuộc tính đặt cặp dấu “”, có nhiều giá trị cho thuộc tính phân cách dấu cách - tên: tên thẻ thuộc tính XML thường bắt đầu chữ cái, bắt đầu dấu gạch dấu hai chấm, chữ cái, chữ số, dấu gạch nối, gạch dưới, dấu hai chấm dấu chấm Những chữ trường hợp nhạy cảm, tên bắt đầu xml dùng riêng - liệu nhị phân: tất thông tin phần tử XML phải thể đặc điểm liệu, câu hỏi đặt làm chúng đại diện cho yếu tố mã hóa chúng thảo luận mục 9.5 Câu trả lời chúng đại diện kí hiệu base64, sử dụng kí tự chữ số với kí tự +, /, = với ý nghĩa đặc biệt 4.3.4 Remote object references Phần áp dụng cho mô hình phân tán hướng đối tượng hỗ trợ ngôn ngữ Java Corba, không liên quan đến XML Khi client gọi thủ tục đối tượng từ xa thông báo gửi đến tiền trình server lưu trữ đối tượng từ xa Thông báo cần xác định đối tượng cụ thể phải có phương pháp gọi Một tham chiếu đối tượng từ xa định danh cho đối tượng từ xa có giá trị toàn hệ thống phân tán, phải 10 đảm báo tính độc đáo riêng biệt không gian thời gian Có số cách để đảm bảo tham chiếu đối tượng từ xa Một số xây dựng đối tượng tham chiếu từ xa cách kết hợp địa Internet máy chủ - số cổng tiến trình tạo – thời gian –và số đối tượng cục Số đối tượng cục tăng lên lần đối tượng tạo tiến trình Số cổng thời gian tạo định danh máy tính Với phương pháp tham chiếu đối tượng từ xa biểu diễn định dạng hình 4.13 Để cho phép đối tượng từ xa di chuyển vào tiến trình khác máy tính khác nhau, tham chiếu đối tượng từ xa không nên sử dụng địa đối tượng từ xa Mục 8.3.3 thảo luận hình thức tham chiếu đối tượng từ xa cho phép đối tượng để kích hoạt máy chủ khác suốt đời Các hệ thống peer – to – peer mô tả chương 10 sử dụng hình thức tham chiếu đối tượng từ xa hoàn toàn độc lập với vị trí Thông điệp chuyển đến đích theo cách thức thuật toán định tuyến phân tán Yếu tố cuối đối tượng tham chiếu từ xa mô tả hình 4.13 thông tin giao diện đối tượng từ xa, ví dụ: tên giao diện Thông tin có liên quan đến tiến trình nhận đối tượng tham chiếu từ xa tham số, kết lời gọi từ xa Điều giải thích rõ mục 5.4.2 4.4 Truyền thông Multicast Trong môi trường unicast, nút mạng có khả gửi thông tin đến nút thời điểm Trong môi trường multicast, nút gởi gói tin đến nhiều thiết bị mạng với thao tác Hệ điều hành nút chồng giao thức TCP/IP, phải hỗ trợ IP multicast để nút tham gia vào trình truyền multicast Một nút multicast cần gọi đến dịch vụ chuyển phát lần muốn truyền thông điệp đến nhiều đích đến khác Quá trình truyền unicast broadcast trường hợp riêng multicast Nếu môi trường truyền Ethernet hay SMDS có hỗ trợ multicast broadcast, sử dụng ứng dụng gửi lần đến nhiều đích lựa chọn tốt Multicast cung cấp cải 11 thiện to lớn hiệu năng, sử dụng băng thông không nhiều trình truyền unicast, cho phép thiết kế ứng dụng phân tán cách hiệu - Điều khác biệt gói tin IP Multicast IP unicast thông tin địa IP Các địa multicast địa lớp D(224.0.0.0 – 239.255.255.255) 4.4.1 IP Multicast IP multicast mở rộng IP Tổ chức IETF đưa khuyến nghị RFC 1112, định nghĩa thành phần mở rộng cho IP Một hướng cho IP, IP Multicast giao thức dùng để truyền gói tin IP từ nguồn đến nhiều đích đến khác mạng LAN hay WAN Nhóm thành viên muốn nhận thông tin phải tham gia vào nhóm multicast Với IP multicast, ứng dụng gửi thông tin đến nhóm Thông tin đến tất người muốn nhận Kĩ thuật Multicast đánh địa gói địa nhóm thay địa người nhận Các gói tin phụ thuộc vào mạng chuyển tiếp để chuyển đến mạng cần nhận Một nút có khả - Multicast chạy giao thức TCP/IP nhận thông điệp multicast Multicast kĩ thuật đẩy thông tin, máy chủ gửi liệu đến người sử dụng mà không cần người sử dụng phải yêu cầu trước.Thuật ngữ kéo đẩy xuất nhiều thảo luận truyền tải thông tin qua Internet Trong kĩ thuật kéo thông tin, client yêu cầu liệu từ phía máy chủ từ máy tính khác Email kĩ thuật đẩy thông tin Web lại kĩ thuật kéo thông tin Multicast trình định tuyến: - Gửi thông tin cần lần tới nhiều người tiết kiệm nhiều băng thông Các thông điệp nhân qua router, xảy router router chuyển tiếp thay router có chứa nhóm cần gửi - Các router có khả multicast chuyển tiếp gói tin multicast mà có máy thuộc nhóm multicast nằm mạng Các máy sử dụng giao thức IGMP để thông báo cho router biết nhóm multicast mà tham gia Nếu thành viên nhóm phân đoạn mạng rời khỏi nhóm router không chuyển tiếp gói tin đến phân đoạn mạng - Router nhân gói tin IP multicast có trình rẽ nhánh đường đi, lại trường hợp khác router gửi gói tin cho mạng - Các giao thức định tuyến cho multicast gồm có: DVMRP, MOSPF, PIM Phân giải địa chỉ: 12 - Một địa multicast cho phép truyền gói tin tới tập hợp thành viên nhóm Một địa multicast định danh nhóm máy giao tiếp mạng đại diện cho nhóm địa lớp D - Trong gói tin multicast địa đích đến trường địa gói tin IP địa lớp D có giá trị khoảng 224.0.0.0 – 239.255.255.255 - Trong lớp 256 địa dùng cho mục đích quản lí thành phần cấp thấp thao tác Khoảng địa sử dụng cho ứng dụng multicast nhóm, intranet Internet Khoảng lớp D sử dụng cho các thao tác quản lí cục ứng dụng multicast đặc biệt - Khi router subnet nhận gói tin multicast lớp 3, ánh xạ địa IP multicast thành địa multicast lớp 2, địa Ethernet MAC Tại nơi nhận thiết bị giao tiếp mạng dễ dàng đọc địa chi lớp phần cứng Nếu địa nhận địa Multicast gói tin chuyển tiếp lên lớp - Quá trình chuyển đổi địa từ IP qua địa lớp xảy cách ánh xạ trực tiếp địa IP tới địa MAC Ethernet, lấy 23bit trọng số thấp địa IP chuyển thành 23 bit có trọng số thấp địa Ethernet 4.4.2 Tính tin cậy tính có thứ tự Multicast - Tính chịu lỗi dựa nhân server: xem xét server bao gồm thành viên nhóm server bắt đầu trạng thái ban đầu thực hoạt động tương tự thứ tự để phù hợp với Ứng dụng multicast đòi hỏi tất số họ nhận yêu cầu để thực hoạt động, số họ bỏ lỡ yêu cầu trở thành không phù hợp với người khác Trong hầu hết trường hợp, dịch vụ yêu cầu tất thành viên nhận thông điệp yêu cầu thứ tự - Khám phá dịch vụ mạng tự phát: cách để tiến trình khám phá dịch vụ mạng tự phát để multicast yêu cầu khoảng thời gian nào,và dịch vụ sẵn sàng để lắng nghe trả lời Một yêu cầu thường xuyên bị vấn đề phát dịch vụ Thực tế Jini sử dụng IP multicast giao thức cho dịch vụ khám phá Điều mô tả mục 19.2.1 - Hiệu suất tốt thông qua nhân liệu: xem xét trường hợp liệu tái tạo lại hoạt động liệu phân phối thông điệp multicast Ảnh hưởng thông điệp bị thứ tự không phù hợp 13 phụ thuộc vào phương pháp nhân tầm quan trọng tất up date - Tuyên truyền thông báo kiện: ứng dụng cụ thể xác định tính yêu cầu multicast Ví dụ: dịch vụ tra cứu Jini sử dụng IP multicast để công bố tồn họ (xem phần 19.2.1) 4.5 Mạng ảo 4.5.1 Mạng Overlay Overlay network mạng máy tính xây dựng mạng máy tính khác Các nút mạng overlay xem nối với liên kết ảo (logical links) liên kết ảo bao gồm nhiều liên kết vật lí mạng Rất nhiều mạng P2P gọi mạng overlay xây dựng hoạt động Internet ví dụ như: Gnutella, Freenet, DHTs hay Dial-up Internet mạng overlay telephone network Mạng overlay cung cấp không cung cấp : - Một dịch vụ thiết kế hướng tới nhu cầu lớp ứng dụng dịch vụ đặc biệt cao cấp ví dụ: phân phối ngữ cảnh đa phương tiện - Hoạt động hiệu môi trường mạng quen thuộc ví dụ: định tuyến mạng ad hoc - Tính bổ sung ví dụ: multicast hay truyền thông an toàn Điều dẫn đến loạt loại overlay (hình 4.15), mạng overlay có ưu điểm sau: - Cho phép dịch vụ mạng xác định mà không cần yêu cầu thay đổi mạng bản, điểm quan trọng đưa mức độ tiêu chuẩn hóa khu vực khó khăn việc sửa đổi chức router - Khuyến khích thử nghiệm với dịch vụ mạng tùy biến dịch vụ cho lớp đặc biệt ứng dụng - Nhiều lớp overlay xác định tồn tại, kết cuối có kiến trúc mạng nhiều mở rộng 14 Overlay liên quan đến khái niệm lớp tìm hiểu chương 2,3 Overlay lớp lớp tồn bên kiến trúc tiêu chuẩn (như ngăn xếp TCP/IP) khai thác mức độ hậu tự Đặc biệt, người phát triển overlay tự để xác định yếu tố cốt lõi mạng lưới đề cập trên, bao gồm chế độ addressing, giao thức sử dụng phương pháp tiếp cận để định tuyến, thường giới thiệu phương pháp tiếp cận hoàn toàn khác phù hợp theo hướng cụ thể lớp ứng dụng môi trường hệ điều hành Ví dụ bảng băm phân tán distributed hash table, viết tắt DHT) lớp hệ thống phân tán không tập trung, cung cấp dịch vụ tra cứu tương tự bảng băm cặp (khóa, giá trị) lưu trữ DHT, nút mạng tham gia lấy giá trị liên kết với khóa cho trước cách hiệu Chúng minh họa việc sử dụng thành công mạng overlay cách thảo luận Skype Ví dụ lớp overlay đưa suốt sách Ví dụ chương 10 trình bày chi tiết giao thức cấu trúc thông qua việc chia sẻ file P2P, thông tin bảng băm phân tán Chương 19 xem xét mạng không dây ad hoc DTN bối cảnh điện thoại di động máy tính khắp nơi, chương 20 xem xét overlay hỗ trợ cho multimedia dòng 4.5.2 Skype Skype ứng dụng peer – to – peer Voice over IP (VoIP) Nó bao gồm tin nhắn tức thời, hội nghị truyền hình, giao diện cho dịch vụ điện thoại tiêu chuẩn qua SkypeIn SkypeOut Phần mềm phát triển Kazaa vào 15 năm 2003, triển khai rộng rãi ước tính có khoảng 370 triệu người dùng vào năm 2009 Skype trường hợp nghiên cứu tuyệt vời việc sử dụng mạng Overlay hệ thống giới thực (quy mô lớn), chức tiến tiến cung cấp ứng dụng cụ thể cách mà không làm thay đổi kiến trúc cốt lõi Internet Skype mạng ảo, hình thành kết nối người (những thuê bao Skype hoạt động) Không cần địa IP hay cổng yêu cầu để thiết lập gọi Kiến trúc mạng ảo hỗ trợ Skype không công bố rộng rãi, nhà nghiên cứu nghiên cứu Skype thông qua loạt phương pháp, bao gồm phân tích lưu lượng truy cập nguyên tắc phạm vi công cộng Phần lớn chi tiết mô tả sau lấy từ báo Baset and Schulzrinne [2006], có nghiên cứu chi tiết hành vi Skype -Kiến trúc Skype: Skype dựa sở hạ tầng peer – to – peer gồm máy dùng bình thường (gọi máy chủ) siêu nút, siêu nút host Skype bình thường mà có đủ khả để thực vai trò nâng cao họ Các siêu nút lựa chọn theo yêu cầu dựa vào loạt tiêu chí bao gồm: băng thông sẵn có, khả tiếp cận (máy phải có địa IP toàn cầu không ẩn đằng sau router NAT kích hoạt) tính sẵn có (dựa vào độ dài thời gian mà Skype chạy liên tục vào nút đó) Cấu trúc tổng thể thể hình 4.16 - Kết nối người sử dụng: người dùng Skype xác thực thông qua máy chủ đăng nhập tiếng Sau họ liên lạc với siêu nút lựa chọn Để đạt điều này, khách hàng phải trì nhớ cache siêu nút (nghĩa địa IP cặp số cổng) Trong lần đăng nhập đầu tiên, nhớ làm đầy 16 với địa khoảng siêu nút, theo thời gian khách hàng xây dựng trì tập hợp lớn nhiều (có lẽ vài trăm) - Tìm kiếm người dùng: mục tiêu siêu nút thực việc tìm kiếm hiệu danh sách toàn cầu người sử dụng phân phối qua siêu nút Việc tìm kiếm xếp siêu nút lựa chọn khách hàng liên quan đến việc tìm kiếm mở rộng siêu nút khác tìm thấy người dùng Trung bình có khoảng siêu nút liên lạc Một người dùng tìm kiếm thường phải 34 giây để hoàn thành việc host có địa IP toàn cầu Từ thí nghiệm thấy có xuất nút trung gian tham gia vào tìm kiếm nhớ cache nhằm cải thiện hiệu suất tìm kiếm - Kết nối gọi: phát yêu cầu người dùng, Skype thiết lập kết nối gọi hai bên, sử dụng TCP để truyền tín hiệu yêu cầu gọi chấm dứt gọi Cả TCP UDP sử dụng cho dòng âm UDP ưa thích TCP với việc sử dụng nút trung gian, sử dụng trường hợp định để phá vỡ firewall Các phần mềm mã hóa giải mã âm đóng phần quan trọng việc cung cấp chất lượng tuyệt vời gọi, sử dụng Skype, thuật toán liên quan thiết kế cẩn thận hoạt động môi trường Internet 32kbps trở lên 4.6 Trường hợp nghiên cứu: MPI Thuật ngữ MPI viết tắt Message Passing Interface, dạng giao thức kết nối máy tính Nó nằm chuẩn de facto cho kết nối nút chạy chương trình song song nhớ chia sẻ phân phối Tập MPI thi hành bao gồm thư viện thủ tục cho gọi từ chương trình Fortran, C, C++ hay Ada Lợi MPI so với thư viện cũ vừa thuận tiện (vì MPI thực thi cho hầu hết kiến trúc nhớ phân tán) vừa nhanh (vì thủ tục tối ưu hóa cho phần cứng mà chạy) 17 Mô hình kiến trúc MPI giới thiệu hình 4.17 Mô hình tương tự mô hình mục 4.2.1, có gia tăng kích thước cách rõ ràng đệm MPI người gửi người nhận, quản lí thư viện MPI sử dụng để lưu trữ liệu trình vận chuyển 4.7 Tóm tắt Trong phần đầu chương giới thiệu giao thức cốt lõi giao thức TCP/IP TCP UDP giao thức hoạt động lớp thứ (Transport Layer) mô hình OSI, TCP: hi sinh tốc độ để đảm bảo tính tin cậy gói tin truyền đi, UDP: ưu tiên tốc độ không đảm bảo độ tin cậy gói tin Do TCP UDP ứng dụng vào dịch vụ khác TCP thường ứng dụng vào: email, file sharing, downloading ; UDP ứng dụng vào: Voice streaming, Video streaming Phần thứ hai trình bày loại khác marsharing: CORBA, Java serializes, XML Thông điệp multicast sử dụng truyền thông thành viên nhóm tiến trình IP multicast cung cấp dịch vụ cho mạng cục mạng Internet Yêu cầu thêm multicast có liên quan đến thứ tự thông điệp, yêu cầu mạnh tất thành viên nhóm nhận tất thông điệp thứ tự Multicast hỗ trợ mạng overlay Tổng quát overlay cung cấp dịch vụ kiến trúc mạng ảo, cho phép dịch vụ mạng chuyên gia tạo sở hạ tầng mạng Mạng overlay giải vấn đề liên quan đến lập luận end – to – end Saltzer cách cho phép hệ nhiều ứng dụng cụ thể mạng trừu tượng Phần cuối chương trường hợp nghiên cứu đặc điểm kĩ thuật MPI phát triển cộng đồng tính toán hiệu cao tính hỗ trợ linh hoạt cho trao đổi thông điệp 18 [...]... được thông điệp multicast Multicast là kĩ thuật đẩy thông tin, trong đó một máy chủ sẽ gửi dữ liệu đến người sử dụng mà không cần người sử dụng phải yêu cầu trước.Thuật ngữ về kéo và đẩy xuất hiện rất nhiều trong các cuộc thảo luận về truyền tải thông tin qua Internet Trong kĩ thuật kéo thông tin, client yêu cầu dữ liệu từ phía máy chủ hoặc từ các máy tính khác Email là kĩ thuật đẩy thông tin trong. .. bị trong mạng chỉ với một thao tác duy nhất Hệ điều hành tại các nút và chồng giao thức TCP/IP, phải hỗ trợ IP multicast để nút có thể tham gia vào quá trình truyền multicast Một nút trong multicast chỉ cần gọi đến dịch vụ chuyển phát một lần duy nhất khi muốn truyền thông điệp đến nhiều đích đến khác nhau Quá trình truyền unicast và broadcast là trường hợp riêng của multicast Nếu trong môi trường truyền. .. tượng để được kích hoạt trong các máy chủ khác nhau trong suốt cuộc đời của nó Các hệ thống peer – to – peer được mô tả trong chương 10 sử dụng một hình thức tham chiếu đối tượng từ xa hoàn toàn độc lập với vị trí Thông điệp sẽ được chuyển đến đích theo cách thức của thuật toán định tuyến phân tán Yếu tố cuối cùng của đối tượng tham chiếu từ xa được mô tả trong hình 4.13 là thông tin về giao diện của... tượng từ xa, ví dụ: tên giao diện Thông tin này có liên quan đến bất kì một tiến trình nào nhận một đối tượng tham chiếu từ xa như một tham số, hoặc như là kết quả của một lời gọi từ xa Điều này sẽ được giải thích rõ hơn trong mục 5.4.2 4.4 Truyền thông Multicast Trong môi trường unicast, một nút mạng chỉ có khả năng gửi thông tin đến một nút duy nhất trong một thời điểm Trong môi trường multicast, một... của marsharing: CORBA, Java serializes, XML Thông điệp multicast được sử dụng trong truyền thông giữa các thành viên của một nhóm tiến trình IP multicast cung cấp dịch vụ cho cả mạng cục bộ và mạng Internet Yêu cầu thêm về multicast có liên quan đến thứ tự của thông điệp, yêu cầu mạnh nhất là tất cả các thành viên trong nhóm nhận được tất cả các thông điệp trong cùng thứ tự Multicast có thể cũng được... phương pháp tiếp cận hoàn toàn khác phù hợp hơn theo hướng cụ thể các lớp ứng dụng của môi trường hệ điều hành Ví dụ bảng băm phân tán distributed hash table, viết tắt DHT) là một lớp các hệ thống phân tán không tập trung, cung cấp một dịch vụ tra cứu tương tự như một bảng băm các cặp (khóa, giá trị) được lưu trữ trong DHT, và bất kỳ nút mạng tham gia nào cũng có thể lấy được giá trị liên kết với một khóa... các bản sao hoặc không có ai trong số họ nhận được yêu cầu để thực hiện hoạt động, nếu một trong số họ bỏ lỡ yêu cầu nó sẽ trở thành không phù hợp với người khác Trong hầu hết các trường hợp, dịch vụ này sẽ yêu cầu tất cả các thành viên nhận được thông điệp yêu cầu trong cùng một thứ tự như nhau - Khám phá dịch vụ trong mạng tự phát: một cách để tiến trình khám phá dịch vụ trong mạng tự phát là để multicast... PIM Phân giải địa chỉ: 12 - Một địa chỉ multicast cho phép truyền các gói tin tới một tập hợp các thành viên của cùng một nhóm Một địa chỉ multicast định danh một nhóm các máy hoặc giao tiếp mạng đại diện cho một nhóm là một địa chỉ lớp D - Trong gói tin multicast địa chỉ đích đến trong trường địa chỉ của gói tin IP luôn là địa chỉ lớp D và có giá trị trong khoảng 224.0.0.0 – 239.255.255.255 - Trong. .. việc sử dụng thành công mạng overlay bằng cách thảo luận về Skype Ví dụ về lớp overlay sẽ được đưa ra trong suốt cuốn sách Ví dụ chương 10 trình bày chi tiết về các giao thức và cấu trúc thông qua việc chia sẻ file P2P, và những thông tin về bảng băm phân tán Chương 19 xem xét mạng không dây ad hoc và DTN trong bối cảnh điện thoại di động và máy tính ở khắp mọi nơi, chương 20 xem xét overlay hỗ trợ cho... đề khi phát hiện dịch vụ Thực tế Jini sử dụng IP multicast trong giao thức của nó cho các dịch vụ khám phá Điều này được mô tả trong mục 19.2.1 - Hiệu suất tốt hơn thông qua nhân bản dữ liệu: xem xét các trường hợp dữ liệu tái tạo lại chính nó chứ không phải là hoạt động trên dữ liệu được phân phối bởi các thông điệp multicast Ảnh hưởng của thông điệp bị mất và thứ tự không phù hợp sẽ 13 phụ thuộc vào ... cầu thông điệp lớn mức tối đa phải phân đoạn vào khối kích thước 4.2.3.2 Blocking Socket thông thường cung cấp non-blocking sends blocking receives truyền thông theo gói Việc gửi trả lại trao thông. .. phù hợp theo hướng cụ thể lớp ứng dụng môi trường hệ điều hành Ví dụ bảng băm phân tán distributed hash table, viết tắt DHT) lớp hệ thống phân tán không tập trung, cung cấp dịch vụ tra cứu tương... ứng dụng đòi hỏi thông điệp phải nhận có thứ tự thứ tự mà chúng chuyển người gửi Thông điệp phân phối theo thứ tự gửi 4.2.2 Sockets 4.2.2.1 Khái niệm Socket thiết bị truyền thông hai chiều tương