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)

151 441 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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 151
Dung lượng 19,65 MB

Nội dung

Trang 1

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KỸ THUẬT

KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG

LUẬN VĂN TỐT NGHỆP

Dé lai

XAY DUNG DICH VU

TINH TOAN PHAN BO

Trang 2

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

Kinh yu loi cim on chan thanh nhl dén “

Shoat Nam, lat ca cée /% 6, ban be va gia dinh dé

tin tinh “uy din , ying day va giip de dé luin O Z 4 "4 a van nay de hoan thainh !”

1/1999 — Nguyen Vin Not

Trang 3

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

MỤC LỤC

1 GIỚI THIỆU

1.1 SỰ HÌNH THÀNH BÀI TOÁN “= — —

1.2 BÀI TOÁN = aon: ~=== ~=~-

1.3 CÁC GIẢ THUYẾT CỦA BÀI TOÁN: - aa aa 1.4 MO HINH — 1.5 SƠ LƯỢC VỀ HOẠT ĐỘNG HỆ THỐNG — — 10 œ œ ¬ mn 2 CƠ SỞ LÝ THUYẾT 12 2.1 TCP/IP ano 2.1.1 Téng quan vé TCP/IP 2.1.2 Cac lép trong TCP/IP - 2.1.3 Internet Protocol (IP)

2.1.4 Transmission Control Protocol (TCP)

2.1.5 User Datagram Protocol (UDP)

2.2 BERKELEY SOCKETS

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

2.2.2 Các hàm hệ thống liên quan đến dịch vụ của cấp transpor: 2.3 MO HINH CLIENT — SERVER =

2.3.1 Xây dựng chương trình Client 2.3.2 Các loại Server 2.3.3 Xây dựng chương trình Server 2.4MULTICAST - 2.4.1 Giới thiệu- 2.4.2 Broadcasting 2.4.3 Multicasting

2.4.4 IGMP : Internet Group Management Protocol 2.4.5 Qua trinh Multicast

2.4.6 Lam sao viét mét ing dung ding Multicast trong Unix 2.4.7 Vấn đề tim duéng trong multicast:

2.5 MO HINH GROUP COMMUNICATONS

2.6 XDR (EXTERNAL DATA REPRESENTATION)

2.6.1 Tại sao lại phải sử dụng XDR 2.6.2 Các kiểu dữ liệu chuẩn của XDR - 2.6.3 Các thủ tục chuyển đổi 3 PHẦN TÍCH ,THIẾT KẾ VÀ HIỆN THỤỰC -=-========================= 6 3.1 TỔNG KẾT PHẦN CƠ SỞ LÝ THUYẾT - anne = 62 3.2 PHÂN TÍCH 3.2.1 Bài tốn -

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

3.2.3 Phân tích bài toán và các giả thuạ 3.3 CÁC MƠ HÌNH VÀ LỰA CHỌN MƠ HÌNH

3.3.1 Chỉ dàng mô hình Client —Server

Trang 4

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM 3.6 PHAN TÍCH CHỨC NĂNG — 73 3.6.1 Admin 3.6.2 Agent - 3.6.3 Server 3.6.4 Service 3.7 CÁC GIẢI THUẬT 3.7.1 Admin 3.7.2 Agent - 3.7.3 Server 3.7.4 Giải thuật bầu chọn 3.7.5 Client- 3.8 HIỆN THỰC- 3.8.1 Tổ chức dữ liệu 3.8.2 Quản lý timer -

3.8.3 Socket giao tiếp

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

Trang 5

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

1 Giới thiệu

Vii dé lai“ Diy dang dich vu tinh tain phin be“ do hay Shoat Nam huing din, Lugn vin nay yi Mhiéu mot ting dung hay ding hon la mot méi tuiing cho prhip ngidi sie dung có Uhé tiuy xuấf các đầi

nguyen tinh loin tie xa bac yim phan cting cling nh phan mém phin

66 hén mang He hing nay nhim dipping nhu cd dé si dung va you cau cin cé mol ce ché leuy xual va quin ⁄ 1u qua cic lid nguyen linh loin te xa Tinh dé sb dung cé dupe la vi he thing khéng doi hei mot

né tac lin vé lap tinh le nuvi st dang Chitn luce cin ting hid cn/ duve xem vÓ/ ùn cúc đệ hing có “hể 0s audl cic lac nguyen tinh loin

có dếu mol cich higu guá.WỆ thing duce thiét ké dé chay tiên bit ky

mang thong ding nhil nao va due hién thie theo mé hinh Client

Trang 6

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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 cho mộ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ì những lý

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ột

hì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ợc câ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ân

bố:

e_ Luận văn tốt nghiệp của hai kỹ sư 2 cũng với để tài " Xây dựng dịch vụ tính toán phân bố " nghiên cứu về tính toán phân bố nhưng để tài này chỉ hiện thực

được cơ chế multicast trong môi trường Windows

e Dự án NetSolve của trường Đại học Đài Loan nghiên cứu về tính toán phân bố để giải quyết các bài toán khoa học thông qua mạng bằng mô hình Client-

Server

e Dự án DCE của nhóm Open Group nghiên cứu về tính toán phân bố dùng RPC

Mô hình của hệ thống DCE không chỉ ứng dụng trong tính toán phân bố mà

còn có thể mở rộng cho các ứng dụng khác trên hệ phân bố như : Cơ sở dữ liệu

phân bố, Video conference , Multichat

