Bài giảng Lập trình mạng (Phần 1)

MỤC LỤC  
1
2
3
4
CHƢƠNG 1. MỞ ĐẦU  
1.1. Lịch sử phát triển của Internet  
Tiền thân của mạng Internet ngày nay là mạng ARPANET. Vào năm 1960 khi một cơ  
quan của Bộ Quốc phòng Mỹ, cơ quan quản lý dự án nghiên cứu phát triển (ARPA) đề  
nghị liên kết 4 địa điểm đầu tiên vào tháng 7 năm 1968. Bốn địa điểm đầu tiên đó là Viện  
Nghiên cứu Stanford, Trƣờng Đại học tổng hợp California ở Los Angeles, đại học Santa  
Barbara và trƣờng Đại học tổng hợp Utah. Đó là mạng liên khu vực (Wide area Network)  
hay mạng Wan đầu tiên đƣợc xây dựng (mặc dù nó nhỏ hơn nhiều so với các mạng WAN  
ngày nay). Bốn địa điểm trên đƣợc nối thành mạng vào năm 1969 đã đánh dấu sự ra đời  
của Internet ngày nay, mạng đƣợc biết đến dƣới cái tên ARPANET đã hình thành.  
Nếu xét về thời gian thì thuật ngữ Internet xuất hiện lần đầu vào khoảng năm 1974.  
Lúc đó mạng vẫn đƣợc gọi là ARPANET. Năm 1983, giao thức TCP/IP chính thức đƣợc  
coi nhƣ một chuẩn đối với ngành quân sự Mỹ, và tất cả các máy tính nối với ARPANET  
phải sử dụng chuẩn mới này. Năm 1984, ARPANET đã đƣợc chia ra thành hai phần : Phần  
thứ nhất vẫn đƣợc gọi là ARPANET- dành cho việc nghiên cứu và phát triển; phần thứ hai  
đƣợc gọi là MILNET- là mạng dùng cho các mục đích quân sự.  
Giao thức TCP/IP ngày càng thể hiện rõ các điểm mạnh của mình, quan trọng nhất là  
khả năng liên kết các mạng khác với lại nhau một cách dễ dàng. Chính điều này cùng với  
các chính sách mở cửa đã cho phép các mạng dùng cho nghiên cứu và thƣơng mại kết nối  
đƣợc với ARPANET, thúc đẩy việc tạo ra một siêu mạng (SuperNetwork). Nhƣng năm  
1980 ARPANET đƣợc đánh giá là mạng trụ cột của mạng Internet. Mốc lịch sử quan trọng  
của Internet đƣợc chọn vào giữa thập kỷ 1980, khi tổ chức khoa học quốc gia Mỹ NSF  
thành lập mạng liên kết các trung tâm máy tính lớn với nhau gọi là NSFNET. Nhiều doanh  
nghiệp đã chuyển từ ARPANET sang NSFNET và do đó sau gần 20 năm hoạt động,  
ARPANET không còn hiệu quả nữa và đã ngừng hoạt động vảo khoảng năm 1990.  
Sự hình thành mạng backbone của NSFNET và những mạng vùng khác đã tạo ra một  
môi trƣờng thuận lợi cho sự phát triển của Internet. Tới năm 1995, NSFNET thu lại thành  
một mạng nghiên cứu còn Internet thì vẫn tiếp tục phát triển.  
Với khả năng kết nối mở nhƣ thế, Internet đã trở thành một mạng lớn nhất trên thế  
giới, mạng của các mạng. Ngày nay chúng ta thấy Internet xuất hiện trong mọi lĩnh vực :  
thƣơng mại, chínhh trị, quân sự, nghiên cứu, giáo dục, văn hoá, xã hội ..., và cũng từ đó các  
dịch vụ trên Internet không ngừng phát triển tạo ra cho nhân loại một kỷ nguyên mới : Kỷ  
nguyên thƣơng mại điện tử trên Internet.  
Theo các chuyên gia về tin học,Internet đƣợc xem nhƣ là một mạng của các mạng  
(Network of network).Các mạng đƣợc nối vào Internet là mạng cục bộ (LAN—Local Area  
1
   
Network , kết nối máy tính trong phạm vi hẹp, thƣờng đƣợc sử dụng trong nội bộ một cơ  
quan hay tổ chức), mạng địa phƣơng (MAN—Metropolitan Area Network, kết nối máy  
tính trong phạm vi một thành phố), mạng miền rộng (WAN—Wide AreaNetwork, kết nối  
trong phạm vi một quốc gia hay nhiều quốc gia trong châu lục). Trên Internet thông tin  
đƣợc cung cấp qua dịch vụ World Wide Web (mạng toàn cầu) viết tắt là www hay Web;  
Web gồm có nhiều trang, gọi là các trang web (web site), mỗi trang chứa thông tin về một  
chủ đề riêng biệt nào đó. Internet chứa một khối lƣợng thông tin khổng lồ cho phép các  
máy nối mạng có thể truy nhập và khai thác các cơ sở dữ liệu thuộc nhiều lĩnh vực. Ngoài  
ra một thuật ngữ khác là Intranet cũng hay đƣợc sử dụng với nghĩa là một mạng máy tính  
đƣợc thiết lập trong phạm vi của một cơ quan nhằm chia sẻ thông tin qua việc sử dụng  
Internet.Intranet có thể bị ngăn cách với Internet bằng một bức tƣờng lửa (firewall);  
Firewall là một máy chủ đứng chắn giữa Intranet và thế giới bên ngoài, theo dõi thông tin  
ra vào, ngăn cản sự phá rối, đánh cắp tài liệu mật hay tìm đến những website bị cấm trên  
Internet.  
1.2. Tổ chức của Internet  
Internet là một liên mạng, tức là mạng của các mạng con. Vậy đầu tiên là vấn đề kết  
nối hai mạng con. Để kết nối hai mạng con với nhau, có hai vấn đề cần giải quyết. Về mặt  
vật lý, hai mạng con chỉ có thể kết nối với nhau khi có một máy tính có thể kết nối với cả  
hai mạng này. Việc kết nối đơn thuần về vậy lý chƣa thể làm cho hai mạng con có thể trao  
đổi thông tin với nhau. Vậy vấn đề thứ hai là máy kết nối đƣợc về mặt vật lý với hai mạng  
con phải hiểu đƣợc cả hai giao thức truyền tin đƣợc sử dụng trên hai mạng con này và các  
gói thông tin của hai mạng con sẽ đƣợc gửi qua nhau thông qua đó. Máy tính này đƣợc gọi  
là internet gateway hay router  
Khi kết nối đã trở nên phức tạp hơn, các máy gateway cần phải biết về sơ đồ kiến trúc  
của các mạng kết nối. Ví dụ trong hình sau đây cho thấy nhiều mạng đƣợc kết nối bằng 2  
router.  
Nhƣ vậy, router R1 phải chuyển tất cả các gói thông tin đến một máy nằm ở mạng  
Net 2 hoặc Net 3. Với kích thƣớc lớn nhƣ mạng Internet, việc các routers làm sao có thể  
quyết định về việc chuyển các gói thông tin cho các máy trong các mạng sẽ trở nên phức  
tạp hơn.  
2
 
