Đồ án tốt nghiệp
MỤC LỤC
PHẦN 1 : CƠ SỞ LÝ THUYẾT 6
CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET VÀ MỘT SỐ GIAO
THỨC TRUYỀN THÔNG TRÊN INTERNET 6
CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET VÀ MỘT SỐ GIAO THỨC
TRUYỀN THÔNG TRÊN INTERNET 6
1.1. GIỚI THIỆU CHUNG VỀ INTERNET 6
1.2. HỌ GIAO THỨC TCP/IP 6
1.3. GIAO THỨC LIÊN MẠNG IP 8
1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP 13
CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG TRÊN MÔ HÌNH
CLIENT/SERVER 15
CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG TRÊN MÔ HÌNH
CLIENT/SERVER 15
2.1. LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINDOWS SOCKETS 15
2.2. MỘT SỐ KHÁI NIỆM CƠ BẢN 15
2.2.1.Đòa chỉ Internet 15
2.2.2. Khái niệm socket và port 15
2.3. CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT/SERVER TCP 16
16
2.3.1. Cách cài đặt server TCP 16
2.3.2. Cách cài đặt client TCP 16
CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN THƯ ĐIỆN TỬ 19
CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN THƯ ĐIỆN TỬ 19
1.1. MAILSERVER 19
1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL) 19
1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ 19
1.3.1. KiÕn tróc vµ c¸c dÞch vơ 19
1.3.2. T¸c nh©n ngêi sư dơng (The User Agent) 22
1.3.2.1.Gửi thư (Sending Email) 22
1.8.POP BEFORE SMTP(CHỨNG THỰC QUYỀN TRUY CẬP THEO GIAO
THỨC POP TRƯỚC KHI SỬ DỤNG SMTP) 44
1.9.MAIL CLIENT, WEB MAIL 44
CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN 45
CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN 45
2.1.GIỚI THIỆU VỀ JRUN WEBSERVER 3.1 45
2.2.GIỚI THIỆU VỀ SQL SERVER 7.0 45
2.2.1. Lý thuyết hệ quản trò cơ sở dữ liệu sql server 7.0 và Cấu trúc cơ sở
dữ liệu của sql server 7.0 45
2.2.2. Cấu trúc cơ sở dữ liệu vật lý: 46
2.2.2.1. Trang (page): 46
47
2.2.2.2 .Extent: 47
2.2.2.3 Những loại file trong CSDL:SQL Server có 3 loại file: 47
2.3. LÝ THUYẾT MÔ HÌNH QUAN HỆ 48
2. 3.1. Các khái niệm cơ bản 48
2.3.2. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn 48
2.3.3 Khái niệm chỉ dẫn và khóa chỉ dẫn 48
2.4.GIỚI THIỆU VỀ JAVA SERVLET 49
2.4.1.Khái niệm về JAVA SERVLET 49
2.4.2.Những ứng dụng thực tế của JAVA SERVLET và kiến trúc của JAVA
SERVLET 49
2.5.GIỚI THIỆU VỀ JAVA SERVER PAGES(JSP) 49
2.5.1.Khái niệm về JSP 49
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 2
Đồ án tốt nghiệp
2.5.2.Quan hệ giữa Servlet và JSP 50
2.5.2.1.Cách trình chủ biên dòch trang JSP thành servlet 50
2.5.2.2. So sánh giữa Servlet và JSP 50
2.2.2.1. Xây dựng SMTP Server 60
2.2.2.2. Xây dựng POP3 Server 73
2.3.CÀI ĐẶT MAILCLIENT 87
91
Một số giao diện chính 91
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 3
Đồ án tốt nghiệp
LỜI CẢM ƠN
Trước hết tôi xin chân thành cảm ơn các thầy cô giáo khoa Đại học Đại
Cương của trường Đại học Thuỷ Sản Nha Trang và khoa Công Nghệ Thông Tin
trường Đại học Bách Khoa Hà Nội đã trang bò cho tôi những kiến thức cơ bản cần
thiết trong những năm học vừa qua để tôi có thể thực hiện tốt cuốn đồ án này.
Em xin chân thành cảm ơn thầy Văn Thế Minh đã tận tình giúp đỡ và hướng
dẫn em hoàn tất cuốn đồ án này. Ngoài ra tôi cũng xin cảm ơn tất cả bạn bè đã
giúp đỡ tôi trong suốt quá trình thực hiện đồ án.
Mặc dù đã rất cố gắng, nhưng trong khoảng thời gian cho phép cũng như
những hạn chế về kiến thức nên cuốn đồ án này của tôi không thể tránh khỏi những
thiếu sót. Chính vì vậy, tôi rất mong nhận được sự góp ý của các thầy cô giáo cũng
như bạn bè gần xa và những cá nhân hay tổ chức có quan tâm đến lónh vực được
trình bày trong cuốn đồ án này.
Hà Nội, tháng 5 năm 2003
Nguyễn Xuân Thanh
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 4
Đồ án tốt nghiệp
LỜI NÓI ĐẦU
Ngày nay với sự phát triển mạnh mẽ của tin học và công nghệ Internet, hầu
như mọi người đều thấy rõ lợi ích mà các dòch vụ do mạng Internet mang lại.
Dòch vụ thư điện tử gọi tắt là Email là một trong nhưng dòch vụ được sử dụng
thc Bé Qc phßng Mü (US Defense’s Advance Research Projects Agency - gäi t¾t
lµ DARPA) tµi trỵ. Tõ gi÷a n¨m 1970, trung t©m DARPA híng tíi m¹ng Internet víi
kü tht chun m¹ch gãi qua m¹ng v« tun vµ th«ng tin vƯ tinh. N¨m 1980, DARPA
thư nghiƯm dïng giao thøc TCP/IP vµ ®· ®ỵc c¸c trêng ®¹i häc ë Mü ghÐp nèi víi hƯ
®iỊu hµnh UNIX BSD (Berkely Software Distribution).
HƯ ®iỊu hµnh UNIX lµ hƯ ph¸t triĨn m¹nh víi rÊt nhiỊu c«ng cơ hç trỵ vµ ®¶m
b¶o c¸c phÇn mỊm øng dơng cã thĨ chun qua l¹i trªn c¸c hä m¸y kh¸c nhau (m¸y
mini, m¸y tÝnh lín vµ hiƯn nay lµ m¸y vi tÝnh). Bªn c¹nh ®ã hƯ ®iỊu hµnh UNIX BSD
cßn cung cÊp nhiỊu thđ tơc Internet c¬ b¶n, ®a ra kh¸i niƯm Socket vµ cho phÐp ch¬ng
tr×nh øng dơng th©m nhËp vµo Internet mét c¸ch dƠ dµng.
CÊu tróc m¹ng Internet gåm cã:
♦ TÇng øng dơng: TELNET, FTP, SMTP;
♦ TÇng giao vËn: TCP, UDP;
♦ TÇng Internet: Internet Protocol;
♦ TÇng m¹ng: X.25, Ethernet, FDDI. . .;
♦ TÇng vËt lý: lµ c¸c m«i trêng trun tin kh¸c nhau.
1.2. HỌ GIAO THỨC TCP/IP
TCP/IP lµ hä cđa c¸c giao thøc ®ỵc sư dơng cho viƯc trun th«ng m¸y tÝnh. C¸c
ch÷ c¸i ®ỵc viÕt t¾t bëi c¸c tõ (Transmission Control Protocol/Internet Protocol), hai
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 6
Đồ án tốt nghiệp
giao thøc nµy cã c¸ch biĨu diƠn kh¸c nhau, ngêi ta Ýt khi sư dơng víi c¸i tªn ®Çy ®đ
cđa hai giao thøc nµy. Thêng c¸c giao thøc ®ỵc nhãm l¹i thµnh c¸c hä (®«i khi cßn ®ỵc
gäi lµ c¸c suites hay c¸c stacks). C¸c giao thøc nµo ®ỵc nhãm l¹i víi nhau thêng ®ỵc
x¸c ®Þnh bëi c¸c bé cµi ®Ỉt cđa giao thøc.
Hä giao thøc TCP/IP bao gåm c¸c giao thøc nh lµ IP (Internet Protocol) , ARP
(Address Resolution Protocol), ICMP (Internet Control Message Protocol), UDP (User
Datagram Protocol), TCP (Transport Control Protocol), RIP (Routing Information
Layer
Physical
Layer
TCP/IP Protocol
Architecture
Layers
Application
Layer
Host-to-Host
Transport
Layer
Internet
Layer
Network
Interface
Layer
Telnet FTP SMTP
DNS
RIP SNMP
TCP UDP
IP
ARP
IGMP ICMP
Ethernet
Token
Ring
Frame
Relay
ATM
So s¸nh c¸c kiÕn tróc ISO vµ TCP/IP
110 - Internetwork Control 010 - Immediate
101 - CRITIC/ECP 001 - Priority
100 - Flas Override 000 - Routine (thÊp nhÊt)
D (Delay) (1 bit): chØ ®é trƠ yªu cÇu
D = 0 ®é trƠ b×nh thêng
D = 1 ®é trƠ thÊp
T (Throughput) (1 bit): chØ th«ng lỵng yªu cÇu
T = 0 th«ng lỵng b×nh thêng
T = 1 th«ng lỵng cao
R (Reliability) (1 bit): chØ ®é tin cËy yªu cÇu
R = 0 ®é tin cËy b×nh thêng
R = 1 ®é tin cËy cao
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 8
Header
0 3 4 7 8 15 16 31
Khu«n d¹ng cđa IP datagram
Đồ án tốt nghiệp
• Total Length (16 bits): chØ ®é dµi toµn bé datagram, kĨ c¶ phÇn header (tÝnh
theo ®¬n vÞ bytes).
• Indentification (16 bits): cïng víi c¸c tham sè kh¸c (nh Source Address vµ
Destination Address) tham sè nµy dïng ®Ĩ ®Þnh danh duy nhÊt cho mét
datagram trong kho¶ng thêi gian nã vÉn cßn trªn liªn m¹ng.
• Flags (3 bits): liªn quan ®Õn sù ph©n ®o¹n (fragment) c¸c datagram, cơ thĨ lµ:
0 D
F
M
F
Bit 0: reserved - cha sư dơng , lu«n lÊy gi¸ trÞ 0
0 1 2
Đồ án tốt nghiệp
(subnet) cđa liªn m¹ng cã thĨ kh¸c nhau, ngêi ta chia c¸c ®Þa chØ IP thµnh 5 líp, ký
hiƯu lµ A, B, C, D vµ E, víi cÊu tróc ®ỵc chØ ra trong h×nh bªn díi.
0 1 7 8 15 16 23 24 31
0 netid
1 0 netid Hostid
1 1 0 netid hostid
1 1 1 0 Multicast address
1 1 1 1 0 Reserved for future use
CÊu tróc cđa c¸c líp ®Þa chØ IP
• Líp A cho phÐp ®Þnh danh tíi 126 m¹ng, víi tèi ®a 16 triƯu host trªn mçi
m¹ng. Líp nµy ®ỵc dïng cho c¸c m¹ng cã sè tr¹m cùc lín.
• Líp B cho phÐp ®Þnh danh tíi 16384 m¹ng, víi tèi ®a 65534 host trªn mçi
m¹ng.
• Líp C cho phÐp ®Þnh danh tíi 2 triƯu m¹ng, víi tèi ®a 254 host trªn mçi m¹ng.
Líp nµy ®ỵc dïng cho c¸c m¹ng cã Ýt tr¹m.
• Líp D dïng ®Ĩ gưi IP datagram tíi mét nhãm c¸c host trªn mét m¹ng.
• Líp E dù phßng ®Ĩ dïng trong t¬ng lai.
VÝ dơ:
00001
010
00000
000
00000
000
00000
000
10000
000
netid = 128.3
hostid = 2.3
= 192.0.1.255 (Líp C)
netid = 192.0.1
hostid = 255 h•íng ®Õn tÊt c¶ c¸c host
0
0
31
31
(Líp A)
(Líp B)
(Líp C)
Đồ án tốt nghiệp
Trong nhiỊu trêng hỵp, mét m¹ng cã thĨ ®ỵc chia thµnh nhiỊu m¹ng con
(subnet), lóc ®ã cã thĨ ®a thªm c¸c vïng subnetid ®Ĩ ®Þnh danh c¸c m¹ng con. Vïng
subnet ®ỵc lÊy tõ hostid, cơ thĨ ®èi víi 3 líp A, B, C nh sau (h×nh bªn díi).
Netid Subnetid Hostid
7 8 15 16 23 24
Netid Subnetid Hostid
7 8 15 16 23 24
Netid Subn
etid
Host
id
Bỉ sung vïng subnetid
CÇn lu ý r»ng c¸c ®Þa chØ IP ®ỵc dïng ®Ĩ ®Þnh danh c¸c host vµ m¹ng ë tÇng
m¹ng cđa M« h×nh OSI, vµ chóng kh«ng ph¶i lµ c¸c ®Þa chØ vËt lý (hay ®Þa chØ MAC -
Media Access Control) cđa c¸c tr¹m ®ã trªn mét m¹ng cơc bé (Ethernet,Token
Ring ). Trªn mét m¹ng cơc bé nh vËy, hai tr¹m chØ cã thĨ liªn l¹c víi nhau nÕu chóng
biÕt ®Þa chØ vËt lý cđa nhau. Nh vËy, vÊn ®Ị ®Ỉt ra lµ ph¶i thùc hiƯn ¸nh x¹ gi÷a ®Þa chØ
4. Ph©n ®o¹n datagram, nÕu cÇn.
5. KiÕn t¹o l¹i IP header, bao gåm gi¸ trÞ míi cđa c¸c vïng Time-to-Live,
Fragmentation vµ Checksum.
6. Chun datagram xng tÇng díi ®Ĩ trun qua m¹ng.
• Ci cïng, khi mét datagram ®ỵc nhËn bëi thùc thĨ IP ë tr¹m ®Ých, nã sÏ thùc
hiƯn c¸c c«ng viƯc sau:
1. TÝnh checksum. NÕu bÊt cËp th× lo¹i bá datagram.
2. TËp hỵp c¸c ®o¹n cđa datagram (nÕu cã ph©n ®o¹n).
3. Chun d÷ liƯu vµ c¸c tham sè ®iỊu khiĨn lªn tÇng trªn b»ng c¸ch dïng
primitive DELIVER.
1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP
Source Port Destination Port
Sequence Number
Acknowledgment Number
D
a
t
a
o
f
f
s
e
t
Reser
ved
UR
G
AC
K
ngn ®ang chê ®Ĩ nhËn. NgÇm ý b¸o nhËn tèt (c¸c) segment mµ tr¹m ®Ých ®·
gưi cho tr¹m ngn - Tham sè nµy cã vai trß nh tham sè N(R) trong HDLC.
• Data offset (4 bits): sè lỵng tõ - 32 bit (32 bit words) trong TCP header (tham
sè nµy chØ ra vÞ trÝ b¾t ®Çu cđa vïng d÷ liƯu).
• Reserved (6 bits): dµnh ®Ĩ dïng trong t¬ng lai.
• Control bits (c¸c bit ®iỊu khiĨn):
T tr¸i sang ph¶i:
URG: vïng con trá khÈn (Urgent Pointer) cã hiƯu lùc
ACK: vïng b¸o nhËn (ACK number) cã hiƯu lùc
PSH: chøc n¨ng PUSH
RST: khëi ®éng l¹i (reset) liªn kÕt
SYN: ®ång bé ho¸ c¸c sè hiƯu tn tù (sequence number)
FIN: kh«ng cßn d÷ liƯu tõ tr¹m ngn
• Window (16 bits): cÊp ph¸t credit ®Ĩ kiĨm so¸t lng d÷ liƯu (c¬ chÕ cưa sỉ).
§©y chÝnh lµ sè lỵng c¸c byte d÷ liƯu, b¾t ®Çu tõ byte ®ỵc chØ ra trong vïng
ACK number, mµ tr¹m ngn ®· s½n sµng ®Ĩ nhËn.
• Checksum (16 bits): m· kiĨm so¸t lçi (theo ph¬ng ph¸p CRC) cho toµn bé
segment (header + data).
• Urgent Pointer (16 bits): con trá nµy trá tíi sè hiƯu tn tù cđa byte ®i theo
sau d÷ liƯu khÈn, cho phÐp bªn nhËn biÕt ®ỵc ®é dµi cđa d÷ liƯu khÈn. Vïng
nµy chØ cã hiƯu lùc khi bit URG ®ỵc thiÕt lËp.
• Options (®é dµi thay ®ỉi): khai b¸o c¸c Options cđa TCP, trong ®ã cã ®é dµi
tèi ®a cđa vïng TCP data trong mét segment.
• Padding (®é dµi thay ®ỉi): PhÇn chÌn thªm vµo header ®Ĩ b¶o ®¶m phÇn
header lu«n kÕt thóc ë mét mèc 32 bits. PhÇn thªm nµy gåm toµn sè 0.
• TCP data (®é dµi thay ®ỉi): chøa d÷ liƯu cđa tÇng trªn, cã ®é dµi tèi ®a ngÇm
®Þnh lµ 536 bytes. Gi¸ trÞ nµy cã thĨ ®iỊu chØnh b»ng c¸ch khai b¸o trong vïng
options.
Mét tiÕn tr×nh øng dơng trong mét host truy nhËp vµo c¸c dÞch vơ cđa TCP cung
cÊp th«ng qua mét cỉng (port). Mét cỉng kÕt hỵp víi mét ®Þa chØ IP t¹o thµnh mét
Internet.
2.2. MỘT SỐ KHÁI NIỆM CƠ BẢN
2.2.1 .Đòa chỉ Internet
Trong hƯ thèng m¹ng Internet, mçi m¸y ®Ịu cã mét tªn vµ mét ®Þa chØ IP (còng
gäi lµ ®Þa chØ Internet). VÝ dơ nh, mét m¸y NT cã tªn lµ ntsvr.csc.hcmu.vn vµ ®Þa chØ lµ
192.48.94.200. Tªn hay ®Þa chØ IP ®Ịu x¸c ®Þnh duy nhÊt mét m¸y trong hƯ thèng
m¹ng Internet. Khi lËp tr×nh, chóng ta cã c¸c hµm ®Ĩ chun ®ỉi tõ tªn sang ®Þa chØ IP
vµ ngỵc l¹i.
2.2. 2. Khái niệm socket và port
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
14
Đồ án tốt nghiệp
Mét socket lµ mét thiÕt bÞ trun th«ng hai chiỊu t¬ng tù nh tËp tin, chóng ta cã
thĨ ®äc hay ghi lªn nã, tuy nhiªn mçi socket lµ mét thµnh phÇn trong mét mèi nèi nµo
®ã gi÷a c¸c m¸y trªn m¹ng m¸y tÝnh vµ c¸c thao t¸c ®äc/ghi chÝnh lµ sù trao ®ỉi d÷
liƯu gi÷a c¸c øng dơng trªn nhiỊu m¸y kh¸c nhau.
Trong giao thøc trun th«ng TCP, mçi mèi nèi gi÷a hai m¸y tÝnh ®ỵc x¸c ®Þnh
bëi mét port, kh¸i niƯm port ë ®©y kh«ng ph¶i lµ mét cỉng giao tiÕp trªn thiÕt bÞ vËt lý
mµ chØ lµ mét kh¸i niƯm logic trong c¸ch nh×n cđa ngêi lËp tr×nh, mçi port ®ỵc t¬ng
øng víi mét sè nguyªn d¬ng.
H×nh bªn díi minh häa c¸ch giao tiÕp gi÷a hai m¸y tÝnh trong giao thøc trun
th«ng TCP. M¸y A t¹o ra mét socket vµ kÕt bc (bind) socket nµy víi port X (tøc lµ
mét sè nguyªn d¬ng cã ý nghÜa cơc bé trong m¸y A), trong khi ®ã m¸y B t¹o mét
socket kh¸c vµ mãc vµo (connect) port X trong m¸y A.
2.3. CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT/SERVER TCP
2.3.1 . Cách cài đặt server TCP
øng dơng server lµm viƯc theo qui tr×nh sau ®©y:
1. Gäi hµm socket ®Ĩ t¹o mét socket.
2. Gäi hµm bind ®Ĩ kÕt bc socket víi mét port, ®èi víi mçi giao thøc øng chn th×
nhau nh sau:
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
16
øng dơng Server øng dơng Client
Nèi vµo port cđa
server
T¹o mét socket
KÕt bc socket
víi mét port (bind)
§Ỉt socket ë tr¹ng
th¸i chê client nèi
vµo
ChÊp nhËn kÕt nèi
cđa client
Chun ®ỉi d÷ liƯu gi÷a client vµ server
T¹o mét socket
C¸c b•íc giao tiÕp gi÷a client vµ server trong giao thøc TCP
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
17
Đồ án tốt nghiệp
CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN
ĐẾN THƯ ĐIỆN TỬ
1.1. MAILSERVER
Theo mô hình hoạt động khách chủ, trình chủ là một dòch vụ đóng vai trò
người chủ phục vụ trình khách. Mail Server thật ra là một trình mở socket lắng
nghe các yêu cầu (hay lệnh gửi mail) từ trình khách đưa đến. Như đã nói, mail
server sẽ tiếp nhận nội dung mail, phân phối mail đến các trình chủ khác, cho phép
thèng cã thĨ tù nã ®¶m tr¸ch viƯc ®¸nh ®Þa chØ vµ chØ sè c¸c trêng tiªu ®Ị
(header fields) ®ỵc kÌm theo cïng víi mçi th«ng ®iƯp. VÝ dơ nh, khi tr¶ lêi
mét th«ng ®iƯp , hƯ thèng th ®iƯn tư cã thĨ t¸ch ®Þa chØ cđa ngêi gưi tõ c¸c
th ®ỵc gưi ®Õn vµ tù ®éng chÌn nã vµo c¸c trêng thÝch hỵp trong phÇn håi ©m
(reply).
2. Transfer: Lµm nhiƯm vơ chun c¸c th«ng ®iƯp tõ ngêi gưi ®Õn n¬i ngêi
nhËn. Trong phÇn nµy, viƯc chun c¸c th«ng ®iƯp yªu cÇu ph¶i thiÕt lËp mét
kÕt nèi ®Õn ®Ých (ngêi nhËn) hay mét sè thao t¸c cđa thiÕt bÞ nh xt th«ng
®iƯp vµ kÕt thóc viƯc kÕt nèi. HƯ thèng th ®iƯn tư lµm viƯc nµy mét c¸ch tù
®éng mµ kh«ng cÇn cã mét sù can thiƯp nµo cđa ngêi sư dơng.
3. Reporting: Bc ph¶i thùc hiƯn ®Ĩ b¸o cho ngêi gưi nh÷ng g× x¶y ra ®èi víi
th«ng ®iƯp võa gưi lµ ë t×nh hn ®· gưi ®Õn ®Ých cha? hc viƯc gưi ®· bÞ
hủ bá? hc th ®· bÞ l¹c?.
4. Displaying: Nh÷ng th«ng ®iƯp gưi ®Õn ®ỵc yªu cÇu lµm sao ®Ĩ mäi ngêi cã
thĨ ®äc ®ỵc th cđa hä. §«i khi ngêi ta yªu cÇu qu¸ tr×nh chun ®ỉi hay mét
tr×nh hiĨn thÞ ®Ỉc biƯt ®Ĩ hç trỵ, vÝ dơ nh, nÕu th«ng ®iƯp cã d¹ng mét tƯp
PostScript hay tiÕng nãi ®ỵc sè hãa kÌm theo trong th«ng ®iƯp gưi ®Õn.
5. Disposition: Lµ bíc ci cïng liªn quan ®Õn nh÷ng g× ngêi nhËn thùc hiƯn
®èi víi th«ng ®iƯp sau khi ®· nhËn nã. Nh÷ng kh¶ n¨ng cã thĨ lµ nÐm nã ®i
tríc khi ®äc, nÐm nã ®i sau khi ®äc, lu nã, v v. Nã còng sÏ cã thĨ thu nhËn
®Ĩ ®äc l¹i víi c¸c th«ng ®iƯp ®· ®ỵc lu l¹i, chun tiÕp chóng hc xư lý
chóng b»ng nh÷ng ph¬ng ph¸p kh¸c nhau khi ®ỵc yªu cÇu cđa ngêi sư dơng.
Thªm vµo ®ã c¸c dÞch vơ nµy, hÇu hÕt c¸c hƯ thèng th ®iƯn tư cung cÊp nhiỊu
®Ỉc tÝnh n©ng cao kh¸c nhau. Mét sè ®Ỉc tÝnh tiªu biĨu nh, khi ngêi ta mn chun th
hay khi hä nghÜ xa h¬n vỊ c¸c chi tiÕt vỊ thêi gian , cã lÏ hä mn th cđa hä ®ỵc
chun tiÕp, chÝnh v× thÕ mµ hƯ thèng thùc hiƯn ®iỊu nµy mét c¸ch tù ®éng.
HÇu hÕt c¸c hƯ thèng cho phÐp ngêi sư dơng t¹o c¸c hép th (mailboxes) ®Ĩ lu
tr÷ c¸c th chun ®Õn (incoming email). C¸c lƯnh ®ỵc ngêi ta yªu cÇu t¹o vµ hđy bá
c¸c hép th, kiĨm tra c¸c néi dung hép th, chÌn vµ xãa c¸c th«ng ®iƯp khái hép th, v v.
Nh÷ng ngêi gi¸m ®èc c«ng ty thêng cÇn gưi mét th«ng ®iƯp ®Õn mçi ngêi trong
phÇn hoµn toµn dµnh cho ngêi nhËn th. C¸c phong b× vµ c¸c th«ng ®iƯp ®ỵc m« t¶ trong
h×nh bªn díi.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
20
(a) (b)
Envelope
Messag
e
Body
Mr. Daniel Dumkopf
18 Willow Lane
White Plains, NY 10604
United Gizmo
180 Main St
Boston, MA
02120
April, 5, 2001
Subject: Invoice 1081
Dear Mr. Dumkopf,
Our computer records
show that you still have not
paid the above invoice of
$0.00. Please send us a check
for $0.00 promptly.
Yous truly
United Gizmo
ϒ
Name: Mr. Daniel Dumkopf
§Ĩ gưi ®i mét th«ng ®iƯp, ngêi sư dơng ph¶i cung cÊp th«ng ®iƯp, ®Þa chØ ®Ých vµ
mét sè tham sè kh¸c nÕu cã (vÝ dơ nh lµ møc u tiªn hay b¶o mËt). Ngêi sư dơng cã thĨ
t¹o th«ng ®iƯp víi mét tr×nh so¹n th¶o v¨n b¶n kh¸c nhau, mét ch¬ng tr×nh sư lý tõ hay
víi bé so¹n th¶o ®ỵc x©y dùng trªn UA. §Þa chØ ®Ých ph¶i cã mét ®Þnh d¹ng mµ lµm
sao cho UA cã thĨ hiĨu ®ỵc. NhiỊu UA tiÕp nhËn c¸c ®Þa chØ DNS (Domain Name
System) cã d¹ng mailbox@location.
1.3.2.2. Đọc thư (Reading Email)
Khi UA ®ỵc khëi ®éng nã kiĨm tra xem trong hép th cđa ngêi sư dơng cã th gưi
®Õn kh«ng tríc khi hiĨn thÞ c¸c thø kh¸c lªn mµn h×nh. Khi ®ã cã lÏ nã sÏ th«ng b¸o
mét sè c¸c th«ng ®iƯp trong hép th hay hiĨn thÞ mét dßng v¾n t¾t cđa mçi th«ng ®iƯp
vµ chê nhËn lƯnh ®Ĩ xư lý. Mét vÝ dơ ë h×nh bªn díi cho thÊy mét viƠn c¶nh sau khi
UA khëi ®éng hiĨn thÞ nh÷ng yªu cÇu v¾n t¾t cđa c¸c th«ng ®iƯp. Trong vÝ dơ nµy hép
th (mailbox) gåm cã t¸m th«ng ®iƯp.
Mçi dßng hiĨn thÞ chøa mét sè trêng ®ỵc trÝch ra tõ phong th hay phÇn ®Çu
(header) cđa tõng th«ng ®iƯp ®ỵc ®Þnh vÞ trong hép th. Trong mét hƯ thèng th ®iƯn tư
®¬n gi¶n, sù lùa chän cđa c¸c trêng hiĨn thÞ ®ỵc ngêi ta x©y dùng thµnh mét ch¬ng
tr×nh. Trong c¸c hƯ thèng phøc t¹p h¬n, ngêi sư dơng cã thĨ x¸c ®Þnh cho c¸c trêng nµo
®ỵc hiĨn thÞ b»ng c¸ch cung cÊp mét hiƯn tr¹ng ngêi sư dơng (User Profile), hay mét
tƯp m« t¶ ®Þnh d¹ng hiĨn thÞ. Trong vÝ dơ nµy, trêng ®Çu tiªn lµ sè th«ng ®iƯp cã trong
hép th. Trêng thø hai, lµ c¸c cê cã thĨ chøa mét kÝ tù K, cã nghÜa lµ th«ng ®iƯp cò ®· ®-
ỵc ®äc kú tríc råi vµ ®ỵc lu l¹i trong hép th; kÝ tù A cã nghÜa lµ th nµy ®· ®ỵc håi ©m
råi; ký tù F (cã thĨ cã), cã nghÜa lµ th nµy ®ỵc chun tiÕp ®Õn ngêi kh¸c. C¸c cê kh¸c
n÷a còng cã thĨ ®ỵc ®a vµo ngoµi nh÷ng cê nµy.
# Flags Bytes Sender Subject
1 K 1030 Asw Changes to MINIX
2 KA 6348 Radia Comments on material you sent me
3 KF 4519 Amy N. Wong Request for information
4 1236 Bal Deadline for grant proposal
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
c¸c trêng header cđa phong b× (envelope) kh«ng ph©n biƯt râ rµng nh mét chn míi
kh¸c. Khi sư dơng, th«ng thêng UA x©y dùng mét th«ng ®iƯp vµ ®a nã qua bé phËn t¸c
nh©n trun th«ng ®iƯp (message transfer agents - MTA), ë ®©y nã dïng mét sè c¸c tr-
êng header ®Ĩ x©y dùng mét envelope thùc sù, th«ng ®iƯp ®ỵc thay ®ỉi bëi c¸i cò ®i
mét chót cïng víi envelope.
Command Parameter Description
H # Display header(s) on the screen
C Display current header only
T # Type message(s) on the screen
S Address Send a message
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
22
Đồ án tốt nghiệp
F # Forward message(s)
A # Answer message(s)
D # Delete message(s)
U # Undelete previously deleted message(s)
M # Move message(s) to another mailbox
K # Keep message(s) after exiting
R Mailbox Read a new mailbox
N Go to the next message and display it
B Backup to the previous message and display it
G # Go to a specific message but do not display it
E Exit the mail system and update the mailbox
C¸c lƯnh ®iỊu khiĨn th ®Ỉc biƯt
C¸c trêng header chđ u liªn quan ®Õn viƯc chun giao th«ng ®iƯp ®ỵc liƯt kª
díi b¶ng sau. Trêng To: trêng nµy cho biÕt ®Þa chØ DNS cđa ngêi nhËn ®Çu tiªn. Trêng
hỵp nhiỊu ngêi nhËn còng cã thĨ cho phÐp. Trêng Cc: cho biÕt ®Þa chØ cđa nh÷ng ngêi
nhËn kÕ tiÕp (cßn gäi lµ ®Þa chØ ®ång gưi). Trong c¸c tht ng÷ cđa viƯc ph¸t th, kh«ng
Keywords: User chosen keywords
Subject: Short summary of the message for the one-line display
Mét sè trêng ®ỵc sư dơng trong header th«ng ®iƯp RFC 822.
Trêng From: yªu cÇu ph¶i cã cßn trêng Sender: cã thĨ ®ỵc bá qua nÕu viƯc viÕt
vµ gưi cïng mét ngêi. C¸c trêng nµy cÇn thiÕt khi trong trêng hỵp th«ng ®iƯp kh«ng ®-
ỵc ph¸t ®i vµ ph¶i ®ỵc tr¶ l¹i cho ngêi gưi.
Dßng chøa trêng Received: ®ỵc ®a vµo bëi c¸c MTAs däc theo ®êng trun.
Dßng nµy chøa ®Þnh danh cđa agent, ngµy th¸ng vµ thêi gian th«ng ®iƯp ®ỵc nhËn, vµ
c¸c th«ng tin kh¸c cã thĨ ®ỵc sư dơng cho viƯc t×m kiÕm c¸c lçi trong hƯ thèng ®Þnh
tun.
Trêng Return-Path: ®ỵc ®a vµo bëi MTAs ci cïng vµ ®ỵc dïng cho viƯc gưi
trë l¹i ngêi gưi. Theo lý thut, th«ng tin nµy cã thĨ ®ỵc tËp hỵp l¹i tõ c¸c header
Received: (lo¹i trõ tªn cđa hép th ngêi gưi), nhng nã Ýt khi ®ỵc ®iỊn ®Çy ®đ nh thÕ vµ
chØ ®Ỉc biƯt chøa ®Þa chØ cđa ngêi gưi.
Thªm vµo c¸c trêng cđa h×nh bªn díi c¸c th«ng ®iƯp RFC 822 còng cã thĨ chøa
mét trong sè c¸c trêng kh¸c ®ỵc sư dơng bëi c¸c UA hay nh÷ng ngêi nhËn th. Nh÷ng
trêng th«ng thêng nhÊt ®ỵc liƯt kª trong h×nh bªn díi. HÇu hÕt nh÷ng trêng nµy cã tÝnh
c¸ch gi¶i thÝch, v× thÕ chóng ta kh«ng ®i s©u vµo tõng chi tiÕt.
1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP
VÀ POP3
1.4.1.Phân tích cấu trúc thư điện tử (RFC 822)
1.4.1.1. Giíi thiƯu
§Ĩ cã thĨ chun giao th gi÷a c¸c m¸y tÝnh trªn m¹ng, th cÇn ph¶i ®ỵc cÊu tróc
theo mét chn nµo ®ã. Th«ng thêng, mét bøc th ®ỵc cÊu t¹o bëi hai phÇn lµ phong b×
(envelope) vµ néi dung (body). Kh¸i niƯm nµy hoµn toµn gièng nh trong hƯ thèng bu
chÝnh th«ng thêng.
Trong khi phÇn phong b× chøa ®ùng nh÷ng th«ng tin cÇn thiÕt ®Ĩ cã thĨ thiÕt lËp
c¸c liªn kÕt trun th«ng vµ ph©n ph¸t th ®i, th× phÇn néi dung l¹i chøa ®ùng nh÷ng
th«ng tin vỊ ngêi gưi, ngµy gưi,
Th thêng bao gåm nhiỊu dßng v¨n b¶n. Nã kh«ng cung cÊp nh÷ng tÝnh n¨ng
®ỵc gäi lµ: ”unfolding”. Unfolding ®ỵc thùc hiƯn b»ng c¸ch bá cỈp kÝ tù CRLF vµ thay
b»ng mét dÊu c¸ch trèng.
1.4.1.2.2. C¸c trêng header cã cÊu tróc
Mçi trêng cã cÊu tróc bao gåm mét field-name, tiÕp theo lµ dÊu hai chÊm (”:”),
sau ®ã field-body vµ ci cïng lµ cỈp kÝ tù CRLF.
<field-name> : <field-body> <CRLF>
PhÇn field-name lµ c¸c kÝ tù in ®ỵc trong b¶ng m· ASCII (cã m· tõ 33 ®Õn 126,
c¸c kÝ tù sè, ngo¹i trõ dÊu hai chÊm).
PhÇn field-body cã thĨ chøa bÊt k× kÝ tù ASCII nµo, ngo¹i trõ cỈp kÝ tù CRLF.
C¸c trêng th«ng tin header thùc tÕ cã thĨ ®ỵc so s¸nh bëi c¸c mét vµi hƯ thèng th
tÝn. C¸c trêng nµy ®ỵc gäi lµ trêng cã cÊu tróc. VÝ dơ nh c¸c trêng chøa ®ùng th«ng tin
vỊ Date, Address,.v.v. Mét sè trêng kh¸c nh ”Subject” vµ “Comments” chØ ®ỵc coi nh
mét dßng v¨n b¶n b×nh thêng.
Chó ý, bÊt kú trêng nµo mµ phÇn field-body ®ỵc ®Þnh nghÜa kh¸c ®i kh«ng ph¶i lµ
mét dßng v¨n b¶n ®¬n thn th× ®ỵc gäi lµ trêng cã cÊu tróc.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
25