ĐỒ ÁN:
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ử
[Year
] [Pick the date]
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.
MỤC LỤC
PHẦN 1 : CƠ SỞ LÝ THUYẾT 9
CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET VÀ MỘT SỐ GIAO THỨC
TRUYỀN THÔNG TRÊN INTERNET 9
1.4.4. Ví d v cu trc th 42
1.5. PHN TCH GIAO THC SMTP (RFC 821) 43
1.5.1. Giới thiu chung 43
1.5.2. Mô hình hoạt đng phiên giao dịch 43
1.5.3. Th tc Mail 45
1.5.4. Th tc Forwarding 49
1.5.5. Các th tc Mailing và Sending 50
1.5.6. Các th tc Opening và Closing 52
1.5.7. Mã trả li ca các câu lnh SMTP 53
1.6. PHN TCH GIAO THC POP3 (RFC 1081,1082) 55
1.6.1. Giới thiu 55
1.6.2. Mô hình hoạt đng phiên giao dịch 55
1.6.3. Trạng thái AUTHORIZATION 57
1.6.4. Trạng thái TRANSACTION 60
1.6.5. Trạng thái UPDATE 66
1.6.6. Ví d v mt phiên giao dịch POP3 67
1.7. MIME (MULTIPURPOSE INTERNET MAIL EXTENSIONS) 69
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) 72
1.9.MAIL CLIENT, WEB MAIL 73
CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN 73
2.1.GIỚI THIỆU VỀ JRUN WEBSERVER 3.1 73
2.2.GIỚI THIỆU VỀ SQL SERVER 7.0 74
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 74
2.2.2. Cấu trúc cơ sở dữ liệu vật lý: 75
2.2.2.1. Trang (page): 75
2.2.2.2 .Extent: 76
2.2.2.3 Những loại file trong CSDL:SQL Server có 3 loại file: 76
2.3. LÝ THUYẾT MƠ HÌNH QUAN HỆ 77
2.1.1.Phân tích 88
2.1.2. Giải thích các chức năng của hệ thống 90
2.1.3.biểu đồ luồng dữ liệu( DFD – Data flow Diagram) 91
2.1.4. THIẾT KẾ HỆ THỐNG 91
2.1.4.1. Các bảng dữ liệu chính 91
2.2. CÀI ĐẶT MAILSERVER 94
2.2.1.Phương án tổ chức lưu trữ mail trên Server 94
2.2.2.Các đơn thể của mailserver 95
2.2.2.1. Xây dựng SMTP Server 95
2.2.2.2. Xây dựng POP3 Server 118
2.3.CÀI ĐẶT MAILCLIENT 143
Một số giao diện chính 149
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
máy tính lớn và hin nay là máy vi tính). Bên cạnh đ h điu hành UNIX BSD còn
cung cp nhiu th tc Internet cơ bản, đa ra khái nim Socket và cho phép chơng
trình ng dng thâm nhp vào Internet mt cách d dàng.
Cu trc mạng Internet gm c:
Tầng ng dng: TELNET, FTP, SMTP;
Tầng giao vn: TCP, UDP;
Tầng Internet: Internet Protocol;
Tầng mạng: X.25, Ethernet, FDDI. . .;
Tầng vt lý: là các môi trng truyn tin khác nhau.
1.2. H GIAO THC TCP/IP
TCP/IP là h ca các giao thc đc s dng cho vic truyn thông máy tính.
Các chữ cái đc vit tắt bi các t (Transmission Control Protocol/Internet Protocol), hai
giao thc này c cách biu din khác nhau, ngi ta ít khi s dng với cái tên đầy đ ca
hai giao thc này. Thng các giao thc đc nhm lại thành các h (đôi khi còn đc gi là
các suites hay các stacks). Các giao thc nào đc nhm lại với nhau thng đc xác định
bi các b cài đt ca giao thc.
H giao thc TCP/IP bao gm các giao thc 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à mt s các giao thc khác. Hình bên dới mô tả kin trc ca mạng TCP/IP c so
sánh với mô hình tham chiu OSI đ chng ta hình dung đc s tơng ng v chc năng
ca các tầng.
TCP/IP thc cht là mt h giao thc cng làm vic với nhau đ cung cp phơng tin
truyn thông liên mạng. Trong phần này chng ta s xem xét giao thc IP, giao thc TCP
và mt s ng dng tầng trên nh Telnet, FTP, DNS, SMTP. . .
1.3. GIAO THC LIấN MNG IP
Mc đích chính ca IP là cung cp khả năng kt ni các mạng con thành liên
Layers
Application
Layer
Host
to
Host
Transport
Layer
Internet
Layer
Network
Interface
Layer
Telnet
FTP
SMTP
DNS
RIP
SNMP
R
I
H
L
Type of
Service
Total Length
Indentification Fl
ag
s
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:
Header0 3 4 7 8
R = 0 đ tin cy bình thng
R = 1 đ tin cy 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): cng với các tham s khác (nh Source Address và
Destination Address) tham s này dng đ định danh duy nht cho mt datagram
trong khoảng thi gian n vn 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
FBit 0: reserved cha s dng , luôn ly giá trị 0
Bit 1 (DF) = 0 (May Fragment)
= 1 (Dont Fragment)
Bit 2 (MF) = 0 (Last Fragment)
= 1 (More Fragment)
Fragment Offset (13 bits): ch vị trí ca đoạn (fragment) trong datagram, tính
theo đơn vị 64 bits, c ngha là mỗi đoạn (tr đoạn cui cng) phải cha mt vng dữ
liu c đ dài là bi s ca 64 bits.
Time to live (8 bits): qui định thi gian tn tại (tính bằng giây) ca datagram
trong liên mạng đ tránh tình trạng mt datagram bị qun trên liên mạng. Thi gian
này đc cho bi trạm gi và đc giảm đi (thng qui ớc là 1 đơn vị) khi
datagram đi qua mỗi router ca liên mạng.
Protocol (8 bits): ch giao thc tầng trên k tip s nhn vng dữ liu trạm đích
(hin tại thng là TCP hoc UDP đc cài đt trên IP).
Lớp B
Lớp C
Lớp D
Lớp Enetid hostid
Multicast address
Reserved for future use
Cu trc ca các lớp địa ch IP
Lớp A cho phép định danh tới 126 mạng, với ti đa 16 triu host trên mỗi mạng.
Lớp này đc dng cho các mạng c s trạm cc lớn.
Lớp B cho phép định danh tới 16384 mạng, với ti đa 65534 host trên mỗi mạng.
Lớp C cho phép định danh tới 2 triu mạng, với ti đa 254 host trên mỗi mạng.
Lớp này đc dng cho các mạng c ít trạm.
Lớp D dng đ gi IP datagram tới mt nhm các host trên mt mạng.
Lớp E d phòng đ dng trong tơng lai.
Ví d:
0000 0000 0000 0000
= 10.0.0.0 (Lớp A)
netid = 10
= 128.3.2.3 (Lớp B)
netid = 128.3
0000
0000
0000
0001
1111
1111
Mt ®Þa ch c hostid (host identifier) b»ng 0 ®ỵc dng ®Ĩ híng tíi m¹ng ®Þnh
danh bi vng netid (network identifier). Ngỵc l¹i, mt ®Þa ch c vng hostid gm toµn s 1
®ỵc dng ®Ĩ híng tíi tt c¶ c¸c host ni vµo m¹ng netid, vµ nu vng netid cịng gm toµn s
1 th× n híng tíi tt c¶ c¸c host trong liªn m¹ng.
Trong nhiỊu trng hỵp, mt m¹ng c thĨ ®ỵc chia thµnh nhiỊu m¹ng con (subnet),
lĩc ® c thĨ ®a thªm c¸c vng subnetid ®Ĩ ®Þnh danh c¸c m¹ng con. Vng subnet ®ỵc ly
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 Sub
neti
d
Ho
stid
3. Ra quyt định chn đng.
4. Phân đoạn datagram, nu cần.
5. Kin tạo lại IP header, bao gm giá trị mới ca các vng TimetoLive,
Fragmentation và Checksum.
6. Chuyn datagram xung tầng dới đ truyn qua mạng.
Cui cng, khi mt datagram đc nhn bi thc th IP trạm đích, n s thc hin các
công vic sau:
1. Tính checksum. Nu bt cp thì loại b datagram.
2. Tp hp các đoạn ca datagram (nu c phân đoạn).
3. ChuyĨn d÷ liƯu vµ c¸c tham s ®iỊu khiĨn lªn tÇng trªn b»ng c¸ch dng
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
Rese
rved
Window
Checksum Urgent Pointer
RST: khi đng lại (reset) liên kt
SYN: đng b hoá các s hiu tuần t (sequence number)
FIN: không còn dữ liu t trạm ngun
Window (16 bits): cp phát credit đ kim soát lung dữ liu (cơ ch ca s). Đây
chính là s lng các byte dữ liu, bắt đầu t byte đc ch ra trong vng ACK
number, mà trạm ngun đã sẵn sàng đ nhn.
Checksum (16 bits): mã kim 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 hiu tuần t ca byte đi theo sau dữ
liu khn, cho phép bên nhn bit đc đ dài ca dữ liu khn. Vng này ch c
hiu lc khi bit URG đc thit lp.
Options (đ dài thay đi): khai báo các Options ca TCP, trong đ c đ dài ti đa
ca vng TCP data trong mt segment.
Padding (đ dài thay đi): Phần chèn thêm vào header đ bảo đảm phần
header luôn kt thc mt mc 32 bits. Phần thêm này gm toàn s 0.
TCP data (đ dài thay đi): cha dữ liu ca tầng trên, c đ dài ti đa ngầm
định là 536 bytes. Giá trị này c th điu chnh bằng cách khai báo trong vng
options.
Mt tin trình ng dng trong mt host truy nhp vào các dịch v ca TCP cung cp
thông qua mt cng (port). Mt cng kt hp với mt địa ch IP tạo thành mt socket duy nht
trong liên mạng. Dịch v TCP đc cung cp nh mt liên kt logic giữa mt cp socket. Mt
socket c th tham gia nhiu liên kt với các socket xa khác nhau. Trớc khi truyn dữ liu
giữa hai trạm cần phải thit lp mt liên kt TCP giữa chng và khi không còn nhu cầu
truyn dữ liu thì liên kt đ s đc giải phng. Cng ging nh các giao thc khác, các thc
th tầng trên s dng TCP thông qua các hàm dịch v nguyên th (service
primitives), hay còn gi là các li gi hàm (function calls).
CHNG 2 : C S V LP TRèNH MNG TRấN Mễ HèNH
CLIENT/SERVER
2.1. LP TRèNH GIAO TIP MNG VI WINDOWS SOCKETS
Windows NT là mt h điu hành mạnh, cho phép tn dng ti đa khả năng ca
s nguyên dơng.
Hình bên dới minh ha cách giao tip giữa hai máy tính trong giao thc truyn
thông TCP. Máy A tạo ra mt socket và kt buc (bind) socket này với port X (tc là mt s
nguyên dơng c ý ngha cc b trong máy A), trong khi đ máy B tạo mt socket khác và
mc vào (connect) port X trong máy A.
2.3. CCH CI T NG DNG CLIENT/SERVER TCP
2.3.1. Cỏch ci t server TCP
ng dng server làm vic theo qui trình sau đây:
socket
socketMáy A
Máy B Port
H thng mạng
Các socket và port trong mi ni TCP