Để các routers có thể thực hiện đƣợc công việc chuyển một số lớn các gói thông tin  
thuộc các mạng khác nhau ngƣời ta đề ra quy tắc là: Các routers chuyển các gói thông tin  
dựa trên địa chỉ mạng của nơi đến, chứ không phải dựa trên địa chỉ của máy máy nhận .  
Nhƣ vậy, dựa trên địa chỉ mạng nên tổng số thông tin mà router phải lƣu giữ về sơ đồ  
kiến trúc mạng sẽ tuân theo số mạng trên Internet chứ không phải là số máy trên Internet.  
Trên Internet, tất cả các mạng đều có quyền bình đẳng cho dù chúng có tổ chức hay  
số lƣợng máy là rất chênh lệch nhau. Giao thức TCP/IP của Internet hoạt động tuân theo  
quan điểm sau:  
Tất các các mạng con trong Internet nhƣ là Ethernet, một mạng diện rộng nhƣ  
NSFNET back bone hay một liên kết điểm - điểm giữa hai máy duy nhất đều đƣợc coi nhƣ  
là một mạng.  
Điều này xuất phát từ quan điểm đầu tiên khi thiết kế giao thức TCP/IP là để có thể  
liên kết giữa các mạng có kiến trúc hoàn toàn khác nhau, khái niệm "mạng" đối với TCP/IP  
bị ẩn đi phần kiến trúc vật lý của mạng. Đây chính là điểm giúp cho TCP/IP tỏ ra rất mạnh.  
Nhƣ vậy, ngƣời dùng trong Internet hình dung Internet làm một mạng thống nhất và bất kỳ  
hai máy nào trên Internet đều đƣợc nối với nhau thông qua một mạng duy nhất.  
Hình vẽ sau mô tả kiến trúc tổng thể của Internet.  
3
1.3. Quản lý Internet  
Thực chất Internet không thuộc quyền quản lý của bất kỳ ai. Nó không có giám đốc,  
không có ban quản trị. Chúng ta có thể tham gia hoặc không tham gia vào Internet, đó là  
quyền của mỗi thành viên. Mỗi mạng thành phần sẽ có một giám đốc hay chủ tịch, một cơ  
quan chính phủ hoặc một hãng điều hành, nhƣng không có một tổ chức nào chịu trách  
nhiệm về toàn bộ Internet.  
Hiệp hội Internet (Internet Socity - ISOC) là một hiệp hội tự nguyện có mục đích  
phát triển khả năng trao đổi thông tin dựa vào công nghệ Internet. Hiệp hội bầu ra Internet  
Architecture Board IAB (Uỷ ban kiến trúc mạng). Ban này có trách nhiệm đƣa ra các  
hƣớng dẫn về kỹ thuật cũng nhƣ phƣơng hƣớng để phát triển Internet. IAB họp định kỳ để  
bàn về các vấn đề nhƣ các chuẩn, cách phân chia tài nguyên, địa chỉ ...  
Mọi ngƣời trên Internet thể hiện nguyện vọng của mình thông qua uỷ ban kỹ thuật  
Internet (Internet Engineering Task Force ƣ IETF). IETF cũng là một tổ chức tự nguyện,  
có mục đích thảo luận về các vấn đề kỹ thuật và sự hoạt động của Internet. Nếu một vấn đề  
đƣợc coi trọng, IETF lập một nhóm kỹ thuật để nghiên cứu vấn đề này gọi là Nhóm đặc  
trách nghiên cứu phát triển Internet (Internet Researching Task Force) viết tắt là IRTF.  
Trung tâm thông tin mạng ( Network Information Center - NIC ) gồm có nhiều trung  
tâm khu vực nhƣ APNIC - khu vực Châu Á - Thái Bình Dƣơng. NIC chịu trách nhiệm  
phân tên và địa chỉ cho các mạng máy tính nối vào Internet.  
1.4. Một số dịch vụ cơ bản trên Internet  
1.4.1. Giao thức SMTP, POP3  
̉
Chuân Internet cho E-mail la Simple Mail Transport Protocol (SMTP). SMTP la nghi  
̀
̀
̣
thƣc cấp ƣng dung (application-level) dùng để điều khiển các dịch vụ thông điệp thông qua  
́
́
̉
các mạng TCP/IP. SMTP đƣơc  
Bên canh SMTP, hai nghi thƣc khac dung đê phân phat mail đê  
MIME (Multipurpose Internet Mail Extensions) bô sung thêm cho SMTP đê cho phep  
̣
noi rõ trong RFC 321 và 822. SMTP sƣ dun  
̣
g công TCP 25.  
̉
́
̉
̣
́n client la POP3 và IMAP4.  
́
́
̀
́
̀
̉
̉
́
gă  
́n kem cac thông đi ệp đa phƣơng tiện (không phai la văn ban ) bên trong thông điêp  
̣
̉ ̉  
̀ ́ ̀  
̉
SMTP chuân . MIME sƣ dun  
̣
g ma hoa Base 64 để chuyển các file phức tạp sang ASCII .  
̃
́
̉
̣
MIME đƣơc mô ta trong cac RFC 2045-2049.  
̉
́
Các lệnh SMTP thƣꢀng sử dụng:  
Lênh  
Ý nghĩa  
h danh may gƣi vơi may nhân  
̉
HELO  
Sƣ dun  
̣
g đê đin  
̣
̣
. Lên  
̣
h nay phai kem  
̉
̀ ̀  
̉
̉
́
́
́
vơi tên may tinh cua may gƣi . Trong nghi thƣc mơ rôn  
̣
g (ESMTP), lênh  
̣
̉
̉
̉
́
́
́
́
́
̣
EHLO thay cho lênh nay.  
̀
MAIL - Khơi tao  
̣
môt  
̣
phiên gƣi mail . Đối số bao gồm trƣờng  
̉
̉
4
     
