1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng dịch vụ tính toán phân bố (distributed computing environment DCE)

132 208 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 132
Dung lượng 2,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1.2 Bài toánBài toán đặt ra cho luận văn này như sau : Một hệ thông máy tính gồm các máy tính chuyên dụng có khả năng tính toán lớn các Server được kết nôi trên mạng LAN.. THOAI NAM1.3 C

Trang 1

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

ĐẠI HỌC QUOC GIA THÁNH PHO HO CHI MINH

TRƯỜNG ĐẠI HỌC KỸ THUẬT KHOA CÔNG NGHỆ THÔNG TIN

TÍNH TOÁN PHÂN BÔ

(Distributed Computing Environment-DCE)

MSSV : 59406114

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

" ờũnÁ ạM ùĩì cám <ĩn chân /hành nhơ'/ r/p'n /hầu 'hhũợì 'ưYơm, /ế/ cd các /hdtỵ cổ , /mn /m cà yìơ đỉnh đã /ân /ình hưâny c/ẫn , yìdny f/ạy cà yỉớ/t đĩĩ f/c /nần tùm, này r/ược hoàn /hành ! ”

// /9.99 — - /ịỷỵitựrn lẩn 'J\Tôí

Trang 2

MỤC LỤC

1 GIỚI THIỆU 5

1.1 Sự HÌNH THÀNH BÀI TOÁN - - — 6

1.2 BÀI TOÁN - - 7

1.3 CÁC GIẢ THUYẾT CỦA BÀI TOÁN: - - — 8

1.4 Mỏ HÌNH

8 1.5 Sơ LƯỢC VỀ HOẠT ĐỘNG HỆ THÔNG - - 10

2 Cơ SỞ LÝ THUYẾT 12

2.1 TCP/IP— — 13

2.1.1 Tổng quan về TCP/1P - 14

2.1.2 Các lớp trong TCP/IP - 16

2.1.3 Internet Protocol (IP) -19

2.1.4 Transmission Control Protocol (TCP) 22

2.1.5 User Datagram Protocoỉ (UDP) 25

2.2 BERKELEY SOCKETS - - — -26

2.2.1 Sự trừu tượng hóa

Socket -27 2.2.2 Các hàm hệ thống liên quan đến dịch vụ của cấp

transport -28

2.3 Mổ HÌNH CLIENT - SERVER

31

2.3.1 Xâv dựng chương trình Client 32 2.3.2 Các loại Server 33

2.3.3 Xây dựng chương trình Server -34

2.4 MULTICAST - - -38

2.4.1 Giới thiệu 38

2.4.2 Broadcasting 40

2.4.3 Multicasting 41

2.4.4 IGMP : Internet Group Management Protocol 47

2.4.5 Quá trình Multicast 50

2.4.6 Làm sao viết một ứng dụng dùng Multicast trong Unix -53

2.4.7 Vấn đề tìm đường trong multicast: -56

2.5 MÔ HÌNH GROUP COMMUNICATONS - - -56

2.6 XDR (EXTERNAL DATA REPRESENTATION) - —

-59 2.6.1 Tại sao lại phải sử dụng XDR -59

2.6.2 Các kiểu dữ liệu chuẩn của XDR -60

2.6.3 Các thủ tục chuyển đổi -61

Trang 3

Xây dưng dich vu tính toán phân bô" _CBHD : K.s THOAI NAM

3.6 PHÂN TÍCH CHỨC

NĂNG - 73

3.6.1 A dmin

73 3.6.2 Agent - — — 74

3.6.3 Server - — — 74

3.6.4 Service - — — 74

3.6.5 Client - 75

3.6.6 Tools -75

3.7 CÁC GIẢI THUẬT

— -75 3.7.1 Admin 75

3.7.2 Agent 75

3.7.3 Server - 77

3.7.4 Giải thuật bầu chọn - 78

3.7.5 Client - 78

3.8 HIỆN THỰC

-80 3.8.1 Tổ chức dữ liệu 80

3.8.2 Quản lý timer 83

3.8.3 Socket giao tiếp- -86

3.8.4 Tìm tất cả các host và User trên mạng - -86

3.8.5 Tải trên hệ thống Sun-solaris , chọn Server tốt nhất - 87

Trang 5

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

1.1 Sư hình thành bài toán

Một vấn đề đang được nghiên cứu trong tính toán khoa học hiện nay là làm

sao giải quyết các bài toán lớn một cách hiệu quả Nhiều cơ chế đã được phát triển

để tính toán qua các máy tính có cấu trúc khác nhau Cơ chế phổ biến nhất là liên

quan đến các thư viện phần mềm Nhưng việc sử dụng các thư viện phần mềm này

vẫn gặp phải nhiều khó khăn Một vài thư viện đã mang lại hiệu quả tối ưu chomột sô' loại câu trúc máy tính nào đó nhưng lại không cung câ'p một giao tiếp thuận

tiện cho hệ thông máy tính khác Có những loại thư viện khác đòi hỏi người sửdụng có một nổ lực đáng kể trong việc lập trình nhưng chính những người này lại

không có thời gian học những kỹ thuật lập trình cần thiết Trong khi có một sô' ít

những công cụ đã được phát triễn để làm giảm bớt những khó khăn này nhưng chính

những công cụ này lại thường có sẩn trên một sô' ít các máy tính Chính vì

do trên đã thúc đẩy sự ra đời của đề tài : " Xây dựng dịch vụ tính toán phân bô' Distributed Computing Enviroment -DCE " DCE là một ứng dụng dựa trên mộthình Client-Server và mô hình Group Communications được thiết kê' để giải quyết

-các bài toán tính toán khoa học qua mạng Phần mềm tính toán cần nhân mạnh ở

đây là các ứng dụng về tính toán khoa học DCE cũng quan tâm đến chiến luỢccân bằng tải để cải thiện các tài nguyên tính toán có sẩn Đề tài này giới thiệu vềcâu trúc và ý niệm đồng thời mô tả cách thức mà DCE được dùng để giải quyết các

bài toán tính toán khoa học thông qua mạng mà tập trung là các bài toán đại sô'tuyến tính nhưng DCE cũng dễ dàng mở rộng để giải quyết nhiều loại bài toán khác

ví dụ như bài toán biến đổi Fourier (FFT) là một điển hình

Thật ra , cũng đã có nhiều đề án đã và đang nghiên cứu về tính toán phânbố:

Trang 6

1.2 Bài toán

Bài toán đặt ra cho luận văn này như sau :

Một hệ thông máy tính gồm các máy tính chuyên dụng có khả năng tính toán

lớn (các Server) được kết nôi trên mạng LAN Những Server này có thể đảm nhận

các dịch vụ tính toán khoa học đặc biệt gọi là các Service.Người sử dụng từ mộtmáy tính bình thường (Client) bằng môi trương lặp trình có thể sử dụng - truy xuất

các dịch vụ tính toán trên các Server Người quản trị hệ thông (Admin) quản lýhoạt động các server Ngừời phát triển dịch vụ xây dựng thêm các dịch vụ trên các

cần quan tâm đến phần tổ chức của hệ thông dịch vụ

• Làm sao để Admin có thể quản lý ,kiểm soát và thống kê hoạt động của cácserver và việc truy xuất các dịch vụ từ các Client để cho hệ thông các server

