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

Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - 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ử pot

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 (840.37 KB, 151 trang )




ĐỒ Á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.1. GIỚI THIỆU CHUNG VỀ INTERNET 9
1.2. HỌ GIAO THỨC TCP/IP 10
1.3. GIAO THỨC LIÊN MẠNG IP 11
1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP 20
CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG TRN MƠ HÌNH CLIENT/SERVER
23
2.1. LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINDOWS SOCKETS 23
2.2. MỘT SỐ KHÁI NIỆM CƠ BẢN 23
2.2.1.Địa chỉ Internet 23
2.2.2. Khái niệm socket và port 24
2.3. CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT/SERVER TCP 24
2.3.1. Cách cài đặt server TCP 24
2.3.2. Cách cài đặt client TCP 25
CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN THƯ ĐIỆN TỬ 26
1.1. MAILSERVER 26
1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL) 27
1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ 27
1.3.1. Kin trĩc vµ c¸c dÞch vơ 27
1.3.2. T¸c nh©n ngi sư dơng (The User Agent) 30
1.3.2.1.Gửi thư (Sending Email) 30
1.3.2.2. Đọc thư (Reading Email) 31
1.3.2.3.Định dạng thông điệp (Message Formats) 33
1.3.2.4.Chuẩn RFC 822 33
1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP VÀ
POP3 37
1.4.1.Phân tích cấu trúc thư điện tử (RFC 822) 37
1.4.1.1. Giới thiu 37
1.4.1.2. Mụ t v cu trỳc th 38
1.4.2. Định ngha v các trng Header 39
1.4.3. Các trng header đin hình 40

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. 3.1. Các khái niệm cơ bản 77
2.3.2. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn 77
2.3.3 Khái niệm chỉ dẫn và khóa chỉ dẫn 78
2.4.GIỚI THIỆU VỀ JAVA SERVLET 78
2.4.1.Khái niệm về JAVA SERVLET 78
2.4.2.Những ứng dụng thực tế của JAVA SERVLET và kiến trúc của
JAVA SERVLET 79
2.5.GIỚI THIỆU VỀ JAVA SERVER PAGES(JSP) 79
2.5.1.Khái niệm về JSP 79
2.5.2.Quan hệ giữa Servlet và JSP 80
2.5.2.1.Cch trình chủ biên dịch trang JSP thành servlet 80
2.5.2.2. So sánh giữa Servlet và JSP 80
2.6. GIỚI THIỆU VỀ JAVABEANS 81
2.6.1.Khái niệm về JAVABEANS 81
2.6.2.Các thẻ chuẩn của JAVABEANS trong trang JSP 82
2.6.2.1.<jsp:useBean> 82
2.6.2.2.<jsp:setProperty> 83
2.6.2.3. <jsp:getProperty> 84
2.6.3.Thêm JAVABEANS vào JSP 84
PHẦN 2 : XÂY DỰNG ỨNG DỤNG 85
CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN 85
1.1.TÊN ĐỀ TÀI 85
1.2.DỀ CƯƠNG CHI TIẾT 86
1.2.1.Khảo sát 86
1.2.2.Yêu cầu của bài toán 86
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 87
1.2.4. Chức năng của hệ thống thông tin quản lý 87
1.3. LÝ DO CHỌN ĐỀ TÀI 88
CHƯƠNG 2 : THIẾT KẾ VÀ CÀI ĐẶT ỨNG DỤNG 88
2.1.PHÂN TÍCH VÀ THẾT KẾ CƠ SỞ DỮ LIỆU 88

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

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.