―FROM‖ va địa chỉ email của ngƣời gửi.  
̀
RCPT  
̣ ̣ ̣ ̣  
Đinh danh ngƣơi nhân thông điêp . Đi kem vơi ―TO‖ va đia chi email  
̀ ̀ ́ ̀  
̉
ngƣơi nhân  
̣
.
̀
DATA Thông bao bă  
́
t đâ  
̀
u gƣi dƣ liêu  
̣
thƣc  
ng môt  
Hủy (reset) phiên gƣi mail hiên hanh  
̣
sƣ  
̣
cua mail  
(phâ  
̀n thân cua  
̉
̉
̃
̉
́
message). Dƣ liêu  
̣
kê  
́
t thuc bă  
̀
̣
dong trô  
́
ng va môt  
̣
dâu chấm (.).  
́
̃
́
̀
̀
RSET  
VRFY Sƣ dun  
̣
̉
̀
̉
̣
g đê xac nhân  
̣
môt  
̣
t cua ―no operation‖, lênh nay không lam gi ca  
̉
̀ ̀  
̀
̣
ngƣơi nhân  
̣
mail  
̉
́
̀
NOOP Viê  
́
t tă  
́
̉
QUIT  
SEND  
HELP  
Đong kê  
́
t nô  
́i  
́
Báo cho host nhận biết là message phai đƣơc  
̣
̣
gƣi đến môt terminal khac  
̉
́
̉
̣ ̣  
Yêu cầu thông tin trơ giup tƣ host nhân  
́ ̀  
Ví dụ về truyền thông của SMTP:  
Sau khi kết nối giữa ngƣời gửi (trình khách) và ngƣời nhận (trình chủ) đã đƣợc thiết  
lập, những việc làm sau đây là những việc hoàn toàn hợp lệ, đối với một phiên giao dịch  
dùng giao thức SMTP. Trong cuộc hội thoại dƣới đây, những gì trình khách gửi đƣợc đánh  
dấu bằng chữ C: đứng trƣớc, còn những gì trình chủ gửi đƣợc đánh dấu bằng S:. Các hệ  
thống máy tính đều có thể thiết lập một kết nối, bằng cách dùng những dòng lệnh của phần  
mềm telnet, trên một máy khách. Chẳng hạn:  
khởi động một kết nối SMTP từ máy gửi thông điệp đến máy chủ www.example.com.  
C: HELO mydomain.com  
S: 250 Hello mydomain.com  
C: MAIL FROM:<[email protected]>  
S: 250 Ok  
C: RCPT TO:<[email protected]>  
S: 250 Ok  
C: DATA  
S: 354 End data with <CR><LF>.<CR><LF>  
C: Subject: test message  
C: From: [email protected]  
C: Hello,  
C: This is a test.  
5
C: Goodbye.  
S: 250 Ok: queued as 12345  
C: QUIT  
S: 221 Bye  
Các mꢁ trꢂng thái SMTP  
Khi môt  
̣
sending host gƣi môt  
̣
lên  
̣
h SMTP đê  
́
n receiving host , host nhân  
̣
tra vê  
̀
môt  
̣
̉
̉
mã trạng thái cho máy gửi biết là điều gì đã xảy ra . Danh sach bên dƣơi la code đƣơc  
̣
nhom  
́
́
̀
́
̣
theo số đầu tiên (5xx la lôi, 4xx lôi tam thơi, 1xx-3xx thanh công):  
̃ ̃  
̀ ̀ ̀  
Mã  
Ý nghĩa  
211  
214  
220  
221  
250  
251  
354  
421  
450  
451  
452  
500  
501  
502  
503  
504  
550  
551  
552  
553  
554  
Trả lời trợ giúp, trạng thái hệ thống  
Help message  
Dịch vụ sẳn sàng (Service ready)  
Đong kê  
́
t nô  
Hành động yêu cầu đƣợc chấp nhận  
̉
̣
Ngƣơi sƣ dung không ơ mang cuc bô, chuyên đến  
́i  
́
̣
̣
̣
̉
̉
̀
̣
Bắt đầu nhâp mail  
Dịch vụ không sẵn sang  
̀
Hành động không chấp nhận, mailbox bân  
Hành động bị hủy, lôi cuc bô  
Hành động không chấp nhận, thiê  
Không hiểu lệnh hoặc lỗi cú pháp  
Lôi cu phap ơ tham sô  
Lên  
Sai thƣ tƣ  
̣
̃
̣
̣
́
u không gian lƣu trƣ  
̃
̃
́
̉
́
́
̣
h không đƣơc  
̣
cac lênh  
̣ ̣  
hỗ trơ  
̣
́
́
̣ ̣ ̣  
Tham số cua lênh không đƣơc hỗ trơ  
̉
Hành động không chấp nhận, mailbox không co.  
́
Không phai la ngƣơi sƣ dụng cục bộ  
̉
̉
̀
̀
̣ ̣  
Hủy lênh do vƣơt qua không gian lƣu trƣ  
́
̃
Hành động không chấp nhận, tên mailbox không cho phep  
́
̣ ̣  
Phiên dao dich bi lôi  
̃
Post Office Protocol (POP)  
POP cho phep cac mail client (UA – User Agent) ở máy cục bộ kết nô  
́
i vao pop server  
̀
́
́
(MTA– Message Transfer Agent) và lấy mail về máy tính cục bộ nơi mà ngƣời sử dụng có  
6
̉
thê đoc  
câp trong POP2 vào năm 1988. Chuân hiên  
POP3 UA kêt nôi vơi TCP /IP đên server (công chuân 110). UA nhâp  
đăng nhâp (username) và mật mã (password). Sau khi đăng nhâp , UA sƣ dun  
POP3 để lấy và xóa mail.  
POP3 là nghi thức chỉ để nhân  
POP3 đƣơc mô ta trong RFC 1939.  
̣
va tra lơi cac message . POP đƣơc  
̣
đin  
̣
h nghia đâ  
̀
u tiên vao năm 1984, đƣơc  
̣
nâng  
tên  
̉
̀
̀
́
̀
̃
̉
́
̣
hanh la POP3.  
̀
̀
̉
̉
́
́
́
̣ ̣  
vao môt  
̀
́
̣
̣
̣ ̣  
g cac lênh  
́
̉
̉
̣
mail. POP3 UA sƣ dun  
̣
g SMTP đê gƣi mail đê  
́
n server.  
̉
̉
̣
̉
Bảng sau đây mô tả các lệnh của POP3  
Lệnh  
Ý nghĩa  
USER  
PASS  
STAT  
Chỉ rõ username  
Chỉ rõ password  
Yêu câ  
các message)  
Liêt kê cac message  
Lây môt  
Xóa một message cụ thể  
Không lam gi ca  
̣ ̣  
̀u trang thai cua mailbox (số lƣơng message, kích thƣớc của  
̉
́
LIST  
̣
́
̉
̣ ̣  
message cu thê  
RETR  
DELE  
NOOP  
RSET  
QUIT  
́
̉
̀
̀
Hủy hành động của các lệnh DELE (rollback)  
̉
̣
Chấp nhân cac thay đôi va cắt kết nối  
́ ̀  
Internet Mail Access Protocol (IMAP)  
POP3 là một nghi thức đơn giản. IMAP4 là môt  
năng hơn. IMAP4 đƣơc mô ta trong RFC 2060. IMAP4 sƣ dun  
Các lệnh IMAP4  
Lệnh  
CAPABILITY  
AUTHENTICATE Chỉ rõ cơ chế đăng nhập  
̉
̣
chuân mail khac co h ỗ trơ nhiều tinh  
́ ́  
́
̣
̉
̣
g công TCP 143.  
̣
̉
̉
Ý nghĩa  
danh sach cac chƣc năng co hô trơ  
̃
̣
Yêu câ  
̀
u môt  
̣
́
́
́
́
LOGIN  
Cung cấp username va password  
̀
SELECT  
Chỉ rõ mailbox  
EXAMINE  
CREATE  
Chỉ định mailbox ở chế độ chỉ đọc  
Tạo một mailbox  
DELETE  
Xóa một mailbox  
RENAME  
SUBSCRIBE  
UNSUBSCRIBE  
Đổi tên một mailbox  
̣
Thêm môt mailbox vao danh sach cho phep  
̀ ́ ́  
Loại mailbox ra khỏi danh sách cho phép  
7
LIST  
Liêt  
Liêt  
Yêu câ  
Thêm môt  
Yêu câu môt  
Châp nhân cac thao tac xoa va đong mailbox  
Châp nhân  
Tìm trong mailbox các message thỏa điều kiện cụ thể  
̣
kê cac mailbox  
́
LSUB  
̣
kê cac mailbox cho phep  
́ ́  
STATUS  
APPEND  
CHECK  
CLOSE  
EXPUNGE  
SEARCH  
FETCH  
STORE  
COPY  
̀
u tran  
̣
g thai cua mailbox  
̉
́
̣
message vao mailbox  
̀
̀
̣
mailbox checkpoint  
́
̣
́
́
́
̀
́
́
̣
cac thao tac xoa  
́ ́ ́  
̉
̣ ̣ ̣  
́y môt phần cua môt message cu thê  
̉
Lâ  
Thay đôi dƣ liêu  
̉
̉
̣
cua message cu  
̣
thê  
Chép message sang một mailbox khác  
Không lam gi ca  
̃
̉
NOOP  
̉
̀
̀
LOGOUT  
Đong kết nối  
́
Các lệnh RFC thực sự không phải là các lệnh ngôn ngữ lập trình  
dùng để gửi đến Server qua Socket đƣợc tạo với cổng tƣơng ứng .Ví dụ, nê  
mail, tạo một socket TCP cổng 25 vơi Server (ví dụ, Post Office) sau đo lân lƣơt  
ENTER) và nhận các trả lời từ server để gửi mail.  
, nó là các chuỗi  
u muôn gƣi  
gƣi cac  
́
́
̉
̀
̣
̉
́
́
́
̣ ̣ ̣  
lênh RFC (kết thuc lênh la ky tƣ  
́ ̀ ́  
Cách nhanh nhất để thử các lệnh RFC là dùng chƣơng trình Telnet.  
Ví dụ để gửi một mail, làm nhƣ sau:  
Ở Command Prompt go lên  
̣
h: Telnet mail.myserver.com 25  
̃
Sau đo go cac lên  
̣
h nhƣ trong vi du đa nêu phân trƣơc.  
̣
̀
́
̃
́
̃
́
́
̉
̣
́u viết môt Windows Application thi co thê dung MAPI control cua Windows , nếu  
̉
́ ̀  
̀
Nê  
́t (asp) Webmail co thê dung CDO , các control này giúp cho ngƣời lập trình không cần  
̉
viê  
biêt RFC nhƣng vân  
̉
̣
thƣc va cac thuôc tinh cua chung . Nhƣng cac control trên đều dung cac lênh RFC đê lam  
̀ ́ ̀  
́
̀
́
̃
co thê viế t đƣơc cac ƣng dung mail bằng cach sƣ dung cac phƣơng  
̉
̣ ̣ ̣  
̉
́ ́ ́ ́ ́  
̣
̉
́
̀
́
́
́
́
viêc  
̣
gƣi va nhân  
̣
mail thƣc  
̣
sƣ.  
g bă  
̣
̀u nhƣ la moi thƣ), phải tìm hiểu nhiều chuẩn khác (MIME), các kiểu mã hóa  
̀
̣
̉
̀
Viêc  
code nhiêu (hâ  
(Base64, unicode ,...), nê  
̣
viê  
́
t môt ƣng dun  
̣
̣
̣ ̣ ̣  
̀ng cach sƣ dung trƣc tiếp RFC đoi hoi ngƣơi lâp trinh phai  
̉ ̉ ̉  
́ ̀ ̀  
̀
́
̀
́
̉
u viết Webmail phai tim hiêu thêm upload file (để attach), cách tổ  
̉
̀
́
̉
chƣc trên Webserver đê quan ly mail đoc ̀i va chƣa đoc, hoăc tao thêm cac thƣ muc.  
̣
rô  
̣
̣
̣
̣
̉
́
́
̀
́
1.4.2. Giao thức truyền file - FTP (File Transfer Protocol)  
Dịch vụ FTP dùng để truyền tải các file dữ liệu giữa các host trên Internet. Công cụ  
để thực hiện dịch vụ truyền file là chƣơng trình ftp, nó sử dụng một giao thức của Internet  
là giao thức FTP (File Transfer Protocol). Nhƣ tên của giao thức đã nói, công việc của giao  
8
 
thức này là thực hiện chuyển các file từ một máy tính này sang một máy tính khác. Giao  
thức này cho phép truyền file không phụ thuộc vào vấn đề vị trí địa lý hay môi trƣờng hệ  
điều hành của hai máy. Điều duy nhất cần thiết là cả hai máy đều có phần mềm hiểu đƣợc  
giao thức FTP. ftp là một phần mềm nhƣ vậy trên hệ điều hành Unix.  
Muốn sử dụng dịch vụ này trƣớc hết chúng ta phải có một đăng ký ngƣời dùng ở  
máy remote và phải có một password tƣơng ứng. Việc này sẽ giảm số ngƣời đƣợc phép  
truy cập và cập nhập các file trên hệ thống ở xa. Một số máy chủ trên Internet cho phép  
chúng ta login với một account là anonymous, và password là địa chỉ e-mail của chúng ta,  
nhƣng tất nhiên, khi đó chúng ta chỉ có một số quyền hạn chế với hệ thông file ở máy  
remote.  
Để phiên làm việc FTP thực hiện đƣợc, ta cũng cần 2 phần mềm. Một là ứng dụng  
FTP client chạy trên máy của ngƣời dùng, cho phép ta gửi các lệnh tới FTP host. Hai là  
FTP server chạy trên máy chủ ở xa, dùng để xử lý các lệnh FTP của ngƣời dùng và tƣơng  
tác với hệ thống file trên host mà nó đang chạy.  
FTP cho phép chúng ta tìm kiếm thông tin trên server bằng các lệnh thông dụng nhƣ  
ls hay dir. Khi ngƣời dùng đánh các lệnh này, ftp sẽ chuyển lên cho server, tại server sẽ  
thực hiện lệnh này và gửi về thông tin danh sách các file tìm đƣợc. Ngƣời sử dụng sau khi  
nhận đƣợc các thông tin này sẽ gửi yêu cầu về một file nào đó bằng lệnh: get  
source_file_name destination_file_name. Còn khi muốn truyền một file lên máy ở xa,  
ngƣời sử dụng dùng lệnh: put source_file_name destination_file_name. Để một lúc có thể  
tải về hoặc truyền lên máy ở xa nhiều file, ngƣời ta có thể dùng các lệnh mget và mput và  
sử dụng các ký tự wild cast nhƣ trong môi trƣờng DOS. Ví dụ sau sẽ tải các file có tên là  
*.dat:  
mget *.dat  
Sau đây là một ví dụ về một giao dịch truyền file:  
# ftp ftp.vnd.net kết nối với máy chủ  
Connected to ftp.vnd.net  
220 FTP Server ready.  
name: anonymous gõ user name để login  
331 send your e-mail as password  
Password: password không hiển thị  
230 User guest logged in. Access restricted is apply  
ftp>dir lệnh hiển thị danh sách các file  
sendmail-7.5 tcp-wrapper innd w project.dat  
ftp>get project.dat tải file về local  
ftp>quit thoát ra khỏi dịch vụ 221 Goodbye.  
9
Để sử dụng dịch vụ FTP, ngƣời sử dụng có thể chạy phần mềm FTP client ví dụ nhƣ:  
WS_FTP hay CUTFTP đây là các chƣơng trình có giao diện đồ họa khá thân thiện với  
ngƣời sử dụng. Chúng ta có thể download các phần mềm này từ Internet để cài lên máy  
tính của chúng ta.  
1.4.3. Dịch vụ mꢂng thông tin toàn cầu WWW (World Wide Web)  
Đây là dịch vụ mới và mạnh nhất trên Internet. WWW đƣợc xây dựng dựa trên một  
kỹ thuật có tên gọi là hypertext (siêu văn bản). Hypertext là kỹ thuật trình bày thông tin  
trên một trang trong đó có một số từ có thể "nở" ra thành một trang thông tin mới có nội  
dung đầy đủ hơn. Trên cùng một trang thông tin có thể có nhiều kiểu dữ liệu khác nhau  
nhƣ TEXT, ảnh hay âm thanh. Để xây dựng các trang dữ liệu với các kiểu dữ liệu khác  
nhau nhƣ vậy, WWW sử dụng một ngôn ngữ có tên là HTML (HyperText Markup  
Language). Ngôn ngữ HTML đƣợc xây dựng trên cơ sở ngôn ngữ SGML (Standard  
General Markup Language). HTML cho phép định dạng các trang thông tin, cho phép  
thông tin đƣợc kết nối với nhau.  
Trên các trang thông tin có một số từ có thể "nở" ra, mỗi từ này thực chất đều có  
một liên kết với các thông tin khác. Để thực hiện việc liên kết các tài nguyên này, WWW  
sử dụng phƣơng pháp có tên là URL (Universal Resource Locator). Với URL, WWW cũng  
có thể truy nhập tới các tài nguyên thông tin từ các dịch vụ khác nhau nhƣ FTP, Gopher,  
Wais... trên các server khác nhau.  
Ngƣời dùng sử dụng một phần mềm Web Browser để xem thông tin trên các máy  
chủ WWW. Tại server phải có một phần mềm Web server. Phần mềm này thực hiện nhận  
các yêu cầu từ Web Browser gửi lên và thực hiện yêu cầu đó.  
Với sự bùng nổ dịch vụ WWW, dịch vụ này càng ngày càng đƣợc mở rộng và đƣa  
thêm nhiều kỹ thuật tiên tiến nhằm tăng khả năng biểu đạt thông tin cho ngƣời sử dụng.  
Một số công nghệ mới đƣợc hình thành nhƣ Active X, Java cho phép tạo các trang Web  
động thực sự mở ra một hƣớng phát triển rất lớn cho dịch vụ này.  
1.4.4. Giao thức HTTP (HyperText Transfer Protocol)  
HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu văn  
bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác định cách các thông  
điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các file multimedia khác) đƣợc  
định dạng và truyền tải ra sao, và những hành động nào mà các Web server (máy chủ Web)  
và các trình duyệt Web (browser) phải làm để đáp ứng các lệnh rất đa dạng. Chẳng hạn,  
khi chúng ta gõ một địa chỉ Web URL vào trình duyệt Web, một lệnh HTTP sẽ đƣợc gửi  
tới Web server để ra lệnh và hƣớng dẫn nó tìm đúng trang Web đƣợc yêu cầu và kéo về mở  
trên trình duyệt Web. Nói nôm na hơn, HTTP là giao thức truyền tải các file từ một Web  
10  
   