Trang 7

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM 1.2 Bài toán Bài toán đặt ra cho luận văn này như sau : ey ml | _—M s lllll Gis) mI II ti (services) im SS IIÌÌÌÌ =— IIIIll 000000 L—T

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ột

má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 Server

Vấn để đặt ra cho luận văn cũng là yêu cầu của bài toán là cần phải giải quyết các vấn để chính :

e_ Làm sao để Client dễ dàng sử dụng được các service trên các server mà không

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

e Lam sao để Admin có thể quản lý ,kiểm soát và thống kê hoạt động của các

server và việc truy xuất các dịch vụ từ các client để cho hệ thống các server

hoạt động đạt hiệu quả cao nhất

e Làm sao để có cơ chế thuận lợi cho người phát triển thêm các dịch vụ tính toán trên các server

Trang 8

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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 tố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

ứng dụng khác

Các Server được kết nối trên cùng một mạng LAN (một subnet của mạng

LAN không thông qua router) để bảo đảm các message gởi bằng Multicast có thể đến được các Server

Thời gian mà các Server chạy các service để phục vụ cho Client là lớn hơn

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ác

packet dif liéu

Nếu hai Server A và Server B trong hệ thống còn đường kết nối thì các

message 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

1.4 Mô hình

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ùng

mộ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 ví dụ

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

huy những ưu điểm của hai mô hình đồng thời khắc phục được nhược điểm của mô

hình Client -Server Client nhìn hệ thống DCE với quan điểm là một group các Server chứ không phải là từng Server riêng lẽ , nghĩa là khi Client gởi yêu cầu (request ) về dịch vụ nào đó thì request đó được gởi cho group chứ không phải là cho từng Server.Thông tin trong group dùng cơ chế multicast Nhưng khi đã xác định hai điểm của một cầu nối (một Server -một Client ) thì mô hình giao tiếp lúc này là

m6 hinh Client —Server ding TCP dé đảm bảo cho việc truyền nhận đữ liệu một

cách tin cậy.Trong group các Server ,sẽ có một phần tử điều khiển hoạt động của group chứ không để các Server hoạt động một cách tự phát Như vậy , Mô hình Group communications 6 day 1a m6 hinh Group communications phan cấp (hierarchical groups) Phần tử trung tâm điều khiển hoạt động của group gọi là

Trang 9

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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 trong van dé 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/IP protocol 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 ở Client bằ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ển

củ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

nhiệm vụ giao tiếp với hệ thống DCE mà cụ thể là một trong các Server

Admin — Một chương trình do người quản trị hệ thống chạy để quản lý hệ

thống DCE Admin được xem như một Client đặc biệt mà đối tượng phục vụ nó là

Agent Dĩ nhiên là trong toàn bộ hệ thống , chỉ có một chương trình Admin chạy Như vậy ,trong 5 phần tử trên thì Agent đóng vai trò quyết định đối với hệ thống ,mỗi khi Agent mất thì hoạt động bị ảnh hưởng rất lớn Do đó cần làm giảm tính quan trọng của Agent nhưng không làm giảm tính quyết định của nó

Trang 10

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

1.5 Sơ lược về hoạt động hệ thống Client are vss ; 3 Agent i ' 8| ot ` k \ Server 2 2` | Server |» 9 N 2 a s4 „ z7 Service _ Server Sa

Đầu tiên , Admin sẽ kích hoạt Agent chạy trước trên một Server và sau đó các chương trình Server trên các Server Với các thao tác về Server ,service và user „ 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 ) va sau d6 Client gdi request (1 ) cho hệ thống DCE bằng multicast theo địa

chỉ định trước kèm theo địa chi socket 6 trén va các thông tin mô tả về user ,địch vụ yêu cầu , dữ liệu sẽ gởi và cả thông tin về Server (nếu có) và sau đó chờ trả lời từ

hệ thống DCE hoặc là time-out (có thể là hệ thống DCE chưa chạy) thì Client cố gắng gởi request lại một số lần nữa

Vì Client gởi request cho group nên các Server cũng biết được sự kiện này nhưng không làm gì cả mà chỉ gởi thông tin mô tả về tải của chính Server về cho Agent (2 ) Có thể , thông tin này không tới được Agent hoặc tới trể

Agent sau khi nhận được request từ Client , bằng các thông tin mà Client gởi đến cùng với những dữ liệu có , Agent sẽ kiểm tra sự hợp lệ của request Nếu không hợp lệ có thể là do không có Server ,không có user , không có dịch vụ hoặc là do user không được phép sử dụng dịch vụ trong request thì Agent sẽ báo lại cho

Trang 11

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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 biết và nhận một số thông tin cần thiết trong đó có địa chỉ socket mà Client gởi để hoạt

động (5) Sau đó chương trình service sẽ connect vào Client để nhận dữ liệu ,tính

toán và truyền kết quả về cho Client (6)( 7) Vì thời gian chạy dịch vụ là khá lâu nên chương trình dịch vụ sau một khoảng thời gian nào đó phải 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ành

cô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 DCE biết (9)

Trong khi hệ thống DCE hoạt động có rất nhiều sự cố cần giải quyết nhất là khi Agent không còn thì một trong các Server phải ứng cử để cho hệ thống hoạt

động tiếp

Việc chọn thời gian time-out cho phù hợp ở mỗi phan tử cũng cần phải xem Vấn để các Server và Agent còn sống hay không còn tổn tại trong hệ thống là do tự Server đó hay Agent phải báo về cho các phần tử khác biết nếu nó còn trong hệ thống