Trang 7

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

1.3 Các giả thuyết của bài toán:

Các Server có khả năng tính toán lớn hơn các máy tính bình thường và chỉ

đảm nhận các dịch vụ tính toán mà không làm thêm chức năng nào khác, nghĩa là

không có một User nào (trừ Admin) được login trực tiếp vào các Server để chạy các

rất nhiều so với thời gian truyền dữ liệu từ Client đến Server

Các message điều khiển hoạt hệ thống sẽ ưu tiên xử lý trước so với cácpacket dữ liệu

Nếu hai Server A và Server B trong hệ thông còn đường kết nôi thì cácmessage do Server A gởi cho Server B phải đến được Server B và đúng thứ tự có

nghĩa là bỏ qua sự mất mát hay suy giảm tín hiệu trên đường truyền

Hệ thống DCE hiện tại gồm tập hợp các máy tính được kết nôi trên cùngmột LAN và không đồng nhất nghiã là các máy tính này không tương thích về kiểu

dữ liệu Cách hiện thực hiện tại là xem hệ thông là một đồ thị kết nôi đầy đủ vàkhông phân cấp Tuy nhiên để quản lý hiệu quả một nhóm các máy tính phân tán

trên mạng thì cách hiện thực trong tương lai là phải cung cấp cấu trúc lớn hơn

như cấu trúc cây

Mô hình giao tiếp trong hệ thông DCE là mô hình Client-Server kết hợp với

mô hình Group Communications Các Server được tập hợp lại thành một group với

địa chỉ group là một địa chỉ Multicast nào đó Sự kết hợp của hai mô hình sẽ phát

Trang 8

Agent Chính phần tử Agent này sẽ làm phát sinh nhiều sự cô" cần giải quyết trongvân đề fault-tolerant cho hệ thông.

Thông tin trong hệ thông DCE dựa trên lớp Socket ,DCE dùng TCP/IPprotocol bởi vì TCP/IP bảo đảm thông tin tin cậy giữa các quá trình

Để có thể hoạt động trên mạng không đồng nhất ,hệ thông DCE dùng XDR

protocol để làm tương thích dữ liệu giữa các máy

Công cụ được chọn để Client giao tiếp với hệ thông DCE là môi trường lập

trình c trên hệ điều hành Unix Dĩ nhiên ,cũng có thể mở rộng giao tiếp ở Clientbằng cách dùng nhiều công cụ khác như dùng Web

Như vậy , hệ thông DCE gồm 5 loại phần tử (chương trình) :

Agent - Chương trình trung tâm điều khiển hoạt động của toàn hệ thông do

Amin kích khởi đầu tiên hoặc do một Server chạy lâu nhất trong các Server bằng

giải thuật ứng sẽ kích khởi một Agent khác khi Agent trước đó không còn để bảo

đảm rằng trong hệ thông DCE phải luôn có một Agent và chỉ một Agent duy nhất

mà thôi.Agent có thể chạy trên một trong các máy tính Server Chương trình này

làm nhiệm vụ ánh xạ tài nguyên tính toán nào cho Client.Việc ánh xạ này phải cần

cả thông tin của hệ thông và của cả ứng dụng của người sử dụng do Client gởi đến

Server - Chương trình quản lý các Service tại máy tính Server và chịu sựđiều khiển của Agent Trên một máy tính Server chỉ có một chương trình quản lý

Server chạy mà thôi.Chương trình này làm nhiệm vụ thông tin trong hệ thống

Service - Chương trình phục vụ yêu cầu của Client và chịu sự điều khiểncủa Server Chương trình này làm nhiệm vụ tính toán trong hệ thông

Client - Một module do người sử dụng gọi và link trong chương trình làm

Trang 9

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

1.5 Sơ lươc về hoat đông

Admin sẽ cho phép một User được sử dụng - truy xuất một dịch vụ nào đó

Client muôn truy xuất một dịch vụ thì trước hết Client phải xin hệ điều hành

một địa chỉ Socket giao tiếp (gồm một port và IP address chính là IP addrees của

Client) và sau đó Client gởi request ( 1 ) cho hệ thông DCE bằng multicast theo địa

chỉ định trước kèm theo địa chỉ Socket ở trên và các thông tin mô tả về User

Trang 10

Client biết theo địa chỉ Socket mà Client gởi theo request (10).Nếu hợp lệ ,Agent sẽset một timer để chờ thông tin về tải của các Server Hết thời gian time-out (có thể

là thông tin về tải của tất cả các Server chưa về hết ),Agent chọn ra một Server có

tải nhỏ nhất trong các Server mà thông tin tải của nó đã đến được Agent ra phục vụ

Client bằng gởi một message multicast cho Server đó.(3) và Agent phải trả lời cho

Client biết là Server nào sẽ phục vụ Client (10)

Server khi được Agent chọn ra để phục vụ Client , nó sẽ fork một quá trình

và thực thi chương trình Service mà Client yêu cầu (4)

Chương trình Service khi được fork thành công sẽ báo cho hệ thống

DCE và Client là mình còn đang chạy (8) để Client đợi Sau khi phục vụ thànhcông hoặc là bị lỗi trong khi chạy thì chương trình Service phải báo cho hệ thông

Trang 11

dùng chung một phương thức giao tiếp - giao thức (protocol) nào đó Các giao thức

mạng máy tính thường là những qui tắc quản lý thông tin trên mạng

Tổ chức ISO (International Standards Organization) đã đưa ra mô hình tham

Cấp thấp nhất là cấp vật lý Ớ cấp này, thông tin được truyền giữa hai máy

(có sự kết nốì vật lý thật sự ) dưới dạng một tràng bits thô

Cấp datalink có nhiệm vụ chia nhỏ data từ cấp network đưa xuống thành các

frame data (thường vài trăm bytes) để truyền đi và tổ chức nhận sao cho đúng

các frame cấp datalink khác cấp physical ở chỗ nó phải phát hiện được lỗi và nhận

biết được ranh giới các biên của frame dữ liệu

Cấp network liên quan đến việc truyền dữ liệu giữa hai máy bất kỳ trongmạng

Do cấp netvvork chưa đáng tin cậy cho nên cần thiết phải có cấp transport

Trong đó cấp transport là rất quan trọng vì nó cung cấp dịch vụ (Service)

Trang 12

(retransmisssion) và kiểm soát dòng dữ kiện (flow control) dược xử lý bởi cấptransport.

Session layer: chứa các dịch vụ cho phép trao đổi thông tin giữa các quá

trình, tạo và kết thúc kết nối của các quá trình trên các máy khác nhau.

Presentation layer : chứa các dịch vụ về thao tác dữ liệu như nén, giải nén

Cấp này không có các dịch vụ thông tin của riêng nó

Application layer: chứa các dịch vụ phục vụ cho người dùng như truyền nhận

file hay email

Do đặc tính cấu mô hình OSĨ, dữ liệu của chương trình gởi phải đi qua

đường đi của dữ liệu qua kết nối giữa các máy tính

TCP/IP cung cấp cho người lập trình hai dich vụ sơ cấp là sự phân phôi các

gói dữ liệu và vận chuyển các dòng dữ liệu một cách tin cậy TCP/IP có những đặc