server vào một trình duyệt Web để ngƣời dùng có thể xem một trang Web đang hiện diện  
trên Internet.HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền  
tảng cho Internet).  
Có một tiêu chuẩn chính khác cũng điều khiển cách thức World Wide Web làm việc  
là HTML (HyperText Markup Language, ngôn ngữ đánh dấu siêu văn bản), có chức năng  
quản lý cách thức mà các trang Web đƣợc định dạng và hiển thị.  
Ngƣời ta gọi HTTP là một giao thức ―phi trạng thái‖ (stateless) bởi vì mỗi lệnh đều  
đƣợc thực thi một cách độc lập, lệnh sau không biết bất cứ điều gì về các lệnh đã đến trƣớc  
mình. Đây chính là một hạn chế, khiếm khuyết của HTTP. Nó là nguyên nhân chính của  
tình trạng rất khó thực thi các trang Web có khả năng phản ứng thông minh đối với lệnh  
mà ngƣời dùng nạp vào. Và sự hạn chế này đang đƣợc các nhà phát triển khắc phục trong  
các công nghệ mới nhƣ ActiveX, Java, JavaScript và cookies.  
Phiên bản mới nhất của HTTP là 1.1. So với phiên bản nguyên thủy (HTTP 1.0),  
phiên bản mới này truyền tải các trang Web nhanh hơn và giảm tình trạng tắc nghẽn giao  
thông Web.  
1.4.5. Giao thức Chat  
Internet Relay Chat (IRC - Nói chuyện qua Internet) là phƣơng tiện "thời gian thực",  
nghĩa là những từ chúng ta gõ vào sẽ xuất hiện gần nhƣ tức thời trên màn hình của ngƣời  
nhận và trả lời của họ của xuất hiện trên màn hình của chúng ta nhƣ vậy. Thay vì phải chờ  
vài phút hay vài ngày đối với thông điệp, chúng ta có thể trao đổi tức thời với tốc độ gõ  
chữ của chúng ta. IRC có thể mang tính cá nhân nhƣ e-mail, ngƣời lạ không khám phá  
đƣợc nội dung trao đổi của chúng ta, hoặc chúng ta có thể tạo "kênh mở" cho những ai  
chúng ta muốn cùng tham gia. Cũng không hiếm các kênh IRC có từ 10 ngƣời trở lên tham  
gia hội hoại. Ngoài việc trao đổi lời, ngƣời dùng IRC còn có thể gửi file cho nhau nhƣ hình  
ảnh, chƣơng trình, tài liệu hay những thứ khác.  
Cũng nhƣ các dịch vụ khác của Internet, hạm vi hội thoại trên các kênh IRC là rất  
rộng, có thể bao gồm cả những chủ đề không phù hợp với trẻ em, vì vậy cần có biện pháp  
giám sát những trẻ em muốn sử dụng dịch vụ này  
1.4.6. URL (Uniform Resource Locator)  
URL Là chữ viết tắt của "Uniform Resource Locator", dùng để chỉ tài nguyên trên  
Internet. Sức mạnh của web là khả năng tạo ra những liên kết siêu văn bản đến các thông  
tin liên quan. Những thông tin này có thì là những trang web khác, những hình ảnh, âm  
thanh... Những liên kết này thƣờng đƣợc biểu diễn bằng những chữ màu xanh có gạch dƣới  
đƣợc gọi là anchor. Các URL có thể đƣợc truy xuất thông qua một trình duyệt (Browser)  
nhƣ IE hay Netscape.  
11  
   