Chương trình Admin điều khiển hoạt động hệ thống với các thao tác về Agent , Server ,service ,user va thống kê về hoạt động của toàn hệ thống

Chỉ tiết về hoạt động của hệ thống được trình bày rõ trong phần phân tích và

Trang 12

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

2_ Cơ sở lý thuyết

FCP) IP, Berkeley ra mé hinh Client-Server Multicast va mé hinh Group communications DLR be ce sé ⁄ “„£f cia lain vin due

heinh bay chi itl é phin nay Vi nhién la phan nay 06 thé diye bé qua 2 2 2 ¢

dé dén phin phiin lich — thiét ke’

Trang 13

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

2.1 TCP/IP

Để có thể trao đổi thông tin giữa các quá trình ở các máy khác nhau, thì các

máy phải được kết nối với nhau và từ đó mạng máy tính được hình thành Do một thực tế là các máy tính này có thể chạy các hệ điều hành khác nhau trên các nên

phân cứng khác nhau, do đó để có thể nói chuyện được với nhau, các quá trình phải 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

khảo OSI ( Open Systems Interconnection) dùng để phân lớp kiến trúc mạng Theo mô hình OSI, thông tin muốn gởi hay nhận qua mạng phải đi qua 7 lớp Mỗi lớp có một chức năng khác nhau và cung cấp các interface để các lớp phía trên có thể sử dụng các dịch vụ mà lớp này cung cấp 7 Application 6 Presentation 5 Session 4 Transport 3 Network 2 Datalink 1 Physical

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ối 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 (thu@ng vai trim bytes) dé truyén di va t6 chức nhận sao cho đúng thứ tự

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ỳ trong

mạng

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

Trang 14

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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

transport

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 OSI, dữ liệu của chương trình gởi phải đi qua tất cả 14 cấp để đến được chương trình nhận Ở mỗi cấp, dữ liệu sẽ bị trễ một khoảng thời

gian Điều này làm giảm hiệu suất của mạng Chính vì vậy một mô hình khác đã

được đưa ra Đó là mô hình TCP/IP Đây là mô hình hiện đang được sử dụng rộng

rãi trên thế giới

2.1.1 Tổng quan về TCP/IP

The Transmission Control Protocol (TCP) va Internet Protocol (IP) là hai

giao thức được hoàn thiện bởi Internet Protocol suite Bộ giao thức này thường được tham khảo như một phần của TCP/IP bởi vì TCP và IP là hai giao thức quan trọng

hợp lại TCP/IP gồm một phần chuẩn về thông tin của các máy tính trên mạng và đườ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à :

e_ 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ạng

cục bộ và mạng diện rộng

e_ 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ụng trên một số phần cứng mạng thay đổi như: mạng Ethernet, mạng vòng

e_ Chuẩn giao thức mở: giao thức TCP/IP có thể ứng dụng trên bất kỳ phần cứng máy tính nào và hệ điểu hành nào

e Tổ chức địa chỉ toàn cầu: mỗi máy trên mạng TCP/IP đều có một địa chỉ xác

định Các máy tính trên mạng đều có thể thông tin với nhau trên mạng Mỗi gói dữ liệu gởi qua mạng TCP/IP có phần đầu chứa địa chỉ máy nhận và địa chỉ máy gởi

e_ Làm theo mô hình Client-Server một cách tiện lợi: TCP/IP rất tiện lợi cho các ứng dụng Client-Server trên mạng cục bộ và mạng diện rộng

Trang 15

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

e_ Chuẩn giao thức cho ứng dụng : TCP/IP không những cung cấp cho người lập trì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 mà còn

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 :

ES

TCP : Transmission Control Protocol :la 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 toàn dữ

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 lập

Trang 16

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

ICMP : Internet Control Message Protocol :protocol xử lý lỗi và điều khiển thông tin giữa host và gateway

TP : Internet Protocol : là protocol truyén data dang package Protocol IP phục vụ cho TCP,UDP,ICMP Do đó ở cấp process, user không dùng trực tiếp protocol 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ụ ánh

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

2.1.2 Các lớp trong TCP/IP

Các giao thức trên mạng thường phát triển theo lớp, trong mỗi lớp chức năng về thông tin khác nhau.TCP/IP là sự tổng hợp giao thức khác nhau của các lớp Trong TCP/IP thường được xem có 4 lớp : Application layer, Transport layer , Network layer, Datalink layer

2.1.2.1 Lớp ứng dụng (Application layer - Process layer)

Lớp này gồm các ứng dụng trên mạng và quản lý các chỉ 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 Transfer Protocol): giao truyén file trên mạng

SMTP (Simple Mail Transfer Protocol) : tng dung gdi thu dién tr

SNMP (Simple Network Management Protocol )

Va nhiéu ting dung khic

2.1.2.2 Lép Transport

Lớp này cung cấp sự lưu thông dữ liệu giữa 2 host cho lớp ứng dụng bên trên Trong TCP/IP có 2 loại giao thức lưu thông là : TCP (Transmission Control

Protocol) và UDP (User Datagram Protocol )

TCP cung cấp sự lưu thông dữ liệu một cách tin cậy giữa 2 host Nhiệm vụ

chủ yếu của giao thức này là: chia dữ liệu nhận được từ lớp ứng dụng và gởi xuống

