Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 1
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
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 .................................................................... 7
1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP ............................................ 12
CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG
TRÊN MÔ HÌNH CLIENT/SERVER
................................. 14
2.1. LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINDOWS SOCKETS ............... 14
2.2. MỘT SỐ KHÁI NIỆM CƠ BẢN............................................................... 14
2.2.1.Đòa chỉ Internet .................................................................................. 14
1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP VÀ
POP3 ................................................................................................................. 24
1.4.1.Phân tích cấu trúc thư điện tử (RFC 822) ........................................ 24
1.4.1.1. Giíi thiƯu ..................................................................................... 24
1.4.1.2. Mô tả về cấu trúc thư ................................................................... 25
1.4.2. §Þnh nghÜa vỊ c¸c tr−êng Header ..................................................... 26
1.4.3. C¸c tr−êng header ®iĨn h×nh ............................................................ 26
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 2
1.4.4. VÝ dơ vỊ cÊu tróc th− ......................................................................... 27
1.5. PHÂN TÍCH GIAO THỨC SMTP (RFC 821) ........................................... 27
1.5.1. Giíi thiƯu chung ................................................................................ 27
1.5.2. M« h×nh ho¹t ®éng phiªn giao dÞch .................................................. 28
1.5.3. Thđ tơc Mail ...................................................................................... 29
1.5.4. Thđ tơc Forwarding ........................................................................... 31
1.5.5. C¸c thđ tơc Mailing vµ Sending ......................................................... 32
2.1.GIỚI THIỆU VỀ JRUN WEBSERVER 3.1 ............................................... 43
2.2.GIỚI THIỆU VỀ SQL SERVER 7.0 .......................................................... 44
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........................................................................ 44
2.2.2. Cấu trúc cơ sở dữ liệu vật lý: ........................................................... 45
2.2.2.1. Trang (page):................................................................................ 45
2.2.2.2 .Extent: .......................................................................................... 46
2.2.2.3 Những loại file trong CSDL:SQL Server có 3 loại file: ............... 46
2.3. LÝ THUYẾT MÔ HÌNH QUAN HỆ ........................................................ 46
2. 3.1. Các khái niệm cơ bản ....................................................................... 46
2.3.2. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn ........................... 47
2.3.3 Khái niệm chỉ dẫn và khóa chỉ dẫn .................................................. 47
2.4.GIỚI THIỆU VỀ JAVA SERVLET .......................................................... 47
2.4.1.Khái niệm về JAVA SERVLET ........................................................ 47
2.4.2.Những ứng dụng thực tế của JAVA SERVLET và kiến trúc của
JAVA SERVLET ......................................................................................... 48
CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN
.............................. 52
1.1.TÊN ĐỀ TÀI .............................................................................................. 52
1.2.DỀ CƯƠNG CHI TIẾT ............................................................................... 53
1.2.1.Khảo sát .............................................................................................. 53
1.2.2.Yêu cầu của bài toán .......................................................................... 53
1.2.3.Dữ liệu vào, dữ liệu ra và các chức năng xử lý của hệ thống ......... 53
1.2.4. Chức năng của hệ thống thông tin quản lý ..................................... 54
1.3. LÝ DO CHỌN ĐỀ TÀI ............................................................................. 54
CHƯƠNG 2 : THIẾT KẾ VÀ CÀI ĐẶT ỨNG
DỤNG
............................................................................................................. 54
2.1.PHÂN TÍCH VÀ THẾT KẾ CƠ SỞ DỮ LIỆU .......................................... 54
2.1.1.Phân tích ............................................................................................. 55
2.1.2. Giải thích các chức năng của hệ thống ............................................ 56
2.1.3.biểu đồ luồng dữ liệu( DFD – Data flow Diagram) ......................... 56
2.1.4. THIẾT KẾ HỆ THỐNG ................................................................... 57
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
các hoạt động của một hệ Mail Server.
Vì thời gian có hạn và có rất nhiều các vấn đề có liên quan, do đó đồ án này
chỉ trình bày những vấn đề cơ bản nhất về dòch vụ thư tín điện tử và cài đặt một
chương trình mang tính thử nghiệm do dòch vụ thư tín điện tử mà thôi
.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 6
PHẦN 1 : CƠ SỞ LÝ THUYẾT
CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET
VÀ MỘT SỐ GIAO THỨC TRUYỀN THÔNG
TRÊN INTERNET1.1. GIỚI THIỆU CHUNG VỀ INTERNET
M¹ng Internet lµ mét tËp hỵp gåm hµng v¹n hƯ m¹ng trªn kh¾p thÕ giíi, ®−ỵc
C¸c ch÷ c¸i ®−ỵc viÕt t¾t bëi c¸c tõ (Transmission Control Protocol/Internet Protocol),
hai 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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 7
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
Protocol), Telnet, SMTP (Simple Mail Transfer Protocol), DNS (Domain Name
System) vµ mét sè c¸c giao thøc kh¸c. H×nh bªn d−íi m« t¶ kiÕn tróc cđa m¹ng TCP/IP
cã so s¸nh víi m« h×nh tham chiÕu OSI ®Ĩ chóng ta h×nh dung ®−ỵc sù t−¬ng øng vỊ
chøc n¨ng cđa c¸c tÇng.
TCP/IP thùc chÊt lµ mét hä giao thøc cïng lµm viƯc víi nhau ®Ĩ cung cÊp
ph−¬ng tiƯn trun th«ng liªn m¹ng. Trong phÇn nµy chóng ta sÏ xem xÐt giao thøc IP,
giao thøc TCP vµ mét sè øng dơng ë tÇng trªn nh− Telnet, FTP, DNS, SMTP. . .
1.3. GIAO THỨC LIÊN MẠNG IP
Mơc ®Ých chÝnh cđa IP lµ cung cÊp kh¶ n¨ng kÕt nèi c¸c m¹ng con thµnh liªn
m¹ng ®Ĩ trun d÷ liƯu. Vai trß cđa IP t−¬ng tù vai trß cđa giao thøc tÇng m¹ng trong
m« h×nh OSI.
IP lµ mét giao thøc kiĨu ”kh«ng liªn kÕt” (connectionless) cã nghÜa lµ kh«ng
cÇn cã giai ®o¹n thiÕt lËp liªn kÕt tr−íc khi trun d÷ liƯu. §¬n vÞ d÷ liƯu dïng trong IP
®−ỵc gäi lµ datagram, cã khu«n d¹ng chØ ra trong h×nh bªn d−íi.
ý nghÜa cđa c¸c tham sè nh− sau:
Network
Interface
Layer
Telnet
FTP
SMTP
DNS
RIP
SNMPTCP
UDP
IP
ARP
IGMP
ICMP
Ethernet
Token
Ring
• Type of service (8 bits): ®Ỉc t¶ c¸c tham sè vỊ dÞch vơ, cã d¹ng cơ thĨ nh− sau:
Preceden
ce
D T R Reser
ved
trong ®ã:
Precedence (3 bits):
chØ thÞ vỊ qun −u tiªn gưi datagram, cơ thĨ lµ:
111 - Network Control (cao nhÊt) 011 - Flash
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
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 - ch−a sư dơng , lu«n lÊy gi¸ trÞ 0
Bit 1 (DF) = 0 (May Fragment)
= 1 (Don’t Fragment)
Bit 2 (MF) = 0 (Last Fragment)
= 1 (More Fragment)
• Fragment Offset (13 bits): chØ vÞ trÝ cđa ®o¹n (fragment) ë trong datagram, tÝnh
theo ®¬n vÞ 64 bits, cã nghÜa lµ mçi ®o¹n (trõ ®o¹n ci cïng) ph¶i chøa mét
vïng d÷ liƯu cã ®é dµi lµ béi sè cđa 64 bits.
• Time to live (8 bits): qui ®Þnh thêi gian tån t¹i (tÝnh b»ng gi©y) cđa datagram
trong liªn m¹ng ®Ĩ tr¸nh t×nh tr¹ng mét datagram bÞ qn trªn liªn m¹ng. Thêi
gian nµy ®−ỵc cho bëi tr¹m gưi vµ ®−ỵc gi¶m ®i (th−êng qui −íc lµ 1 ®¬n vÞ)
khi datagram ®i qua mçi router cđa liªn m¹ng.
• Protocol (8 bits): chØ giao thøc tÇng trªn kÕ tiÕp sÏ nhËn vïng d÷ liƯu ë tr¹m
®Ých (hiƯn t¹i th−êng lµ TCP hc UDP ®−ỵc cµi ®Ỉt trªn IP).
• Header Checksum (16 bits): m· kiĨm so¸t lçi 16 bits theo ph−¬ng ph¸p CRC,
chØ cho vïng header.
Multicast address
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
00000
011
00000
Líp C
Líp D
Líp E
= 10.0.0.0 (Líp A)
netid = 10
= 128.3.2.3 (Líp B)
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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
11
0
0
31
31
(Líp A)
(Líp B)
(Líp C)
trun ®Õn cho router hc tr¹m ®Ých.
Chóng ta cã thĨ tãm t¾t c¸c b−íc thùc hiƯn bëi mét thùc thĨ IP nh− sau:
• §èi víi thùc thĨ IP ë tr¹m ngn, khi nhËn ®−ỵc mét primitive SEND tõ tÇng
trªn , nã thùc hiƯn c¸c b−íc sau ®©y:
1. T¹o mét IP datagram dùa trªn c¸c tham sè cđa primitive SEND
2. TÝnh checksum vµ ghÐp vµo header cđa datagram.
3. Ra qut ®Þnh chän ®−êng: hc lµ tr¹m ®Ých n»m trªn cïng m¹ng hc mét
gateway sÏ ®−ỵc chän cho chỈng tiÕp theo.
4.
Chun datagram xng tÇng d−íi ®Ĩ trun qua m¹ng.
• §èi víi gateway, khi nhËn ®−ỵc mét datagram qu¸ c¶nh, nã thùc hiƯn c¸c
®éng t¸c sau:
1. TÝnh checksum, nÕu bÊt cËp th× lo¹i bá datagram.
2. Gi¶m gi¸ trÞ cđa tham sè Time-to-Live. NÕu thêi gian ®· hÕt th× lo¹i bá
datagram.
3. Ra qut ®Þnh chän ®−êng.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
12
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Ï
thiÕt lËp liªn kÕt (logic) gi÷a mét cỈp thùc thĨ TCP tr−íc khi chóng trao ®ỉi d÷ liƯu víi
nhau.
§¬n vÞ d÷ liƯu sư dơng trong TCP ®−ỵc gäi lµ segment (®o¹n d÷ liƯu), cã khu«n
d¹ng m« t¶ trong h×nh bªn d−íi.
C¸c tham sè trong khu«n d¹ng trªn cã ý nghÜa nh− sau:
• Source Port (16 bits): sè hiƯu cỉng cđa tr¹m ngn.
• Destination Port (16 bits): sè hiƯu cỉng cđa tr¹m ®Ých.
bit 0 15 16
31
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
13
•
Sequence Number (32 bits): sè hiƯu cđa byte ®Çu tiªn cđa segment trõ khi bit
SYN ®−ỵc thiÕt lËp. NÕu bit SYN ®−ỵc thiÕt lËp th× Sequence Number lµ sè
hiƯu tn tù khëi ®Çu (ISN) vµ byte d÷ liƯu ®Çu tiªn lµ ISN+1. Tham sè nµy cã
vai trß nh− tham sè N(S) trong HDLC.
• Acknowledgment Number (32 bits): sè hiƯu cđa segment tiÕp theo mµ tr¹m
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):
gi÷a mét cỈp socket. Mét socket cã thĨ tham gia nhiỊu liªn kÕt víi c¸c socket ë xa
kh¸c nhau. Tr−íc khi trun d÷ liƯu gi÷a hai tr¹m cÇn ph¶i thiÕt lËp mét liªn kÕt TCP
gi÷a chóng vµ khi kh«ng cßn nhu cÇu trun d÷ liƯu th× liªn kÕt ®ã sÏ ®−ỵc gi¶i phãng.
Còng gièng nh− ë c¸c giao thøc kh¸c, c¸c thùc thĨ ë tÇng trªn sư dơng TCP th«ng qua
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
14
c¸c hµm dÞch vơ nguyªn thủ (service primitives), hay cßn gäi lµ c¸c lêi gäi hµm
(function calls).
CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG TRÊN
MÔ HÌNH CLIENT/SERVER
2.1. LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINDOWS SOCKETS
Windows NT lµ mét hƯ ®iỊu hµnh m¹nh, cho phÐp tËn dơng tèi ®a kh¶ n¨ng cđa
m¸y tÝnh lo¹i 32 bit, cung øng hµng lo¹t c¸c dÞch vơ m¹ng trªn m«i tr−êng Intranet vµ
Internet. HiƯn nay Windows NT ®−ỵc sư dơng t−¬ng ®èi phỉ biÕn ë c¸c c¬ quan; doanh
nghiƯp ViƯt Nam.
Giao thøc trun th«ng TCP/IP ®· ®−ỵc dïng bëi hƯ ®iỊu hµnh UNIX vµ m¹ng
Internet, ®Ĩ c¸c m¸y trªn m¹ng NT cã thĨ giao tiÕp víi c¸c m¸y trªn m¹ng kh¸c,
Windows NT còng cung cÊp giao thøc nµy. Ngoµi mét sè lƯnh dïng giao thøc TCP/IP
®· ®−ỵc viÕt s½n nh−: ftp, telnet, finger..., Windows NT cho phÐp ng−êi lËp tr×nh ph¸t
triĨn c¸c øng dơng khai th¸c kü tht TCP/IP th«ng qua mét th− viƯn tªn lµ Windows
Sockets.
Cã ba lý do chÝnh ®Ĩ ng−êi lËp tr×nh sư dơng kü tht TCP/IP:
• Cã thĨ viÕt c¸c øng dơng trªn Windows NT ®Ĩ nèi vµo m¹ng UNIX vµ khai th¸c c¸c
dÞch vơ cã s½n trªn ®ã.
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×
sÏ cã mét h»ng sè ®−ỵc ®Þnh nghÜa s½n trong Winsock cho port cđa giao thøc ®ã.
3. Gäi hµm listen ®Ĩ chê ®Õn khi cã mét client nèi vµo port.
4. Khi cã mét client nèi vµo th× hµm listen tr¶ ®iỊu khiĨn vỊ, øng dơng server gäi hµm
accept ®Ĩ x¸c nhËn mèi nèi cđa client.
5. Gäi c¸c hµm gưi hay nhËn d÷ liƯu ®Ĩ trao ®ỉi th«ng tin víi client, vÝ dơ nh− hµm
send, recv.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
17
ø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
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
trình khách truy cập vào máy chủ để nhận mail về, bảo vệ mail…Chính vì vậy,
trước khi nhận hay gửi mail cần phải biết được đòa chỉ IP của máy chủ mail server.
Đòa chỉ này thường được gọi là mail host. Về khái niệm socket và đòa chỉ IP sẽ
được trình bày ở phần sau.
1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL)
Để gửi mail đến máy chủ, trình khách phải sử dụng một giao thức trò chuyện
với mail server. Tương tự trình duyệt dùng giao thức HTTP để trò chuyện với trình
chủ Web server. Các trình khách muốn bắt tay với trình chủ mail server và gửi mail
lên máy chủ sẽ sử dụng giao thức SMTP (Simple Mail Transport Protocol). SMTP
được hầu hết các mail server trên thế gới sử dụng. Đòa chỉ IP của máy chủ nhận
mail gửi đi thường được gọi là outgoing mail address. Trình chủ thực hiện chức
năng tiếp nhận mail theo giao thức SMTP gọi là SMTP Server, trình khách dùng
giao thức SMTP để gửi mail đến trình chủ mail server gọi là SMTP Client.
1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ
1.3.1. KiÕn tróc vµ c¸c dÞch vơ
C¸c hƯ thèng th− ®iƯn tư th−êng bao gåm hai hƯ thèng con: c¸c t¸c nh©n ng−êi sư
dơng (the user agents - gäi t¾t lµ UA), nã cho phÐp chóng ta ®äc vµ gưi th−, vµ c¸c t¸c
nh©n trun th«ng ®iƯp (the message transfer agents - gäi t¾t lµ MTA), nã lµm nhiƯm
vơ chun c¸c th«ng ®iƯp tõ ngn ®Õn ®Ých. C¸c UAs lµ c¸c ch−¬ng tr×nh cơc bé hç
trỵ dùa trªn ®iỊu khiĨn b»ng lƯnh, tr×nh ®¬n menu hay dïng ph−¬ng ph¸p ®å ho¹ ®Ĩ
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, l−u nã, v ..v. Nã còng sÏ cã thĨ
thu nhËn ®Ĩ ®äc l¹i víi c¸c th«ng ®iƯp ®· ®−ỵc l−u 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) ®Ĩ
l−u 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 sè nh÷ng ng−êi cÊp d−íi, nh÷ng kh¸ch hµng, hay ®Õn c¸c nhµ cung cÊp. Th× ®iỊu
nµy ®−a ra mét ý t−ëng vỊ danh s¸ch th− (mailing list), nã lµ mét danh s¸ch c¸c ®Þa chØ
th− ®iƯn tư. Khi mét th«ng ®iƯp ®−ỵc gưi ®Õn mailing list, c¸c b¶n sao gièng hƯt ®−ỵc
ph¸t ®Õn mäi ng−êi cã ®Þa chØ trªn danh s¸ch.
Mét ý t−ëng quan träng kh¸c lµ th− ®iƯn tư ®−ỵc ®¨ng ký, ®Ĩ cho phÐp ng−êi
gưi (sender or originator) biÕt th− cđa hä ®· ®Õn. ViƯc th«ng b¸o tù ®éng cđa c¸c th−
kh«ng ®−ỵc ph¸t ®i mét c¸ch lu©n phiªn ®Ĩ ng−êi ta cã thĨ biÕt. Trong bÊt kú tr−êng
hỵp nµo, ng−êi gưi nªn cã mét sè ®iỊu khiĨn th«ng qua th«ng b¸o nh÷ng g× x¶y ra.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
20
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.
ϒ
Name: Mr. Daniel Dumkopf
Street: 18 Willow Lane
State: NY
Zip code: 10604
Priority: Urgent
Encryption: None
From: United Gizmo
thao t¸c trªn c¸c hép th− (mailboxes). Mét sè UA (User Agent) cã giao diƯn tr×nh ®¬n
(menu) hay biĨu t−ỵng (icon) kh¸ hÊp dÉn mµ nã yªu cÇu sư dơng cht hc chÊp
nhËn c¸c lƯnh 1 ký tù tõ bµn phÝm cã cïng chøc n¨ng víi menu vµ c¸c icon.
1.3.2.1.Gửi thư (Sending Email)
§Ĩ 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 l−u 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ê
lƯnh yªu cÇu cã tham sè. Ký hiƯu # cã nghÜa lµ chØ sè cđa mét th«ng ®iƯp (hay cã thĨ
cã nhiỊu th«ng ®iƯp) ®−ỵc chÊp nhËn. T−¬ng tù, mÉu tù a cã thĨ ®−ỵc sư dơng cã nghÜa
cho tÊt c¶ c¸c th«ng ®iƯp.
1.3.2.3.Đònh dạng thông điệp (Message Formats)
Chóng ta b©y giê h·y quay ®Õn tõ giao diƯn ng−êi sư dơng ®Õn ®Þnh d¹ng cđa
c¸c th«ng ®iƯp th− ®iƯn tư. Tr−íc tiªn chóng ta xÐt th− ®iƯn tư dùa trªn b¶n m· ASCII
sư dơng chn RFC 822 (Request for Comments). Sau ®ã xÐt ®Õn c¸c më réng ®a
ph−¬ng tiƯn cho chn RFC 822.
1.3.2.4.Chuẩn RFC 822
C¸c th«ng ®iƯp bao gåm mét phong b× gèc (®−ỵc m« t¶ trong chn RFC 821),
mét sè c¸c tr−êng cho phÇn ®Çu (header), mét dßng ®Ĩ trèng vµ sau ®ã lµ phÇn th©n
(body). Mçi tr−êng header bao gåm c¸c dßng v¨n b¶n ASCII chøa tªn tr−êng, dÊu hai
chÊm, vµ cho hÇu hÕt c¸c tr−êng ®Ịu cã mét gi¸ trÞ. RFC 822 lµ mét chn cò vµ gi÷a
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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
From: Person or people who created the message
Sender: Email address of the actual sender
Received: Line added by each transfer agent along the route
Return-Path: Can be used to identify a path back to the sender
C¸c tr−êng header RFC 822 liªn quan trong viƯc trun th«ng ®iƯp
Hai tr−êng kÕ tiÕp, From: vµ Sender: cho biÕt ®Ĩ ph©n biƯt ng−êi viÕt vµ ng−êi
gưi th«ng ®iƯp. Hai tr−êng nµy hoµn toµn kh«ng gièng nhau. VÝ dơ mét nhµ qu¶n trÞ
doanh nghiƯp cã thĨ viÕt mét th«ng ®iƯp nh−ng c« th− ký lµ ng−êi thËt sù trun nã ®i.
Trong tr−êng hỵp nµy, ng−êi qu¶n trÞ ph¶i ®−ỵc liƯt kª vµo trong tr−êng From: vµ c«
th− ký trong tr−êng Sender:.
Header Meaning
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
24
Date: The date and time the message was sent
Reply-To: Email address to which replies should be sent
Message-Id: Unique number for referencing this message latter
In-Reply-To: Message-Id of the message to which this is a reply
References: Other relevant Message-Ids
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
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
riªng biƯt nh−: m· ho¸ c¸c h×nh vÏ, c¸c b¶n sao, tiÕng nãi hc nh÷ng v¨n b¶n cã cÊu
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Đồ án tốt nghiệp
Sinh viên thực hiện Nguyễn Xuân Thanh Trang
25
tróc. H¬n n÷a, nã còng kh«ng cã sù quan t©m ®Ỉc biƯt ®èi víi viƯc nÐn d÷ liƯu, viƯc
trun th«ng hc viƯc l−u tr÷ cã hiƯu qu¶.
CÊu tróc th− bao gåm mét sè tr−êng th«ng tin tu©n theo c¸c có ph¸p nghiªm ngỈt.
VÝ dơ nh− gi÷a phÇn tiªu ®Ị th− (header) vµ phÇn néi dung th− (content) ph¶i cã mét
dßng trèng ng¨n c¸ch,... 1.4.1.2. Mô tả về cấu trúc thư
Mét bøc th− bao gåm c¸c tr−êng header vµ phÇn body. PhÇn body lµ c¸c dßng
v¨n b¶n kÝ tù theo b¶ng m· ASCII. Nã ®−ỵc ph©n c¸ch víi phÇn header bëi mét dßng
trèng.
1.4.1.2.1. C¸c tr−êng header dµi
Mçi tr−êng header cã thĨ ®−ỵc xem nh− mét dßng v¨n b¶n c¸c kÝ tù theo b¶ng m·
ASCII, cÊu thµnh bëi tªn tr−êng (field-name) vµ néi dung cđa tr−êng (field-body).
§Ĩ thn tiƯn cho viƯc so s¸nh, phÇn field-body cã thĨ ®−ỵc chia ra lµm nhiỊu
dßng. Qu¸ tr×nh chia nµy ®−ỵc gäi lµ ”folding”. VÝ dơ:
To: "Joe & J. Harvey" <ddd @Org>, JJV @ BBN
cã thĨ ®−ỵc thay thÕ b»ng:
To: "Joe & J. Harvey" <ddd @ Org>,
JJV@BBN