URL đƣợc dùng để xác định địa chỉ của một tài liệu (hoặc dữ liệu khác) trên World  
Wide Web. Một địa chỉ đầy đủ sẽ nhƣ sau:  
Scheme://host.domain:port/path/filename  
Scheme: Là một trong các giao thức Internet, gồm http, ftp, gopher, news (USENET  
news), nntp (Network News Transfer Protocol), Telnet và WAIS (Wide Area Information  
Servers), và những giao thức khác. Ðịa chỉ dƣới đây dùng giao thức http:  
Domain: xác định tên miền của trang web trên Internet ví dụ nhƣ goccongnghe.net  
Host: xác định tên miền của host. Nếu đƣợc bỏ qua, thì mặc định của host cho http là  
www.  
Port: xác định port number tại host. Số cổng thƣờng đƣợc bỏ qua. Số cổng mặc định  
của http là 80.  
Path: xác định đƣờng dẫn trên server. Nếu đƣờng dẫn đƣợc bỏ qua, thì tài liệu phải  
đƣợc định vị tại thƣ mục gốc của trang web.  
Filename: xác định tên của tài liệu. Tên mặc định của một tài liệu có thể là  
default.asp hoặc index.html hoặc một cái gì đó phụ thuộc vào những cài đặt của server.  
1.4.7. Web Browser.  
Một web browser là một phần mềm ứng dụng để truy xuất, trình diễn và chuyển các  
nguồn thông tin (information resource) trên mạng hệ thống mạng toàn cầu (World Wide  
Web). Một nguồn thông tin đƣợc nhận dạng bởi một Uniform Resource Identifier (URI) và  
có thể là một trang web, phim - video, hình ảnh (images) hoặc các mẫu thông tin khác.  
Hinh 1.1. Trình duyệt web để xem thông tin một website  
12  
 