network bên dưới, nhận biết các gói dữ liệu đến, đặt thời gian xác định thời gian gởi các gói dữ liệu Vì giao thức này cung cấp sự lưu thông dữ liệu một cách tin cậy nên lớp ứng dụng bên trên có thể bỏ qua các chỉ tiết này

Trang 17

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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

2.1.2.3 Lớp network

Lớp này kiểm soát việc di chuyển các gói dữ liệu trên mạng Công việc tìm đường trên mạng được thực hiện ở lớp này Lớp này cung cấp các giao thức như : IP

(Internet Protocol), ICMP ( Internet Control Message Protocol ), IGMP (Internet

Group Management Protocol )

Protocol IP là protocol connectionless (không thiết lập cầu nối) , dữ liệu truyén dang frame khong bdo đả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 máy

đích nó có thể giao tiếp với process mong muốn (số hiệu port )

Trang 18

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

a

Dang D (Class D)

Dang format nao được chọn tùy thuộc vào cấu trúc của hệ thống mang Vi

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 °.' Mỗi số thập phân sẽ được mã hóa thành 1 byte trong 4 byte địa chi

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

đích

Network ID trong 4 byte địa chỉ sẽ giúp các gateway 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ỉ internet

2.1.2.4 Lớp data link

Lớp này gồm các driver và các giao tiếp card trong hệ điểu hành Lớp data link nắm giữ tất cả chi tiết về phần cứng giao tiếp vật lý giữa các card mạng và cable mạng

Có nhiễu giao thức trong TCP/IP TCP và UDP là hai nên cơ bản trong các giao thức của transport, cả hai sử dụng IP như là lớp network

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 ứng

dụ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

IP (Internet Protocol ) là giao thức chủ yếu của lớp network Nó được sử dụng bởi TCP và UDP Mỗi phần dữ liệu của TCP và UDP truyền trên mạng thông qua lớp IP Trong network còn có các giao thức ICMP và IGMP

ICMP (Internet Group Management Protocol ) giao thức được hiệu chỉnh từ IP Nó được dử dụng để chuyển đổi các thông báo lỗi và các thông báo khác của lớp IP Mặc dù ICMP được sử dụng một cách sơ cấp thông qua IP nhưng nó có khả năng cho các ứng dụng trực tiếp

IGMP (Internet Group Management Protocol ) được sử dụng để gởi UDP đatagram đi nhiều host cùng lúc (Xem phần 2.4)

Trang 19

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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ếp mạng gọi là IP 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 IP 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ữ liệu được chuyển ngược lại qua các lớp và tại các lớp này các phân đầu và đuôi

được thêm vào ở mỗi lớp được loại bỏ và dữ liệu được truyễn lên lớp kế tiếp đến

khi các ứng dụng bên trên nhận được đúng dữ liệu User data

Appl Header User data TCP Header Application data TCP segment IP headr TCP Header Application data IP datagram Ethernet IP header TCP Header Application data Ethernet header Trailer 14 bytes 20 bytes 20 bytes 0-1452 bytes 4 bytes Ethernet frame 2.1.3 Internet Protocol (IP) 2.1.3.1 Giới thiệu

IP là giao thức chủ chốt của bộ giao thức TCP/IP Tất cả dữ liệu của TCP,UDP,ICMP,IGMP được truyền dưới dạng datagram

Vì là một giao thức không tin cậy, nên không thể bảo đảm rằng IP datagram

đi đến đích của nó một cách thành công IP cung cấp các dịch vụ có hiệu quả cao

Khi có một điều gì sai sót như các router bị đầy bộ đệm tạm thời thì IP bỏ qua các datagram và cố gắng gởi ICMP message đến nơi gởi dữ liệu Tất cả yêu cầu về tin

Trang 20

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI 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ứ đatagram nào khác Điều này có nghĩa là các datagram có thể phân phát không

theo đú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

các datagram có đường đi khác nhau và có đến đích với thứ tự khác nhau Khảo sát các vùng thêm vào bởi lớp IP ( IP header): 4bit version | 4 bitheader | 8 bit type of service 16 bit total length length (TOS) 16 bit identification 3 bit 13 bit fragment flags offset 8 bit time-to-live 8 bit 16 bit header checksum Protocol 32 bit source IP address 32 bit destination IP address Option Data

Các trường trong IP datagram

Bit có trọng số cao nhất được đánh số 0 ở bên trái và bit trọng số thấp nhất của 32 được đánh số là 31 ở bên phải Bốn byte trong 32 bit giá trị được truyền theo

thứ tự là : bit 0-7 trước, sau đó đến bit 8-15, sau đó 16-23, sau cùng là 24-31 Điều

này gọi thứ tự byte lớn sau (big endian byte ordering) Thif ty byte nay ciing dude đòi hỏi cho tất cả các số nguyên nhị phân trong phần đầu của TCP/IP khi chúng đi qua mạng, hay còn goi 1a thif tu byte trén mang (network byte order) Cac may tính có lưu trử các số nguyên nhị phân với dạng khác phải đổi lại dạng này trước khi

truyền dữ liệu

Trường header length là số 32 bit bao gồm các sự lựa chọn nếu có Vì là

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

Trường loại dịch vụ TOS (Type of Service): có 3 bit truyền ưu tiên, 4 TOS bit và 1 bit không sử dụng 4 bit TOS là: thời gian trễ nhỏ nhất (minimize delay), thời gian thông qua lớn nhất (maximize throughput), độ tin cậy cao nhất(maximize relibility), và giá dịch vụ thấp nhất (minimize monetary cost ) Chỉ có trong 4 bit

