Trong vớ d映 d逢噂i 8õy ch逢挨ng trỡnh server th詠c hi羽n cỏc b逢噂c thi院t l壱p cho vi羽c ch運"8嬰i m瓜t k院t n嘘i t瑛 ch逢挨ng trỡnh client. Sau khi thi院t l壱p k院t n嘘i v噂i client, c違 hai th詠c hi羽n m瓜t s嘘 thao tỏc truy隠n và nh壱n thụng tin r欝i k院t thỳc ch逢挨ng trỡnh.
7.5.3.1 Mó lうnh ch⇔¬ng trỡnh Server
- T衣o ra m瓜t socket v噂i hàmsocket().
- Ràng bu瓜c socket v噂i m瓜t 8鵜a ch雨 b茨ng hàmbind ().
- Dựng hàmlisten()8吋 ch運"8嬰i m瓜t k院t n嘘i.
- Nh壱n b医t k thụng tin nào yờu c亥u k院t n嘘i b茨ng hàmaccept().
- Nh壱n cỏc thụng bỏo g穎i 8院n b茨ng hàmread()và g穎i thụng bỏo 8院n client b茨ng hàmwrite().
-
/* mksock.c make and bind to a socket - userver*/
#include<stdio.h> #include<sys/socket.h> #include<sys/un.h> #include<unistd.h> void die(char * message); void copyData(int from, int to);
int main(void) {
struct sockaddr_un address; int sock,conn; size_t addrLength; if ((sock=socket(PF_UNIX,SOCK_STREAM,0))<0) die("socket"); /*unlik("./sample_socket");*/ address.sun_family=AF_UNIX; strcpy(address.sun_path,"./sample_socket"); addrLength=sizeof(address.sun_family)+strlen(address.sun_path); if(bind(sock,(struct sockaddr *)&address,addrLength))
die("bind"); if(listen(sock,5)) die("listen"); while((conn=accept(sock,(struct sockaddr*)&address,&addrLength))>=0) { printf("---getting data\n"); copyData(conn,1); printf("---done\n"); close(conn); } if (conn<0) die("accept"); close(sock); return 0; }
void die(char * message){ perror(message); exit(1);
}
void copyData(int from,int to){ char buf[1024]; int amount; while ((amount=read(from,buf,sizeof(buf)))>0){ if(write(to,buf,amount)!=amount){ die ("write"); return; } } if (amount<0) die("read"); } 7.5.3.2 Mó lうnh ch⇔¬ng trỡnh client
V瑛 ch逢挨ng trỡnh client , 8吋 th詠c hi羽n 8逢嬰c m瓜t k院t n嘘i 8院n server và truy隠n nh壱n thụng tin ch雨 c亥n th詠c hi羽n 2 b逢噂c c挨 b違n nh逢 sau:
- T衣o m瓜tsocket()v逢挨ng 泳ng v噂i ch逢挨ng trỡnhservere映 th吋 .
- Yờu c亥u 8院n server th詠c hi羽n k院t n嘘i b茨ng cỏch g丑i hàmconnect().
P院u m瓜t k院t n嘘i 8逢嬰c t衣o ra, client cú th吋 g穎i yờu c亥u b茨ng hàm write() và nh壱n cỏc 8ỏp 泳ng ph違n h欝i b茨ng hàmread().
/* sockconn.c - connect to a socket - uclient*/
#include<sys/socket.h> #include<sys/un.h> #include<unistd.h> void die (char * message);
void copyData(int from, int to); int main(void){
struct sockaddr_un address; int sock;
size_t addrLength;
if ((sock=socket(PF_UNIX,SOCK_STREAM,0))<0) die("socket");
address.sun_family=AF_UNIX;
strcpy(address.sun_path,"./sample_socket");
addrLength=sizeof (address.sun_family) + strlen(address.sun_path); if(connect(sock,(struct sockaddr *)& address,addrLength)) die("connect"); copyData(0,sock);
close(sock); return 0; }
void die(char * message){ perror(message); exit(1);
}
void copyData(int from, int to){ char buf[1024]; int amount; while ((amount=read(from,buf,sizeof(buf)))>0){ if(write(to,buf,amount)!=amount) { die("write"); return; } } if (amount<0) die("read"); } --- BÀI T一P 1. Tỡm hi吋u cỏc mụ t違 Socket và c医u trỳc d英 li羽u c栄a socket mà h羽"8k隠u hành e医p phỏt 8吋 l逢u tr英 cỏc thụng tin c亥n thi院t cho k院t n嘘i m衣ng.
2. Tỡm hi吋u cỏc th逢 vi羽n l壱p trỡnh WinSock trờn h羽"8k隠u hành Windows. 3. Vi院t cỏc ch逢挨ng trỡnh giao ti院p Client/Server theo mụ hỡnh giao ti院p
Ch⇔¬ng 8 V井N G PHIấN
V亥ng phiờn (Session Layer) làm nhi羽m v映 t鰻 ch泳c và 8欝ng b瓜 s詠 chuy吋n 8鰻i f英 li羽u gi英a cỏc ti院n trỡnh 泳ng d映ng khỏc nhau. T亥ng Phiờn làm vi羽c v噂i t亥ng 泳ng f映ng 8吋 cung c医p cỏc t壱p d英 li羽u, 8逢嬰c g丑i là cỏc 8k吋m 8欝ng b瓜, cỏc 8k吋m này cho phộp m瓜t 泳ng d映ng bi院t quỏ trỡnh truy隠n và nh壱n d英 li羽u 8逢嬰c th詠c hi羽n nh逢 th院 nào.
V亥ng phiờn ch鵜u trỏch nhi羽m thi院t l壱p và duy trỡ m瓜t phiờn truy隠n thụng gi英a hai tr衣m ho員c nỳt m衣ng. M瓜t phiờn truy隠n thụng qua m瓜t m衣ng ho衣t 8瓜ng cú ph亥n gi嘘ng v噂i m瓜t cu瓜c g丑i qua cỏc 8逢運ng dõy 8k羽n tho衣i. T亥ng Phiờn c嘘 g逸ng thi院t l壱p o瓜t phiờn truy隠n thụng gi英a hai nỳt trờn m瓜t m衣ng. C違 hai nỳt 8隠u th瑛a nh壱n phiờn truy隠n thụng này th逢運ng s胤"8逢嬰c gỏn m瓜t s嘘 hi羽u nh壱n di羽n. M厩i nỳt cú th吋 ng逸t phiờn truy隠n thụng gi英a hai nỳt trờn m瓜t m衣ng 8逢嬰c g丑i là oじt cごng lufn lý
(Socket). Khi m瓜t phiờn truy隠n thụng 8逢嬰c thi院t l壱p, m瓜t c鰻ng lu壱n lý s胤"8逢嬰c m荏 ra. M瓜t phiờn truy隠n thụng 8詠挨c k院t thỳc 8逢嬰c g丑i là oじt cごng lufn lý bお" 8úng
(Close Socket).
O映c tiờu c栄a t亥ng phiờn là cú kh違 n<ng cung c医p cho ng逢運i s穎 d映ng cỏc ch泳c p<ng c亥n thi院t 8吋 qu違n lý cỏc phiờn 泳ng d映ng c映 th吋 nh逢:
- Ak隠u ph嘘i vi羽c trao 8鰻i d英 li羽u gi英a cỏc 泳ng d映ng b茨ng cỏch thi院t l壱p và gi違i phúng (m瓜t cỏchlogic) cỏc phiờn (hay g丑i là cỏc h瓜i tho衣idialogues).
- Cung c医p cỏc 8k吋m 8欝ng b瓜 húa 8吋 ki吋m soỏt vi羽c trao 8鰻i d英 li羽u.
- ỏp 8員t cỏc qui t逸c cho cỏc t逢挨ng tỏc gi英a cỏc 泳ng d映ng c栄a ng逢運i s穎 d映ng. - Cung c医p c挨 ch院 l医y l逢嬰t (n逸m quy隠n) trong cỏc quỏ trỡnh trao 8鰻i d英 li羽u.
Trong t亥ng phiờn thỡ v医n 8隠"8欝ng b瓜 húa 8逢嬰c th詠c hi羽n t逢挨ng t詠 nh逢 m瓜t c挨 ch院 ki吋m tra / ph映c h欝i (check point/reset).Trong m瓜t h羽 qu違n tr鵜 t壱p tin, d鵜ch v映 này cho phộp ng逢運i s穎 d映ng xỏc 8鵜nh cỏc 8k吋m 8欝ng b瓜 húa trong dũng d英 li羽u và cú th吋 khụi ph映c l衣i vi羽c h瓜i tho衣i b逸t 8亥u t瑛 m瓜t trong cỏc 8k吋m 8ú.
8.1 D鵜ch v映 OSI cho t亥ng Phiờn
V亥ng phiờn làm vi羽c qu違n lý cỏc cu瓜c tho衣i gi英a hai mỏy tớnh b茨ng cỏch thi院t n員p, qu違n lý, và k院t thỳc cỏc phiờn truy隠n thụng.
8.1.1 Cung c医p cho ng逢運i s穎 d映ng d鵜ch v映 t亥ng phiờn (SS-user)
- Thi院t l壱p m瓜t liờn k院t v噂i m瓜t ng逢運i s穎 d映ng d鵜ch v映 t亥ng phiờn khỏc, trao 8鰻i f英 li羽u v噂i ng逢運i s穎 d映ng 8ú m瓜t cỏch 8欝ng b瓜 và h栄y b臼 liờn k院t m瓜t cỏch cú tr壱t t詠 khi khụng dựng 8院n n英a.
- Th逢挨ng l逢嬰ng v隠 vi羽c dựng cỏc th飲 bài (TOKEN) 8吋 trao 8鰻i d英 li羽u,8欝ng b瓜 húa và h栄y b臼 liờn k院t ,s逸p x院p ph逢挨ng th泳c trao 8鰻i d英 li羽u (half-duplex ho員c full-duplex).
- Thi院t l壱p cỏc 8k吋m 8欝ng b瓜 húa trong cỏc h瓜i tho衣i và khi x違y ra s詠 c嘘 thỡ cú th吋 khụi ph映c l衣i vi羽c h瓜i tho衣i b逸t 8亥u t瑛 m瓜t 8k吋m 8欝ng b瓜 húa 8ó th臼a thu壱n.
- Ng逸t h瓜i tho衣i và khụi ph映c l衣i h瓜i tho衣i sau 8ú t瑛 m瓜t 8k吋m xỏc 8鵜nh tr逢噂c. Cỏc d鵜ch v映 xỏc 8鵜nh 8k吋m 8欝ng b瓜 húa là nh茨m vào hai m映c 8ớch :
1) Cỏc 8k吋m 8欝ng b瓜 húa cú th吋 phõn tỏch cỏc ph亥n c栄a m瓜t h瓜i tho衣i. 2) Cỏc 8k吋m 8欝ng b瓜 húa cú th吋 dựng 8吋 ph映c h欝i l厩i.
Cỏc 8kあm 8げng bじ húa chớnh dựng 8吋 c医u trỳc quỏ trỡnh trao 8鰻i d英 li羽u thành o瓜t chu厩i cỏc 8挨n v鵜 h瓜i tho衣i (dialogue), m厩i 8k吋m này ph違i 8逢嬰c xỏc nh壱n và ng逢運i s穎 d映ng s胤 b鵜 h衣n ch院 trong m瓜t s嘘 d鵜ch v映 nh医t 8鵜nh cho t噂i khi nh壱n 8逢嬰c o瓜t s詠 xỏc nh壱n m噂i. M瓜t 8k吋m 8欝ng b瓜 húa chớnh 8逢嬰c dựng 8吋 tỏch bi羽t cỏc hai 8挨n v鵜 h瓜i tho衣i liờn ti院p.
Cỏc 8kあm 8げng bじ húa phつ"8逢嬰c dựng 8吋 c医u trỳc quỏ trỡnh trao 8鰻i d英 li羽u 荏 trong m瓜t 8挨n v鵜 h瓜i tho衣i, và cỏc 8k吋m này khụng c亥n ph違i 8逢嬰c xỏc 8鵜nh tr逢噂c.Vi羽c dựng cỏc 8k吋m 8欝ng húa ph映 trong quỏ trỡnh truy隠n t壱p nú s胤 ng<n ch員n vi羽c truy隠n l衣i d英 li羽u v噂i m瓜t kh嘘i l逢嬰ng l噂n
Oじt 8¬n vお hじi thoTi là m瓜t Activity (hành 8瓜ng) nguyờn t穎 trong 8ú m丑i hành 8瓜ng truy隠n thụng khụng cú liờn quan gỡ 8院n b医t k m瓜t ho衣t 8瓜ng truy隠n thụng nào tr逢噂c và sau 8ú. M瓜t hành 8瓜ng bao g欝m nhi隠u 8挨n v鵜 h瓜i tho衣i, và 8õy c ng chớnh là m瓜t t壱p h嬰p logic cỏc nhi羽m v映 liờn quan v噂i nhau; 荏 m瓜t th運i 8k吋m thỡ ch雨 cú o瓜t activity trờn m瓜t liờn k院t phiờn nh逢ng m瓜t activity thỡ cú th吋 di宇n ra trờn nhi隠u liờn k院t phiờn, nú cú th吋 b鵜 ng逸t và sau 8ú cú th吋 khụi ph映c l衣i trong m瓜t liờn k院t phiờn khỏc, m瓜t vũng 8運i c栄a m瓜t liờn k院t phiờn thỡ cú th吋 cú nhi隠u Activity liờn ti院p.
8.1.2 Ak隠u khi吋n trao 8鰻i d英 li羽u
Vi羽c trao 8鰻i d英 li羽u x違y nh逢 sau 8吋 th詠c hi羽n m瓜t trong ba ph逢挨ng th泳c nh逢 sau : hai chi隠u 8欝ng th運i (full-duplex), hai chi隠u luõn phiờn (haft -duplex), m瓜t chi隠u (simplex).
8.1.2.1 Trao 8ごi dの liうu mじt chizu
Liờn quan 8院n cỏc 8嬰t chuy吋n giao d英 li羽u m瓜t chi隠u. Bỏo chỏy là m瓜t vớ d映, nú g穎i m瓜t thụng 8k羽p bỏo 8瓜ng 8院n tr衣m ch嘘ng chỏy, nh逢ng khụng th吋 (và khụng e亥n) nh壱n cỏc thụng 8k羽p t瑛 tr衣m ch嘘ng chỏy.
X噂i ph逢挨ng th泳c m瓜t chi隠u thỡ ớt x違y ra: ch鰯ng h衣n nh逢 d英 li羽u 8逢嬰c g穎i 8院n o瓜t 8嘘i t逢嬰ng t衣m th運i khụng làm vi羽c, thỡ ch雨 cú m瓜t ch逢挨ng trỡnh nh壱n v噂i m瓜t nhi羽m v映 duy nh医t là ti院p nh壱n d英 li羽u 8院n và gi英 l衣i.
8.1.2.2 Trao 8ごi dの liうu hai chizu luõn phiờn
Liờn quan 8院n cỏc 8嬰t chuy吋n giao d英 li羽u hai chi隠u, 荏"8ú cỏc lu欝ng d英 li羽u o厩i l亥n 8i theo m厩i h逢噂ng. Khi m瓜t thi院t b鵜 hoàn t医t m瓜t phiờn truy隠n, nú ph違i " tr違 n衣i " v壱t t違i cho thi院t b鵜 kia 8吋"8院n phiờn thi院t b鵜"8ú 8逢嬰c truy隠n.
X噂i ph逢挨ng th泳c luõn phiờn hai chi隠u thỡ n違y sinh cỏc v医n 8隠 nh逢 sau :
- Cỏc 8嘘i t逢嬰ng s穎 d映ng phiờn ph違i “l医y l逢嬰t” 8吋 truy隠n d英 li羽u (8k吋n hỡnh c栄a ph逢挨ng th泳c này là dựng cho cỏc 泳ng d映ng h臼i 8ỏp).
- Th詠c th吋 t亥ng phiờn(session entity) duy trỡ t逢挨ng tỏc luõn phiờn b茨ng cỏch bỏo cho cỏc 8嘘i t逢嬰ng khi 8院n l逢嬰c h丑 s胤 truy隠n d英 li羽u.
8.1.2.3 Trao 8ごi dの liうu hai chizu 8げng thぜi.
Cho phộp ti院n hành cỏc 8嬰t chuy吋n giao d英 li羽u hai chi隠u 8欝ng th運i b茨ng cỏch cung c医p cho m厩i thi院t b鵜 m瓜t kờnh truy隠n thụng riờng bi羽t. Ak羽n tho衣i ti院ng là nh英ng thi院t b鵜 song cụng 8亥y 8栄, và m瓜t trong hai bờn c栄a m瓜t cu瓜c 8àm tho衣i cú th吋 núi b医t k lỳc nào. H亥u h院t cỏc mụ8em mỏy tớnh 8隠u cú th吋 ho衣t 8瓜ng theo ch院 8瓜 song cụng 8亥y 8栄.
Ch院"8瓜 truy隠n thụng bỏn song cụng cú th吋 d磯n 8院n tỡnh tr衣ng b<ng thụng b鵜 lóng phớ trong quóng th運i gian mà 8嬰t truy隠n thụng 8ang quay tr違. Trong khi 8ú, ch院 8瓜 truy隠n thụng song cụng 8亥y 8栄 th逢運ng yờu c亥u m瓜t ban thụng l噂n h挨n so v噂i ch院 8瓜 truy隠n thụng bỏn song cụng
X噂i ph逢挨ng th泳c hai chi隠u 8欝ng th運i thỡ c違 hai bờn cựng 8欝ng th運i g穎i d英 li羽u cựng m瓜t lỳc, m瓜t khi ph逢挨ng th泳c này 8ó 8逢嬰c th臼a thu壱n thỡ khụng 8ũi h臼i ph違i cú nhi羽m v映 qu違n tr鵜 t逢挨ng tỏc 8員t bi羽t 8õy c ng là m瓜t ph逢挨ng th泳c ph鰻 bi院n nh医t.
8.1.3 Ak隠u hành phiờn làm vi羽c
Phiờn làm vi羽c (session) là m瓜t cu瓜c tho衣i chớnh th泳c gi英a m瓜t bờn yờu c亥u dich v映 và m瓜t bờn cung c医p d鵜ch v映. Cỏc phiờn b違n làm vi羽c th逢運ng cú ớt nh医t ba giai 8q衣n :
• Thixt lfp tuyxn liờn kxt : Bờn yờu c亥u d鵜ch v映 s胤 yờu c亥u kh荏i phỏt m瓜t d鵜ch x映. Trong quỏ trỡnh xỏc l壱p, phiờn truy隠n thụng 8逢嬰c thi院t l壱p và cỏc quy t逸c 8逢嬰c tho違 thu壱n.
• Chuyあn giao dの liうu : Do cỏc quy t逸c 8逢嬰c tho違 thu壱n trong khi xỏc l壱p, nờn o厩i bờn c栄a cu瓜c tho衣i s胤 bi院t n瓜i dung mong 8嬰i. Phiờn truy隠n thụng s胤 h英u hi羽u và cỏc l厩i c ng d宇 phỏt hi羽n.
• GiVi phúng cỏc kxt nぐi : Khi hoàn t医t phiờn làm vi羽c, cu瓜c tho衣i k院t thỳc trong tr壱t t詠.
8.1.4 Liờn k院t phiờn
V亥ng Phiờn th詠c hi羽n 8員t t逢挨ng 泳ng liờn k院t phiờn v噂i cỏc liờn k院t giao v壱n. Trong m瓜t quỏ trỡnh liờn k院t cú th吋 x違y ra 2 tr逢運ng h嬰p :
1. M瓜t liờn k院t giao v壱n thi院t l壱p v噂i nhi隠u liờn k院t phiờn liờn ti院p :
Liờn k院t Phiờn Liờn k院t Giao v壱n
2. Nhi隠u liờn k院t giao v壱n s穎 d映ng cựng m瓜t liờn k院t phiên:
Liờn k院t Phiờn Liờn k院t Giao v壱n
Ký hi羽u : : Thi院t l壱p liờn k院t
: Gi違i phúng liờn k院t
8.2 Giao th泳c chu育n t亥ng phiờn
Giao th泳c chu育n t亥ng phiờn s穎 d映ng t噂i 34 lo衣i 8挨n v鵜 d英 li羽u (SPDU) khỏc nhau,và cú khuụn d衣ng t鰻ng quỏt nh逢 sau :
Trong 8ú :
• SI: A鵜nh danh c栄a lo衣i SPDU (m瓜t trong 34 lo衣i)
L PARAMETERS USER DATA
Time Time
• LI(length indicator): Ch雨"8瓜 dài c栄a vựng tham s嘘(parameters)
• PARAMETERS: vựng khai bỏo cỏc tham s嘘 SPDU, m厩i lo衣i SPDU cú danh sỏch tham s嘘 riờng. M厩i tham s嘘"8逢嬰c khai bỏo d逢噂i d衣ng t鰻ng quỏt g欝m 3 vựng con : parameter identifier, length indecation, parameter value và chỳng 8逢嬰c g丑i theo 8挨n v鵜 pi ho員c PGI (m厩i 8挨n v鵜 PGI g欝m cú 3 vựng con: PGI, LENGTH INDICATION, PARAMETER VALUE).
• User data: ch泳a d英 li羽u c栄a ng逢運i s穎 d映ng.
8.2.1 Cỏc lo衣i SPDU, cỏc tham s嘘 và ch泳c n<ng
SPDU PARAMENTERS FUNCTI ON
CONNECT
Connection ID, Protocol Options, Version Number, Serial Number, Token setting, Maximum TSDU size, Requirements, Calling SSAP, Called SSAP, User Data.
Initiate session Connection
ACCEPT Same as CONNECT SPDU. Etablist SESSION
CONNECTION REFUSE
Connection ID, Transport disconnect, Requirements, Version number, Season.
Reject connection request FINISH Transport Disconnect, User Data. Initiate Orderly Release
DISC0NNECT User Data. Acknowledge orderly Release
NOT FINISHED User Data. Reject Orderly Release
ABORT Transport disconnect, Protocol Error
Code, User Data. Abnormal connection Release ABORT ACCEPT Transport disconnect, Protocol Error
Code, User Data. Acknowledge Abort DATA TRANSFER Enclosure item,User Data. Transfer normal Data
EXPEDITED User data. Transfer typed data
CAPABILITY DATA ACK User Data. Acknowledge Capability data
GIVE TOKENS Tokens. Transfer tokens
PLEASE TOKENS Tokens , User Data. Request token Assignment
GIVE TOKENS CONFIRM - Transfer all tokens
GIVE TOKENS ACK - Acknowledge all tokens
MONOR SYNC POINT Confirm required flag, Serial
number, User data. Define minor sync point MINOR SYNC ACK Serial number, User Data. Acknowledge minor sync
point MAJOR SYNC POINT End of activity flag, Serial number,
User Data. Define major sync point
MAJOR SYNC ACK Serial number,User data. Acknowledge major sync point
RESYNCHRONIZED Tokens sittings, resync type, serial
number, user data. Resynchorize RESYNCHRONIZED ACK Tokens settings, Serial number,
PREPERE Type. Notify type SPDU is coming EXCEPTION REDORT SPDU bit pattem. Protocol Error detected EXCEPTION DATA Reason, User Data. Put protocol in Error state ACTIVITY START Activity ID, User data. Signal beginning of activity ACTIVITY RESUME Connect ID, Old activity ID, New
Activity ID, User data. Signal resumption of activity
ACTIVITY INTERRUPT Reason. Interrupt activity
ACTIVITY INTERRUPT ACK - Acknowledge interrupt
ACTIVITY DISCARD Reason. Cancel activity
ACTIVITY DISCARD ACK - Acknowledge cancellation
ACTIVITY END Serial number/User data. Signal activity end ACTIVITY END ACK Serial number/User data. Acknowledge activity end
V亥ng Phiờn 8úng m瓜t vai trũ quan tr丑ng trong vi羽c trao 8鰻i thụng tin gi英a cỏc mỏy Client v噂i mỏy Server. Nh逢ng thụng tin mà chỳng ta c亥n truy隠n t違i thỡ 8逢嬰c chia nh臼 ra thành cỏc khung (hay gúi) tr逢噂c khi chỳng 8逢嬰c truy隠n t違i qua m瓜t o衣ng. M厩i t亥ng c栄a mụ hỡnh 7 t亥ng OSI 8隠u cú th吋 b鰻 sung thờm cỏc thụng tin vào 8q衣n 8亥u và 8q衣n cu嘘i c栄a m瓜t khung d英 li羽u vvà sau 8ú cỏc thụng tin này s胤"8逢嬰c 8丑c b荏i t亥ng t逢挨ng 8逢挨ng 荏 mỏy tr衣m ti院p nh壱n. Và m瓜t s嘘 t亥ng khỏc cú th吋 b鰻 sung thờm ph亥n 8亥u(header) và c違 m瓜t ph亥n 8uụi(trailer) vào khung d英 li羽u cú s印n. Sau 8ú, khung d英 li羽u này truy隠n chuy吋n t噂i t亥ng t逢挨ng 8逢挨ng trờn tr衣m ti院p nh壱n.
Ch⇔¬ng 9 V井N G TRèN H DI右N
V亥ng Trỡnh di宇n cú nhi羽m v映 phõn cỏch gi英a cỏc t亥ng cao h挨n và cỏc t亥ng th医p h挨n t瑛"8鵜nh d衣ng d英 li羽u c栄a t亥ng 泳ng d映ng, chuy吋n 8鰻i 8鵜nh d衣ng d英 li羽u t瑛 8鵜nh d衣ng c栄a t亥ng 泳ng d映ng thành 8鵜nh d衣ng thụng th逢運ng, g丑i là “trỡnh di宇n h嬰p x噂i quy t逸c”. T亥ng Trỡnh di宇n x穎 lý d英 li羽u khụng ph映 thu瓜c vào mỏy tớnh t瑛 t亥ng 泳ng d映ng thành d英 li羽u cú 8鵜nh d衣ng ph映 thu瓜c vào mỏy tớnh 8吋 chuy吋n cho cỏc v亥ng th医p h挨n.
V亥ng trỡnh di宇n x穎 lý cỳ phỏp, ho員c cỏc quy t逸c v<n ph衣m, c亥n thi院t cho phiờn truy隠n thụng gi英a hai mỏy tớnh, b違o 8違m cho cỏc h羽 th嘘ng cu嘘i truy隠n th6ng cú k院t qu違 khi chỳng s穎 d映ng cỏc d衣ng bi吋u di宇n d英 li羽u khỏc nhau. T亥ng này trỡnh bày o瓜t d衣ng th泳c d英 li羽u 8欝ng d衣ng cho t亥ng 泳ng d映ng.
9.1 Vai trũ và ch泳c n<ng
O映c 8ớch c栄a t亥ng trỡnh di宇n là 8違m b違o cho cỏc h羽 th嘘ng cu嘘i cú th吋 truy隠n thụng cú k院t qu違 ngay c違 khi chỳng s穎 d映ng cỏc bi吋u di宇n d英 li羽u khỏc nhau .A吋"8衣t 8逢嬰c 8k隠u 8ú nú cung c医p m瓜t bi吋u di宇n chung 8吋 dựng trong truy隠n thụng và cho phộp chuy吋n 8鰻i t瑛 bi吋u di宇n c映c b瓜 sang bi吋u di宇n chung 8ú.
V欝n t衣i 3 d衣ng cỳ phỏp thụng tin 8逢嬰c trao 8鰻i gi英a cỏc th詠c th吋"泳ng d映ng : • Cỳ phỏp dựng b荏i th詠c th吋"泳ng d映ng ngu欝n.
• Cỳ phỏp dựng b荏i th詠c th吋"泳ng d映ng 8ớch.
• Cỳ phỏp dựng b荏i gi英a cỏc th詠c th吋 trỡnh di宇n ,lo衣i cỳ phỏp này g丑i là cỳ phỏp truy隠n (transfer syntax).
V亥ng trỡnh di宇n 8違m nh壱n vi羽c chuy吋n 8鰻i bi吋u di宇n thụng tin gi英a cỳ phỏp truy隠n và m厩i m瓜t cỳ phỏp kia khi cú yờu c亥u
Chỳ ý r茨ng khụng t欝n t衣i m瓜t cỳ phỏp truy隠n xỏc 8鵜nh tr逢噂c duy nh医t cho m丑i ho衣t 8瓜ng trao 8鰻i d英 li羽u. Cỳ phỏp truy隠n 8逢嬰c duy nh医t cho m丑i ho衣t 8瓜ng trao 8鰻i d英 li羽u. Cỳ phỏp truy隠n 8逢嬰c s穎 d映ng trờn m瓜t liờn k院t c映 th吋 c栄a t亥ng trỡnh