điểm nổi bật làm cho nó phổ biến một cách rộng rãi là :

• Không phụ thuộc vào sơ đồ vật lý của mạng: TCP/IP có thể được sử dụng ởkhắp các loại mạng như: mạng dùng bus, mạng vòng, mạng hình sao , mạngcục bộ và mạng diện rộng

• Không phụ thuộc vào phần cứng cấu tạo trên mạng: TCP/IP có thể ứng dụngtrên một số phần cứng mạng thay đổi như: mạng Ethernet, mạng vòng,

Trang 13

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

• Chuẩn giao thức cho ứng dụng : TCP/IP không những cung cấp cho người lậptrình với những phương thức truyền dữ liệu trên mạng giữa các ứng dụng

cung cấp nền tảng của nhiều giao thức và các ứng dụng khác

Hình sau mô tả quan hệ của các protocol trong bộ protocol và ánh xạ tương

ứng của chúng vào cấu trúc OSI :

TCP : Transmission Control Protocol :là protocol connection oriented

(có

thiết lập cầu nôi),cung cấp cho cấp User process đường truyền hai chiều, an

liệu và dữ liệu truyền trên cầu nôi là byte stream

UDP : User Datagram Protocol :là protocol connectionless(không thiết

Trang 14

ICMP : Internet Control Message Protocol :protocol xử lý lỗi và điều

khiển

thông tin giữa host và gatevvay

IP : Internet Protocol : là protocol truyền data dạng package Protocol IP

phục vụ cho TCP,UDP,ICMP Do đó ở cấp process, User không dùng trực tiếpprotocol này

ARP :Address Resolution Protocol : là protocol có nhiệm vụ ánh xạ địa

chỉ

Internet vào địa chỉ phần cứng

RARP: Reverse Address Resolution Protocol : là protocol có nhiệm vụ

Lớp này gồm các ứng dụng trên mạng và quản lý các chi tiết của từng ứng

dụng riêng lẽ Có nhiều ứng dụng TCP/IP ở lớp này như:

Telnet : truy cập từ xa FTP ( File Transíer Protocol): giao truyền file trên mạng SMTP (Simple Mail Transfer Protocol) : ứng dụng gởi thư

Trang 15

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Đôi với UDP thì ngược lại, chỉ cung cấp việc gởi nhận dữ liệu đỢn giản giữa

các host gọi là datagram UDP không bảo đảm việc dữ liệu có đến được đích hay

không Các việc kiểm soát được thêm vào các ứng dụng bên trên

Group Management Protocol )

Protocol IP là protocol connectionless (không thiết lập cầu nốì) , dữ liệutruyền dạng frame không bảo đảm an toàn Mỗi frame IP chứa địa chỉ nguồn và địa

chỉ đích do đó mỗi frame được phân phôi và tìm đường độc lập với nhau

Địa chỉ Internet:

Khi nói hai máy tính giao tiếp với nhau nghĩa là : có hai process đang chạy

trên hai máy này giao tiếp với nhau

Để hai process này có thể giao tiếp được với nhau thì process này phải biết

process kia chạy trên máy nào trong mạng (địa chỉ internet) và nơi nào trong

Trang 16

identification 3 bitílags 13íragmentoffset bit

8 bit time-to-live 8 bit 16 bit header

checksumProtocol

32 bit source IP address

32 bit destination IP address

OptionData

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Dạng D (Class D)Dạng format nào được chọn tùy thuộc vào cấu trúc của hệ thông mạng Ví

dụ với dạng A được dùng cho mạng có nhiều máy (host) trong một mạng đơn Trong

khi dạng format c này thì sô" lượng mạng lớn nhưng sô" máy trong từng mạng ít

Thông thường địa chỉ Internet được viết dạng 4 sô" thập phân cách nhau bởi

dâu V Mỗi sô" thập phân sẽ được mã hóa thành 1 byte trong 4 byte địa chỉ

Mỗi ữame IP chứa 32 bits địa chỉ nguồn và 32 bits địa chỉ internet của máy

đích

Netvvork ID trong 4 byte địa chỉ sẽ giúp các gatevvay tìm đường cho frame

IP đến mạng tương ứng (không cần đến địa chỉ máy trong mạng)

Mỗi địa chỉ internet là duy nhât.Tuy nhiên một máy có thể có nhiều địa chỉ

giao thức của transport, cả hai sử dụng IP như là lớp netvvork

TCP cung câ"p một lớp transport một cách tin cậy mặc dù dịch vụ mà nó sử

dụng thì không tin cậy Trong khi đó ,UDP gởi và nhận datagram cho các ứngdụng Một datagram là một khôi thông tin lưu thông từ nơi gởi đến nơi nhận UDP

không có sự bảo đảm rằng các datagram có bao giờ đến được đích cuối cùng của

nó hay không

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Tóm lại, khi ứng dụng gởi dữ liệu sử dụng TCP thì dữ liệu được gởi xuống

qua các lớp bên dưới đến khi nó gởi đi một chuỗi các bit qua mạng Qua mỗi lớp

đều có thêm dữ liệu những thông tin của lớp vào đầu khối dữ liệu mà nó nhận được

Khôi dữ liệu mà TCP gởi cho IP được gọi là TCP Segment, IP gỏi cho giao tiếpmạng gọi là ĨP datagram Chuỗi bit lưu thông thông qua Ethernet gọi là Frame số

byte thêm vào ở lớp TCP là 20 byte, ở lớp ĨP là 20 byte và lớp Ethernet là 14 byte

đầu và 4 byte đuôi gọi là Ethernet header và Ethernet Trailer Đến khi nhận , dữ

Appl Header User data

TCP Header Application data

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Trong lớp IP không tồn tại bất kỳ một thông tin trạng thái nào về sự thành

công của datagram Mỗi datagram được nắm giữ không phụ thuộc vào bất cứdatagram nào khác Điều này có nghĩa là các datagram có thể phân phát khôngtheo đúng thứ tự nào Nếu từ máy gởi gởi đi 2 datagram đến cùng đích thì khi giởi Khảo sát các vùng thêm vào bởi lớp ĨP (ĨP header):

Các trường trong IP datagramBit có trọng sô" cao nhất được đánh sô" 0 ở bên trái và bit trọng sô"

trường 4 bit nên giới hạn ở phần đầu 60 byte

Trường loại dịch vụ TOS (Type of Service): có 3 bit truyền ưu tiên, 4 TOS

Trang 17

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

của IP datagram và chiều dài của nó Vì vậy trường này có chiều dài 16 bit nênchiều dài nhất của IP datagram là 65.535 byte Trường này cũng có thể thay đổi khi

datagram bị phân chia

Trường time time-to-live (TTL) đặt giá trị giới hạn cao nhất các số router

mà datagram có thể qua Trường này quyết định thời gian tồn tại của datagram Nó

được khởi động bởi nơi gởi bằng một giá trị thường là 32 hoặc là 64 và giảm dần

khi một router nhận được datagram Khi trường này có giá trị 0 thì datagram bị bỏ

đi Điều này nhằm để tránh các gói dữ liệu lưu thông mãi mãi trên mạng

Trường header-checksum được tính chỉ trên phần đầu của IP Nó không bao