này được bật lên 1 Nếu 4 bit là 0 thì dịch vụ là bình thường RFC 1340 xác định

cách đặt các bit này cho ứng chuẩn REC 1349 có những thay đổi và mô tả một cách

chi tiết hơn về đặc điểm của TOS

Trường tổng chiều dài (total length ) ghi lai t6ng chiéu dai ctia IP datagram đơn vị là byte Dùng trường này và trường chiều dài đầu, ta biết được vi trí bắt đầu

Trang 21

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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ên chiề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 thi datagram bi bd đ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át

hiện được mất dữ liệu và truyền lại

2.1.3.2 Việc tìm đường trong lớp IP

Việc tìm đường trong các lớp IP thì rất đơn giản Nếu đích đến nối 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,

đữ 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 6 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ờ forward datagram 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ạng trong 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 đến

không phải là lớp của IP này mà lớp IP này được định dang như là router thì gói dữ

liệu được forward nếu không thì gói dữ liệu bị bỏ đi

Mỗi đường đi trong bản tìm đường chứa các thông tin sau: Địa chỉ IP đích : có thể là địa chỉ host hoặc là địa chỉ mạng

e _ Địa chỉ IP của các router kế cận hoặc địa chỉ IP nối trực tiếp vào mạng

e Cờ để xác định xem địa chi IP đích có phải là địa chỉ mạng hoặc là địa chỉ host hay không

e _ Xác định giao tiếp mạng nào datagram có thể chuyển đến để truyền đi

IP không biết đường đi hoàn toàn đến một đích bất kỳ Tất cả cái mà việc

Trang 22

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

e _ 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

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

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

e_ 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 Đia 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 dùng

2.1.4 Transmission Control Protocol (TCP) 2.1.4.1 Giới thiệu

Mặc dù TCP và UDP cùng sử dụng lớp network IP, nhưng TCP cung cấp

nhiều dịch vụ khác nhau cho lớp ứng dụng hơn là UDP TCP cung cấp dịch vụ việ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ối 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:

e - 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 cho là

tốt nhất để gởi Điều này hoàn toàn khác trong UDP, khi ứng dụng truyền dữ

liệu UDP nhận và truyền đi với cùng kích thước Khối thông tin được truyền từ

TCP đến IP được gọi là Segment

e Khi TCP gởi đi một Segment nó ghỉ lại thời gian, đợi khi có sự trả lời của đầu bên kia có Segment đến Nếu không nhận được sự trả lời trong một khoản thời

gian thì segment được gởi lại

¢ Khi TCP nhận được dữ liệu từ đầu kia kết nối, nó gởi một thông báo đã nhận cho đầu bên kia Thông báo này không được gởi ngay tức thời thường thì nó

được trì hoãn một thời gian

TCP giữ kiểm tra lỗi trong phần đầu của nó và trong dữ liệu nhằm mục đích

phát hiện tất cả sự thay đổi dữ liệu trong khi truyền việc này được gọi là end-to-end checksum Nếu segment đều kiểm tra phát hiện bị sai , TCP bỏ qua nó và xem như

nó không đến đích vì thế nơi gởi không nhận được trả lời Sau một thời gian sẽ gởi

lai segment nay

Trang 23

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

Vì các segment của TCP được truyền bởi các datagram của IP và vì các

datagram 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 đữ liệu trùng lắp nhiều lần nên các dữ liệu này

được TCP bỏ đi

TCP cũng cung cấp dịch vụ kiểm tra lưu lượng Mỗi đầu cuối trong các nối kết TCP có lượng vùng đệm trống nhất định Vì thế nó chỉ cho phép đầu kia gởi dữ

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 host 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 đó 20

byte và sau nữa là 50 byte thì ứng dụng ở đầu kia sẽ không thể biết được độ lớn của

dữ liệu từng phần là bao nhiêu

Bên nhận chỉ có thể nhận được 80 byte ở 4 lần nhận 20 byte Khi một bên đặt byte vào TCP và như vậy dòng byte này sẽ xuất hiện bên kia

Vì vậy ,TCP hòan tồn khơng phiên dịch nội dung các byte Chẳng có gì

khác nhau nếu dữ liệu được trao đổi là dữ liệu nhị phân, ký tự ASCI, ký tự

EBCDIC hay một cái gì khác, sự phiên dịch chuỗi byte này tùy thuộc vào ứng dụng

