Đồ á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...............................................................................................14
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..............................................................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Ử.........18
CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN THƯ ĐIỆN TỬ.............18
1.1. MAILSERVER .........................................................................................18
1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL)................18
1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ..............................18
1.3.1. KiÕn tróc vµ c¸c dÞch vơ......................................................................18
1.3.2. T¸c nh©n ngêi sư dơng (The User Agent)............................................20
1.3.2.1.Gửi thư (Sending Email)...............................................................20
1.3.2.2. Đọc thư (Reading Email).............................................................20
1.3.2.3.Đònh dạng thông điệp (Message Formats)....................................21
1.3.2.4.Chuẩn RFC 822............................................................................22
1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP VÀ
POP3................................................................................................................23
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ư...................................................................24
1.4.2. §Þnh nghÜa vỊ c¸c trêng Header...........................................................25
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 1
Đồ án tốt nghiệp
1.4.3. C¸c trêng header ®iĨn h×nh.................................................................25
1.4.4. VÝ dơ vỊ cÊu tróc th..............................................................................26
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.................................................27
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
1.5.6. C¸c thđ tơc Opening vµ Closing..........................................................33
1.5.7. M· tr¶ lêi cđa c¸c c©u lƯnh SMTP........................................................33
1.6. PHÂN TÍCH GIAO THỨC POP3 (RFC 1081,1082).................................34
1.6.1. Giíi thiƯu..........................................................................................34
1.6.2. M« h×nh ho¹t ®éng phiªn giao dÞch.................................................34
1.6.3. Tr¹ng th¸i AUTHORIZATION...........................................................35
1.6.4. Tr¹ng th¸i TRANSACTION................................................................37
1.6.5. Tr¹ng th¸i UPDATE............................................................................40
1.6.6. VÝ dơ vỊ mét phiªn giao dÞch POP3..................................................40
1.7. MIME (MULTIPURPOSE INTERNET MAIL EXTENSIONS)...............41
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)..................................................43
1.9.MAIL CLIENT, WEB MAIL.....................................................................43
CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN....................43
CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN........................43
2.1.GIỚI THIỆU VỀ JRUN WEBSERVER 3.1...............................................43
2.2.GIỚI THIỆU VỀ SQL SERVER 7.0..........................................................43
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
....................................................................................................................46
2.2.2.2 .Extent:........................................................................................46
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Ệ........................................................47
2. 3.1. Các khái niệm cơ bản..................................................................47
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..........................................................48
2.4.1.Khái niệm về JAVA SERVLET.........................................................48
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..............................................................49
2.5.2.1.Cách trình chủ biên dòch trang JSP thành servlet.......................49
2.5.2.2. So sánh giữa Servlet và JSP......................................................50
2.6. GIỚI THIỆU VỀ JAVABEANS................................................................51
2.6.1.Khái niệm về JAVABEANS..............................................................51
2.6.2.Các thẻ chuẩn của JAVABEANS trong trang JSP.............................51
2.6.2.1.<jsp:useBean>............................................................................51
2.6.2.2.<jsp:setProperty>........................................................................51
2.6.2.3. <jsp:getProperty>......................................................................52
2.6.3.Thêm JAVABEANS vào JSP.............................................................52
PHẦN 2 : XÂY DỰNG ỨNG DỤNG......................................................................53
CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN.................................................................53
CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN....................................................................53
1.1.TÊN ĐỀ TÀI..............................................................................................53
1.2.DỀ CƯƠNG CHI TIẾT..............................................................................53
1.2.1.Khảo sát.............................................................................................54
1.2.2.Yêu cầu của bài toán..........................................................................54
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............54
1.2.4. Chức năng của hệ thống thông tin quản lý........................................55
1.3. LÝ DO CHỌN ĐỀ TÀI.............................................................................55
CHƯƠNG 2 : THIẾT KẾ VÀ CÀI ĐẶT ỨNG DỤNG........................................55
CHƯƠNG 2 : THIẾT KẾ VÀ CÀI ĐẶT ỨNG DỤNG............................................55
2.1.PHÂN TÍCH VÀ THẾT KẾ CƠ SỞ DỮ LIỆU..........................................55
2.1.1.Phân tích.............................................................................................55
......................................................................................................................57
........................................................................................................................57
2.1.2. Giải thích các chức năng của hệ thống..............................................57
2.1.3.biểu đồ luồng dữ liệu( DFD – Data flow Diagram)............................57
2.1.4. THIẾT KẾ HỆ THỐNG....................................................................58
2.1.4.1. Các bảng dữ liệu chính...............................................................58
2.2. CÀI ĐẶT MAILSERVER.........................................................................59
2.2.1.Phương án tổ chức lưu trữ mail trên Server........................................59
2.2.2.Các đơn thể của mailserver................................................................59
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...........................................................................86
.................................................................................................................90
Một số giao diện chính.................................................................................90
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
nhiều nhất trên Internet hiện nay. Dòch vụ này cho phép các cá nhân hay tổ chức
trao đổi thư với nhau thông qua mạng Internet. Nhiều người sử dụng Internet chỉ để
dùng dòch vụ này.
Thông thường, khi sử dụng dòch vụ thư tín điện tử, người sử dụng thường ít khi
quan tâm xem hệ thống bên trong đã thực hiện như thế nào. Vì vậy, họ ( người sử
dụng) mới chỉ thấy được một nửa của ứng dụng dòch vụ Email và phần ứng dụng đó
được gọi là Mail Client, hay là sử dụng dòch vụ thư tín máy trạm.
Nhằm mục đích hiểu rõ hơn về hoạt động bên trong của ứng dụng Email ở
phần cung cấp dòch vụ mà thường được gọi là Mail Server, trong cuốn đồ án này tôi
xin trình bày một cách cơ bản hệ thống phục vụ việc truyền thư tín điện tử trên cơ
sở tìm hiểu về các mô hình truyền thông thư tín, các giao thức truyền thông chuẩn,
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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 5
Đồ án tốt nghiệp
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 INTERNET
1.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
ph¸t triĨn vµo thËp kû b¶y m¬i. Sè lỵng m¸y tÝnh nèi m¹ng vµ sè lỵng ngêi truy cËp
vµo m¹ng Internet trªn toµn thÕ giíi ®ang ngµy cµng t¨ng lªn nhanh chãng, ®Ỉc biƯt tõ
n¨m 1993 trë ®i. M¹ng Internet kh«ng chØ cho phÐp chun t¶i th«ng tin nhanh chãng
mµ cßn gióp cung cÊp th«ng tin, nã còng lµ diƠn ®µn vµ lµ th viƯn toµn cÇu ®Çu tiªn.
M¹ng Internet cã xt xø n¨m 1969 tõ m¹ng m¸y tÝnh toµn cơc ARPANET do
c¬ quan qu¶n lý c¸c dù ¸n nghiªn cøu c¸c c«ng tr×nh nghiªn cøu khoa häc tiªn tiÕn
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
0 3 4 7 8 15 16 31
Đồ á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
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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 7
0 3 4 7 8 15 16 31
Đồ án tốt nghiệp
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:
• VER (4 bits): chØ version hiƯn hµnh cđa IP ®ỵc cµi ®Ỉt
• IHL (4 bits): chØ ®é dµi phÇn ®Çu (Internet Header Length) cđa datagram,
tÝnh theo ®¬n vÞ tõ (word = 32 bits). §é dµi tèi thiĨu lµ 5 tõ (20 bytes).
VE
R
IH
L
Type of Service Total Length
Indentification Fla
gs
Fragment
offset
Time to live Protocol Header Checksum
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 8
TCP/IP Protocol Suite
OSI Model
Layers
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
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
Header
0 3 4 7 8 15 16 31
Khu«n d¹ng cđa IP datagram
0 1 2 3 4 5 6 7
Đồ án tốt nghiệp
Source Address
Destination Address
Options + Padding
Data
(max: 65.535 bytes)
• 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
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
• 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 M
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 9
0 1 2
Đồ án tốt nghiệp
F F
Bit 0: reserved - cha 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.
• Source Address (32 bits): ®Þa chØ cđa tr¹m ngn.
• Destination Address (32 bits): ®Þa chØ cđa tr¹m ®Ých.
• Options (®é dµi thay ®ỉi): khai b¸o c¸c options do ngêi gưi yªu cÇu.
• Padding (®é dµi thay ®ỉi): vïng ®Ưm, ®ỵc dïng ®Ĩ ®¶m b¶o cho phÇn
header lu«n kÕt thóc ë mét mèc 32 bits.
• Data (®é dµi thay ®ỉi): vïng d÷ liƯu, cã ®é dµi lµ béi sè cđa 8 bits, vµ tèi
®a lµ 65535 bytes.
S¬ ®å ®Þa chØ ho¸ ®Ĩ ®Þnh danh c¸c tr¹m (host) trong liªn m¹ng ®ỵc gäi lµ ®Þa
chØ IP 32 bits (32- bit- IP address). Mçi ®Þa chØ IP cã ®é dµi 32 bits ®ỵc t¸ch thµnh 4
vïng (mçi vïng 1 byte), cã thĨ ®ỵc biĨu thÞ díi d¹ng thËp ph©n, b¸t ph©n, thËp lơc ph©n
hc nhÞ ph©n. C¸ch viÕt phỉ biÕn nhÊt lµ dïng ký ph¸p thËp ph©n cã dÊu chÊm (dotted
decimal notation) ®Ĩ t¸ch c¸c vïng. Mơc ®Ých cđa ®Þa chØ IP lµ ®Ĩ ®Þnh danh duy nhÊt
cho mét host bÊt kú trªn liªn m¹ng. Do tỉ chøc vµ ®é lín cđa c¸c m¹ng con (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
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 10
hostid
Líp A
Líp B
Líp C
Líp D
Líp E
0
0
31
31
(Líp A)
(Líp B)
(Líp C)
Đồ án tốt nghiệp
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
00000
011
00000
010
00000
011
11000
000
00000
000
00000
001
11111
111
Mét ®Þa chØ cã hostid (host identifier) b»ng 0 ®ỵc dïng ®Ĩ híng tíi m¹ng ®Þnh
danh bëi vïng netid (network identifier). Ngỵc l¹i, mét ®Þa chØ cã vïng hostid gåm
toµn sè 1 ®ỵc dïng ®Ĩ híng tíi tÊt c¶ c¸c host nèi vµo m¹ng netid, vµ nÕu vïng netid
còng gåm toµn sè 1 th× nã híng tíi tÊt c¶ c¸c host trong liªn m¹ng.
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 Host
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 11
= 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
Đồ án tốt nghiệp
etid 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Ø
IP (32 bits) vµ ®Þa chØ vËt lý (48 bits) cđa mét tr¹m. Giao thøc ARP (Address
Resolution Protocol) ®· ®ỵc x©y dùng ®Ĩ chun ®ỉi tõ ®Þa chØ IP sang ®Þa chØ vËt lý
khi cÇn thiÕt. Ngỵc l¹i, giao thøc RARP (Reverse Address Resolution Protocol) ®ỵc
dïng ®Ĩ chun ®ỉi tõ ®Þa chØ vËt lý sang ®Þa chØ IP. Chó ý r»ng c¶ ARP vµ RARP ®Ịu
kh«ng ph¶i lµ bé phËn cđa IP. IP sÏ dïng ®Õn chóng khi cÇn.
Mét giao thøc kh¸c còng liªn quan trùc tiÕp ®Õn IP, ®ã lµ ICMP (Internet Control
Message Protocol). Giao thøc nµy thùc hiƯn trun c¸c th«ng b¸o ®iỊu khiĨn (b¸o c¸o
vỊ c¸c t×nh tr¹ng lçi trªn m¹ng,...) gi÷a c¸c gateway hc tr¹m cđa liªn m¹ng. T×nh
tr¹ng lçi cã thĨ lµ: mét datagram kh«ng thĨ tíi ®ỵc ®Ých cđa nã, hc mét router kh«ng
®đ bé nhí ®Ưm ®Ĩ lu vµ chun mét datagram,... Mét th«ng b¸o ICMP ®ỵc t¹o vµ
chun cho IP. IP sÏ ”bäc” (encapsulate) th«ng b¸o ®ã víi mét IP header vµ 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.
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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 12
Đồ án tốt nghiệp
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
PS
H
RS
T
SY
N
FIN
Window
Checksum Urgent Pointer
Options Padding
TCP data
Khu«n d¹ng cđa TCP segment.
TCP lµ mét giao thøc kiĨu ”cã liªn kÕt” (connection - oriented), nghÜa lµ cÇn ph¶i
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.
• 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).
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 13
bit 0 15 16 31
Đồ án tốt nghiệp
• 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
socket duy nhÊt trong liªn m¹ng. DÞch vơ TCP ®ỵc cung cÊp nhê mét liªn kÕt logic
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
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
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 14
Đồ án tốt nghiệp
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 ®ã.
• T¹o ra c¸c dÞch vơ trªn m¸y Windows NT ®Ĩ c¸c m¸y UNIX cã thĨ khai th¸c nh÷ng
dÞch vơ nµy.
• ViÕt c¸c ch¬ng tr×nh cho phÐp c¸c m¸y Windows NT giao tiÕp trªn hƯ thèng m¹ng
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
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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 15
Đồ án tốt nghiệp
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.
Sau khi ®· hoµn tÊt qu¸ tr×nh trao ®ỉi d÷ liƯu, øng dơng server gäi hµm closesocket ®Ĩ
®ãng socket ®· t¹o.
2.3.2. Cách cài đặt client TCP
øng dơng client thùc hiƯn c¸c bíc sau:
1. Gäi hµm socket ®Ĩ t¹o mét socket.
2. Gäi hµm connect ®Ĩ nèi vµo server.
3. Gäi c¸c hµm gưi hay nhËn d÷ liƯu ®Ĩ trao ®ỉi th«ng tin víi server, vÝ dơ nh c¸c
hµm send, recv.
4. Sau khi ®· hoµn tÊt qu¸ tr×nh trao ®ỉi d÷ liƯu, øng dơng client gäi hµm
closesocket ®Ĩ ®ãng socket ®· t¹o.
H×nh minh häa c¸c bíc cÇn thiÕt ®Ĩ c¸c øng dơng client vµ server giao tiÕp víi
nhau nh sau:
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 16
socketsocket
M¸y A
M¸y A
M¸y B
M¸y B
Port
HƯ thèng m¹ng
C¸c socket vµ port trong mèi nèi TCP
Mèi nèi
ø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
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
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
Đồ á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
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¹ ®Ĩ t¬ng
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 18
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
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
Đồ án tốt nghiệp
t¸c víi hƯ thèng th ®iƯn tư. C¸c MTAs lµ c¸c tr×nh tiƯn Ých ho¹t ®éng ë chÕ ®é nỊn
(background) thùc hiƯn c¸c nhiƯm vơ cÇn thiÕt nh tiÕp nhËn th ®iƯn tư vµ chun th qua
c¸c hƯ thèng.
§Ỉc biƯt, c¸c hƯ thèng th ®iƯn tư hç trỵ n¨m chøc n¨ng c¬ b¶n, ®ỵc m« t¶ díi ®©y:
1. Composition: Xư lý viƯc t¹o c¸c th«ng ®iƯp vµ tr¶ lêi. Cho phÐp bÊt cø tr×nh
so¹n th¶o nµo cã thĨ ®ỵc sư dơng cho phÇn th©n cđa th«ng ®iƯp, c¸c hƯ
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
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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 19
(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
Street: 18 Willow Lane
State: NY
Zip code: 10604
Priority: Urgent
Encryption: None
From: United Gizmo
Address: 180 Main St
Location: Boston, MA 02120
Date: 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
EnvelopeHeader
Phong th vµ th«ng ®iƯp (a) Th bu ®iƯn. (b) Th ®iƯn tư
Đồ án tốt nghiệp
C¸c ®Ỉc tÝnh n©ng cao kh¸c lµ ®ång gưi (carbon copies), th cã møc u tiªn cao
(high-priority email), b¶o mËt th (secret email) cã nghÜa lµ th«ng ®iƯp ®ỵc m· hãa tríc
khi gưi ®i, thay ®ỉi ngêi nhËn th (alternative recipients) nÕu ngêi ®Çu tiªn kh«ng cã kh¶
n¨ng nhËn ®ỵc, vµ c¸c kh¶ n¨ng cho c¸c c« th ký vËn dơng th cđa c¸c «ng chđ cđa
m×nh.
HiƯn nay th ®iƯn tư ®ỵc sư dơng réng r·i trong viƯc kinh doanh cho viƯc trun
th«ng tin trong c«ng ty. Nã cho phÐp c¸c c«ng nh©n ë xa hỵp t¸c vỊ c¸c dù ¸n phøc t¹p,
ngay c¶ nh÷ng n¬i ph¶i mÊt nhiỊu thêi gian míi ®Õn ®ỵc. Mét sè c«ng ty ®· ®¸nh gi¸
r»ng th ®iƯn tư ®· lµm t¨ng n¨ng st s¶n xt cđa hä lªn 30 phÇn tr¨m (Perry and
Adam 1992).
Mét kh¸i niƯm quan träng trong tÊt c¶ c¸c hƯ thèng th ®iƯn tư hiƯn ®¹i lµ sù ph©n
biƯt gi÷a phong b× (envelope) vµ c¸c néi dung bªn trong cđa nã. Phong b× bao bäc
(encapsulate) c¶ th«ng ®iƯp. Nã chøa tÊt c¶ c¸c th«ng tin cÇn thiÕt cho viƯc trun t¶i
th«ng ®iƯp, nh lµ ®Þa chØ ®Ých, ®é u tiªn, vµ møc ®é b¶o mËt , tÊt c¶ nh÷ng c¸i ®ã ®Ịu
kh¸c biƯt víi th«ng ®iƯp bªn trong nã. C¸c MTAs sư dơng phong b× cho viƯc ®Þnh tun
®êng trun, ®iỊu nµy còng gièng nh c«ng viƯc cđa bu ®iƯn lµm.
Th«ng ®iƯp ë bªn trong phong b× chøa hai phÇn: phÇn ®Çu th (header) vµ phÇn
th©n th (body). PhÇn header chøa c¸c th«ng tin ®iỊu khiĨn cho c¸c UAs. PhÇn th©n lµ
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.
1.3.2. T¸c nh©n ng êi sư dơng (The User Agent)
C¸c hƯ thèng th ®iƯn tư cã hai phÇn c¬ b¶n, nh chóng ta ®· thÊy gåm: phÇn UA vµ
phÇn MTA. Trong phÇn nµy chóng ta sÏ xÐt ®Õn phÇn UA. Mét UA thêng lµ mét ch¬ng
tr×nh (®«i khi ®ỵc gäi lµ bé phËn ®äc th) nã nhËn mét trong nh÷ng lƯnh kh¸c nhau nh lµ
cho mơc ®Ých so¹n th, nhËn th, vµ håi ®¸p c¸c th«ng ®iƯp, còng nh viƯc 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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 20
Đồ án tốt nghiệ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
5 103610 Kaashoek Text of DCS paper
6 1223 Emily E. Pointer to WWW page
7 3110 Saniya Referee reports for the page
8 1204 Dmr Re: My student’s visit
HiĨn thÞ c¸c néi dung cđa hép th.
Trêng thø ba cho biÕt chiỊu dµi cđa th«ng ®iƯp vµ trêng thø t cho biÕt ai lµ ngêi
gưi th«ng ®iƯp. V× trêng nµy ®ỵc trÝch ra tõ c¸c th«ng ®iƯp rÊt ®¬n gi¶n nªn trêng nµy
cã thĨ chøa c¸c tªn, hä tªn ®Çy ®đ, c¸c tªn viÕt t¾t, c¸c tªn ®¨ng nhËp, hay bÊt cø thø g×
mµ ngêi gưi cã thĨ ®Ỉt vµo trong trêng nµy. Ci cïng lµ trêng chđ ®Ị th (Subject) cho
biÕt mét c©u v¾n t¾t vỊ nh÷ng g× trong néi dung th«ng ®iƯp. Nh÷ng ngêi nµo quªn ®iỊn
vµo trêng nµy th× thêng ®ỵc cho lµ nh÷ng c©u tr¶ lêi cho th cđa hä lµ kh«ng chó ý ®Õn
møc u tiªn cao nhÊt.
Sau khi c¸c phÇn ®Çu ®· ®ỵc hiĨn thÞ, ngêi sư dơng cã thĨ thùc hiƯn bÊt cø lƯnh
nµo cã thĨ. Mét chän lùa tiªu biĨu ®ỵc liƯt kª ë b¶ng bªn díi (h×nh bªn díi) lµ mét vÝ
dơ khi mét ngêi sư dơng b»ng hƯ thèng Mmdf cđa hƯ ®iỊu hµnh UNIX. Cã mét sè 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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 21
Đồ án tốt nghiệp
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
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
cã sù ph©n biƯt gi÷a nh÷ng ngêi nhËn thø nhÊt vµ ngêi nhËn thø hai. Tht ng÷ Cc
(Carbon copy) lµ mét mÉu ®· ®ỵc x¸c ®Þnh, v× m¸y tÝnh kh«ng sư dơng c¸c trang giÊy
b¶n sao. Trêng Bcc: (Blind carbon copy) gièng nh trêng Cc: chØ trõ lµ dßng nµy ®ỵc
xãa khái tÊt c¶ c¸c b¶n sao ®ỵc gưi ®Õn nh÷ng ngêi nhËn ®Çu tiªn vµ ngêi nhËn thø hai.
§Ỉc tÝnh nµy cho phÐp ngêi ta gưi c¸c b¶n sao ®Õn nh÷ng ngêi trong nhãm thø ba mµ
trong ®ã kh«ng cã ngêi thø nhÊt vµ ngêi thø hai biÕt.
Header Meaning
To: Email address(es) of primary recipient(s)
Cc: Email address(es) of secondary recipient(s)
Bcc: Email address(es) for blind carbon copies
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 22
Đồ án tốt nghiệp
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 nhng 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
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 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
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 23
Đồ án tốt nghiệp
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
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
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 lu 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
vµ:
To: "Joe & J. Harvey"
<ddd@ Org>, JJV
@BBN
hay:
To: "Joe &
J. Harvey" <ddd @ Org>, JJV @ BBN
Qu¸ tr×nh thùc hiƯn ngỵc l¹i ®Ĩ kÕt hỵp nhiỊu dßng header ®· ®ỵc folding nh trªn
®ỵ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.
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 24
Đồ án tốt nghiệp
<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.
1.4.1.2.3. C¸c trêng header kh«ng cã cÊu tróc
Mét sè trêng nh “Subject” vµ “Comments” kh«ng ®ỵc coi lµ c¸c trêng cã cÊu tróc
vµ chóng ®ỵc xem nh mét dßng v¨n b¶n ®¬n thn còng nh néi dung th trong phÇn
body.
1.4.2. §Þnh nghÜa vỊ c¸c tr êng Header
C¸c lt ng÷ nghÜa ë ®©y ®ỵc tr×nh bµy theo sù so s¸nh møc cao. Nã kh«ng dµnh
riªng cho trêng nµo. Mơc ®Ých cđa nã lµ ®Ĩ trỵ gióp viƯc so s¸nh vµ ph©n tÝch th«ng tin
ë c¸c trêng.
CÊu tróc chung cã d¹ng:
field = <field-name> ”:” [field-body] CRLF
field-name = 1*<any CHAR, excluding CTLs,SPACE,and ”:”>
field-body = *text<CRLF LWSP-char field-body>
1.4.3. C¸c tr êng header ®iĨn h×nh
a. Trêng RETURN-PATH
<Return> = “Return-Path” “:” route-addr
Trêng th«ng tin nµy ®ỵc hƯ thèng trun t¶i th tÝn ci cïng (lµ hƯ thèng ci
cïng ph¸t th cho ngêi nhËn cđa nã) thªm vµo phÇn header cđa th. Nã ®ỵc dïng ®Ĩ chøa
®ùng nh÷ng th«ng tin vỊ ®Þa chØ tr¶ vỊ (return-address) cđa ngêi gưi ban ®Çu.
b. Trêng RECEIVED
<Received> = “Received-From” “:” domain
Mét b¶n sao cđa trêng th«ng tin nµy sÏ ®ỵc thªm vµo bëi mçi mét hƯ thèng
trun t¶i th«ng ®iƯp mµ th ®ỵc chun qua. Th«ng tin ë trêng nµy rÊt h÷u Ých trong tr-
êng hỵp x¶y ra lçi trong trun th«ng.
Trêng th«ng tin nµy dïng ®Ĩ x¸c ®Þnh tªn cđa m¸y chđ gưi (sending host), m¸y
chđ nhËn vµ thêi gian nhËn ®ỵc.
c. Trêng FORWARD
<Forward> = “Forward-Path” “:” route-addr
Sinh viên thực hiện Nguyễn Xuân Thanh Trang 25