PHN 1 : C S Lí THUYT
CHNG 1 : GII THIU CHUNG V INTERNET V MT S GIAO
THC TRUYN THễNG TRấN INTERNET
1.1. GII THIU CHUNG V INTERNET
Mạng Internet là mt tp hp gm hàng vạn h mạng trên khắp th giới, đc phát
trin vào thp k bảy mơi. S lng máy tính ni mạng và s lng ngi truy cp vào mạng
Internet trên toàn th giới đang ngày càng tăng lên nhanh chng, đc bit t năm 1993 tr
đi. Mạng Internet không ch cho phép chuyn tải thông tin nhanh chng mà còn gip
cung cp thông tin, n cng là din đàn và là th vin toàn cầu đầu tiên.
Mạng Internet c xut x năm 1969 t mạng máy tính toàn cc ARPANET do cơ
quan quản lý các d án nghiên cu các công trình nghiên cu khoa hc tiên tin thuc B Quc
phòng M (US Defenses Advance Research Projects Agency gi 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 thut chuyn
mạch gi qua mạng vô tuyn và thông tin v tinh. Năm 1980, DARPA th nghim dng
giao thc TCP/IP và đã đc các trng đại hc M ghép ni với h điu hành UNIX
BSD (Berkely Software Distribution).
H điu hành UNIX là h phát trin mạnh với rt nhiu công c hỗ tr và đảm
bảo các phần mm ng dng c th chuyn qua lại trên các h máy khác nhau (máy mini,

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

mạng đ truyn dữ liu. Vai trò ca IP tơng t vai trò ca giao thc tầng mạng trong mô
hình OSI.
IP là mt giao thc kiu không liên kt (connectionless) c ngha là không cần c
giai đoạn thit lp liên kt trớc khi truyn dữ liu. Đơn vị dữ liu dng trong IP đc gi
là datagram, c khuôn dạng ch ra trong hình bên dới.
ý ngha ca các tham s nh sau:
VER (4 bits): ch version hin hành ca IP đc cài đt

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 kin tr

c ISO và TCP/IP

0 1 2 3 4 5 6 7

IHL (4 bits): ch đ dài phần đầu (Internet Header Length) ca datagram, tính
theo đơn vị t (word = 32 bits). Đ dài ti thiu là 5 t (20 bytes).

VE

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:

Header


0 3 4 7 8




15 16



31

Khuôn dạng c

a IP datagram

Precede
nce
D
T
R
Rese
rved
trong đ:
Precedence (3 bits): ch thị v quyn u tiên gi datagram, c th là:
111 Network Control (cao nht) 011 Flash
110 Internetwork Control 010 Immediate
101 CRITIC/ECP 001 Priority
100 Flas Override 000 Routine (thp nht)
D (Delay) (1 bit): ch đ tr yêu cầu
D = 0 đ tr bình thng
D = 1 đ tr thp
T (Throughput) (1 bit): ch thông lng yêu cầu
T = 0 thông lng bình thng
T = 1 thông lng cao
R (Reliability) (1 bit): ch đ tin cy yêu cầu

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
F


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


0 1 2

Header Checksum (16 bits): mã kim soát lỗi 16 bits theo phơng pháp CRC, ch
cho vng header.
Source Address (32 bits): địa ch ca trạm ngun.
Destination Address (32 bits): địa ch ca trạm đích.
Options (đ dài thay đi): khai báo các options do ngi gi yêu cầu.
Padding (đ dài thay đi): vng đm, đc dng đ đảm bảo cho phần header
luôn kt thc mt mc 32 bits.
Data (đ dài thay đi): vng dữ liu, c đ dài là bi s ca 8 bits, và ti đa là
65535 bytes.
Sơ đ địa ch hoá đ định danh các trạm (host) trong liên mạng đc gi 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
vng (mỗi vng 1 byte), c th đc biu thị dới dạng thp phân, bát phân, thp lc phân
hoc nhị phân. Cách vit ph bin nht là dng ký pháp thp phân c du chm (dotted
decimal notation) đ tách các vng. Mc đích ca địa ch IP là đ định danh duy nht
cho mt host bt k trên liên mạng. Do t chc và đ lớn ca các mạng con (subnet) ca liên
mạng c th khác nhau, ngi ta chia các địa ch IP thành 5 lớp, ký hiu là A, B, C, D và
E, với cu trc đc ch ra trong hình bên dới.

0 1 7 8 15 16 23 24
31
netid

netid Hostid
hostid


Lớp A


Lớp B

Lớp C

Lớp D

Lớp E


netid 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

hostid = 2.3
= 192.0.1.255 (Lớp C)

netid = 192.0.1
hostid = 255 hớng đn tt cả các host

0

0

31

31

(Líp A)
(Líp B)
(Líp C)
1010 0000 0000 0000

1000
0000
0000
0011
0000
0010
0000
0011

1100
0000

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 trng 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


B sung vng subnetid
Cần lu ý rằng các địa ch IP đc dng đ định danh các host và mạng tầng
mạng ca Mô hình OSI, và chng không phải là các địa ch vt lý (hay địa ch MAC
Media Access Control) ca các trạm đ trên mt mạng cc b (Ethernet,Token Ring ).
Trên mt mạng cc b nh vy, hai trạm ch c th liên lạc với nhau nu chng bit địa ch vt lý
ca nhau. Nh vy, vn đ đt ra là phải thc hin ánh xạ giữa địa ch IP (32 bits) và
địa ch vt lý (48 bits) ca mt trạm. Giao thc ARP (Address Resolution Protocol) đã
đc xây dng đ chuyn đi t địa ch IP sang địa ch vt lý khi cần thit. Ngc lại,
giao thc RARP (Reverse Address Resolution Protocol) đc dng đ chuyn đi t địa
ch vt lý sang địa ch IP. Ch ý rằng cả ARP và RARP đu không phải là b phn ca
IP. IP s dng đn chng khi cần.
Mt giao thc khác cng liên quan trc tip đn IP, đ là ICMP (Internet Control
Message Protocol). Giao thc này thc hin truyn các thông báo điu khin (báo cáo v
các tình trạng lỗi trên mạng, ) giữa các gateway hoc trạm ca liên mạng. Tình trạng lỗi
c th là: mt datagram không th tới đc đích ca n, hoc mt router không đ b nhớ
đm đ lu và chuyn mt datagram, Mt thông báo ICMP đc tạo và chuyn cho
IP. IP s bc (encapsulate) thông báo đ với mt IP header và truyn đn cho router hoc
trạm đích.
Chng ta c th tm tắt các bớc thc hin bi mt thc th IP nh sau:
Đi với thc th IP trạm ngun, khi nhn đc mt primitive SEND t tầng trên , n
thc hin các bớc sau đây:
1. Tạo mt IP datagram da trên các tham s ca primitive SEND
2. Tính checksum và ghép vào header ca datagram.
3. Ra quyt định chn đng: hoc là trạm đích nằm trên cng mạng hoc mt
gateway s đc chn cho chng tip theo.
4. Chuyn datagram xung tầng dới đ truyn qua mạng.
Đi với gateway, khi nhn đc mt datagram quá cảnh, n thc hin các đng tác
sau:
1. Tính checksum, nu bt cp thì loại b datagram.
2. Giảm giá trị ca tham s TimetoLive. Nu thi gian đã ht thì loại b datagram.

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

Options Padding
TCP data

bit 0 15 16
31


Khuôn dạng ca TCP segment.
TCP là mt giao thc kiu c liên kt (connection oriented), ngha là cần phải thit
lp liên kt (logic) giữa mt cp thc th TCP trớc khi chng trao đi dữ liu với nhau.
Đơn vị dữ liu s dng trong TCP đc gi là segment (đoạn dữ liu), 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 ý ngha nh sau:
Source Port (16 bits): s hiu cng ca trạm ngun.
Destination Port (16 bits): s hiu cng ca trạm đích.
Sequence Number (32 bits): s hiu ca byte đầu tiên ca segment tr khi bit
SYN đc thit lp. Nu bit SYN đc thit lp thì Sequence Number là s hiu
tuần t khi đầu (ISN) và byte dữ liu đầ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 hiu ca segment tip theo mà trạm
ngun đang ch đ nhn. Ngầm ý báo nhn tt (các) segment mà trạm đích đã
gi cho trạm ngun Tham s này c vai trò nh tham s N(R) trong HDLC.
Data offset (4 bits): s lng t 32 bit (32 bit words) trong TCP header (tham s
này ch ra vị trí bắt đầu ca vng dữ liu).
Reserved (6 bits): dành đ dng trong tơng lai.
Control bits (các bit điu khin):
T trái sang phải:
URG: vng con tr khn (Urgent Pointer) c hiu lc
ACK: vng báo nhn (ACK number) c hiu lc
PSH: chc năng PUSH

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

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 trng Intranet và
Internet. Hin nay Windows NT đc s dng tơng đi ph bin các cơ quan; doanh
nghip Vit Nam.
Giao thc truyn thông TCP/IP đã đc dng bi h điu hành UNIX và mạng
Internet, đ các máy trên mạng NT c th giao tip với các máy trên mạng khác, Windows
NT cng cung cp giao thc này. Ngoài mt s lnh dng giao thc TCP/IP đã đc vit sẵn
nh: ftp, telnet, finger , Windows NT cho phép ngi lp trình phát trin các ng dng
khai thác k thut TCP/IP thông qua mt th vin tên là Windows Sockets.
C ba lý do chính đ ngi lp trình s dng k thut TCP/IP:
C th vit các ng dng trên Windows NT đ ni 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.
Vit các chơng trình cho phép các máy Windows NT giao tip trên h thng mạng
Internet.
2.2. MT S KHI NIM C BN
2.2.1.a ch Internet
Trong h thng mạng Internet, mỗi máy đu c mt tên và mt địa ch IP (cng gi là
địa ch Internet). Ví d nh, mt 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 nht mt máy trong h thng mạng
Internet. Khi lp trình, chng ta c các hàm đ chuyn đi t tên sang địa ch IP và ngc
lại.
2.2.2. Khỏi nim socket v port
Mt socket là mt thit bị truyn thông hai chiu tơng t nh tp tin, chng ta c th
đc hay ghi lên n, tuy nhiên mỗi socket là mt thành phần trong mt mi ni 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ữ liu giữa các
ng dng trên nhiu máy khác nhau.
Trong giao thc truyn thông TCP, mỗi mi ni giữa hai máy tính đc xác định
bi mt port, khái nim port đây không phải là mt cng giao tip trên thit bị vt lý mà ch
là mt khái nim logic trong cách nhìn ca ngi lp trình, mỗi port đc tơng ng với mt

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

socket


Máy A

Máy B


Port

H thng mạng

Các socket và port trong mi ni TCP


Mi ni

1. Gi hàm socket đ tạo mt socket.
2. Gi hàm bind đ kt buc socket với mt port, đi với mỗi giao thc ng chun thì s c mt
hằng s đc định ngha sẵn trong Winsock cho port ca giao thc đ.
3. Gi hàm listen đ ch đn khi c mt client ni vào port.
4. Khi c mt client ni vào thì hàm listen trả điu khin v, ng dng server gi hàm
accept đ xác nhn mi ni ca client.
5. Gi các hàm gi hay nhn dữ liu đ trao đi thông tin với client, ví d nh hàm
send, recv.
Sau khi đã hoàn tt quá trình trao đi dữ liu, ng dng server gi hàm closesocket đ
đng socket đã tạo.
2.3.2. Cỏch ci t client TCP
ng dng client thc hin các bớc sau:
1. Gi hàm socket đ tạo mt socket.
2. Gi hàm connect đ ni vào server.
3. Gi các hàm gi hay nhn dữ liu đ trao đi thông tin với server, ví d nh
các hàm send, recv.
4. Sau khi đã hoàn tt quá trình trao đi dữ liu, ng dng client gi hàm
closesocket đ đng socket đã tạo.
Hình minh ha các bớc cần thit đ các ng dng client và server giao tip với
nhau nh sau:

×