Đồ án tốt nghiệp
Lời cảm ơn
Em xin chân thành cảm ơn cô giáo Dỗn Hồ Liên là người đã trực tiếp hướng
dẫn em trong quá trình thực hiện đồ án này. Cô đã nhiệt tình chỉ bảo, giải đáp mọi
thắc mắc, cung cấp các kiến thức cần thiết giúp em hồn thành đề tài. Quan trọng hơn,
cô là người định hướng để em tiếp cận được với phương pháp nghiên cứu khoa học
nói chung và phương pháp nghiên cứu thực hiện phân tích, thiết kế một ứng dụng
thực tế. Qua đây em cũng xin được cảm ơn các thầy cô trong khoa CNTT đã tận tình
dạy bảo em trong 5 năm học tại trường cùng các bạn sinh viên đã đóp góp những ý
kiến quý báu cho chương trình.
1
Trang 1
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
LỜI NÓI ĐẦU
Từ khi xuất hiện cho đến nay, World Wide Web ngày càng trở nên phổ biến, là
một phương tiện truy nhập mạng đơn giản và rất thân thiện với người sử dụng. Với
các trang Web, người sử dụng có thể tìm kiếm và tải về rất nhiều thể loại hình thông
tin trên mạng mà không cần phải có nhiều hiểu biết về mạng. Đứng trên quan điểm
của người sử dụng, họ không cần quan tâm đến việc thông tin mà họ tìm kiếm ở một
hệ thống ngay bên cạnh hay ở một nơi ở đầu kia của quả đất. Chính điều này dẫn đến
sự bùng nổ về lưu lượng trên các mạng đường trục khu vực. Việc sử dụng dịch vụ
Web đang tǎng theo cấp số mũ, lưu lượng WWW trên các mạng Internet quốc gia và
quốc tế cũng tǎng đột biến. Và Việt Nam cũng không thể nằm ngồi vòng xốy của cơn
lốc WWW, các cổng giao tiếp điện tử, các hệ thống E-leanrning đang là những ứng
dụng mới và đang được áp dụng ở Việt Nam. Các ứng dụng này trong tương lai sẽ
càng phát triển mạnh hơn cùng sự phát triển của hạ tầng mạng máy tính và đòi hỏi tin
học hố ngày càng cao của xã hội. Tuy nhiên để có được sự phát triển rộng rãi đó
không phải là vấn đề đơn giản. Các hệ thống này càng phát triển thì người ta càng
thấy thêm nhiều hạn chế, cản trở của cơ sở hạ tầng mạng cũng như các giải pháp sẵn
Đồ án tốt nghiệp
CHƯƠNG I: TỔNG QUAN INTERNET - INTRANET
I.1 Internet là gì ?
Internet là một mạng máy tính tồn cầu sử dụng một ngôn ngữ truyền thông
chung nó tương tự như một hệ thống điện thoại quốc tế nhưng nó được nối kết theo
cách làm việc của một mạng lớn.
World Wide Web (WWW) cho ta một hình ảnh dễ dàng giao tiếp và tìm kiếm
dữ liệu trên Internet. Các dữ liệu này được liên kết với nhau thông qua trang Web.
Các file, các trang được nối kết với nhau thông qua các mối liên kết là text hoặc hình
ảnh được gọi là HyperLink.
Các trang Web có thể chứa văn bản, hình ảnh, phim, âm thanh. Các trang này
có thể được đặt trên một máy tính ở nơi nào đó trên thế giới. Khi ta nối kết tới
Internet ta có thể truy xuất thông tin trên tồn cầu.
HyperLink là các text hay hình ảnh mà được gắn địa chỉ Web trên đó. Bằng
cách click vào hyperlink ta có thể nhảy tới một trang thành phần của một Web site.
Mỗi một Web site có một trang chủ của Web site đó và có một địa chỉ duy nhất được
gọi là Uniform Resource Locator (URL). URL xác định chính xác tên của máy tính
và đường dẫn tới một trang Web xác định.
I.2 Intranet là gì ?
Intranet dựa vào TCP/IP Network nhưng không nối kết tới Internet mà chỉ sử
dụng chuẩn truyền thông Internet và các công cụ của nó dùng để cung cấp thông tin
tới người sử dụng trên một mạng riêng. Ví dụ một công ty có thể cài đặt một Web
server chỉ cho các thành viên của công ty trao đổi thư từ tin tức,thông tin thương
mại...Các thành viên truy xuất thông tin bằng cách dùng các Web browser.
I.3 Internet Information Server là gì ?
Internet Information Server (IIS) là một Web server cho phép ta công bố thông
tin trên mạng Intranet hay Internet. Internet Information Server truyền tải thông tin
bằng cách dùng Hypertext Transfer Protocol (HTTP), Internet Information Server
cũng có thể dùng phương thức FTP hoặc Gopher.
I.3.1 Internet Information Server làm việc như thế nào ?
Request Type URL
Static HTML page />ISAPI application />Internet Database Connector />Common Gateway Interface
(CGI) script
/>I.5 Web Server Response
Web server đáp ứng yêu cầu của Web browser bằng cách trả lại một trang
HTML. Trang trả lại có thể là trang HTML tĩnh, trang HTML động hoặc là trang
trong danh sách thư mục.
I.6 Trang HTML tĩnh (Static Page)
Một trang HTML tĩnh là trang đã được chuẩn bị sẵn cho các yêu cầu nhất định
và được đặt sẵn trên Web server. Người sử dụng yêu cầu một trang HTML tĩnh bằng
cách gõ trực tiếp URL hoặc là Click vào Hyperlink của URL nào đó, URL được gửi
tới server. Server đáp ứng bằng cách trả lại trang HTML tĩnh.
4
Trang 4
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
I.7 Trang động (Dynamic Page)
Các trang động được tạo ra trong quá trình đáp ứng cho yêu cầu của người sử
dụng. Một Web browser thu thập thông tin bằng cách thực hiện một trang có các
Textbox, Menu, Checkbox... cho phép người sử dụng điền vào hoặc lựa chọn. Khi
người sử dụng click vào một nút (button) trên Form, dữ liệu từ Form được gửi tới
Web server. Server đưa dữ liệu này tới một Script hoặc một trình ứng dụng để xử lý.
Sau đó server gửi lại kết quả cho browser bằng một trang HTML. Ví dụ sau đây cho
phép ngưới sử dụng gửi một yêu cầu tới một Internet Server API (ISAPI), ứng dụng
này dùng để cộng 2 số. Ngưới sử dụng ngập 2 số được cộng sau đó click một button
để gửi 2 số đó tới web server. Web server gọi một ISAPI để cộng 2 số, sau đó trả lại
kết quả cho browser bằng một trang HTML.
Minh họa sau đây cho phép người sử dụng truy cập vào database bằng cách
dùng Internet Database Conector. Người sử dụng hồn thành một Form sau đó click
vào một button để gửi dữ liệu tới server. Server nạp dữ liệu vào database sau đó trả
Web server.
Sự tích hợp Internet Information Server với Windows NT có thể tạo ra các
server có nhiều chức năng. Ví dụ như một công ty có nhiều site khác nhau trên thế
giới, có thể dùng Internet Information Server để truyền thông giữa các site này với
nhau, và ta cũng có thể dùng RAS để cho phép truy cập tới Intranet hoặc Internet.
7
Trang 7
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
Nhiều kịch bản nối kết tới Internet còn liên quan tới thành phần thứ ba là các
Routersvà các thiết bị an ninh nằm giữa máy tính của ta và Internet dùng để lọc các
gói(packets) thông tin gửi qua chúng. Các trường hợp này chưa được đề cập trong
các kịch bản ở trên.
CHƯƠNGII : TÌM HIỂU WEB CACHING
II.1 Các thuật ngữ cơ bản
Tuy nhiên trước khi đi vào các khái niệm về Web caching ta sẽ tìm hiểu một
số thuật ngữ hay được dùng trong khi giải thích các khái niệm và nó cũng là những
thuật ngữ chuẩn của Internet.
II.1.1 Client – Server
Đây là những khái niệm nền tảng để xây dựng nên một hệ thống ứng dụng
Web.
- Client: là các chương trình ứng dụng dùng để thiết lập kết nối với mục đích gửi đi
các yêu cầu cung cấp dịch vụ. Đó là các trình duyệt Web, các trình biên tập (editor)
hoặc các công cụ người sử dụng cuối khác. Các client thông dụng nhất thường chạy
trên máy của người sử dụng cuối
- Server: là chương trình ứng dụng dùng để chấp nhận kết nối với mục đích phục vụ
các yêu cầu cung cấp dịch vụ bằng cách gửi các đáp ứng trở lại phía yêu cầu. Đối với
các hệ thống cung cấp dịch vụ lớn, các chương trình này thường chạy trên các hệ
thống phần cứng riêng và thường được phân biệt là phần cứng server và phần mềm
server.
client nhằm mục đích thay mặt các client tạo ra các yêu cầu. Yêu cầu được phục vụ
tại chỗ hoặc chuyển qua các proxy đến các server khác. Một proxy phải biết biên dịch
và nếu cần có thể viết lại các thông điệp yêu cầu trước khi chuyển tiếp yêu cầu. Các
proxy thường được sử dụng như các bộ đóng gói phía client qua các firewall của
mạng và như các chương trình hỗ trợ để xử lý các yêu cầu thông qua các giao thức
không được triển khai ở phía người sử dụng.
II.1.3 Cache
Một nơi lưu trữ tạm thời các bản tin đáp ứng của chương trình, một hệ thống
phụ trợ điều khiển việc lưu trữ, cung cấp và huỷ các tài liệu. Cache lưu các bản tin
đáp ứng có thuộc tính có thể lưu trữ được (cacheable) để giảm thời gian đáp ứng và
bǎng thông tiêu thụ cho mỗi yêu cầu. Bất cứ client hay server nào đều có thể có
cache.
- Mạng lưới cache server (caching mesh): hệ thống các caching server phối hợp hoạt
động với nhau.
- Web cache server cục bộ (local cache): cache server chạy trên cùng một mạng LAN
với client.s
9
Trang 9
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
- Web cache server cấp một: Web cache server mà client của người sử dụng kết nối
trực tiếp đến . Loại này gần giống loại cục bộ.
- Web cache server cấp cao (upper-level cache hay entry cache): nhìn từ phía client,
tất cả các cache tham gia vào mạng lưới caching không kết nối thẳng đến client là các
cache server cấp cao. Trong các loại Web cache server cấp cao có loại Parent cache
được kết nối trực tiếp đến Web server. Như vậy, trong một mạng lưới thì tên của các
Web cache chỉ mang tính chất tương đối.
II.1.4 Các đối tượng Web( Web Object)
“Đối tượng” ở đây có thể được hiểu là các loại dữ liệu khác nhau trên server
chẳng hạn như file audio, file Zip,.. Đối tượng Web thì có một số các đặc điểm quan
10
Trang 10
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
các tệp tin) tại vị trí gần với người sử dụng để tránh phải chuyển về nhiều lần cùng
một tài liệu qua cùng một kết nối và do đó làm giảm thời gian tải về và tạo ra ít tải
hơn trên các server đầu xa
II.3 Tại sao phải sử dụng Cache đối với Web ?
Đơn giản vì nó tiết kiệm được thời gian cho người duyệt Web. Nó cung cấp
một cách hiệu quả khả năng phân bổ thông tin trên Web. Chúng ta hãy xem xét một ví
dụ thực tế về việc phân bổ sách. Chúng ta hãy suy nghĩ làm sao các cuốn sách được
phân bố tới tay của những độc giả ? Các nhà xuất bản in những cuốn sách và bán
chúng với số lượng lớn tới các nhà bán buôn. Các nhà bán buôn thì lại bán các cuốn
sách với số lượng nhỏ hơn tới các cửa hàng sách. Độc giả có thể đến các cửa hàng
sách và mua các cuốn sách đó. Trên internet thì Web caches cũng hoạt động tương tự
như các cửa hàng sách và các nhà phân phối.
3 lợi ích chính của Web caching
+ Làm cho trang Web được load nhanh hơn (giảm thời gian trễ)
+ Giảm băng thông sử dụng
+ Giảm số lần truy cập lại trên server gốc
II.3.1 Thời gian trễ
Thời gian trễ chính là khoảng thời gian mà dữ liệu được chuyển từ nơi này đến nơi
khác. Một nguồn gốc khác của việc trễ mạng chính là ngẽn mạng. Khi các đường kết
nối đã được sử dụng tối đa thì các gói tin sẽ được xếp hàng trong các Router hay
Switch. Khi các gói tin đã được xếp đầy trong hàng đợi thì nó sẽ loại bỏ tất các các
gói tin tiếp theo đến. Với những giao thức tin cậy như TCP/IP việc mất gói tin thì
tương đương với việc truyền lại gói tin. Vì vậy việc truyền lại sẽ gây mất rất nhiều
thời gian, làm giảm tốc độ của mạng trong việc truyền tin.
II.3.2 Băng thông
Băng thông chính là dung lượng đường truyền mà dữ liệu đi qua. Với mỗi yêu
II.4.2 Caching Proxy (Server Cache)
Loại cache này nằm trên một server trong mạng lưới gồm nhiều client và
nhiều server. Thông thường, nó không nằm trong cùng một hệ thống chạy một loại
Web client hay một HTTP server nào đó. Không giống như Browser caches, dịch vụ
cache này có thể phục vụ nhiều user cùng một lúc. Khi có nhiều người cùng tới thăm
một website tại một thời điểm thì caching proxies thường được sử dụng hơn Browser
cache.
Caching proxies thì cần thiết đối với rất nhiều tổ chức như các nhà cung cấp
dịch vụ Web, các tổng công ty lớn, các trường đại học, viện nghiên cứu. Caching
Proxies thì thường được đặt ở các gateway (như router) hay nói một cách khác thì nó
thường được sử dụng để có thể phục vụ một số lượng người lớn nhất.
II.5 Web caching hoạt động như thế nào ?
Tất cả các hệ thống cache đều sử dụng một bộ nguyên tắc để xác định thời
điểm cung cấp các đối tượng (hay các tài liệu Web), tất nhiên là với điều kiện các đối
tượng đó đã được lưu trong cache. Trường hợp các đối tượng được yêu cầu chưa
được lưu sẵn trong cache thì cache server sẽ gửi yêu cầu đó đến server gốc. Một số
nguyên tắc được thiết lập trong các giao thức HTTP/1.0, HTTP/1.1 và một số khác
được thiết lập bởi những người quản trị cache (có thể là người sử dụng browser cache
hoặc người quản trị proxy).
II.5.1 Các nguyên tắc chung
+ Nếu phần tiêu đề của đối tượng cho cache biết không phải lưu đối tượng thì cache
không lưu đối tượng đó. Nếu biến logic xác nhận (biến validator) không xuất hiện,
phần lớn các cache sẽ đánh dấu đối tượng là không thể lưu (uncacheable).
+ Nếu đối tượng có yêu cầu nhận thực hay bảo mật, nó sẽ được lưu.
+ Một đối tượng được lưu được coi là còn tươi - "fresh" (có nghĩa là có thể được gửi
tới client mà không cần sự kiểm tra của server gốc)
- Nó có thời gian tồn tại (hoạt động theo dạng một loại bộ đếm) còn nằm trong
khoảng thời gian fresh (chưa quá hạn)
- Nếu một browser cache đã từng hiển thị đối tượng và đối tượng này đã được
đánh dấu là đã kiểm tra trong một phiên trước đó.
đầu) chỉ bao gồm thành phần tên của URL. Trong đó phần hostname được xuất hiện
trong phần Host header. Host header là một đặc điểm của HTTP/1.1, nó hỗ trợ
hosting ảo, hay nhiều website logic trên một server vật lý(một địa chỉ IP). Nếu server
gốckhông hỗ trợ domain ảo thì Host header dùng để làm dự trữ.
II.5.1.3 Yêu cầu Proxy
Khi Client giao tiếp với proxy, các yêu cầu cũng không có sự khác biệt so với server
gốc. Tuy nhiên dòng yêu cầu proxy sẽ bao gồm một URL đầy đủ.
GET HTTP/1.1
Host: www.nlanr.net
Accept: */*
Proxy-connection: Keep-alive
HTTP đưa ra một sự thật là: yêu cầu và đáp ứng có thể được đưa qua một số
các proxies giứa Client và Server gốc. Một số HTTP header được định nghĩa như là
13
Trang 13
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
end to end(điêm cuối tới điểm cuối) và một số như là hop to hop(điểm tới điểm). End
to end header thì vận chuyển thông tin tới các hệ thống cuối(Client và Server gốc), và
bình thường thì nó không phải được chỉnh sửa bới proxies Cookie header cũng là end
to end. Ngược lại thông tin trong hop to hop header có nghĩa là dành cho các hệ thống
trung gian và nó phải được chỉnh sửa hay di chuyển trước khi được chúng được đưa
đến vị trí mới. Proxy- connection và proxy- authorization header ở dạng hop to hop.
Một Client sử dụng Proxy – connection header để hỏi proxy làm cho TCP kết nối
một cách liên tục bởi vậy chúng được sử dụng lại để cho các yêu cầu khác trong
tương lai. Proxy –authorization header chứa sự ủy nhiệm để có thể truy cập vào
proxy, không phải server gốc.
II.5.1.4 Yêu cầu không phải là HTTP Proxy.
Cuối cùng chúng ta thử xem proxies đối xử với các yêu cầu không phải là
HTTP như thế nào. Đối với các Client thì chúng luôn hỗ trợ các giao thức khác HTTP
Đồ án tốt nghiệp
Trạng thái mã hóa thông dụng nhất là mã 200. Trạng thái này có nghĩa là yêu cầu đã
được đáp ứng thành công.
II.5.2.2 Các phương thức yêu cầu:
Ngồi các nhân tố khác để xác định có thể được lưu trữ đó là các phương
thức yêu cầu. Bảng dưới đây có thể chi ra một vài phương thức và khả năng lưu trữ
của chúng.
Phương thức yêu
cầu
Khả năng lưu trữ
GET
Mặc định được lưu trữ
HEAD
Có thể được sử dụng để cập nhật các thông tin lưu trữ trước
POST
Mặc đinh là không lưu; Nhưng sẽ lưu nếu Cache-control headers
cho phép
PUT
Không bao giờ lưu trữ
DELETE
Không bao giờ lưu trữ
OPTIONS
Không bao giờ lưu trữ
TRACE
Không bao giờ lưu trữ
Ta có thể nhận thấy GET là phương thức yêu cầu phổ biến nhất và đáp ứng
cho yêu cầu GET thì mặc định sẽ được lưu trữ trong cache. Trong khi đó khi phương
thức yêu cầu là POST thì nó chỉ có thể được lưu trữ khi trong đáp ứng của nó gồm cả
thời gian hết hạn và cho phép Cache-control thay thế giá trị mặc định. Nhưng trong
gian trễ và không tốn băng thông tới server gốc. Chúng ta gọi chúng là unvalidated
hits.Ngược lại đối với những đáp ứng cũ thì chúng cũng phải yêu cầu kiểm tra đối
với server gốc
Mục đích của việc kiểm tra là đưa yêu cầu lên tới server gốc nếu các đáp
ứng vẫn còn giá trị. Nếu tài nguyên đã thay đổi thì chúng ta sẽ không muốn client
nhận những đáp ứng cũ. HTTP gọi chúng là những yêu cầu điều kiện (conditional
requests). Đáp ứng lại những yêu cầu điều kiện hoặc là một thông điệp “Not
Modified” hoặc tồn bộ một đáp ứng mới.
Nhưng làm thế nào để có thể biết đó là một đáp ứng mới hay đáp ứng cũ.
HTTP/1.1 cung cấp cho ta hai cách để có thể xác định được đólà dựa vào expires
header và max-age cache control. Giá trị expires header chính là ngày và giờ mà tại
đó nó trở thành đáp ứng cũ. Ví dụ
Date: Mon, 19 Feb 2001 01:46:17 GMT
Còn giá trị max-age thì chỉ dẫn cho ta biết số giây mà đáp ứng còn được
xem như là mới. Ví dụ
Cache-control: max-age=21600
Tình trạng này cho ta biết đáp ứng này còn đựoc coi là mới trong vòng 6h đồng hồ kể
từ khi nó được sinh ra.
II.5.4 Quá trình kiểm tra.
Ở phần trên thì chúng ta đã nghiên cứu quá trình kiểm tra của cache trong
các trạng thái là cache hits hay cache-misses. Ngay sau khi nhận được một yêu cầu về
một đối tượng, thì cache sẽ tiến hành xác định tính hợp lệ đối với server gốc. Nếu
như đối tượng được lưu vẫn còn hợp lệ thì server sẽ trả lời lại bằng một thông điệp
ngắn HTTP 304 (Not modifed). Nếu không thì tồn bộ đối tượng sẽ được gửi đi.
HTTP /1.1 cung cấp hai kĩ thuật để ta có thể kiểm tra đó là xác định thời điểm cuối
cùng đối tượng thay đổi last-modified và E Tag (entity Tags header).
II.5.4.1 Last-modified
Hầu hết các đáp ứng HTTP thì bao gồm last-modified header để xác định
thời gian khi đối tượng tài nguyên có sự thay đổi lần cuối cùng trên server gốc. Last-
Modified thì đưa ra thời gian GMT (Greenwich Mean Time) với đơn vị nhỏ nhất là
xử lý yêu cầu như bình thường. Và cũng như mọi lần nó sẽ trả về thông báo 200 với
một đối tượng mới, hay cập nhật nội dung.
II.5.5 Thay thế trong cache
Cache sẽ tiến hành thay thế nếu nó bị đầy và khi đó các đối tượng cũ sẽ bị
xóa đi để nhường chỗ cho những đối tượng mới. Thường thì Cache sẽ gán một vài
giá trị cho mỗi đối tượng. Thường thì các giá trị của đối tượng sẽ liên quan đến khả
năng nó có thể được yêu cầu lại một lần nữa. Caching đã nghiên cứu, phát triển và
đưa ra một số đề nghị về các giải thuật thay thế trong Cache.
17
Trang 17
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
II.5.5.1 Giá trị ít sử dụng gần đây nhất (Least Recently Used)(LRU)
LRU là một trong những giải thuật hayd được sử dụng bởi web caches. Giải
thuật này hồn tồn đơn giản và đễ thực hiện. Nó đưa ra được hiểu quả tốt trong mọi
hồn cảnh. Như tên của nó đã nói, LRU sẽ xóa bỏ những đối tượng mà nó không được
truy cập trong thời gian nhiều nhất. Giải thuật này có thể được tiến hành trên những
danh sách đơn giản. Tại mỗi thời điểm khi đối tượng được truy cập nó sẽ được di
chuyển đến đầu danh sách. Và khi đó đối tượng ít được sử dụng nhất sẽ chắc chắn tự
động di chuyển xuống cuối danh sách. Tuy nhiên vấn đề của giải thuật này chính là
nó không quan tâm tới kích thước của đối tượng. Bạn muốn lưu một đối tượng với
kích thước lớn hay nhiều đối tượng với kích thước nhỏ. Câu trả lời này có lẽ tùy
thuộc vào sự tối ưu của người quản trị. Nếu cần tiết kiệm băng thông thì bạn sẽ muốn
một đối tượng có kích thước lớn còn nếu bạn giảm số lần truy cập đến server gốc thì
các đối tượng có kích thước nhỏ lại là sự lựa chọn trong trường hợp này.
II.5.5.2 First In, First Out (FIFO)
FIFO là một giải thuật thậm chí còn đơn giản hơn cả LRU. Đối tượng ở đây
thì cùng một cấp bậc sau khi thêm vào. Giải thuật này không quan tâm đến sự phổ
biến của các đối tượng. FIFO thì ít được sử dụng nếu có thì nó được sử dụng cho
II.6.1 Cache kế thừa hoạt động như thế nào
Web cache có thể trở lên phức tạp hoặc không định hình được. Chúng ta sẽ
sử dụng các thuật ngữ như cha (parent), con (child), anh chi em ruột (sibling) để mô
tả mối quan hệ giữa hai cache bất kỳ với nhau.
Một cache con thì sẽ gửi những cache-misses lên cho những cache cha của
nó. Cache cha sau đó sẽ cung cấp cho con của nó những thông tin đáp ứng từ cache
mà nó sở hữu hay server gốc, hay từ một cache khác. Cache cha có thể sử dụng băng
thông tới server gốc để đáp ứng những yêu cầu từ cache con của nó. Hình vẽ dưới
đây minh họa về một cache thừa kế
II.6.2 Các lợi ích của kế thừa Cache
II.6.2.1 Hiệu năng
Hiệu năng thì luôn làm cho mọi người muốn gia nhập vào hệ thống kế thừa.
Tuy nhiên hệ thống caching kế thừa không phải là điều thần kì, nó không đảm bảo
được chắc chắn hệ thống sẽ cải thiện được hiệu năng. Nếu bạn muốn tìm kiếm hiệu
năng tốt hơn thì bạn phải quyết định điều gì là quan trọng đối với bạn. Giảm băng
thông ? Giảm độ trễ. Bạn nên tạo ra một hệ thống cho việc giám sát hệ thống hiệu
năng Cache của bạn. Vậy để có một hệ thống hoạt động tốt thì cần chú ý những điểm
sau:
+ Một số đối tượng không tìm thấy trong cache của nó nhưng sẽ được tìm
thấy trong cache của hàng xóm của nó. Hay nói cách khác là bạn có thể nhận được
cache-hits từ cache hàng xóm
+ Cache-hits từ cache hàng xóm thì được phân bố nhanh hơn so với cache-
misses ở server gốc
+ Cache misses từ cache cha thì chậm hơn so với đáp ứng từ phía server
gốc.
Nếu một trong các điều kiện trên đây không thoả mãn thì hiệu năng hoạt
động cache của bạn sẽ bị ảnh hưởng. tuy nhiên chúng hoạt động đúng hay sai còn ảnh
hưởng của rất nhiều các nhân tố. Ví dụ như nếu cache tìm kiếm một cách chậm chạp
thì nó có thể chậm hơn so với kết nối trực tiếp đến server gốc. Và các hành vi của
thì nó sẽ sử dụng DHCP(Dynamic Host Configuration Protocol) và DNS(Domain
Name System) để xác định proxy auto-configuration script. Nếu nó tìm thấy thì nó sẽ
tự động ghi lại kết quả của script đó là bắt đầu sử dụng caching proxy.
II.7.1 Proxy Addresses
Cũng như tất cả các dịch vụ Internet khác như mail hay FTP thì proxy
server như là một địa chỉ bao gồm cả địa chỉ IP và số cổng (port number). Tuy nhiên
không giống những dịch vụ khác proxies thì không có cổng mặc định. Vì thế ta có thể
nói là “kếtnối đến FTP server tại ftp.isp.net ” chứ không nói rằng “sử dụng proxy tại
proxy.isp.net ”. Một địa chỉ proxy thì luôn đi kèm với cổng của nó. Vì vậy theo mặc
định thì ta có thể viết đồng thời chúng sau dấu hai chấm. Ví dụ
172.16.4.1:8080
squid.ircache.net:3128
proxy1.bigisp.net:80
Mặc dù nó không có cổng mặc định nhưng hầu hết các proxies sử dụng các
port sau: 3128,8080,80 hoặc 1080. Ngày nay thì hầu hết các Web caches thì có thể
20
Trang 20
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
lắng nghe các yêu cầu trên nhiều cổng tại một thời điểm. Vì vậy có thể đáp ứng được
tốt hơn các yêu cầu của người dùng. Sau đây ta sẽ nghiên cứu cách cấu hình bằng tay
đối với một Client.
II.7.2 Cấu hình bằng tay
Như trên ta đã đưa ra việc cấu hình bằng tay đơn giản là thiết lập một địa chỉ
proxy cho một hoặc nhiều giao thức kết nối như HTTp, FTP, SSL. Thông thường thì
một proxy thì hỗ trợ tất cả bởi vây cùng một địa chỉ Proxy được sử dụng cho tất cả
các giao thức. Tuỳ thuộc vào mục đích sử dụng proxy của bạn mà ban có thể cần hay
không cần cấu hình các protocol. Nếu bạn sử dụng ở sau filewall thì bạn nó sẽ yêu
cầu proxy cho tất các các yêu cầu của bạn. Tuy nhiên cấu hình bằng tay thì cũng có
một số nhược điểm. Nó sẽ yêu cầu bạn sử dụng để cấu hình cho một số lượng lớn,
cho đến khi yêu cầu được chuyển đi thành công.
Script PAC thì được viết bằng Java Script. Vì vậy nếu trình duyệt nào hỗ trợ
Java Script thì sẽ hỗ trợ PAC. Netscape là hãng sáng chế ra PAC và đã đưa vào trong
Version 2 của trình duyệt này và Microsoft cũng đưa PAC vào từ Version 3.
Đặc điểm tốt nhất của PAC chính là cho phép người quản trị có thể cấu hình
lại mà không cần sự can thiệp của người sử dụng. Nếu địa chi proxy thay đổi thì
người quản trị dễ dàng thay đổi PAC script để tham chiếu tới sự thay đổi đó. Các
trình duyệt sẽ nhận về các PAC URL vào mọi thời điểm chúng bắt đầu nhưng sẽ
không xuất hiện trong lúc nó đang chạy trừ trường hợp người dùng yêu cầu reload
lại.
Một đặc điểm khác cũng được coi là cải tiến cho việc cấu hình bằng tay của
đó chính là khả năng tìm lỗi. Nếu proxy đầu tiên bị lỗi thì nó sẽ tự động cố gắng tìm
những cái tiếp theo cho đến cuối cùng của danh danh proxy mà nó nhận được ban
đầu. Một lỗi được tìm thấy khi trình duyệt nhận được lỗi Connection Refused và thời
gian thiết lập kết nối vượt quá thời gian cho phép(time out).
23
Trang 23
Đỗ Hải Nam - KHMT - K46
Đồ án tốt nghiệp
II.7.4 Cách viết một PAC
Tên của hàm để thực hiện một PAC đó là FindProxyForURL() và có hai
tham số url và host. Giá trị trả về chính là chuỗi kí tự có thể để gửi yêu cầu đi. Nó có
thể là một hoặc nhiều dòng cách nhau bằng dấu hai chấm.
PROXY host:port
SOCKS host:port
DIRECT
Ví dụ
"PROXY proxy.web-cache.net:3128; DIRECT;
SOCKS socks.web-cache.net:1080;"
Khi bạn viết FindProxyForURL() thì bạn muốn xây dựng trong nó chức