gồm phần data phía sau Nếu nơi nhận kiểm tra vùng này và bị phát hiện lỗi thìdatagram bỏ đi nhưng nó không sinh ra lỗi gì, vì vậy các lớp bên trên phải pháthiện được mất dữ liệu và truyền lại

Việc tìm đường trong các lớp IP thì rất đơn giản Nếu đích đến nốì trực tiếp

hoặc cùng nằm trên mạng thì IP datagram được gởi trực tiếp đến đích NgƯỢc lại,

dữ liệu được gởi đến router mặc định và để cho các router phân phôi dữ liệu đến

đích Chúng ta ó thể xác định các giải thuật tìm đường đơn giản cho cả hai host và

router Sự khác biệt giữa host và router là các host không bao giờ forwarddatagram còn router thì làm việc này

Trong các trường hợp thông thường thì IP có thể nhận datagram từ TCP,UDP, ICMP,IGMP để gởi đi nhưng đôi khi IP còn nhận được từ giao tiếp mạngtrong trường hợp cần forward datagram Lớp IP có bảng tìm đường trong bộ nhớ

Bảng này được sử dụng mỗi khi IP nhận được datagram để gởi Nhưng khi datagram

nhận được từ giao tiếp mạng, trước tiên IP kiểm tra xem địa chỉ đích đến có phải

địa chỉ của chính mình hay không Nếu đúng thì datagram được phân phát đến khôi

giao thức dựa theo trường Protocol trong phần đầu datagram của IP Nếu đích

Trang 18

32 bit acknowledgement number

4 bit header 6 bit

reserved u A R 16 bit Window size

16 bit TCP checksum 16 bit urgent poiner

OptionData

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

• Tìm trong bảng tìm đường đến địa chỉ đích Nếu tìm thấy thì gởi gói dữ liệu đến

router kế cận được xác định trong đường hoặc gởi trực tiếp đến card giao tiếp

• Tìm trong bảng tìm đường một con đường nhưng chỉ đến ID của mạng đích

Nếu tìm thấy đến router kế cận hoặc trực tiếp đến card giao tiếp

• Tìm trong bảng tìm đường một con đường đi đến nhãn mặc định.Nếu thấy thì

gởi gói đến router kế cận xác định

Nếu các bước đều không thực hiện được thì datagram không thể phát hiện

được IP đích thì IP phát thông báo lỗi đến nơi phát sinh datagram Điạ chỉ của host

được tìm trước network Nếu cả hai không tìm thấy thì đường mặc định sẽ được

nôi kết theo hướng, cung cấp dịch vụ tin cậy về mặt truyền nhận dữ liệu

Nôi kết theo hướng (connection- oriented) nghĩa là hai ứng dụng khi sử dụng

TCP, thường hai ứng dụng này được xem như là một chủ và một tớ, phải thiết lập

một nối kết TCP với nhau trước khi chúng trao đổi dữ liệu

Có hai đầu phân biệt trong việc trao đổi thông tin trong kết nốì TCP.TCP

cung cấp khả năng tin cậy bằng cách thực hiện các yêu cầu sau:

• Dữ liệu của ứng dụng được phân ra thành các khổi có kích thước mà TCP

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Vì các segment của TCP được truyền bởi các datagram của IP và vì cácdatagram này được nhận không theo thứ tự nên các segment của TCP nhận được

cũng không thứ tự Dó nó không nhận được các segment thì TCP phải sắp xếp lại

theo đúng thứ tự ban đầu và gởi cho các ứng dụng

TCP có thể nhận được các dữ liệu trùng lắp nhiều lần nên các dữ liệu này

được TCP bỏ điTCP cũng cung cấp dịch vụ kiểm tra lưu lượng Mỗi đầu cuối trong các nốì

kết TCP có lượng vùng đệm trống nhất định Vì thế nó chỉ cho phép đầu kia

liệu nhiều nhất với lượng vùng đệm cho phép Điều này tránh được việc các

tốc độ nhanh sẽ chiếm hết vùng đệm của các host chậm hơn

Một chuỗi byte 8 bit được trao đổi thông qua kết nôi TCP giữa hai ứng dụng

Không có các thông tin đánh dấu được thêm vào bởi TCP Vì thế dịch vụ được gọi

là dịch vụ chuỗi byte (byte stream Service) nếu một ứng dụng gởi 10 byte sau

Trang 19

32 bit source IP address

32 bit destination IP addressZero 8 bit Protocol 16 bit destination port number

16 bit source port number 16 bit source port number

16 bit UDP length 16 bit UDP checksum

Data

Connection-oriented? no no Yes

message boundaries ? yes yes no

timeout and rexmit ? no no yes

duplicate detection ? no no yes

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Sự kết hợp giữa một địa chỉ IP và một port gọi là Socket Thuật ngữ nàyxuất hiện như một đặc điểm của TCP nguyên thủy,nhưng sau đó nó trở nên tên của

giao tiếo lập trình Berkeley-dcrived Nó là cặp Socket bao gồm địa chỉ của IP của

Client và server,sô" port của Client và server xác định 2 đầu của nốì kết TCP trên

thứ tự Sô" thứ tự này là sô" 32 bit không dâu

Khi kết nôi mới được thành lập cờ SYN được bật lên Trường sô" thứ tự chứa

sô" thứ tự khởi động (ISN) sô" này được chọn bởi host

Sô" thứ tự byte đầu tiên của dữ liệu được gởi bởi host này là ISN cộng một

bởi vì SYN sử dụng hết một số thứ tự

Vì mỗi byte khi trao đổi được đánh sô" nên sô" thừa nhận (acknowledgement

number) chứa sô" thứ tự kê" tiếp mà nơi nhận cần nhận

Cái giá của việc gởi một ACK là không đáng kể bởi vì sô" ACK 32 bit luôn

có trong phần đầu Vì thê" khi kết nôi được thành lập , trường này luôn được

cờ ACK luôn được bật mở

TCP cung câ"p dịch vụ hai chiều (full-duplex) cho lớp ứng dụng Điều

nghĩa là dữ liệu lưu thông trên chiều này không phụ thuộc vào chiều kia.Vì

đầu của kết nôi phải giữ lại sô" thứ tự dữ liệu lưu thông trên mỗi chiều

TCP có thể được xem như là một phương thức cửa sổ trượt không cần lựa

chọn ACK hoặc có ACK âm, nghĩa là nơi gởi ACK đã nhận thành công dữ liệu

ACK về trước không bao giờ byte có chứa sô" ACK

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Việc kiểm soát lưu thông của TCP được cung cấp bằng cách cuối mỗisegment thông báo một kích thước cửa sổ Đó là sô" byte bắt đầu bằng byte

được kiểm bởi nơi nhận Vùng checksum của TCP giông như UDP

Trường urgent poiner có giá trị khi cờ URG đặt lên 1 Con trỏ này là vị

MSS (Maximize segment size) Nó xác thước lớn nhất nơi nhận muốn gởi đi

UDP là giao thức đơn giản của lớp Transport Mỗi lần dữ liệu truyền đi được

thực hiện bởi chính xác một quá trình và tạo ra một TP datagram được truyền

2.1.5.2 Phần đầu của UDP

