Tải bản đầy đủ (.pdf) (91 trang)

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 hệ Mail Server

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (830.23 KB, 91 trang )

Đồ á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


2.2.2. Khái niệm socket và port ................................................................ 14

2.3. CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT/SERVER TCP ......................... 15

2.3.1. Cách cài đặt server TCP ................................................................. 15

2.3.2. Cách cài đặt client TCP .................................................................. 15

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) ...................................... 21

1.3.2.1.Gửi thư (Sending Email) ............................................................... 21

1.3.2.2. Đọc thư (Reading Email) ............................................................. 21

1.3.2.3.Đònh dạng thông điệp (Message Formats) .................................... 22

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 ................................................................................................................. 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


1.5.6. C¸c thđ tơc Opening vµ Closing ........................................................ 32

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 .................................................. 41

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


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


2.5.GIỚI THIỆU VỀ JAVA SERVER PAGES(JSP) ........................................ 48

2.5.1.Khái niệm về JSP ............................................................................... 48

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 3
2.5.2.Quan hệ giữa Servlet và JSP ............................................................. 48

2.5.2.1.Cách trình chủ biên dòch trang JSP thành servlet ......................... 48

2.5.2.2. So sánh giữa Servlet và JSP ......................................................... 49

2.6. GIỚI THIỆU VỀ JAVABEANS ................................................................ 50

2.6.1.Khái niệm về JAVABEANS .............................................................. 50

2.6.2.Các thẻ chuẩn của JAVABEANS trong trang JSP ........................ 50

2.6.2.1.<jsp:useBean> ............................................................................... 50

2.6.2.2.<jsp:setProperty> .......................................................................... 51

2.6.2.3. <jsp:getProperty> ......................................................................... 51

2.6.3.Thêm JAVABEANS vào JSP ............................................................. 51

PHẦN 2 : XÂY DỰNG ỨNG DỤNG ...................................................................... 52


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


2.1.4.1. Các bảng dữ liệu chính ................................................................ 57

2.2. CÀI ĐẶT MAILSERVER ......................................................................... 58

2.2.1.Phương án tổ chức lưu trữ mail trên Server .................................... 58

2.2.2.Các đơn thể của mailserver .............................................................. 59

2.2.2.1. Xây dựng SMTP Server ............................................................... 59

2.2.2.2. Xây dựng POP3 Server ................................................................ 72

2.3.CÀI ĐẶT MAILCLIENT ........................................................................... 86

Một số giao diện chính ................................................................................. 90






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 4


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



















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 5


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
.









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 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 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:


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
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 8
0 1 2 3 4 5 6 7
• 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
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

Header

0 3 4 7 8 15 16 31
Khu«n d¹ng cđa IP datagram
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 9

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 - 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.

• 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 2
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
10
0 1 7 8 15 16 23 24 31
netid

netid Hostid

netid hostid


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

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).


hostid


Líp A

Líp B


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)



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 l−u ý 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 ®Ĩ l−u 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.
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Ï

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
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.
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):

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
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 ®ã.

• 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.
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
15
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×
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.
socket socket

M¸y A

M¸y B

Port
HƯ thèng m¹ng
C¸c socket vµ port trong mèi nèi TCP
Mèi nè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
16
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:



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






























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
18
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 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Ư 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
19
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 ch−a? 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, 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



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 b−u ®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.


(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.

ϒ

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
Envelope Header
Phong th− vµ th«ng ®iƯp (a) Th− b−u ®iƯn. (b) Th−
®iƯn tư

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
21

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.

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ê

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
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
22
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.

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

23
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

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

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), nh−ng 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 b−u 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
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

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.
<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.

THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN

×