Mặc dù các trình duyệt với mục đích là để truy cập vào hệ thống mạng toàn cầu, các  
trình duyệt còn đƣợc sử dụng để truy cập các thông tin đƣợc cung cấp bởi các web servers  
(máy chủ web) trong hệ thống mạng riêng hoặc các tài liệu (files) đến các hệ thống file  
(file system). Hoặc cũng đƣợc dùng để tiết kiệm tài nguyên thông tin cho các hệ thống lƣu  
trữ file.  
Lịch sử về web browser  
Lịch sử của các trình duyệt Web bắt đầu vào cuối thập niên 1980, khi một loạt các  
công nghệ đặt nền móng cho các trình duyệt Web đầu tiên, WorldWideWeb, do Tim  
Berners-Lee vào năm 1991. Sự phát triển này dựa trên các công nghệ phần mềm và phần  
cứng hiện có, ngoài ra cũng mở ra nhiều công nghệ mới bắt đầu tƣ đây.  
Ted Nelson và Douglas Engelbart phát triển khái niệm siêu văn bản trƣớc khi  
Berners-Lee và CERN khá lâu. Web browser đã trở thành cốt lõi của World Wide Web.  
Berners-Lee thừa nhận sự đóng góp của Engelbart.  
Việc giới thiệu trình duyệt Mosaic NCSA Web vào năm 1993 - một trong những trình  
duyệt web với giao diện đồ họa đầu tiên - đã dẫn tới sự bùng nổ trong việc dùng web. Marc  
Andreessen, ngƣời lãnh đạo của đội Mosaic tại NCSA, sớm bắt đầu công ty riêng của  
mình, đặt tên là Netscape, và phát hành các phiên bản Mosaic Netscape Navigator vào năm  
1994, và sau đó nhanh chóng trở thành trình duyệt phổ biến nhất thế giới, chiếm 90% của  
tất cả các sử dụng Web đỉnh cao của nó.  
Hình 1.2. Trình duyệt web Netscape  
Microsoft đã đáp trả bằng trình duyệt Internet Explorer của mình trong năm 1995  
(cũng bị ảnh hƣởng nhiều từ Mosaic), và đầu cuộc chiến trình duyệt đầu tiên. Bằng việc kết  
hợp Internet Explorer với Windows, Microsoft đã có thể tận dụng ƣu thế của nó trong thị  
trƣờng hệ điều hành để quản lý thị trƣờng trình duyệt Web; Internet Explorer sử dụng đạt  
vị trí trên 95% ngƣời dùng vào năm 2002. Internet Explorer chiếm 60% ngƣời sử dụng  
trình duyệt vào Tháng Tƣ năm 2010 theo thống kê của Net Applications.  
13  
Hình 1.3. Trình duyệt web Internet Explorer của Microsoft (IE7)  
Opera đầu tiên xuất hiện vào năm 1996; mặc dù nó đã không bao giờ đạt đƣợc sử  
dụng rộng rãi, chiếm 2% thị phần trình duyệt vào tháng tƣ năm 2010, tuy nhiên Opera  
chiếm một phần đáng kể của thị trƣờng đang phát triển nhanh là trình duyệt Web điện thoại  
di động, Oepra đƣợc cài đặt sẵn trên trên 40.000.000 điện thoại. Opera cũng có sẵn trên  
một số hệ thống nhúng khác, bao gồm video game console Wii của Nintendo.  
Hình 1.4. Trình duyệt web Opera 11  
Năm 1998, Netscape triển khai Mozilla Foundation trong một nỗ lực để sản xuất một  
trình duyệt cạnh tranh bằng cách sử dụng mô hình phần mềm mã nguồn mở. Đó là trình  
duyệt sau này phát triển thành Firefox, sau đó thì trình duyệt này đƣợc phát triển khá tốt  
trong khi vẫn còn trong giai đoạn beta, ngay sau khi phát hành Firefox 1.0 vào cuối năm  
2004, Firefox (mọi phiên bản) đã chiếm 7,4% thị phần sử dụng trình duyệt. Và đến tháng  
tƣ năm 2010, Firefox đã có một thị phần 25%.  
14  
Hình 1.5. Trình duyệt web Firefox  
Safari của Apple đã phát hành phiên bản beta đầu tiên vào tháng một năm 2003; vào  
tháng 10 năm 2009, đã chi phối thị phần của trình duyệt web dựa trên việc phát triển từ các  
ứng dụng của Apple, chiếm dƣới 5% thị trƣờng trình duyệt toàn bộ vào tháng 4 năm 2010.  
Nó đƣợc xem nhƣ là công cụ cho web (còn đƣợc gọi là WebKit) để trình diễn các tính  
năng và là nền tảng đƣợc ứng dụng nhiều trên thiết bị di động, bao gồm cả hệ điều hành  
iPhone, Google Android, Nokia S60 và Palm WebOS.  
Vào tháng 9 năm 2008, Google bắt đầu nhảy vào cuộc chiến các trình duyệt bằng  
trình duyệt web Google Chrome. Đến tháng 4 năm 2010, Google Chrome đã chiếm 7% thị  
phần.  
Hình 1.6. Trình duyệt web Safari của Apple  
Chức năng  
15  
Mục đích chính của một trình duyệt web là để mang lại nguồn thông tin cho ngƣời  
dùng. Quá trình này bắt đầu khi một ngƣời sử dụng nhập vào (URI) hay tạm gọi là một  
đƣờng dẫn, Ví dụ nhƣ http://www.khkt.net/. Các tiền tố của URI sẽ xác định cho phƣơng  
thức truy cập và dữ liệu nhận đƣợc sẽ đƣợc biên dịch nhƣ thế nào. Các loại URI thông  
dụng nhất bắt đầu với http: định một nguồn tài nguyên để đƣợc lấy dựa trên Hypertext  
Transfer Protocol (HTTP) (tôi tạm gọi là giao thức truyền dữ liệu cho các siêu văn bản).  
Nhiều trình duyệt cũng hỗ trợ một loạt các tiền tố khác, chẳng hạn nhƣ https: (cũng tƣơng  
tự nhƣ HTTP nhƣng dữ liệu đƣợc mã hóa và bảo mật hơn) hay ftp: cho File Transfer  
Protocol (giao thức truyền tải file), và file: cho các tập tin lƣu trữ nội bộ. Các trình duyệt  
web có thể không trực tiếp xử lý mà thƣờng chuyển qua các ứng dụng khác xử lý. Ví dụ,  
mailto: URI thƣờng sẽ đƣợc chuyển qua chƣơng trình ứng dụng mail mặc định mà ngƣời  
dùng đang sử dụng, hoặc news: sẽ gọi đến các chƣơng trình đọc tin tức.  
Tuy nhiên trình duyệt cũng có cơ chế mở và đƣợc hỗ trợ bởi các plugins của nó để có  
thể hiển thị đƣợc các loại tài liệu trực tiếp trên web browser. Hầu hết các trình duyệt có thể  
hiển thị hình ảnh, âm thanh, video, và các tập tin XML, và thƣờng có một số plug-in mặc  
định để hỗ trợ các ứng dụng Flash và Java applet. Khi gặp phải một tập tin không đƣợc hỗ  
trợ thì tập tin này sẽ đƣợc tải về thay vì hiển thị trực tiếp trên web, lúc này trình duyệt sẽ  
nhắc ngƣời dùng để lƣu tập tin vào đĩa.  
Tính tƣơng tác trong một trang web có thể đƣợc ứng dụng bởi javascript mà thƣờng  
không đòi hỏi sự hỗ trợ thêm của plugin. javascript có thể đƣợc sử dụng cùng với các công  
nghệ khác để cho phép tƣơng tác trực tiếp với máy chủ trang web, ví dụ: tƣơng tác thông  
qua AJAX.  
Các thông tin trên trang web có thể chứa siêu liên kết (hyperlinks) tới các nguồn  
thông tin khác. Mỗi liên kết có chứa các URI để đi đến các nguồn thông tin khác. Khi một  
liên kết đƣợc nhấp, trình duyệt điều hƣớng ngƣời dùng tới trang thông tin khác.  
1.4.8. Web Server  
Web Server (máy phục vụ Web): máy tính mà trên đó cài đặt phần mềm phục vụ  
Web, đôi khi ngƣời ta cũng gọi chính phần mềm đó là Web Server.  
Tất cả các Web Server đều hiểu và chạy đƣợc các file *.htm và *.html, tuy nhiên mỗi  
Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn nhƣ IIS của Microsoft dành  
cho *.asp, *.aspx...; Apache dành cho *.php...; Sun Java System Web Server của SUN  
dành cho *.jsp...  
1.5. Khai thác dịch vụ Internet  
Truy cập vào mạng Internet có thể có 2 cách: Truy cập trực tiếp thông qua đƣờng  
dành riêng(Leased Line) và truy cập gián tiếp thông qua mạng điện thoại công cộng. Việc  
16  
   
Tải về để xem bản đầy đủ
pdf 86 trang yennguyen 21780 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình mạng (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_mang_phan_1.pdf