các dữ liệu đến hoặc là của TCP hoặc là của UDP (phụ thuộc vào giá trị của

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

port của UDP Vùng chiều dài ghi lại độ dài của cả phần đầu và phần dữ liệu củaUDP tính bằng byte Vùng này có giá trị nhỏ nhất là 8 byte

Vùng UDP checksum gồm phần đầu và phần dữ liệu của UDP.Trong IP,phần checksum chỉ bao gồm phần đầu nhưng trong TCP và UDP phần checksum

bao gồm cả phần đầu và phần dữ liệu phía sau Nếu só checksum có giá trị là 0 thì

nó được toàn bit 1 (65536) Nếu vùng checksum có giá trị 0 nghĩa là nơi gởi không

tính checksum Trong trường hợp này nơi nhận kiểm transport lỗi checksum và tự

Tính năng của các protocol (ĨP,UDP,TCP) trong TCP/ĨP:

2.2 Berkelev sockets

Hai Applications Programming Interface-APIs thịnh hành trên UNIX làBcrkerley sockets và System V Transport Layer Interface (TLI) Cả hai interface

này được phát triển bằng ngôn ngữ c

Trong phần này chúng ta sẽ xem xét interface giữa câ"p transport và cấpngay trên nó: đó là Berkerley sockets

Berkeley Socket (gọi tắt là Socket) là một tập các giao tiếp lập trình ứngdụng (API) cho phép gởi và nhận dữ liệu giữa các process ở cắc máy khác nhau

trong mạng

Nhờ sử dụng các hàm mà Socket cung cấp, người lập trình ứng dụng sekhông phải bận tâm đến các protocol mà các cấp dưới sử dụng

Trang 20

Berkerley Socket interface: cung cấp những hàm tổng quát được dùng trong

giao tiếp mạng và sử dụng được với nhiều loại protocol khác nhau Những người

thiết kế đã tận dụng những hàm hệ thông đã có của UNIX và chỉ đưa ra những khái

niệm mới hay hàm mới khi thật sự cần thiết

2.2.1 Sự trừu tượng hóa Socket

Socket descriptor và file descriptor

Trong Unix ,khi gọi hàm hệ thông open(), ta sẽ nhận được một file descriptor

được dùng để truy xuất file Hệ điều hành sẽ duy trì bảng các file descriptor cho

mỗi process Khi process mở một file , hệ thông sẽ đặt con trỏ chỉ đến cấu trúc nội

của file vào bảng các file descriptor và trả về chỉ sô" của phần tử mới được

cấu trúc data của sockets

Khi chương trình gọi hàm hệ thông socket() thì hệ điều hành sẽ câ"p

phát

một vùng nhớ đặc tả Socket và điền con trỏ chỉ đến câu trúc này vào bảng filedescriptor đồng thời trả về Socket descriptor

Trang 21

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Mặc dù cấu trúc data đặt tả Socket có rất nhiều trường nhưng hệ thống hầu

như để trông các trường này khi Socket được tạo ra Chương trình sau khi tạo Socket

Khi một Socket được tạo ra nó sẩn sàng cho việc đợi kết nôi hay yêu cầu kết

nôi Socket sử dụng bởi server là "passive Socket" dùng để đợi kết nôi từ Client

Socket sử dụng bởi Client là "active Socket" dùng để khởi tạo kết nôi với server

2.2.2 Các hàm hệ thông liên quan đến dịch yụ của cấp

Internet protocols

Unix internal protocols

Xerrox NS protocols

IMP link layer

Đôi sô" type :

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

SOCKET_STREAM stream Socket

SOCK_DGRAM datagram Socket

SOCK_RAW raw Socket

SOCK_SEQPACKET sequenced packet Socket

Chỉ có những tổ hợp sau có nghĩa :

Đối sô" protocol :Đối số này thường được gán giá trị 0 cho hầu hết các ứng dụng của users.• Hàm hệ thông connectO

Sau khi tạo Socket Client goi connect để thiết lập kết nôi với Server.int connect(int sockfd,struct sockaddr *servadd,int addrlen);

Đối sô" thứ nhất là descriptor của Socket

Đôi sô" thứ hai là một con trỏ đến địa chỉ của server mà nó muôn kết nôi

Đôi sô" thứ ba chỉ ra kích thước của của vùng nhớ chứa địa chỉ server

Khi hàm connect gọi thành công thì cầu nôi được thiết lập và Client

có thể truyền và nhận data thông qua cầu nôi này

Trong thực tê" cầu nôi sẽ được thiết lập với protocol TCP/IP, còn đôi

với protocol UDP/IP thì khi hàm connect được gọi nó chỉ điền các đôi sô"

truyền cho hàm vào Socket chứ không thật sự thiết lập cầu nôi

Trang 22

Đôi sô" thứ ba :sô" byte cần ghi xuống vùng buf.

Thường thì hàm write copy dữ liệu đầu ra vào vùng đệm trong kernel

int close(int sockfd );

Nếu chỉ có một process sử dụng Socket thì close sẽ đóng cầu nôi và giảiphóng Socket

Nếu có nhiều process sử dụng chung 1 Socket thì close sẽ giảm biến đếm

(biến này có giá trị bằng sô" process sử dụng Socket) và sẽ giải phóng Socket khi

biến đếm này bằng 0

• Hàm hệ thông bind():

Lệnh gọi hàm hệ thông bind() gán một tên cho một Socket chưa định danh

int bind(int sockfd, struct sockaddr *servadd,int addrlen);

Các đối sô" giông với hàm connectO;

Có ba trường hợp sử dụng bind() :

Trang 23

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

- Trong trường hợp không có cầu nôi, Client cần phải bảo đảm rằng hệ thông

gán cho một địa chỉ duy nhất, do đó Server có được một địa chỉ cụ thể để trả kếtqủa

• Hàm hệ thông listenQ

Hàm này sử dụng trong trường hợp Server có cầu nôi sẩn sàng chấp

kết nôi

int listen(int sockfd,int backlog );

Hàm này được gọi sau cả hai hàm socketO và bind()

Đối sô" backlog cho biết có bao nhiêu yêu cầu kết nốì có thể được cho vào

hàng chờ của hệ thống trong khi chờ đợi thực thi hàm accept() Thường các ứngdụng chọn là 5 (con sô" tôi đa hệ thông cho phép)

• Hàm hệ thông acceptO :

Khi Socket đã sẩn sàng kết nôi, server gọi hàm accepto để trích một yêu

cầu

kết nôi ra khỏi hàng đợi để thực hiện kết nôi

int accept(int sockfd, struct sockaddr *peer ,int *aaddrlen);

Accept lây phần tử đầu tiên trong hàng chờ kết nối của các Client và tạo ra

một Socket khác có đặc tính giông với sockfd Nếu không có yêu cầu kết nối nào

lệnh gọi sẽ block cho đến khi có một yêu cầu

Đôi sô" peer và addrlen được sử dụng để lây địa chỉ của Client

• Các hàm hệ thông send,sendto,recv và recvfrom

Được sử dụng trong trường hợp mở Socket không cầu nôi

int send(int sockfd,char *buff, int nbytes,int flags);

int sendto(int sockfd,char *buff, int nbytes,

int ílags, struct sockaddr *to, int addrlen);

int recv(int sockfd,char *buff, int nbytes,int ílags);

Trang 24

Quá trình Server được khởi động trên một vài máy tính nào đó Tự thân nó

khởi động chương trình của nó và chờ ( sleeping waiting) cho đến khi quá trìnhClient liên lạc yêu cầu nó thực thi công việc

Những server phải chứa code để điều khiển những vấn đề sau đây :

• Authentication : kiểm tra sự hợp lệ của Client

• Authorization : xác định xem Client có quyền truy xuất dịch vụ mà server cung

cấp không

• Bảo mật data

• Bảo vệ sự riêng tư của thông tin

• Không cho các ứng dụng mạng làm sai lệch thông tin

Quá trình Client được khởi động (có thể trên cùng một máy đôi với Servser

hoặc trên một máy có nối mạng với máy Server ) Khi cần thiết, quá trình Client gửi

yêu cầu thông qua mạng đến Server

Khi quá trình Server hoàn thành công việc, có thể nó trả kết quả về cho quá

trình Client Sau đó nó lại tiếp tục "nghỉ" dể chờ một yêu cầu khác từ Client

Một trong những công việc của chương trình Client là xác định địa chỉ

Server Sau đây là một số phương pháp :

Địa chỉ Server như là một hằng sô' khi chương trình được biên dịch Yêu

Các phương pháp trên đều có ưu điểm và nhược điểm :

Đặc tả địa chỉ Server là hằng sô" khi biên dịch làm cho chương trình chạy

nhanh hơn Tuy nhiên nếu Server chuyển sang máy khác thì chương trình Client

Trang 25

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Thuật giải với protocol TCP :

1. Tìm địa chỉ của Server <địa chỉ TP, số hiệu port >

2. Tạo ra Socket: dùng hàm hệ thông socketO

3. Sô" hiệu port của Client để cho TCP tự chọn

4. Kết nôi với Server : dùng hàm hệ thông connect()

5. Giao tiếp với Server (gởi yêu cầu và nhận trả lời của Server) thông qua

hàm hệ thông write() :ghi dữ liệu(truyền); read() : đọc dữ liệu (nhận)

6. Đóng cầu nôi dùng hàm hệ thông close(), hay shutdown()

Là Server chỉ thực thi một yêu cầu tại một thời điểm Loại Server này dễdàng xây dựng nhưng hiệu quả thấp vì Client phải đợi để được phục vụ nếu cónhiều yêu cầu đến Server cùng lúc

là nhận kết nôi và gởi đáp ứng cho Client Các vân đề về an toàn dữ liệu , trật tựcác gói data đến đã được câ"p transport xử lý Nhược điểm của loại Server

với những ứng dụng đơn giản thì sẽ có phí tổn do việc bắt tay ba lần khi thực hiện

Trang 26

Trong quá trình xây dựng chương trình theo mô hình Client-Server quyết

định chọn loại Server nào phụ thuộc rất nhiều vào tính chất và yêu cầu của bài toán

cụ thể

Mỗi chương trình Server khi được lập trình sẽ tuân theo thuật giải sau :Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client Vào một

vòng lặp vô tận làm các công việc sau : Nhận yêu cầu của Client Thực thi yêucầu Gởi trả kết quả về cho Client

Tuy nhiên với các loại Server khác nhau chúng ta sẽ có thuật giải cụ thể của

từng loại dựa trên thuật giải vừa nêu trên

Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client ĐặtSocket vào chế độ thụ động (sẳn sàng nhận kết nôi của Client) Lấy yêu cầu kếtnôi tiếp theo trong hàng đợi, tạo ra một Socket mới cho sự kết nôi của Client vàServer Nhận yêu cầu của Client, thực thi yêu cầu, gởi trả kết quả về cho Client

Đóng cầu nối khi giao tiếp của Client và Server kết thúc và quay về bước ba đểnhận yêu cầu mới

Trang 27

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Server

Interactive, Connectionless Server

Công việc của process điều khiển(Master process):

Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client Để cho

Socket ở trạng thái sẩn sàng nhận yêu cầu Lặp lại việc gọi hàm recvfrom() đểnhận yêu cầu tiếp theo của Client Khi có yêu cầu thì nó sẽ fork() ra process con(Slave process) để phục vụ yêu cầu của Client

Trang 28

Nhận yêu cầu của Client từ process cha và quyền truy xuất Socket Thực

thi yêu cầu, gởi trả kết quả về cho Client dùng hàm sendtoQ Kết thúc process này

sau khi đã hoàn tất một yêu cầu của Client

Công việc của process điều khiển(Master process)

Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client Để cho

Socket ở trạng thái chưa kết nối Đặt Socket vào chế độ thụ động (sẳn sàng nhận

kết nôi của Client) Lặp lại việc gọi hàm accepto để nhận yêu cầu kết nôi củaClient Khi có yêu cầu thì nó sẽ fork() ra process con (Slave process) để phục vụ

yêu cầu của Client

Công việc của process xử lý yêu cầu (Slave process)

Trang 29

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Concurrent, Connection-Oriented Server

Trang 30

2.4 Multicast

Broadcasting and multicasting chỉ sử dụng với UDP Các ứng dụng dùng nó

để gởi một message đến nhiều chương trình nhận

Hãy xet một mạng (network ) gồm nhiều máy được nôi chung vào mộtđường cáp mạng Mỗi frame trên mạng chứa địa chỉ nguồn và địa chỉ đích (48 bit)

Bình thường mỗi frame dành cho một máy duy nhất Địa chỉ đích xác định duy nhất

một giao tiếp được gọi là unicast

Trường hợp này sự liên lạc giữa bất kỳ hai máy nào trên mạng sẽ ảnh hưởng

các máy còn lại trên đoạn cáp Tuy nhiên cũng có lúc khi một máy muôn gởi một

frame cho tất cả máy khác trên netvvork , được gọi là broadcast Chúng ta thấy điều

này với ARP và RARP Multicast kết hợp giữa unicast và broadcast : frame sẽ được

gởi đến một nhóm các máy thuộc một Multicast group

Để hiểu rõ Broadcast và Multicast ,chúng ta cần biết rằng mỗi máy trênmạng sẽ dùng bộ lọc của mình khi một frame được truyền trên mạng

Trước tiên , card mạng nhìn thấy một frame trên mạng và phải quyết định

xem có nên nhận và chuyển cho device driver hay không Bình thường card

Trang 31

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Bộ lọc frame tại mỗi máy:

Trang 32

dụng này Mỗi khi một trong sô" 20 máy này gởi một broadcast, 30 máy kia phải xử

lý cho đến lớp UDP , trước khi UDP datagram được bỏ qua

Mục tiêu của Multicast là giảm quá trình này ở những máy không tham gia

vào ứng dụng Với Multicast, một máy sẽ tham gia vào một hoặc nhiều Multicast

group và chỉ nhận các Multicast frame này

vào : subnet, địa chỉ đích, địa chỉ của gateway

Nguyên tắc cơ bản để tránh loop là không broadcast một datagram lên mạng

mà nó vừa mới nhận datagram đó

Nếu nó nhận datagram cần gởi cho một mạng mà nó nhận được

thì nó không forward

Ngược lại nếu nó nhận một datagram cho mạng mà nó nôi trực tiếp , nó sẽ

gởi một broadcast lên mạng đó

Các trường hợp khác nó dùng thủ tục tìm đường để gởi datagram đó.Như đã trình bày ở trên , có bôn mạng khác nhau của địa chỉ broadcast Bây

giờ chúng ta xem xét cụ thể

Trang 33

lớp netvvork Upper -Layer Protocol value

IP Service interface

Local network Service

interface -Local IP-to-local address mapping

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

- directed broadcast nếu class B 128.1 có subnet mask là 255.255.255.0 nhưng nó

không là broadcast nếu subnet mask là 255.255.254.0

All-Subnet - directed broadcast cũng yêu cầu phải biết subnet mask củamạng đích để phân biệt giữa Subnet - directcd broadcast và All- Subnet - directcd

broadcast All- Subnet - directed broadcast có tất cả subnet ID và host ID là 1 Ví

dụ subnet mask mạng đích là 255.255.255.0 và IP adress là 128.1.255.255 là All_

Subnet - directed broadcast Nhưng nếu mạng đó không được subnet thì đây làSubnet - directed broadcast

Phần này chúng ta xem xét Multicast address , phần sau sẽ xem xét TGMP,

Protocol được sử dụng bởi các máy Multicast

Multicast là sự truyền tải của một packet datagram đến nhiều máy với điạ

chỉ đích duy nhất Ví dụ, máy A,B,C,D tham gia vào địa chỉ Multicast X khi nhận

packet gởi đến cho địa chỉ X , packet này sẽ được các máy A,B,C,D nhận

Multicast có hai công dung cơ bản: kết nồi phân phổi (distributed

phân phôi nhiều nơi (muli-destination delivery)

Multicast là một giải pháp thay thế mạnh và tiên lợi cho việc sử dụng name

Service trong việc tìm đôi tượng hoặc Service cụ thể khi không biết địa chỉ một máy

cụ thể Ví dụ, trong hệ thông file phân bô", tất cả các file Service được kết hợp với

một địa chỉ Multicast Để kết hợp một tên file cho một Service cụ thể nào đó ,

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Các cấp thực hiện : ba cấp Multicasting

• Cấp 0 : không support Multicasting

Các máy ở cấp 0 không bị tác động bởi hoạt động Multicast Khi nhận các

datagram thuộc class D, nó đơn giản bỏ qua

• Cấp 1: support gởi nhưng không nhận các Multicast datagram

Cấp 1 cho phép một máy tham gia vào một số dịch vụ Multicast mhư

như gởi vào nhận các Multicast datagram

Mô hình ĨP của một máy

Để support Multicast cấp 2 , IP Protocol trên máy phải cung cấp thêm 3 dịch

vụ (Service ) mới : gỏi Multicast datagram , nhận Multicast datagram , quản lý các

thành viên cua group

Với máy chỉ support cấp 1 , chỉ cần cung cấp Service đầu Mỗi Service

Trang 34

2.4.3.2 Gởi Multicast datagram

Không cần thay đổi đôi với IP Service để gởi được Multicast datagram Các

Protocol ở lớp trên chỉ đơn giản xác định địa chỉ của group đích khi gởi datagram

Để support việc gởi Multicast datagram , IP module phải có khả năng nhận

ra địa chỉ group khi xử lý gởi các datagram Bình thường lớp IP thực hiện giải thuật

Để cho phép gởi Multicast datagram , giải thuật như sau:

If IP đích trên cùng local network

Trang 35

Multicast group ID (28 bit)

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Không cần thay đổi đôi với IP Service interíace để nhận Multicast datagram

Các datagram được nhận vào tương tự như unicast và được chuyển lên lớp cao hơn

Để support nhận Multicast datagram , IP module phải được mở rộng để biết

được địa chỉ Multicast group mà nó là thành viên, cũng như địa chỉ riêng của từng

máy Môt datagram nhận vào có địa chỉ đích chỉ đến một Multicast group được xử

lý bình thường như đưọc gởi đến máy riêng lẻ Datagram nhận vào có địa chỉ đích

chỉ đén một group mà nó không là thành viên sẽ được bỏ qua và không cần phát ra

Không cần thay đổi đôi với Local network Service interface phải có

khả

năng nhận các packet có địa chỉ đích là Multicast Ethernet tương ứng với địa chỉMulticast group của nó

Để cho phép các lớp trên yêu cầu tạo , tham gia, rời khỏi một group, IPService interíace phải cung cấp thêm ba chức năng mới

Create Group (private, loopback)

Outcome , group - address , access-keyChức năng Create Group yêu cầu tạo một group tạm thời mới, và máy

thành viên duy nhất Thông sô" private xác định group là private hay public.Looback xác đinh datagram gởi từ máy này đến group có được gởi locally cũng như

những máy khác hay không Outcome là kết quả trả về cho biết yêu cầu có đuỢcthực hiện hay không Nếu được thực hiện , một địa chỉ Multicast group trả về

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Chức năng Leave Group yêu cầu máy này không còn là thành viên củagroup xác định bởi group-address , access-key

Đôi với IP module , chức năng quản lý các thành viên được support bởiInternet Group Management Protocol (IGMP)

IP module phải giữ một cấu trúc dữ liệu chứa tất cả các địa chỉ của các group

mà máy là thành viên , cùng với các thông sô' về loopback, accesss key, timer

kết hpưọ với giao tiếp nào Câu trúc dữ liệu cũng được bổ sung thêm thông tin cho

mỗi địa chỉ group Nếu máy tham gia vào cùng group ở nhiều giao tiếp mạng ,

nhận được nhiều bảng copy của datagram gởi cho group đó

Để cho phép ĨP module điều khiển được packet nào nên nhận bởi localnetwork module , network Service interíace cần thêm hai chức năng mới:

AcceptAddress (group -address )

RejectAddress (group -address )

Với những group-address là địa chỉ group Chức năng AcceptAddress yêu

cầu local network module nhận và chuyển lên lớp trên những packet có địa chỉ là

group -address Chức năng RejectAddress yêu cầu local network module khôngchuyển lên lớp trên những packet có địa chỉ là group - address

Ethernet module đáp ứng chức năng AcceptAddress bằng cách thêm địa

Trang 36

Multicast group (host group ) được định nghĩa bằng IP address ở lớp D.Không giông như ở các class A,B,C 28 bit cho Multicast group ID không có định

nghĩa sẩn cấu trúc, và 4 bit cao luôn là “1110”

Multicast group address nằm trong dãy : 224.0.0.0 đến 239.255.255.255.Tập hợp các máy thuộc về một địa chỉ IP Multicast address được gọi là

Không bắt buộc phải thuộc vào một group để gởi message cho group đó

Host group có thể cố định hoặc tạm thời Group cố định có địa chỉ cố

khi không còn thành viên, và địa chỉ của nó có thể gán lại cho một group khác

Việc tạo tạm thời và quản lý thông tin về các thành viên thực hiện bởi các

gateway trên internet hoặc một máy đặc biệt nào đó (Multicast agent) Phải có ítnhất một Multicast agent được gắn trực tiếo vào mỗi mạng hoặc subnet có support

Multicast Một máy yêu cầu tạo group mới , tham gia hoặc không tham gia môtgroup bằng cách gởi message với Multicast agent

Multicast agent cũng chịu trách nhiệm phân phôi Multicast datagram giữa

các network Khi gởi các Multicast datagram , máy gởi nó đến địa chỉ Multicast địa

phương xác định các thành viên là các group đích Nếu các group có các thành viên

ở netvvork khác nhau , môt Multicast agent sẽ trở thành một máy nhận trongMulticast địa phương và forward datagram đến agent ở các netvvork kia quagatevvay của hệ thống Cuối các agent này gởi datagram như local Multicast

máy trong group đích

Trang 37

4 bit TGMP version 4 bit TGMP type Unused 16 bit

checksum

8-15) (bit 16-31)Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

5 bitskhông dùng

48 bit Ethernet address

Bởi vì có 5 byte cao của Multicast group TD không được dùng, do đó có 32

Multicast group ID cho mỗi Ethernet address Ví dụ Multicast address224.128.64.32 (hex eO.80.40.20) và 224.0.64.32 (hex e0.80.40.20) cùng tương ứng

với ethernet address 01:00:5e:00:40:20

Multicasting trên một mạng đơn (single physic netvvork ) thì rất đơn giản

Process muốn gởi phải xác định địa chỉ đích thuộc Multicast address , dcvice driver

đổi địa chỉ này thành enthernet address tương ứng và gởi nó đi Process nhận thông

báo cho lớp IP của nó phải nhận các datagram cho một Multicast group nào đó,đồng thời driver phải enable chức năng nhận Multicast frame Việc này gọi là :

“tham gia vào một Multicast group

Vấn đè trở nên phức tạp khi mở rộng Multicasting ra khởi mạng đơn (single

physic network ) và phải chuyển các Multicast packet qua các router Một Protocol

cần cho các Multicast router này xác định có máy nào ở nhánh đã cho có thuộc

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Thông tin này rất cần cho các Multicast router để biết được Multicast datagram nào

sẽ được gởi qua đường network nào

IGMP thuộc lớp IP Các message được truyền đi bởi IP datagram IGMPmessage có kích thước không đổi và không có data

IP header

IP datagamIGMP message

IGMP message được xác định trong IP datagram với Protocol value là 2

Format của 8 byte IGMP message như sau :

32 bit groups address (class D IP address)

IGMP version là 1 IGMP type là 1: query được gởi bởi một Multicast router , 2: trảlời từ một máy Trong query address luôn là 0, và trong trả lời chứa group address

Chúng sẽ xét kỹ hơn phần sau

Môt process phải có khả năng tham gia vào một Multicast trên một network

nào đó Nó cũng phải có khả năng không tham gia vào một group mà trước đó nó

đã tham gia Đây là những chức năng cơ bản trên một máy có support Multicasting

2.4A2.2 IGMP Reports và Queries

IGMP message được sử dụng bởi các Multicast router để quản lý các thông

tin về các thành viên của các group trên mỗi giao tiếp của nó Các bước thông tin

Trang 38

Máy sẽ không gởi report khi có bất kỳ một process rởi khỏi group Nếukhông còn process nào tham gia vào cùng một group nào đó, nó sẽ không gởi report

khi nhận một query về group đó

Multicast router gởi một IGMP query định kỳ để có process trên máy

tham gia vào một group nào đó Router cần nhận report từ một máy về mọi group

mà có process trên máy đó tham gia

Máy sẽ gởi IGMP về mọi group có process khi nhận một IGMP query

Sử dụng các query và report , các router có có được bảng thông tin về các

Hình sau cho thấy hai IGMP message , report gởi bởi các máy ,và query gởi

IGMP report ,TT1=1,IGMP report ,TT1=1,

IGMP group addr=group

addrDest IP addr=group addrSrc addr= host ‘s ĨP addr

IGMP group addr=0Dest IP addr=224.0.0.1Src addr= Router‘s TP

addr

Chi tiết khi thực hiện

Có nhều chi tiết khi thực hiện nhằm tăng hiệu quả của Protocol này Khi một

máy cần gởi một report, nó sẽ không gởi ngay mà nó sẽ được lập trình gởi sau một

khoản thời gian ngẫu nhiên trong khoản 0 đến 10 giây Khi một máy nhận mộtquery từ một router ,nó cũng không trả lời ngay mà được lập trình gởi sau mộtkhỏan thời gian ngẫu nhiên Bởi vì có nhiều máy có thể gởi một report cho cùng

một group Chú ý rằng tất cả các máy sẽ nhận được report của mọi máy khác trên

cùng group bởi vì destintion address của report là address của group Điều này có

Trang 39

Xây dưng dich vu tính toán phân bô" CBHD : K.S THOAI NAM

Trên một network đơn giản không có các Multicast router sẽ chỉ có cácIGMP report của các máy khi có process tham gia vào môt frame mới

Chú ý rằng IGMP query và destination là 224.0.0.1 địa chỉ này nói đến

trong group nên máy gởi Multicast datagram không xác định được tất cả các thành

viên trong group có nhận được bảng copy hay không

Hầu hết các phần mềm về IP Multicast đều sử dụng bảng để lưu trữ thông

tin về host group mà các máy hiện đang tham gia Bảng host group là một mảng

hgtable mà mỗi đường vào trong mảng là phần host group Phần tử mảng gồm 4

trường : hg_state, hg_ifnum, hg_ipa và hg_refs

Trường hg_state : Khi trường này chứa giá trị HGS_FREE thì đường

hiện không được sử dụng và các trường khác vô nghĩa

Trang 40

Khi một host thay đổi là thành viên của một host group hoặc khi nhận được

một Multicast datagram , phần mềm IGMP gọi thủ tục hg lookup để tìm địa chỉMulticast trong bảng host group Thủ tục này tìm trong bảng hgtable đến khi nó tìm

thấy đường vào phù hợp với địa chỉ Multicast bằng một thông sô" ipa và card giao

tiếp bằng ifnum

Trước tiên một ứng dụng gia nhập vào nhóm , một đường vào mới đượcthêm vào bảng Thêm vào đó,phần cứng mạng phải được định dạng để nhận biết

địa chỉ cứng Multicast mà host group sử dụng

Trước khi gia nhập vào một host group , phần cứng và phần mềm của host

phải được định dạng để thực hiện được hai quá trình truyền và nhan datagram trong

group Để phù hợp với việc truyền Multicast các thay đổi được thực hiện ở 2 câ"p:

đường dẫn phải được cài đặt trong bảng tìm đường của IP và phần mềm giao tiếp

mạng phải phải được định dạng để buộc địa chỉ IP Multicast vào địa chỉ phần cứng

môt cách chính xác Để phù hợp việc nhận hệ thông phải được định dạng để nhận

biết các datagram được gởi từ group

Nếu phần cứng bên dưới có hỗ trợ Multicast, thì IP sử dụng thuận tiện của

phần cứng Multicast cho việc truyền và nhận các IP Multicast datagram Mỗi host

group được gán cho một địa chỉ phần cứng Multicast duy nhâ"t, địa chỉ này sử dụng

cho việc truyền trong group Nếu phần cứng không hỗ trợ Multicast , IP sử

Ngày đăng: 07/01/2016, 17:37

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w