bên trên của kết nối 2.1.4.2 Phần đâu của TCP 16 bit source port number 16 bit destination port number 32 bit sequence number 32 bit acknowledgement number 4 bit header 6bitreserved |U[A |P|[R|SIF 16 bit Window size length RỊC |S|S|Y|I G|K/H| T|N|N 16 bit TCP checksum 16 bit urgent poiner Option Data Các vùng của TCP

Mỗi segment TCP chứa số thứ tự port của nơi gởi và nơi nhận để xác định

ứng dụng gởi và ứng dụng nhận Hai giá trị này cùng địa chỉ IP nơi nhận và nơi gởi

Trang 24

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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ày xuấ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-derived 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 dau của nối kết TCP trên

Internet

Trường số thứ tự (Sequence number) xác định số byte trong chuỗi dữ liệu từ nơi gởi đến nơi nhận, đó là byte đầu tiên đại diện cho segment Nếu chúng ta xem chuỗi byte lưu thông theo một chiều giữa hai ứng dụng,TCP đánh số mỗi byte với số

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 đặt vào

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 này có 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ì thế mỗi

đầ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 từ số

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

Vùng chiểu dài của phần đầu là một số 32 bit Điều này cần thiết bởi vì chiều đài phần tự chọn luôn thay đổi Với một trường 4 bit, phần đầu của TCP có

chiều dài tối đa là 60 bit Bỏ qua đi phần tự chọn chiều dài phần đâu thường là 20 byte Có 6 cờ trong phần đầu TCP Chúng có thể đồng thời được đặt là 1

e URG :urgent poiner

e ACK: acknowledgement number

e _PSH :nơi nhận phải gởi dữ liệu này đến ứng dụng ngay tức thời

e RST:Reset két ndi

e _SYN: đồng bộ số thứ tự để khởi động kết nối e FIN : nơi gởi chấm dứt gởi dữ liệu

Trang 25

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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ỗi

segment thông báo một kích thước cửa sổ Đó là số byte bắt đầu bằng byte xác định

ACK mà nơi nhân sẵn sàn nhận tiếp Đây là số 16 bit nên giới hạn của cửa sổ lên đến 65535 byte

Trường checksum kiểm soát lỗi toàn bộ segment TCP cả phần đầu của TCP

và phần dữ liệu phía sau Đây là vùng lệnh được tính toán và lưu vào bởi nơi gởi và đượ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ị trí độ đời phải được cộng vào vùng thứ tự của segment tạo kết cửa sổ cuối của thứ tự

trong dữ liệu khẩn cấp

Thông thường vùng lừa chọn kích thước lớn nhất của segement còn gọi là

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

2.1.5 User Datagram Protocol (UDP) 2.1.5.1 Giới thiệu

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 IP datagram được truyễn đi

UDP cung cấp dịch vụ truyền nhận dữ liệu không tin cậy ,nó gởi dữ liệu của

các ứng dụng bên trên xuống dưới lớp IP nhưng không kiểm tra xem dữ liệu có đến

được đích hay không Vì sự thiếu tin cậy nên chúng ta cố gắng tránh UDP và luôn

luôn sử dụng giao thức tin cậy TCP Nhưng cũng có những loại ứng dụng có thể sử dung UDP 2.1.5.2 Phần đầu của UDP 32 bit source IP address 32 bit destination IP address

Zero 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

Cac ving trong UDP

32 bit đầu tiên xác định số port của qúa trình gởi và quá trình nhận.TCP va

UDP_ sử dụng port đích để giải điều chế dữ liệu đến lớp IP Vì IP đã giải điều chế

Trang 26

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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ủa

UDP tính bằng byte Vùng này có giá trị nhỏ nhất là § 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ự động bỏ dữ liệu này

UDP là một giao thức đơn giản Dịch vụ này cung cấp cho các quá trình ứng

dụng bên trên và lớp IP bên dưới số port và dịch vụ kiểm soát lỗi

Tinh nang ctia cdc protocol (IP,UDP,TCP) trong TCP/IP: IP UDP TCP Connection-oriented? no no Yes

message boundaries ? yes yes no data checksum ? no opt yes

Positvie ack ? no no yes timeout and rexmit ? no no yes duplicate detection ? no no yes Sequencing ? no no yes flow control ? no no yes 2.2 Berkeley sockets

Hai Applications Programming Interface-APIs thinh hanh trén UNIX 1a Berkerley sockets va System V Transport Layer Interface (TLI) Ca hai interface này được phát triển bằng ngôn ngữ C

Trong phan này chúng ta sẽ xem xét interface giữa cấp transport và cấp ngay 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 ứng dụng (APD 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 se

không phải bận tâm đến các protocol mà các cấp dưới sử dụng

Trang 27

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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 va 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 thêm vào

trong bảng cho chương trình gọi

Cũng như file khi một socket được tạo ra được nhận dạng bằng một số

nguyên gọi là socket descriptor Unix đặt con trỏ đến cấu trúc nội của socket trong cùng bảng với các file descriptor

l

Cấu trúc data của sockets

Khi chương trình gọi hàm hệ thống soekef() thì hệ điều hành sẽ cấp phát một vùng nhớ đặc ta socket va điển con trỏ chỉ đến cấu trúc này vào bảng file

Trang 28

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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 sẽ gọi thêm một số hàm nữa để điển các giá trị vào các vùng này.(xem hình)

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 vụ của cấp

transport

e Ham hé thong socket()

Để làm việc với I/O qua mạng ,việc đầu tiên là phải gọi hàm hệ thống

socket để tao ra một socket mới Hàm trả về một descriptor của socket vừa được tạo

ra

int socket(int family,int type,int protocol);

Đối số family cho biết họ protocol muốn dùng:

AF INET Internet protocols

AF_UNIX Unix internal protocols AF_NS Xerrox NS protocols

AF_IMPLINK IMP link layer

Đối số type :

Trang 29

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

SOCKET_STREAM stream socket

SOCK_DGRAM datagram socket SOCK_RAW raw socket

SOCK_SEQPACKET sequenced packet socket SOCK_RDM reliably delivered message socket Chỉ có những tổ hợp sau có nghĩa : AF UNIX | AF_INET AF_NS SOCKET_STREAM Yes TCP SPP SOCK_DGRAM Yes UDP IDP SOCK_RAW IP Yes SOCK_SEQPACKET SPP Đố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 e Hàm hệ thống connect()

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ứ nhat 1a descriptor cia 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

e Ham hé thong wite():

CA Client va Server ding write để truyền dữ liệu cho phía bên kia bằng cách

ghi dữ liệu này xuống cầu nối TCP

int write(int sockfd, char *buf,int buflen);

Đối số thứ nhất :descriptor của socket

Trang 30

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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

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

điều hành và cho phép ứng dụng tiếp tục thực thi trong khi đó nó truyền data qua

mạng Nếu vùng đệm hệ thống bị đầy thì write sẽ bị block tạm thời cho đến khi

TCP gởi được một phần dữ liệu tạo khoảng trống trong buf cho write tiếp tục ghi dữ liệu xuống vùng này

e - Hàm hệ thống read()

Cả Client và Server dùng read để đọc đữ liệu từ cầu nối TCP

int read(int sockfd, char *buf,int buflen);

Các đối số giống với hàm write chỉ khác vùng buf là vùng nhận dữ liệu Nếu dữ liệu chưa đến lệnh read sẽ block cho đến khi dữ liệu đến

Nếu dữ liệu đến lớn hơn khả năng chứa của buffer thì read sẽ đọc phần dữ

liệu cân thiết để điển đầy vào vùng buffer phần còn lại để cho lần read sau

e Ham hé thong close()

Khi Client hay Server không còn dùng socket nó gọi hàm close để đóng và giải phóng socket

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ải

phóng socket

Nếu có nhiều process sử dụng chung | socket thi 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

e - 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 connect(); Có ba trường hợp sử dụng bindQ) :

- Server dang ky dia chỉ của nó với hệ thống Nó báo cho hệ thống biết "đây

là địa chỉ của tôi và bất kỳ message nào gởi đến địa chỉ này là gởi đến cho tôi" Cả

hai protocol có cầu nối và không có cầu nối đều phải gọi hàm này trước khi chấp nhận yêu câu của Client

- Một Client có thể đăng ký một địa chỉ cụ thể cho nó

Trang 31

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI 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ết

qủa

e Hàm hệ thống listen()

Hàm này sử dụng trong trường hợp Server có cầu nối sẵn sàng chấp nhận sự kết nối

int listen(int sockfd,int backlog );

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

Đối số backlog cho biết có bao nhiêu yêu cầu kết nối có thể được cho vào hàng chờ của hệ thống trong khi chờ đợi thực thi hàm accept(Q Thường các ứng

dụng chọn là 5 (con số tối đa hệ thống cho phép) e Ham hé thong accept() :

Khi socket đã sẵn sàng kết nối, server goi ham accept() để 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 lay phan ti dau 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

e _ Các hàm hệ thống send,sendio,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 flags, struct sockaddr *to, int addrlen);

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

int recvfrom(int sockfd,char *buff, int nbytes,int flags, struct sockaddr *from,int * addrlen);

2.3 M6 hinh Client — Server

Mô hình Client-server là một mô hình rất phổ biến trong thiết kế các ứng

dụng phân bố Trong mô hình này, một ứng dụng sẽ được chia ra làm hai phần: phần ở bên máy Client thường chứa các thông tin phục vụ cho người dùng và phần

ở máy server thường có nhiệm vụ lưu trữ, lấy và thao tác các dữ liệu, tính toán dựa

Trang 32

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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ình

Client 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

e_ 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 hồ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ỉ" để chờ một yêu câu khác từ Client

2.3.1 Xây dựng chương trình Client

2.3.1.1 Đặc tả địa chỉ Server

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ầu

người sử dụng đưa các giá trị này vào khi chạy chương trình Lưu trữ địa chỉ Server trên đĩa và khi chương trình chạy nó sẽ đọc các giá trị này Gởi các thông điệp

(multicast hay broadcast) để tìm Server

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 phải biên dịch lại Lưu trữ địa chỉ Server trên đĩa làm chương trình uyển chuyển

hơn Tuy nhiên khi mang chương trình sang máy khác phải mang theo cả file này,

hoặc phải biên tập lại nếu Server chuyển sang máy khác Gởi các thông điệp (multicast hay broadcast) để tìm Server làm cho chương trình phức tạp và không hiệu quả trong hệ thống mạng lớn Yêu cầu người sử dụng đưa các giá trị này vào khi chạy chương trình làm cho chương trình tổng quát và uyển chuyển hơn (không cần dịch lại hay có thể mang Server sang nhiều máy khác mà không ảnh hưởng đến

chương trình Client)

Trang 33

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

2.3.1.2 Xây dựng giải thuật chương trình Client Thuật giải với protocol TCP :

1 Tìm địa chỉ của Server <địa chỉ IP, số hiệu port > 2 Tạo ra socket : dùng hàm hệ thống socket()

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 dif 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() 2.3.2 Các loại Server

2.3.2.1 Interative Server

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ễ

đà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

2.3.2.2, Concurrent Server

Là Server có thể phục vụ cho nhiễu yêu cầu từ phía Client một cách déng

thời Trong trường hợp này, hệ điều hành phải cho phép cùng một lúc có nhiều process được phép chạy Lý do là Server có thể tạo ra một bản sao của chính nó để giải quyết công việc

2.3.2.3 Connection-Oriented Server

Là Server sử dụng protocol connection-oriented cia c&p transport (vi du

TCP) Ưu điểm của loại Server này là dễ lập trình vì nhiệm vụ chủ yếu của Server 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 này là 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

sự kết nối so với UDP, nếu Client bị "crash" liên tục thì tài nguyên mà Server chiếm càng ngày càng lớn

2.3.2.4 Connectionless Server

Là Server sử dụng protocol connectionless của cấp transport (ví dụ UDP) Ưu điểm của loại Server này là chiếm ít tài nguyên so với TCP, thuận lợi cho những ứng dụng dùng broadcast hay multicast Nhược điểm là lập trình phức tạp vì vấn để

Trang 34

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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ể

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

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êu

cầ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

2.3.3.1 Thuật giải với Interactive, Connection-Oriented Server

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

socket vào chế độ thụ động (sẵn sàng nhận kết nối của Clien\) Lấy yêu cầu kết

nố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

2.3.3.2 Thuật giải với Interactive, Connectionless Server

Tạo socket và gán nó vào port nơi mà nó nhận yêu cầu của Client Đọc yêu cầu từ Client gởi sang , thực thi yêu câu, gởi trả kết qua vé cho Client

Trang 35

Xây dung dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM Server socket0 bind0 Client socket() revfrom() bind0 block cho đến khi nhận dừ liệu cửa Client #&—————dat(yê&ucầu) ————————] sendto() Xử lý yêu cầu sendto(} ———data(trả lời) t——— recvfromÑ

Interactive, Connectionless Server 2.3.3.3 Thuật giải với Concurrent , 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() dé

nhận yêu cầu tiếp theo của Client Khi có yêu cầu thì nó sẽ fork(Q) ra process con (Slave process) để phục vụ yêu câu của Client

Trang 36

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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 sendto() Kết thúc process này sau khi đã hoàn tất một yêu cầu của Client

2.3.3.4 Thuật giải với Concurrent , Connection-Oriented 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 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 ClienU Lặp lại việc gọi hàm acceptQ để nhận yêu cầu kết nối 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

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

Nhận yêu cầu kết nối của Client từ process cha và sử dụng socket do

process cha vừa tạo ra từ lệnh gọi acceptQ để giao tiếp với Client 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 Sau khi đã phục vụ tất cả yêu cầu của Client này thì process Slave đóng cầu nối và kết thúc

Trang 37

Xây dung dịch vụ tính toán phân bố

Concurrent , Connection-Oriented Server socket() v bind v listen) v accept()

Block cho đến khi kết

Trang 38

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

2.4 Multicast

2.4.1 Giới thiệu

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ỉ dich (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 network , đượ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ên

mạ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 mang chỉ nhận những frame có địa chỉ đích là địa chỉ của nó hoặc địa chỉ broadcast

Ngày nay, phần lớn các card mạng cũng có thể setup để nhận những frame có địa chỉ đích là địa chỉ của Multicast hoặc một số nhóm của địa chỉ Multicast

Trên một mạng , một điạ chỉ Multicast có bit thấp nhất của byte cao được set lên 1, nghiã là 01:00:00:00:00:00 Như vậy , ta có thé xem dia chi broadcast ff: ff: ff: ff: ff: ff là một trường hgp diac biét cha multicast

Trang 39

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

Bộ lọc frame tại mỗi máy: Chuyển đi Bỏ qua UDP Chuyển đi Bồ qua IP huyển đi Chuyển đi Bồ qua Divice driver Chuyển đi Bỏ qua Interface card

Nếu card mạng nhận một frame, nó chuyển cho device driver BO loc ở

device driver sẽ xét Protocol có support hay không, nó có thuộc group Multicast đó không

Device driver chuyển cho lớp kế: IP Nếu frame xác định một IP datagram

TP thực hiện lọc dựa trên địa chỉ đích và địa chỉ nguồn và chuyển cho lớp trên TCP

hoặc UDP

Khi UDP nhận một datagram từ IP ,nó thực hiện lọc dựa trên port đích và

port nguồn Nếu không có process nào hiện sử dụng port này, datagram sẽ được bỏ qua và phát ra một message ICMP port unreachable TCP cũng thực hiện lọc tương

tự

Vấn để với broadcast là quá trình lọc phải thực hiện trên mọi máy mà nó

không quan tâm đến thông tin broadcast này Ví dụ có một ứng dụng được thiết kế

Trang 40

Xây dựng dịch vụ tính toán phân bố CBHD : K.S THOẠI NAM

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

2.4.2 Broadcasting

Broadcast được dùng khi một máy cần tìm một thông tin mà không máy nào

đang giử thông tin đó, hoặc khi một máy muốn cung cấp thông tin cho một lượng

lớn máy cùng lúc

Broadcast một cách nhanh và đơn giản nhất để gởi thông tin đến tất cả các

máy lân cận Ví dụ, một gateway thông báo sự hiện diện của nó cho các gateway

khác

Phần lớn sự phức tạp trong việc support broadcast nằm ở các gateway Nếu

một gateway nhận một broadcast cho một mạng mà nó không nối trực tiếp, nó đơn giản forward broadcast đó Ngược lại nó phải thực hiện thêm một số việc phụ thuộc

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 datagram đó

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ể

2.4.2.1 Limited broadcast

Limited broadcast c6 dia chi 255.255.255.255 Một datagram dang limited

broadcast không bao giờ được forward bởi một router Nó chỉ xuất hiện ở mạng cục

bộ

2.4.2.2 Net-directed broadcast

Net-directed broadcast có phần host ID luôn là 1 Net-directed broadcast ctia Class A 1a netid.255.25.255 v6i netid 1a network ID của class A

Một router phải forward các Net-directed broadcast Nhưng nó cũng phải có khả năng disable chức năng này

Ngày đăng: 05/08/2014, 12:04

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w