|
¬ã¨s¥Í¡G¨H¦¨¹F |
«ü¾É±Ð±Â¡G§d¼Ý¦¨ |
°ê¥ß¥æ³q¤j¾Ç
¸ê°T¤uµ{¬ã¨s©Ò
ºKn
¦bºô¸ô¨Ï¥Î¤é¯q´¶¹Mªº¤µ¤Ñ¡Aºô¸ô¶Ç¿éªºÃ©w©Ê±`±`Ãö«YµÛºô¸ôÀ³¥Îµ{¦¡¦b¾ãÓºô¸ô¹Bºâ¹Lµ{¤¤ªº®Ä²v©Ê»P¥¿½T©Ê¡C¦b¥H©¹¡Aµ{¦¡³]pªÌ¥²¶·¦Û¦æ³B²zºô¸ô¹Bºâ¹Lµ{¤¤©Ò¥i¯àµo¥Íªº¦UºØ°ÝÃD¡A³o©¹©¹±aµ¹µ{¦¡³]pªÌ³\¦h¤£¥²nªºt¾á¡AµLªk¥þ¤ß±Mª`©ó§ïµ½À³¥Îµ{¦¡¥»¨ªº¥\¯à¡C
¦b¥»½×¤å¤¤¡A§Ú̳]p¤F¤@ÓµêÀÀªººô¸ôÀɮרt²Î¡AÀ³¥Îµ{¦¡¥i¥H§âì¨Óºô¸ô¦s¨úªº°Ê§@³£¨Ì¾Ú¤@©wªº³W«h¡AÂন¬°¹ï§ÚÌÀɮרt²Îªº¦s¨ún¨D¡A§Q¥Î¨t²Î©Ò´£¨ÑªºÀ³¥Îµ{¦¡¤¶±¡AÀ³¥Îµ{¦¡¤£»Ý¹ïºô¸ôª¬ªp§@¥ô¦ó¯S®í³B²z¡C°£¤F²¤Æºô¸ô¦s¨úªº°Ê§@¤§¥~¡A§Ú̪º¨t²Î¦P®É´£¨Ñ¤F§Ö¨ú¡BÀ£ÁY¡B«¶Ç¡B°»¿ùµ¥¥\¯à¡A´£¨Ñºô¸ôÀ³¥Îµ{¦¡¤@Ó°ª®Ä²v»P°ªÃ©w©Êªº¹Bºâ¥¥x¡C¦P®É§Ṳ́]¦b¦¹¥¥x¤W«Ø¥ß¤F¹q¤l¶l¥ó»PÀÉ®×¶Ç¿é¤l¨t²Î¡A¨Ó¶i¤@¨BÃÒ©ú¨t²Î¤À¼h¬[ºc¤§¦X²z©Ê»P¥i¦æ©Ê¡C
|
Student: Cheng-Da Shen |
Advisor: I-Chen Wu |
Institute
of Computer Science and Information Engineering
National
Chiao Tung University
Abstract
As the Internet grows rapidly, the
stability of network transmission is now an important issue to network
applications. Formerly, programmers must take care of the problems themselves
in the network computing, but this always gives them too much unnecessary
loads. Programmers can¡¦t just concentrate on improving the functionality of
applications.
In this thesis, we develop a virtual
network file system to simplify the development of network applications. By
calling the API supplied by our system, applications can simply do a file
system access to achieve the request of network access. Programmers could
ignore most problems while networking. We offer an efficient and stable
computing platform with the functionality of caching, compression,
re-transmission, and fault-tolerance. We also build up E-Mail and FTP
sub-systems at the top of our platform to demonstrate the correctness and
feasibility of our layered system architecture.
¤¤¤åºKn........................................................................................................................ i
^¤åºKn....................................................................................................................... ii
»xÁÂ.............................................................................................................................. iii
¥Ø¿ý.............................................................................................................................. iv
¹Ïªí¥Ø¿ý...................................................................................................................... vi
²Ä¤@³¹ ºü½×........................................................................................................... 1
1.1 ¬ã¨s°Ê¾÷................................................................................................... 1
1.2 I´º»¡©ú................................................................................................... 1
1.3 ¬ÛÃö¬ã¨s................................................................................................... 2
1.4 ¨t²Î²¤¶................................................................................................... 3
²Ä¤G³¹ ²{¦³¨t²Î¤§¥\¯à¦^ÅU............................................................................... 5
2.1 ¹q¤l¶l¥ó¨t²Î¡]E-Mail¡^...................................................................... 5
2.1.1 «H¥ó¶Ç°eªº¤è¦¡........................................................................... 5
2.1.2 ª½±µ¦b¶l¥ó¦øªA¾¹¤WŪ¨ú«H¥ó................................................... 7
2.1.3 ¸g¥ÑPOP3/IMAP4¨ó©w¨ÓŪ¨ú»·ºÝ«H¥ó................................... 8
2.1.4 «H¥ó³B²z¤è¦¡¤ñ¸û...................................................................... 11
2.2 ÀÉ®×¶Ç¿é¨t²Î¡]FTP¡^¤§Â²z»P¤ÀªR................................................... 13
2.3 ²{¦³¨t²Î¤§§ï¶i»Ý¨D............................................................................. 15
²Ä¤T³¹ ¨t²Î¬[ºc................................................................................................. 16
3.1 ¨t²Î¥\¯à·§z......................................................................................... 16
3.2 ¨t²Î¬[ºc................................................................................................. 17
3.2.1 ²Ä¤@¼h ¡V µêÀÀÀɮרt²Î (GFS)............................................... 18
3.2.2 ²Ä¤G¼h ¡V ¯S©wºô¸ôªA°È¥N²zªÌ (Service Proxy)..................... 20
3.3 ¹q¤l¶l¥ó¤l¨t²Î..................................................................................... 21
3.4 ºô¸ô¶Ç¿éªº§å¦¸³B²z»P°»¿ù¯à¤O......................................................... 22
3.5 ÀÉ®×¶Ç¿é¤l¨t²Î¡]FTP
Proxy¡^......................................................... 24
²Ä¥|³¹ ¹ê§@......................................................................................................... 26
4.1 ¨t²Î¹ê§@Àô¹Ò......................................................................................... 26
4.2 µ{¦¡¬[ºc»¡©ú......................................................................................... 27
4.3 GFS¤§Àɮצs¨ú¥\¯à............................................................................. 29
4.4 GFS¤§°T®§¶Ç»¼¥\¯à............................................................................. 31
4.5 Mail
Client Proxy»PÀ³¥Îµ{¦¡¶¡ªº¤¶±...................................... 32
4.6 Mail
Proxy¤§ÀɮשR¦W³W«h............................................................. 37
4.7 FTP
Proxy¤§ÀɮשR¦W³W«h................................................................ 39
²Ä¤³¹ ¦¨ªG......................................................................................................... 40
5.1 ¨t²Î¬yµ{»¡©ú......................................................................................... 40
5.2 ¨t²Î¥\¯àµe±®i¥Ü................................................................................. 41
²Ä¤»³¹ µ²½×......................................................................................................... 47
°Ñ¦Ò¤åÄm..................................................................................................................... 48
¹Ï 1 ............................................................................................. ¨t²Î¬[ºc¹Ï..... 4
¹Ï 2 ..................................................................................... SMTP¶Ç¿é¬[ºc..... 6
¹Ï 3 ..................................................................... ¦b«H¥ó¦øªA¾¹¤WŪ¨ú«H¥ó..... 7
¹Ï 4 ...................................................................... ¸gPOP3/IMAP³B²z«H¥ó..... 8
¹Ï 5 .................................................................... ¨Ï¥ÎOutlookŪ¨ú«H¥ó..... 9
¹Ï 6 ............................................................................. ¨î¥i¤U¸ü«H¥ó¤j¤p..... 10
¹Ï 7 .................................................................... FTP Transfer Model..... 13
¹Ï 8 .................................................................... »·ºÝ±±¨î¨âFTP¤¬¶Ç¸ê®Æ..... 14
¹Ï 9 ............................................................................. ª½±µ»P¶¡±µ¶Ç°eÀÉ®×..... 14
¹Ï 10 ¨t²Î¤À¼h¬[ºc¹Ï................................................................................. 17
¹Ï 11 GFS¨t²Î¬[ºc¹Ï................................................................................ 18
¹Ï 12 GFS¨t²Î¥\¯à¥Ü·N............................................................................ 19
¹Ï 13 ¯S©wªA°È»PGFS¤§³s±µ................................................................... 20
¹Ï 14 GFS¨t²Îªº§Ö¨ú¥\¯à........................................................................ 21
¹Ï 15 GFS°T®§¶Ç¿é¬[ºc............................................................................ 23
¹Ï 16 ¶¡±µÀÉ®×¶Ç¿é¬[ºc............................................................................. 24
¹Ï 17 GFS°õ¦æµe±.................................................................................... 28
¹Ï 18 Service Proxy»PGFS¤§¶¡ªº¤¶±.......................................... 31
¹Ï 19 ¶l¥ó¤l¨t²Î¥Ø¿ý¬[ºc......................................................................... 38
¹Ï 20 ÀÉ®×¶Ç¿é¤l¨t²Î¥Ø¿ý¬[ºc................................................................. 39
¹Ï 21 µn¤J¦øªA¾¹³]©w................................................................................. 42
¹Ï 22 Mail Explorer°õ¦æµe±............................................................. 43
¹Ï 23 «Ø¥ß·s«H¥ó§¨..................................................................................... 43
¹Ï 24 «H¥ó§¨¦Cªí......................................................................................... 43
¹Ï 25 «H¥óÀx¦s............................................................................................. 44
¹Ï 26 Â÷½u®ÉŪ¨ú¥¼§Ö¨ú¤§«H¥ó................................................................. 44
¹Ï 27 ÀÉ®×¶Ç¿éÀ£ÁY¥\¯à............................................................................. 45
¹Ï 28 ÀÉ®×¶Ç¿é¥N²z¦øªA¾¹³]©w................................................................. 45
¹Ï 29 Àɮ׶ǿ鱡§Î..................................................................................... 46
ÀHµÛºô»Úºô¸ôªº½´«kµo®i¡A¹q¸£ªº¨Ï¥Î¤w¤£¦A©ó¶Ç²Îªºpºâ»²§U¥\¯à¡FÂǥѺô¸ôªº³s³q¡A¤H̤w¸g¶V¨Ó¶V²ßºD©óÂǥѺô¸ô¨Ó¤¬¬Û¶Ç»¼°T®§¡B¤À¨É¸ê·½¡A¹q¸£¤]¦]¦¹Åܱo¶V¨Ó¶V¥Í¬¡¤Æ¡C
µM¦Ó¡A¦bºô¸ô§êºtªº¨¤¦â¤é¯q«nªº¤µ¤Ñ¡Aºô¸ôªº«~½è»PÀW¼e«o¦ü¥G¥Ã»·»°¤£¤Wºô¸ô¤H¤f¼W¥[ªº³t«×¡A¤@ª½µLªk¹F¨ì¥O¤Hº¡·Nªº¤ô·Ç¡C¦]¦¹¡A¦p¦ó¦b¦³ªººô¸ôµwÅé¸ê·½¤W¡A§Q¥Î³nÅ骺¾A·í³]p¡A¨Ó´£¤Éºô¸ôªº¶Ç¿é®Ä²v©M«~½è¡A´N¦¨¤F¤@Ó«Ü«nªº½ÒÃD¡C
¬°¤F¬ð¯}ºô¸ôµwÅé¶Ç¿é®Ä²v¤Wªº¨î¡A³\¦hºô¸ô¤WªºÀ³¥Î³£·|³]ªk§Q¥Î¤@¨Ç¯S®íªº³]p¨Ó»²§U´£¤Éºô¸ôªº¹B§@®Ä²v¡C§Q¥Î³nÅé¨Ó´£¤Éºô¸ô¶Ç¿é®Ä²vªº¤èªk«Ü¦h¡A³q±`³Ì±`¨£ªº¤èªk´N¬O¨Ï¥Î¥N²z¦øªA¾¹¡]proxy server¡^¡C¥N²z¦øªA¾¹¥i¥H§Q¥Î§Ö¨ú¡]cache¡^ªº¾÷¨î¡A¦³®Ä°§C¤£¥²nªººô¸ô¶Ç°e®É¶¡¡A¹F¨ì´£¤É¶Ç¿é®Ä²vªº¥Øªº¡C
µM¦Ó¡A¥N²z¦øªA¾¹¤´µM¦³°ÝÃD¦s¦b¡A¨Ò¦p·|°ÊºA§ïÅܪº¸ê®Æ´NµLªkÂǥѧ֨ú¨Ó¥[³t¦s¨ú¡A¦Ó¥B¥Ø«e¥N²z¦øªA¾¹¥Dn¨Ï¥Î¦bWWW»PFTPµ¥¯S©wºô¸ôÀ³¥Î¤W¡A¨ÃµLªk¹ï©óºô¸ô¤W¨ä¥L¤è±ªº¦s¨úÀ³¥Î¡A³£´£¨Ñ¤@Ó§¹¾ãªº¸Ñ¨M¤èªk¡C
¦P¼Ëªº¡A¦b¦æ°Êpºâ¨t²Î¡]Mobile Computing System¡^¤è±¡Aºô¸ôÀ³¥Îµ{¦¡³Ì«nªº´N¬On¯à®e§Ôºô¸ô¶Ç¿éªº¤£Ã©w«×[4][17][18]¡A¤×¨ä¬O®É®Én±¹ïÂ_½u¡B«·s³s½uªº°ÝÃD¡A¦³®ÉԬƦܥ²¶·¦b¦U¦øªA¾¹¶¡¤Á´«´M¨D³Ì§Ö³tªºªA°È¡A³o®ÉY¯à¦³¤@Ó¦Ò¼{©P¥þªº©³¼h¨t²Î¹ïÀ³¥Îµ{¦¡´£¨Ñ§¹¥þ³z©ú¤Æ¡]transparent¡^ªºªA°È¡AÅýÀ³¥Îµ{¦¡§¹¥þ¤£»Ý¹ï©óºô¸ôéw«×§@¯S§Oªº³B²z¡A±N·|¨ÏÀ³¥Îµ{¦¡ªºµo®i§ó§Ö³t¡A¥B§ó¨ã¾ã¦X©Ê¡C
ªñ¨â¦~¨Ó¡AJavaªºµo®i³t«×¤Q¤ÀÅå¤H¡A¨ä¸ó¥¥xªº¯S©Ê¡A¥H¤ÎÀu²§ªºª«¥ó¾É¦V»yªk¡A¨Ï±oJava«D±`¾A¦X¥Î¨Óµo®i¨t²Î¡B¶}µoÀ³¥Îµ{¦¡¡CJavaµêÀÀ¾÷¾¹§Q¥Î³nÅé¼ÒÀÀ¹q¸£ªº¯S¦â¡AÅýJava¤£¥u¬O¤@ºØ·sªº»y¨¥¦Ó¤w¡C¼s¸qªº¬Ý¡AJava¤w¸g¬O¤@ºØ·sªº§@·~¥¥x¤F¡CJavaµêÀÀ¾÷¾¹¥i¥H¦b²{¦³ªº¹q¸£µwÅé©M³\¦h§@·~¨t²Î¤W°õ¦æ¡A¤]¥i¦b±M¬°Java³]pªºµwÅé¤W°õ¦æ¡C
Java§â³nÅé©â¶Hªº¼h¦¸©¹¤W±À¤F¤@¼h¡A¦bµêÀÀ¾÷¾¹¤§¤U¡A¤°»ò³£¬O©â¶Hªº¡C³]p¤§ªì¡A¦Ò¼{ªº«K¬O»P§@·~¨t²Î©ÎCPUµLÃöªºÀô¹Ò¡A¤£ºÞ©³¼hªº³nµwÅé¦p¦ó´À´«¡A¤W±ªºJavaµ{¦¡¥Ã»·°õ¦æ±o¦wµMµL®~¡C
¦]¦¹¡A§Ú̩Ҵ£¨Ñªºµo®i¥¥x¡A¬°¤F¯à¾AÀ³¦UºØÀô¹Òªº»Ý¨D¡A¤@«ß¨Ï¥ÎJava¬°¥Dnªºµo®i»P°õ¦æÀô¹Ò¡CÂǧU©óJavaÀu¨}ªºª«¥ó¾É¦V»yªk©M¸ó¥¥x¯S©Ê¡A¨Ï±o¨t²Î¤§µo®i¤Q¤À®e©ö¬[ºc¡A¤]«Ü®e©ö¦b¦U¥¥x¤W°õ¦æ¡C
¬°¤F¸Ñ¨M¤À´²¦¡Àô¹Ò¤Uªº¹Bºâ°ÝÃD¡A³Ì²³æªº¤è¦¡´N¬O§Q¥Î¤À´²¦¡ªºÀɮרt²Î[5]¡A¨Ò¦pUNIX¤W±ªºNFS¡]Network File System¡^[1] ¥H¤ÎMS Windows©Ò¨Ï¥ÎªºServer Message Block¡]SMB¡^[10]¤§ÀɮסB¦Lªí¾÷¤À¨É¡C³o¨Ç¶È¤î©óÀɮרt²Î¤À´²¹Bºâªº¤èªk¡A¹ï©ó¯u¥¿ªº¤À´²¦¡ªºÀô¹Ò»Ý¨DÁöµMºâ¬O¤Q¤Àªºì©l¡A¦ý¤]¬O³Ì²³æªº¸Ñ¨M¤èªk¡C
µM¦Ó¡Aºô¸ô¶Ç¿é®Ä²v«o¬O³o¨Ç¨t²Î±Á{ªº³Ì¤j²~ÀV¡A¨Ò¦pNFS¦b¤jºô°ì¤W·|³y¦¨¦s¨ú®Ä²vªº°§C¡A¤À´²¦¡ªºÀɮרt²Î¡AY¹J¨ìÀWÁcªºÀɮצs¨ún¨D¡AµL¥iÁ×§Kªºn¥I¥Xºô¸ô¾Ã¶ë©Ò³y¦¨ªº®Ä²v°§C¥N»ù¡C¦]¦¹¡A¦p¦ó´£¤É¤À´²¦¡Àɮרt²Îªº¹B§@®Ä²v¡AÅý¹ïºô¸ô¶Ç¿éªº»Ý¨D¾¨¶q´î¤Ö¡A±N¬O¤U¤@¥Nªº¤À´²¦¡Àɮרt²Î³Ì«nªº¤u§@¤§¤@¡C
¦bCMUµo®iªºAndrew File System¡]AFS¡^[9]¤]¬O¤@Ó¤À´²¦¡ªºÀɮרt²Î¡A³Ì¥Dn¬O§Æ±æ§ï¶i¶Ç²ÎNFS¦b¤jºô°ì¤W®Ä²vªº°ÝÃD¡A§ó¦³®Ä¦a¤À¨ÉÀɮ׸귽¡CAFS¨t²Îªº¤@Ó«n¥\¯à¬O¬°Àɮתº¦s¨ú°Ê§@¥[¤W¤F§Ö¨úªº¾÷¨î¡A³o¨Ï±oÀɮצs¨úªº®Ä²v¤j´T´£°ª¡A¨Ã¦]¦¹¦³®Ä´î§Cºô¸ô¶Ç¿é¶q¡C
AFS¥t¥~¤@Ó¤£¦P©óNFSªº¯SÂI¬O¡AÀɮרt²Î¤ºªºÀɦW¡]Name space¡^¹ï¥þ¥@¬ÉªºAFS¨t²Î¦Ó¨¥¬O°ß¤@ªº¡A¥¦¦bÀɮתº©R¦W¤W¡A¥[¤J¤F¾÷¾¹ªº¦ì§}·í§@¥Ø¿ý¦WºÙ¡A¨Ò¦p¡G¡¨ / afs / cc.nctu.edu.tw / ¡K. ¡¨¡A³o¨Ï±oÀɮתº¦s¨ú¯à°÷§ó«K±¶¡A±q³æ¤@¥x¾÷¾¹´N¯à¦s¨ú¥þ¥@¬ÉªºAFSÀɮרt²Î¡C
¦bºô¸ôª¬ªp¤ñ¸û¤£Ã©wªºª¬ªp¡A¨Ò¦p¦æ°ÊpºâÀô¹Ò¤§¤U¡AAFSªº§Ö¨ú¥\¯à¤´µM¤£¨¬¥HÀ³¥IÀWÁcªºÂ_½u¡B«·s³s½u¡B¥H¤Îªø®É¶¡ªºÂ÷½uª¬ºA¡C¬°¦¹¡ACMUªº¥t¤@¸s¬ã¨sûµo®i¤F¤@®MºÙ¬°Coda [19][20] ªºÀɮרt²Î¡C
Coda¨t²Îªº¥Ø¼Ð¬O¡uAccess information on demand when mobile¡v¡A¤]´N¬O§Æ±æÅý¸ê°Tªº¦s¨ú¯à¤£¨ü¦æ°ÊpºâÀô¹Ò¤U¯S®íºô¸ôª¬ºAªº¼vÅT¡CCoda§Æ±æÂÇ¥ÑServer replication»Pdisconnected operation[7][8]¨âÓ¾÷¨î¨Ó¦³®ÄÀ³¥I¦øªA¾¹©Îºô¸ôµo¥Í°ÝÃD®Éªºª¬ªp¡C
¹ï©óÂ÷½u°Ê§@¡ACoda¹ïÀ³¥Îµ{¦¡´£¨Ñ¤@Ó§¹¥þ³z©ú¤ÆªºªA°È¡]application transparent¡^[13]¡AÅýÀ³¥Îµ{¦¡¦bÂ÷½uª¬ºA¡A¤´µM¯à¥H¤@¯ëªº¤èªk¦s¨úÀɮסA©Ò¦³§Ö¨úªº§ó·s¡A¥H¤Î¸ê®Æ½Æ»s¤@P©Ê¡]consistency¡^ªººûÅ@¡A³£¥Ñ¨t²Î¦Û°ÊÀ°¦£§¹¦¨¡C
¥t¥~¡A»PCoda¬Û¦üªº¥t¤@¨t²ÎOdyssey [21]¡A«h¬O±Ä¥Îapplication-awareªº¤è¦¡¡AÀ³¥Îµ{¦¡¥i¥HÀH®É±oª¾ºô¸ô¥Ø«eªºª¬ºA¡A¨Ã¦Û¦æ¨Ì¾ÚÀ³¥Îµ{¦¡ªº¯S©Ê¡A§@¥X¾A·íªº¤ÏÀ³¡COdyssey¦P¼Ë·|À°¦£ºûÅ@¸ê®Æªº¤@P©Ê¡A¨Ã¾¨¥i¯àÅýÀ³¥Îµ{¦¡±o¨ì³Ì¦h·Q¦s¨úªº¸ê®Æ¡C
¬°¤F¸Ñ¨Mºô¸ô¶Ç¿éªº¤£Ã©w«×¡A¦P®É¤]¬°¤F¯à¼sªxÀ³¥Î¦b¦UºØºô¸ôÀ³¥Îµ{¦¡¤¤¡A§Ų́ϥΤ@Ó©³¼hªºÀɮרt²Î¡A°t¦X©Ò´£¨Ñªº¥\¯à©I¥s¡A¨Ó§@¬°©Ò¦³ºô¸ôªA°Èªºµo®i¥¥x¡C¦Ó¤£¦P©ó«e±©ÒzªºAFS¡BCodaµ¥Àɮרt²Îªº¬O¡A§Ú̪ºÀɮרt²Î¥Dn¬Oºô¸ô¦s¨úªº©â¶H¤Æ¡A¥Î¥H±Nºô¸ô¦s¨úªº°Ê§@¹ïºô¸ôÀô¹Òªº¾AÀ³©Ê¡]adaptation¡^§@¯S®í¦Ò¶q¡C§Q¥Î³o¤@Ó³q¥Îªº©³¼h¤¶±Àô¹Ò¡A§Ú̧Ʊæ¦UÃþºô¸ôªA°È¥i¥H«Ü®e©ö¦b¦¹¤¶±¤W«Ø¥ß¡A¨Ã¦P¼Ë¨É¨ü¨ì©³¼h¨t²Î©Ò±a¨Óªº§Ö¨ú¡B®e¿ù¡BÄò¶Ç¤Î§å¦¸³B²zµ¥¦n³B¡C
§Ú̱Nº¥ý¥HE-Mail¹q¤l¶l¥ó¤§¦¬µo«H¬°¨Ò¡A«Ø¥ß§¹¾ãªº¥\¯à®i¥Ü¡A¨ÓÃÒ©ú¦¹¤@¬[ºc¤§¥i¥Î©Ê¡C¦b©³¼h¤¶±¤¤¡A§Ų́ϥΤ@Ó³q¥Î©ÊªºÀɮרt²Î¡AºÙ¤§¬°General File System¡]GFS¡^¡A¨Ó·í§@°ò¥»ªººô¸ôÀ³¥Îµ{¦¡µo®i¥¥x¡C±µ¤U¨Ó¡A§Ṳ́]±N«Ø¥ß¤@Ó²³æªºFTPÀÉ®×¶Ç¿éªA°È¡A¨Ó¶i¤@¨B»¡©ú¦¹µo®i¥¥x¤§³q¥Î©Ê¡C
¥»¨t²Îªº¬[ºc±N¤jP¦p¤U¹Ï©Ò¥Ü¡G

¹Ï 1 ¨t²Î¬[ºc¹Ï
°£¤F©³¼h³q¥Î©Êªº³¡¥÷¤§¥~¡A§Ú̱N¦b¨ä¤W«Ø¥ßE-Mail proxy»PFTP proxy¡A¨Ó±N¯S©wªººô¸ôªA°Èn¨DÂର¹ïGFSÀɮרt²Î¤§¦s¨ú¡AÅýE-Mail»PFTP¨âºØºô¸ôªA°È¡A¯à¦P®É¨É¨ü¨ì©³¼hGFS©Ò±a¨Óªº¦UºØ¦n³B¡C¦bProxy¤§¤W¡A§Ṳ́]¬°¸Ó¶µªA°È¤§³q°T¨ó©w¡A§@¤F¾A·íªº×¥¿¡AÅýÀ³¥Îµ{¦¡§ó®e©ö¯à§Q¥Î¨ì©³¼h¨t²Î©Ò´£¨ÑªººØºØ¥\¯à¡C
§Q¥Î³oºØ¤T¼h¦¡¬[ºc¡A§Ú̧âºô¸ôªºÀ³¥Î¾A·í±o§@¤@Ó¤À¤u¡A³Ì©³¼hªºGFS¥Dnt³d§Ö¨ú¡B°»¿ù¥H¤Î«¶Çµ¥ºô¸ô¶Ç¿é¥\¯à¡A¦Ó²Ä¤G¼h«h¬OÄÝ©óºô¸ô¯S©wªA°È¤§³¡¥÷¡A¥Ñ³o¤@¼hªºService Proxyt³d¸Ó¶µªA°Èªº³Ì¨Î¤Æ¥H¤Î»PGFS¤§·¾³qµ¥¬ÛÃö¨Æ©y¡C³Ì¤W¼hªºÀ³¥Îµ{¦¡¡A«h¥Dn¬O¦b¨Ï¥ÎªÌºÝ±µ¨ú¦U¶µºô¸ôªA°È¡A¦b¦øªA¾¹ºÝ¡A«h¬O²{¦s©óºô¸ô¤Wªº¦U¶µºô¸ôªA°È¡A¥Ñ§Ú̪º¨t²Î¡A§@¾A·íªºÂà±µ¡C
¦b²Ä¤G³¹¡A§Ú̱N°w¹ï²{¦³¤§E-Mail¹q¤l¶l¥ó¨t²Î»PFTPÀÉ®×¶Ç¿é¨t²Î§@¤@Ó²³æªº¤ÀªR»P¤ñ¸û¡C¦b²Ä¤T³¹¡A§ÚÌ·|¹ï¾ãÓ¨t²Î¬[ºc§@¤@Ó§¹¾ãªº»¡©ú¡C²Ä¥|³¹¤Î²Ä¤³¹«h¬O¹ê§@ªº±¡§Î¥H¤Î½d¨Òªº®i¥Ü¡C³Ì«á¦b²Ä¤»³¹¡A§Ú̱N¹ï¾ãÓ¨t²Î§@Óµ²½×¡C
¹q¤l¶l¥ó¨t²Îªºµo®i¤w¸g¦³¤Q´X¦~ªº¾ú¥v¡A±q1982¦~SMTP¡]Simple Mail Transfer Protocol¡^[15]¥¿¦¡¦¨¬°RFC¡]Request for Comments¡^¤§«á¡AUNIX¤W±ªº¹q¤l¶l¥ó¨t²Î¤@ª½¬Oºô»Úºô¸ô¤W³Ì«nªºªA°È¡C¦ÓÀHµÛºô¸ô¨Ï¥Îªº¤é¯q´¶¹M¡A¹q¤l¶l¥óªº¨¤¦â¡A¤w±qì¨Óªº¡u«K§Qªº¤u¨ã¡v¡A¤É®æ¬°¡uÃöÁä©ÊÀ³¥Î¡v¤F¡C¥¦¬O¥ø·~¸ê°T»`¶°»P¶Ç¼½ªº°©·F¡A¨Ã¥B¦P®ÉªÓtµÛ¤½¥q¤º¥~³q°Tªº«n¤u§@¡C¹q¤l¶l¥ó¨t²Î¾ú¸g¤F³\¦hºt¶i©M§ïÅÜ¡AµM¦Ó¨ä°ò¥»ªº¬[ºc¤´¤jPºû«ù³Ìªìªº³]p¡C
¦b³o¤@¸`¡A§Ú̱N°w¹ïºô»Úºô¸ô¤W¤§¹q¤l¶l¥ó¨t²Î§@¤@¨ÇÂk¯Ç»P¤ÀªR¡A±´°Q¤@¯ë¨Ï¥ÎªÌŪ¨ú¹q¤l¶l¥óªº¤è¦¡¡A¨Ã«ü¥X¨äÀu¯ÊÂI¥H¤Î¥i¥H§ï¶iªº¦a¤è¡C¦Ó¦b¤U¤@³¹¡A§Ú̱N¦b©Ò³]pªº¬[ºc¤W¡A«Øºc¤@Ó·sªº¹q¤l¶l¥ó¤l¨t²Î¡A³]ªk¸Ñ¨M¥Ø«e¹q¤l¶l¥ó¨t²Î©Ò¦s¦bªº°ÝÃD¡A¨Ã¥H¦¹¨Ó»¡©ú¾ãÓ¨t²Î¬[ºc¤§¥i¦æ©Ê¡C
¥Ø«eºô¸ô¤W³Ì´¶¹Mªº¹q¤l¶l¥ó¶Ç°e¨ó©w¬OSMTP¡]Simple Mail Transfer Protocol¡ARFC 821¡^¡ASMTP¬O©w¸qºô»Úºô¸ô¤W¹q¤l¶l¥ó¬y¶Ç¤è¦¡ªº¤@Ó³q°T¨ó©w¡A¥¦ªº³Ì¥Dn¥\¯à´N¬Ot³d§â¹q¤l¶l¥ó¥¿½TµL»~¦Ó¥B¦³®Ä²vªº°e¨ì¥Øªº¦a¡C¦P®É¡A¤£½×©³¼hºô¸ôªº³s½u¤èªk¬°¦ó¡ASMTP¨ó©w³£¥i¥H¥Î¨Ó¶Ç°e«H¥ó¡A¥un¦³¤@Óéwªº¸ê®Æ¶Ç¿é³s½u§Y¥i¡C
³Ì±`¨£ªºSMTP ¦øªA¾¹´N¬OUNIX¤Wªºsendmail¡Asendmail±µ¨ü¨Ó¦Û«H¥óµo°eµ{¦¡¡]¦pelm¡^ªº©I¥s¡A¨Ã§Q¥ÎSMTP¨ó©w¨Ó±N«H¥ó¸g¥Ñºô»Úºô¸ô°e¨ì»·ºÝªºSMTP¦øªA¾¹¡A»·ºÝªºSMTP¦øªA¾¹¦A±N«H¥ó¦s¨ìÀɮרt²Î¤U¨Ï¥ÎªÌªº«H½c¤¤¡C³Ì«á¨Ï¥ÎªÌ´N¥iÂǥѫH¥óŪ¨úµ{¦¡±qÀɮרt²Î¤¤Åª¨ú«H¥ó¡C
SMTPªº¬[ºc¤jP¦p¤U©Ò¥Ü¡G

¹Ï 2 SMTP¶Ç¿é¬[ºc
¾ãÓSMTPªº¬[ºc¥HClient/Server¤è¦¡¤À¼h¹B§@¡A¨Ï¥ÎªÌ¥i¸g¥ÑUser Agent¡]elm¡^¨Óµo°e«H¥ó¡AUser Agent·|©I¥sTransport Agent¡]sendmail¡^¨ÓÀ°¦£§â«H¥ó°e¥X¥h¡ATransport Agent¦P®É·|¹ï«H¥ó§@¾A·íªºrelay©M queuing¡Aª½¨ì§â«H¥ó°e¨ì¦¬«HºÝªºTransport Agent¡C
²{¦³ªºSMTP¦øªA¾¹¤j¦h¨Ï¥ÎTCP port 25¡A©Ò¦³©R¥O»P¦^À³§¡¬O¨Ï¥Î¤@¯ëªºASCII¤å¦r¡A¶Ç°e«H¥ó®É¡A¥un³s¤WTCP port 25¡A§Q¥Î´XÓSMTP©Ò´£¨Ñªº«ü¥O§Y¥i°e«H¡A¤@¯ëªº«H¥ó³B²zµ{¦¡³£¬OÂǥѳoºØ»PSMTP ¦øªA¾¹ª½±µ·¾³qªº¤èªk¨Ó§â«H¥ó°e¥X¥hªº¡C
¤U±¬O¤@Óµo°e«H¥óªºÂ²³æ¨Ò¤l¡A°²³]¦bccsun1.CSIE ¤Wªºcdsheen·Q°e¤@«Ê«Hµ¹Java.CSIE³o¤@¥x¾÷¾¹¤Wªºicwu¡A§Ṳ́£¸g¹L«H¥ó³B²zµ{¦¡¡A¦Óª½±µ¨Ï¥ÎSMTP§â«H¥ó°e¨ì»·ºÝ¾÷¾¹Java.CSIE¤W±¡A¤U±¬Oµo°e«H¥óªº¬yµ{¡G
cdsheen ccsun1 [~]% telnet java.csie.nctu.edu.tw 25
Trying
140.113.214.168 ...
Connected
to java.csie.nctu.edu.tw.
Escape
character is '^]'.
220
Java.csie.nctu.edu.tw ESMTP Sendmail 8.8.8/8.6.9 ready at Thu,
250 cdsheen@csie.nctu.edu.tw... Sender
ok
250 icwu@java.csie.nctu.edu.tw...
Recipient ok
354 Enter mail, end with "."
on a line by itself
Subject: Hello!
hello,
It's
a test for SMTP.
.
250 LAA29947 Message accepted for
delivery
221 Java.csie.nctu.edu.tw closing
connection
Connection
closed by foreign host.
cdsheen ccsun1 [~] %
¦b¤W±¥Îµê½u®Ø°_¨Óªº³¡¥÷©Ò°eªº¬O«H¥óªº¤º®e¡A¥]§t«H¥óÀÉÀY¤Î¯u¥¿ªº«H¥ó¤º®e¡CÃö©ó«H¥ó¤º®eªº®æ¦¡¡A¦p¼ÐÃD¡B®É¶¡µ¥¸Ô²Óªº®æ¦¡©w¸q¡A¦bRFC 822¡]Standard format of ARPA internet text message¡^[3]¤¤¦³¸Ô²Óªº»¡©ú¡CSMTP¥»¨¶Èt³d±N«H¥ó°e¹F¥Øªº¦a¡A¨Ã¤£ª¾¹D«H¥óªº¤º®eµ¥¸ê°T¡C
¦b³o¤@¸`»P¤U¤@¸`¡A§Ú̱N±´°Q´XºØ¦b¨Ï¥ÎªÌºÝŪ«H¥óªº¤è¦¡¡A¨Ã§@¤@Ó¤ÀªR»P¤ñ¸û¡C¦b¦³ºô¸ôª½±µ³s½u¡B¶Ç¿é³t«×§ÖªºÀô¹Ò¡A¤j¦h¼Æªº¨Ï¥ÎªÌ³£¿ï¾Ü¦¹ºØ¤è¦¡ ¢w ¥ý¥Î»·ºÝµn¤Jµ{¦¡¡]¦p¡Gtelnet¡^¶i¤J»·ºÝ¶l¥ó¦øªA¾¹¨t²Î¡AµM«á§Q¥Î¶l¥ó³B²zµ{¦¡¡]¦pelm¡^¸g¥Ñª½±µ¦s¨úmail spoolªº¤è¦¡¨ÓŪ¨ú¨Ã³B²z«H¥ó¡F¦Ó¦b°e«H¤è±¡A«h¬O¥Ñ¶l¥ó³B²zµ{¦¡ª½±µ³z¹LSMTP ¦øªA¾¹¨Ó°e¥X«H¥ó¡C

¹Ï 3 ¦b«H¥ó¦øªA¾¹¤WŪ¨ú«H¥ó
¨Ï¥Î³oºØ¤è¦¡Åª¨ú¶l¥óªºÀuÂI¬O¡A¨Ï¥ÎªÌ¹ï¦Û¤vªº«H½c¤§³B²z¸û¦³¼u©Ê¡A¥i¥H¹ï¦Û¤vªº«H½c°µ¦UºØ¥\¯àªº¾Þ§@¡F¥t¥~«H¥ó¤§¦s©ñ¤]©ö©ó¶°¤¤ºÞ²z¡C¦ý¬O¬Û¹ïªº¡A¥Ñ©ó«H¥ó³B²z¹Lµ{»Ýnªø®É¶¡ªº³s½u¡A©Ò¥H¯ÊÂI¬O»Ýn¸û¦nªººô¸ô¶Ç¿é«~½è¡C¦P®É¦bUNIX¤Wªº«H¥ó³B²zµ{¦¡¤j¦h¥u¬O¤å¦r¼Ò¦¡¡A°£¤F¯Ê¥F¸û¤Íµ½ªº¤¶±¥~¡AYn¥Î¨ÓŪ¨ú¦h´CÅé¶l¥ó¡A©Î¨ä¥L«D¤å¦r¼Ò¦¡ªº«H¥ó®É¡A¤]·|¦³§xÃø¡C
¦bºô¸ô³t«×ºC¡A©Î¸g¥Ñ¼·±µ¦øªA¾¹¬Æ¦Ü¸g¥ÑµL½uºô¸ô³s½uªºÀô¹Ò¡A¦pªG¨Ï¥ÎªÌ¥u¬O·Q¾\Ū«H¥ó¡A«h«ez³oºØ«H¥óŪ¨ú¤è¦¡¦ü¥G¨Ã¤£¤Q¤À¸gÀÙ¡A¦]¬°»·ºÝµn¤J»P¶Ç¿é«H¥ó³B²z®Éªºµe±µ¥¡A·|¯Ó¥Î³\¦hÃB¥~ªººô¸ôÀW¼e¡A¦Ó¥Bºû«ù«H¥ó³B²z®Éªº³s½u¤]±N¤Q¤À©ù¶Q¡C
¦]¦¹¡A³oÃþªº¨Ï¥ÎªÌ¤ñ¸û§Æ±æªº¬O¯àª½±µ¦b¨Ï¥ÎªÌºÝŪ¨ú»P¾Þ§@«H¥ó¡A»P»·ºÝ¶l¥ó¦øªA¾¹ªº³q°T®É¶¡¶V¤Ö¶V¦n¡A³oºØÅª¨ú¶l¥ó¤è¦¡³Ì±`¥Îªº¦³¨âºØ¡APOP3¡]Post Office Protocol, RFC 1939¡^[11]»PIMAP¡]Internet Message Access Protocol, RFC 2060¡^[2]¡A§Q¥Î³o¨âºØ¤è¦¡¡A¥i¥H§â¶l¥ó¦øªA¾¹¤Wªº«H¥ó¥ý¶Ç¨ì¨Ï¥ÎªÌºÝ¡A¦A¥Ñ¨Ï¥ÎªÌºCºC¾\Ū¨Ã°µ³B²z¡C
¤@¯ë¦Ó¨¥¡A¦bÓ¤H¹q¸£ºÝ¨Ï¥ÎPOP3©ÎIMAPªº«H¥ó³B²zµ{¦¡¡A¥\¯à¤j¦h¤ñ¸û°¾«¦bÀ³¥Î¤è±¡A¨Ï¥Î¤W¤]¤ñ¸û¤è«K¡C¹ï©ó¦h´CÅé«H¥óªº³B²z¡A¥H¤Î»P¨ä¥LÀ³¥Îµ{¦¡ªº¾ã¦X©Ê¡A¤]³£¬O¦b¦øªA¾¹¤W¨Ï¥Î¤å¦r¼Ò¦¡Åª«Hµ{¦¡©ÒµLªk¤ñÀÀªº¡C

¹Ï 4 ¸gPOP3/IMAP³B²z«H¥ó
POP3³q°T¨ó©w¤Q¤À²³æ¡A¦ý¤]¦]¦¹¨Ï±o¥\¯à¨ü¨ì¨î¡CPOP3¥u³B²zŪ¨ú»·ºÝ«H¥ó¦øªA¾¹¤W«H¥óªº¥\¯à¡A¹ï©ó°e«Hªº°Ê§@¨Ã¥¼´£¨Ñ¤ä´©¡A°e«HÁÙ¬On¾aSMTP¨ó©w¡C
¤@¯ë¨Ï¥ÎªÌ¨Ï¥ÎÓ¤H¹q¸£¤Wªº¹q¤l¶l¥ó³B²zµ{¦¡¡]¦pMicrosoftªºInternet Mail¡BOutlook¤ÎNetscape Mailµ¥¡^®É¡A¨ä©Ò±Ä¥ÎªºÅª«H¤è¦¡§Y¬OÂǧU©óPOP3 ¨ó©w¡A¦Óµo°e«H¥ó«h¬O¥t¥~¸g¥ÑSMTP³q°T¨ó©w¡]RFC 821¡^¡A¦]¦¹³o¨Ç«H¥ó³B²zµ{¦¡°£¤F»Ýn¦øªA¾¹¤W¦³´£¨ÑPOP3ªA°È¥~¡A¦P®É¤]n¯à§ä¨ì¤@¥x¯àÀ°¦£ÂÇ¥ÑSMTPµo°e«H¥óªº¦øªA¾¹¡C
·QnPOP3³q°T¨ó©wŪ¨ú¦b¶l¥ó¦øªA¾¹¤Wªº«H¥ó¡Aº¥ý¥²¶·µ¹¤©¦øªA¾¹»{ÃÒ©Ò»Ýnªº±b¸¹»P±K½X¡A¤§«á¨Ï¥ÎªÌºÝ§Y¥i¦V¶l¥ó¦øªA¾¹¨ú±o¤@¨Ç²³æªº«H¥ó¸ê°T¡A¹³«H¥ó¼Æ¥Ø¡A¤Î«H¥ó¤j¤pµ¥¡A¦ý¬O¹ï©óÃö©ó«H¥óªº§ó¸Ô²Ó¸ê°T¡A¨Ò¦pµo«HªÌ¡B¼ÐÃDµ¥¡A¦b«H¥ó¥»Åé¤U¸ü¥H«e¡A¨Ï¥ÎªÌºÝªº«H¥ó³B²zµ{¦¡¨ÃµLªkª¾¹D¡C
¤U±¬O¨Ï¥ÎMicrosoftªºOutlook¸g¥ÑPOP3Ū¨ú«H¥óªº±¡§Î¡G

¹Ï 5 ¨Ï¥ÎOutlookŪ¨ú«H¥ó
®Ú¾ÚPOP3 ¨ó©w¡A¨Ï¥ÎªÌºÝÁöµM¥i¥H¿ï¾Ü¤U¸ü²Ä´X«Ê«H¡A¦ý¬O¥Ñ©ó¨Æ«eµLªk±oª¾«H¥ó¸Ô²Ó¸ê°T¡A¨Ï±o¤@¯ëªº«H¥ó³B²zµ{¦¡³£¥²¶·§â©Ò¦³ªº«H¥ó¤U¸ü¤§«á¡A¤~¯à¥Ñ¨Ï¥ÎªÌ¿ï¾ÜŪ¨úþ¤@«Ê¡C

¹Ï 6 ¨î¥i¤U¸ü«H¥ó¤j¤p
¨Ï¥ÎPOP3ªº«H¥ó³B²zµ{¦¡¦b«H¥ó¯u¥¿¤U¸ü«e¡A¶È¯à´N¤U¸üªº«H¥ó¤j¤p§@¨î¡A¦ý¬O¨ÃµLªk¨Ì¾Ú«H¥óªº¤º®e¡B¨Ó·½µ¥§@§ó¶i¤@¨Bªº¨î¡C
POP3¦b¦øªA¾¹ºÝ¤@¯ë¶]¦bTCP port 110¡A©Ò´£¨Ñªº©R¥O¤Q¤À²³æ¡A¼Æ¥Ø¬ù¶È¤QºØ¦Ó¤w¡C¤U±¬O¤@Ócdsheen¸g¥ÑPOP3¨ó©w¨ìJava.csie¤W±¨ú«Hªº¨Ò¤l¡G
cdsheen ccsun1 [~] % telnet Java.csie.nctu.edu.tw 110
Trying 140.113.214.168 ...
Connected to java.csie.nctu.edu.tw.
Escape character is '^]'.
+OK QPOP (version 2.2) at Java starting.
<21897.894789997@Java>
USER cdsheen
+OK please
send PASS command
PASS mypass
+OK 12
messages ready for cdsheen in /usr/spool/mail/cdsheen
LIST
+OK 3 messages; msg# and size (in
octets) for undeleted messages:
1 943
2 773
3 773
.
RETR 2
<message
content of #2>
.
QUIT
+OK Pop
server at Java signing off.
cdsheen
ccsun1 [~] %
¨Ï¥ÎªÌ¦b¨ú«H¤§«e¡A©Ò¯à±o¨ìªº¸ê°T´N¥u¦³¤W±®Ø°_¨Óªº³¡¥÷¡A¤]´N¬O¥u¦³«H¥ó¼Æ¶q»P¤j¤pªº¸ê°T¡A¨Ï¥ÎªÌ¨Ã¤£ª¾¸Ó«Ê«H¥óªº¤º®e¡Aª½¨ì§â«H¥ó¤U¸ü¤§«á¤~ª¾¹D¼ÐÃD»P¨Ó·½µ¥¸ê®Æ¡C
ÂÇ¥ÑPOP3¥Ñ»·ºÝ¦¬«H¤è¦¡ªºÀuÂI¬O¡A¨Ï¥ÎªÌ¥i¤@¦¸¤U¸ü©Ò¦³«H¥ó¡A¦Ó°£¤F«H¥ó¶Ç¿é©Ò»Ý³s½u¤§¥~¡A¨Ã¤£·|®ö¶OÃB¥~ªººô¸ôÀW¼e¡A¦P®É¨Ï¥ÎªÌ¤]¤£»Ý¬°¤Fn³B²z«H¥ó¡A¦Ó»Ýnºû«ùªø®É¶¡¦Ó¥Béwªº³s½u¡C
¦ý¬O³oºØ¤è¦¡¤]¦³¤@Ó¯ÊÂI¡A´N¬O«H¥óªº³B²z¨Æ¹ê¤W¬O¦b local ºÝ¶i¦æ¡A¦pªG¨Ï¥ÎªÌ¸g¥Ñ¤£¦Pªº¾÷¾¹¨ÓŪ¨ú«H¥ó®É¡A´N¦³¥i¯à·|¾ÉP«H¥ó³B²z¤Wªº¤£¤@P¡C¥t¥~¡A³oºØÅª¨ú«H¥ó¤è¦¡¤j³¡¤À³£¬O§â«H¥ó¥þ³¡¤U¸ü¡A¦pªG¨Ï¥ÎªÌ¥u·QŪ¨ú¥L³ßÅwªº¬Y¤@«Ê«Hªº¸Ü¡A¦¹ POP3¨ó©w¨Ã¥¼´£¨Ñ³oºØ¡u¿ï¾Ü©ÊŪ¨ú¡B¤U¸ü¡vªº¥\¯à¡C
¥t¥~¡AIMAP4«h¬O¤@Ó¤ñ¸ûÁo©ú¤@ÂIªº¨ó©w¡A¦b¦p¦óÂ^¨ú°T®§¤è±¡A¦¹¨ó©wµ¹¤F§A¤ñPOP3§ó¦hªº¿ï¾Ü¡C§A¥i¥H¹w¥ýª½±µ¦b¦øªA¾¹ºÝ¹ï«H¥ó§@°ò¥»ªºÀˬd»PåªR¦Ó¤£»Ýn¥ý¦æ¤U¸ü¡A±µµÛ¡A§A¥i¥H¿ï¾Ü§A¯u¥¿»Ýnªº¡A§Y«K¥u¬O°T®§ªº¤@³¡¥÷¡A¤´µM¥i¥H±N³Ñ¾lªº³¡¤À¯d¦b¦øªA¾¹¤W¡F¦P®É IMAP4 ¤]´£¨Ñ¹ï»·ºÝ«H¥óªº°ò¥»¾Þ§@¡]¦p¡G§R°£¡B½s¿è¡BÀx¦sµ¥¡^¥\¯à¡C³o¨Ç¯S©Ê¤£¥u¬O¤è«K¦Ó¤w¡A¥t¥~¥i¥H¹F¨ì¹³¬O«K©ó³Æ¥÷¡B°T®§¤À¨Éµ¥¦n³B¡C
ÁöµMPOP3©MIMAP4¦b³\¦h¨t²Î¤W¦P®É¦s¦b¡A¦ý¬O¤@¯ë»{¬°¡AIMAP4²×±N¨ú¥NPOP3¡]¨Ò¦p¡GMicrosoft©MLotus¦b¥L̪º°T®§¶Ç»¼²£«~¤¤¡A³£¤w¸g¤ä´©POP3»PIMAP4¡^¡C
IMAP4¥i¥H»¡¸Ñ¨M¤F POP3 µLªk¡u¿ï¾Ü©Ê¤U¸ü¡vªº¯ÊÂI¡A¨Ï¥ÎªÌ¾\Ū«H¥ó®É¥i¥H¥u¶Ç¿é¯S©wªº¬Y¤@¨Ç«H¥ó¡]¦p·sªº«H¥ó¡^¡A¤£»Ý¹³ POP3 ¤@¼Ë¥²¶·§â¾ãÓ«H½c«¶Ç¤@¦¸¡C¦ý¬O¹ï©ó§Ö¨ú¤Î¾ã¦X¦¬µo«H¥\¯à¤W±¡AIMAP4¨Ã¥¼ª½±µ´£¨Ñ¤ä´©¡F°£¦¹¤§¥~¡A¹ï©óºô¸ô¤£Ã©wªº±¡§Î¡A¨Ò¦p¦³Â_½uªº±¡ªp¡AIMAP4 ¤]¨S¦³´£¨Ñ¤@Ó¨¬°÷éwªºÀô¹Ò»Ý¨Dªº¸Ñ¨M¤è®×¡C
¤ñIMAP4§ó¦nªº¬OACAP¡]Application Configuration Access Protocol¡^[12]¡A¥¦ÂǵÛÅý§A¦w¸Ë¦ì§}ï¡B¨Ï¥ÎªÌ¿ï¶µ¥H¤Î¨ä¥L»P³q¥Î¦s¨ú¬ÛÃöªº¸ê®Æ¡A¨Ó¼W±jIMAP4ªº¥\¯à¡CµM¦ÓACAPªº³W®æ¤´µM¥¼¸gt³dµo®iInternet¼Ð·Çªº²Õ´IETF¡]Internet Engineering Task Force¡^³q¹LÅçÃÒ¡A¥Ø«e¤]ÁÙ¨S¦³¤ä´©ªº³nÅé¥X²{¡C
¤U±¤ñ¸û¥Ø«e²{¦³ªº¦U¦¡ E-Mail ³B²z¤è¦¡
u
µn¤J¨ì«H¥ó¦øªA¾¹¤W¡A§Q¥Î elm ©Î pineŪ«H
u
¦b¨Ï¥ÎªÌºÝ§Q¥Î¤ä´© POP3 ªº«H¥ó³B²zµ{¦¡Åª«H
u
¦b¨Ï¥ÎªÌºÝ§Q¥Î¤ä´© IMAP4 ªº«H¥ó³B²zµ{¦¡Åª«H
°ò¥»¤W¡A³o¤TªÌªº°e«H¤è¦¡³£¬OÂÇ¥Ñ SMTP ¨ó©w¡APOP3¡BIMAP4 ¨âºØ¨ó©w¥u©w¸qŪ«Hªº¥\¯à¡A¦]¦¹¤U¦C¤ñ¸û¥Dn°w¹ïŪ«H³¡¥÷¡G
|
¥\¯à¤ñ¸û |
¦b«H¥ó¦øªA¾¹¤W§Q¥Î
elm Ū«H |
»·ºÝ§Q¥ÎPOP3¨ÓŪ¨ú«H¥ó |
»·ºÝ§Q¥ÎIMAP4¨ÓŪ¨ú«H¥ó |
|
³B²z¨t²Î¥H¥~ªº«H½c |
¥i |
¤£¥i |
¥i |
|
«H¥óºÞ²z |
¶°¤¤ |
¤À´² |
¤À´²/¶°¤¤ |
|
³s½u®É¶¡ |
ªø |
µu |
ªø |
|
«H¥ó³B²z¤è¦¡ |
ª½±µ³B²z |
¤U¸ü¾\Ū |
»·ºÝ³B²z |
|
¤ä´©«H¥ó¥H¥~ªºªA°È |
¥i |
µL |
¦³ |
|
ºô¸ô«~½è¤§®e§Ô¯à¤O |
§C |
§C |
§C |
|
§Ö¨ú¥\¯à |
µL |
µL |
µL |
|
¦¬°e«H¾ã¦X |
¥i |
µL |
µL |
|
¦h´CÅé«H¥ó³B²z |
Ãø |
¥i |
¥i |
¤jP¨ÓÁ¿¡A§Q¥Î»·ºÝñ¤J¦b«H¥ó¦øªA¾¹¤W¨Ï¥Î«H¥ó³B²zµ{¦¡¨Ó³B²z«H¥ó¡A¦³¶°¤¤³B²zªºÀuÂI¡AYºô¸ôÀW¼e¨¬°÷ªº¸Ü¡A³oºØ¤è¦¡¹ï©ó¤@¯ëªº«H¥ó³B²z¬O³Ì«ê·íªº¡C¦ý¬O¡A¹ï©ó¦h´CÅé«H¥óªº¤ä´©¡A¥H¤Î»P¨ä¥LÀ³¥Îµ{¦¡ªº¾ã¦X©Ê¡A¬Û¹ï¨ÓÁ¿¡A´N¤ñ¸û®z¤@ÂI¡C
POP3¬O¥Ø«e¨Ï¥Î¼Æ¾Ú¾÷¼·±µºô¸ôªº¨Ï¥ÎªÌ¤ñ¸û±`¥Îªº«H¥ó³B²z¤è¦¡¡A¦bÓ¤H¹q¸£ºÝ¡A¦³¦U¦¡¦U¼ËªºPOP3«H¥ó³B²zµ{¦¡¥i¨Ñ¿ï¾Ü¡A¥L̪º¥\¯à¤j¦h®t¤£¦h¡A¤]³£¦³¤@©wªº¦h´CÅé«H¥ó¤ä´©¯à¤O¡C¦ý¬O¨ü©óPOP3¥»¨¨ó©wªº¦³¥\¯à¡A¤ñ¸ûÃø¹F¨ì«H¥óªº¶°¤¤ºÞ²z¥\¯à¡A¦Ó¥BµLªk¹ï«H¥ó§@¹LÂo¡A¤£ºÞ¬O§_¬°©U§£«H¥ó¡A§¡»Ý¥þ³¡¤U¸ü¡C
IMAP4¯à¸Ñ¨MPOP3ªº¤£¨¬¤§³B¡A¥¦ªº«H¥ó³B²z¥i¥H¬O¤À´²¦b¨Ï¥ÎªÌºÝ¡A¤]¥i¥H¶°¤¤¦b¦øªA¾¹ºÝ¡A«H¥ó¦b¤U¸ü¤§«e¡A¥i¥H¥ý¸g¹L¾A·íªº¹LÂo¡A¦Ó¥B¤wŪ¹Lªº«H¥ó¤]¥i¥HÀx¦s¦b¦øªA¾¹ºÝ¡A¦³§Q©ó«H¥óªº¶°¤¤ºÞ²z¡CIMAP4ªº¯ÊÂI¬O¡A¥i¯à·|¹ï¦øªA¾¹³y¦¨¤ñ¸û°ªªºt²ü¡A¦Ó¥B¹ï©óºô¸ô¤£Ã©w®Éªº®e§Ô¯à¤O¡A¤]¦³«Ý¦ÒÅç¡C
¦b§Ú̪º¨t²Î¤¤¡A¹ï©ó¹q¤l¶l¥óªº³B²z¡A¥Dn¬O¦b©w¸q§¹¾ãªº©³¼h¨t²Î¤§¤W¬[ºc¥X¯à®e§Ôºô¸ô¶Ç¿é¤£Ã©wªº¹q¤l¶l¥ó¨t²Î¡A³]ªk¹F¨ì§Ö¨ú¡B¹w¥ý¤U¸ü¡B°T®§«O¦sµ¥¥\¯à¡F¦P®É°Ñ¦ÒIMAP4ªº§@ªk¡A´£¨Ñ¤U¸ü«e¹LÂo¥H¤Î¦øªA¾¹ºÝ«H¥óÀx¦sªºªA°È¡C
ÀÉ®×¶Ç¿é¨t²Îªº°_·½¥i¥H·¹·½¦Ü1971¦~¦bM.I.T©Ò«ØºcªºÀÉ®×¶Ç¿é¥\¯à¡]File Transfer Protocol¡^¡A¸g¹L¤@¤G¤Q¦~ªººt¶i¡AFTP¤w¸g¦¨¬°ºô¸ô¤WÀɮ׸귽¤À¨Éªº«nªA°È¡A¥Ñ©ó¨ä¬[ºc¥X§Ö³t¤ÎéwªºÀÉ®×¶Ç¿é¥\¯à¡A¨Ï±oFTPÅܦ¨ºô¸ô¤W³Ì«K§Qªº¸ê·½¦@¨É¤èªk¤§¤@¡C
³Ì·sªºFTP³q°T¨ó©w¬°RFC 959 [14]¡A©Ò©w¸qªºÀÉ®×¶Ç¿é¬O¥HTCP¬°°ò¥»ªº³q°TºÞ¹D¡A¾ãÓFTPªº¹B§@¤è¦¡¥i¥Î¤U¹Ï¨Ó»¡©ú¡G

¹Ï 7 FTP
Transfer Model
º¥ý¡A¨Ï¥ÎªÌÂǥѨϥΪ̤¶±¹ï»·ºÝªº©R¥O¸Ñ;¹¡]protocol interpreter¡^µo¥X©R¥O¡A¦Ó©Ò»Ýnªº¸ê®ÆÀɮ׶ǰe¡]Data transfer¡^¡A«h¸g¥Ñ¥t¥~¤@±ø³s½u¶Ç°e¡CFTP©R¥Oªº³s½u¤@¯ë¬OTCP port 21¡A¦Ó¸ê®Æ¶Ç°e³s½u«h¤£¤@©w¡C¸ê®Æ³s½u¬OÂù¦Vªº¡A¦Ó¥B¥i¥Ñ¥ô¤@¤è¶}±Ò¦¹³s½u¡]Passive/Active¡^¡C
©Ò¦³©R¥OFTP©R¥O»P¦^À³§¡¬°¤@¯ëªºASCII¤å¦r¡A§Q¥Î³o¨Ç©R¥O¡A¨Ï¥ÎªÌ¥i¥H¨ú±o¨¥÷»{ÃÒ¡B¥Ø¿ý¯Á¤Þ¡B§ïÅܥؿý¡BÀɮפW¸ü¡BÀɮפU¸üµ¥ÀÉ®×¶Ç¿éªA°È°ò¥»¥\¯à¡C
³oºØ¸ê®Æ¶Ç°e¥t¥~¨Ï¥Î¤@Ó³s½uªº§@ªk¡A¤]¨Ï±oFTP©Ò¯à¹F¨ìªº¥\¯à§ó¥[¨ã¦³¼u©Ê¡A¨Ò¦p¤U¦C³oºØÀɮ׶ǿ鱡§Î¡A¨Ï¥ÎªÌºÝ¬J«DÀɮרӷ½¡A¤]«DÀɮץتº¦a¡A¦ý¬O§Q¥Î©R¥O±±¨î¡A¯àÅý¨âÓ»·ºÝªºFTP¦øªA¾¹§@Àɮץ洫ªº°Ê§@¡C

¹Ï 8 »·ºÝ±±¨î¨âFTP¤¬¶Ç¸ê®Æ
¤Wzªº¾ãÓFTP¹B§@¤è¦¡¡A°ò¥»¤W¬O¨S¤°»ò¤j°ÝÃD¡A¦b°Ï°ìºô¸ô¡A©ÎªÌºô¸ô³s½uéwªº¦a¤è¡A³oºØÀÉ®×¶Ç¿é¬[ºc³£¯à¹B§@ªº«Ü¦n¡C¦ý¬OY¬Oºô¸ô³s½u¸ûºC©Î¤£Ã©wªºª¬ªp¡AFTPªºConnection Oriented¶Ç¿é¤è¦¡¡A´N¥i¯à·|¾D¨üªº¤@¨Ç§xÃø¡C

¹Ï 9 ª½±µ»P¶¡±µ¶Ç°eÀÉ®×
¤W¹Ïªí¥Ü¥X¼Æ¾Ú¾÷¼·±µªº¨Ï¥ÎªÌ§Q¥ÎÀÉ®×¶Ç¿éªA°È¨Ó¨ú±oÀɮתº¤èªk¡F¶Ç²Î¤U¸üÀÉ®×¥²¶·ª½±µ»P»·ºÝFTP¦øªA¾¹«Ø¥ß³s½u¡A¦ý¦p¤W¹Ï©Ò¥Ü¡AY»·¤è¦øªA¾¹¦b°ê¥~¡A«h¦¹³s½u´N¥i¯à¥²¶·¸ó¹L¨â¬q³s½u¤£Ã©wªº¦a°Ï¡A¼W¥[¤F¶Ç¿éªº¥¢±Ñ¾÷²v¡CY§Q¥Î¦b¼·±µ¦øªA¾¹¤Wªº¥N²z¦øªA¾¹·í§@¤¤Ä~¯¸¡A¥Ñ¨ät³d§âÀɮפU¸ü¦ÜÀɮרt²Î¤¤¡A«h¹ï©ó¼·±µ¥Î¥Î¤á¦Ó¨¥¡A©Ò»Ý¸ó¹Lªº´N¥u¦³¼·±µ©Ò»ÝªºPPP³s½u¦Ó¤w¡C²{¦³ªºWWW Proxy Server¤]¤j¦h¤ä´©FTP Proxy¡A¦ý¬O¨¤¦â¤j¦h©w¦ì¦b´£¨ÑÀÉ®×§Ö¨úªº¥\¯à¡A¹ï©ó¶¡±µ³s½u¥N²zªº¥\¯à¡A´N¥¼¯à©MÀ³¥Îµ{¦¡§@§¹¾ãªº¤¬°Ê¡C§Ú̪º¨t²Î¡A¤]§Æ±æ¯à´£¨Ñ¤@ӫܲ³æªº¤¶±¡AÅýFTP¯à«Ü§Ö¨ã¦³³oºØ¥N²zªÌ¥\¯à¡C
¹ï©ó²{¦³¹q¤l¶l¥ó¨t²Î¥H¤ÎÀÉ®×¶Ç¿é¨t²Îªº§ï¶i¡A¨Æ¹ê¤W¤w¸g¦³¦UºØ¤èªk¥X²{¡A§ÚÌ«h¬O§Æ±æ§Q¥Î§Ú̳]pªº©³¼h°ò¥»¬[ºc¡A«Øºc¥X²{¦³ªº¦U¶µªA°È¡A¦P®É¤]§Æ±æ¹ïE-Mail¥H¤ÎFTP¨â¶µªA°È§@¤@¨Ç§ï¶i¡A¨Ó¶i¤@¨BÃÒ©ú¾ãÓ¨t²Î¬[ºc¤§¥i¦æ©Ê¡C
¦b¹q¤l¶l¥ó¨t²Î¤è±¡A§Ú̫إߤ@Ó§¹¾ã¡A¥]§t¦UºØ°ò¥»¥\¯àªº¶l¥ó¨t²Î¡A¨Ã»P²{¦³¨t²Î§@³sµ²¡A§Æ±æ¹F¨ìªº§ï¶i¥\¯à¦³¤U¦C´X¶µ¡G
A. ¾ã¦X¦¬µo«H¥\¯à¡G¦P®É¤ä´©Ãþ¦ü POP3 ªº¦¬«H¥\¯à¡A¥H¤Î SMTP ªº°e«H¥\¯à¡A¨Ã±N¨âªÌ¾ã¦X°µ³Ì¨Î¤Æ¡A¨Ã³]ªk§Q¥Î¨âªÌªºÃö«Y¹F¦¨´î§C¶Ç¿é¶qªºn¨D¡C
B. §Ö¨ú¡]Caching¡^¡G§Q¥Î©³¼hªº§Ö¨ú¥\¯à¡A¨Ï±o¤W¼hªº¶l¥ó³B²z§¹¥þ¯à¥H³z©ú¤Æªº¤è¦¡¹F¨ì§Ö¨úªº¥\¯à¡A¤]´N¬O¦b¾\Ū¤wŪ¹Lªº«H¥ó®É¡A¥i¥Hª½±µ¥Ñ§Ö¨ú¤¤¨ú±o¡A¤£»Ý¸g¥Ñºô¸ô¦A«¶Ç¤@¦¸¡C³oÃä²o¯A¨ìªºÄ³ÃDÁÙ¥]¬A©R¦W³W«h¡]naming¡^»P¤@P©Ê¡]consistency¡^ªº°ÝÃD¡C
C. ¦æ°ÊpºâÀô¹Ò¤§¦Ò¶q¡G¥]§t¹w¥ý¤U¸ü¡B°T®§¹LÂo¡B°T®§À£ÁY¡A¥H¤Îºô¸ô¤£Ã©w®Éªº®e¿ù¯à¤O¡C¦P®É¦bºô¸ôÂ_½u¨Ã¦^´_«á¡A¯à¦Û°Ê«¶Ç¥¼¶Ç§¹ªº³¡¥÷¡A¦Ó¤£¥²¥þ³¡«¶Ç¡A¦Ó¦bºô¸ôÂ_½u´Á¶¡ªº°Ê§@¡A¤]¥iÂǥѰT®§«O¦sªº¯à¤O¡A¦b³s½u«ì´_«á¡A¥Ñ¨t²Î¦Û°Ê§¹¦¨¡C
D. Åý¨Ï¥ÎªÌ¯à¹ï»·ºÝ¶l¥ó§@¦UºØ¾Þ§@¡G©Ò¦³«H¥óªº³B²z»P«O¦s§¡¶°¤¤¦b¦øªA¾¹¤W±¡A¤£½×±q¦ó³B¤W½u¬d¬Ý«H½c¡A§¡¥i¥H¬Ý¨ì¬Û¦Pªº³B²zÀô¹Ò¡C
¦bÀÉ®×¶Ç¿é¨t²Î¤è±¡A§ÚÌ«h¥Dn¦b®i¥Ü¨t²Î¹ï©ó¶¡±µÀÉ®×¶Ç¿é¬[ºcªº¤ä´©¯à¤O¡A§Q¥Î¤@Ó²³æªº¤¶±¡A«Øºc¥X°ò¥»ªºÀÉ®×¶Ç¿é¤U¸ü¯à¤O¡C¹ï©ó§ó½ÆÂøªº¥\¯à¡A¨Ò¦p§Ö¨ú¡BÄò¶Çµ¥¡A«h©|¥¼¥[¤J¡C
¥»¨t²Îªº³Ì«n¥Øªº´N¬O§Æ±æ¯à«Øºc¥X¤@Óºô¸ôÀ³¥Îµ{¦¡µo®i¥¥x¡]framework¡^¡A¤×¨ä¬O°w¹ï©óºô¸ô¶Ç¿é«~½èªº®e§Ô¡A¥H¤Î¦æ°ÊpºâÀô¹ÒªººØºØ»Ý¨D¡A³£¯à¦b¨t²Î¤¤§@¾A«×ªº¦Ò¶q¡FÅý¦UÃþºô¸ôÀ³¥Î¡A¯à«Ü§Öªº¸g¥Ñ¨t²Î©Ò´£¨ÑªºÀ³¥Îµ{¦¡¤¶±¡]API¡^¡A¨Ó¨ú±o©Ò»ÝnªºªA°È¡Cºî¦X¨ÓÁ¿¡A§Ú̪ºµo®i¥¥x¦³¤U¦C´X¶µ¥\¯à¡G
1.
ºô¸ô³s½uÂà¤Æ¬°Àɮצs¨ú
©Ò¦³ì¨Ó¹ïºô¸ô¤Wªº³s½u¦s¨ú°Ê§@¡A¦b§Ú̪º¨t²Î¤¤¡A³£±N¤§Âà¤Æ¬°¹ïÀɮתº¦s¨ú¡A§Q¥Î¤@P©Êªº¤¶±¡A´£¨Ñ¾ã¦X©Êªººô¸ô¶Ç¿éªA°È¡C©Ò¦³ºô¸ôÀ³¥Î¥i¥H§¹¥þ¤£ºÞ©³¼hªººô¸ô¨t²Î¹B§@±¡§Î¡A¥u»ÝÁA¸Ñ¦p¦ó¦s¨úÀÉ®×§Y¥i¡C
2.
§Ö¨ú¥\¯à
©³¼hÀɮרt²Î¦Û°Ê´£¨Ñ§Ö¨ú¥\¯à¡A¤w¸g¦s¨ú¹LªºÀɮ׳£·|¦b¨Ï¥ÎªÌºÝªºÀɮרt²Î¤¤¦s¤@¥÷§Ö¨ú¡A©Ò¥HYÀɮרt²Î°»´ú¨ì©Ò¦s¨úªºÀɮפw¸gŪ¨ú¹L¤F¡A·|ª½±µÅª¨ú§Ö¨ú¤¤ªºÀɮסA¤£·|¦A¸g¥Ñºô¸ô¦V»·ºÝÀɮרt²În¨D¬Û¦PªºÀɮסC©³¼hÀɮרt²Î¦P®É·|¹ï§Ö¨úªºÀɮ׬O§_§ó·s¹L§@Àˬd¡A¨Ï¥ÎªÌ¤£¥Î¾á¤ß®³¨ìªºÀɮסC
3.
°T®§À£ÁY»P°»¿ù¥\¯à
¦b©³¼hÀɮרt²Î³B²zºô¸ô¶Ç¿é³¡¤À¡A©Ò¦³ªº°T®§³£·|¸g¹LÀ£ÁY¡A´î¤Ö¶Ç¿é¸ê®Æ¶q¡F¦P®É©Ò¦³¶Ç¿éªº°T®§³£·|¸g¹LCRC pºâchecksum¡A¹w¨¾°T®§¦b¶Ç¿é¹Lµ{¤¤µo¥Í¿ù»~¡C
4.
Â_½u³B²z»P«¶Ç
¨t²Î¶¡ªººô¸ô°T®§¶Ç¿é¡A·|¦Û°Ê°»´úºô¸ôª¬ªp¡AÂ_½u®É¡A°T®§·|³QÀx¦s°_¨Ó¡F·í³s½u«·s±µ¤W®É¡A°T®§·|³Q«·s¶Ç°e¥X¥h¡C¨t²Î·|½T¹ê«OÃÒ°T®§¤£·|¿òº|¡A§¹§¹¾ã¾ãªº¶Ç°e¨ì¥Øªº¦a¡C
5.
´£¨Ñ©ö©ó¨Ï¥ÎªºÀ³¥Îµ{¦¡¤¶±
¦b©³¼hªºÀɮרt²Î¤§¤W¡A§ÚÌ´£¨Ñ¤Q¤À²³æ¦Ó¥B©ö©ó¨Ï¥ÎªºÀ³¥Îµ{¦¡¤¶±¡AÅý¦UÃþºô¸ôªA°È¯àÂǥѩI¥s³o¨Ç¨t²Î´£¨Ñªº¨ç¼Æ¨Ó¨ú±o¨t²Î©Ò´£¨ÑªººØºØ¥\¯à¡A§¹¥þ¤£»Ý¹ïºô¸ôªº¦s¨úªá¶O¥ô¦ó¤ß¤O¡C
©³¼hÀɮרt²Î©Ò´£¨Ñªº¥\¯à¡A¥Dn¬O§âºô¸ô¦s¨úªº³¡¤ÀÁôÂð_¨Ó¡Aºô¸ôÀ³¥Îµ{¦¡¶}µoªÌ¥unª¾¹D¦p¦ó¹ï§Ú̪º¨t²Î§@¦s¨ú¡A¦p¦ó¼¶¼g¥i¥H±¾¨ì¨t²Î¤W±ªºªA°È¥N²zªÌ¡]Service Proxy¡^¡A´N¥i¥H«Ü»´©öªº§¹¦¨¤@Ө㦳°ª®Ä²vºô¸ô¦s¨ú¥\¯àªººô¸ôÀ³¥Îµ{¦¡¡C
¥Ñ©ó¥»¨t²Îªº¥Ø¼Ð¬O§Æ±æ¯à¤ä´©¦UÃþªººô¸ôªA°È¡A¦Ó¤£¬O³æ³æ¬°¤F¸Ñ¨M¹q¤l¶l¥ó¨t²Î¦Ó³]pªº¡C¦]¦¹¡A¦b³]p¾ãÓ¨t²Î¬[ºc¤§®É¡A¯S§O§â»P¯S©wºô¸ôªA°ÈµLÃöªº³¡¥÷¿W¥ß¥X¨Ó¡A¨ÃÅý¹q¤l¶l¥ó¤l¨t²Î¥H¤ÎÀÉ®×¶Ç¿é¤l¨t²Î¡A¥HÃþ¦üªþ¥[¼Ò²Õªº¤è¦¡±¾¦b§Ú̪º¨t²Î¤§¤W¡C
¦]¦¹¡A¾ãÓ¨t²Î³¡¥÷¹ê»Ú¤À¦¨¨â¼h¡A³Ì©³¤Uªº¤@¼h¬O»P¯S©wªA°ÈµLÃöªº³¡¥÷¡A¦b¨ä¤W±«h»Î±µµÛ¤@¼h¦UÃþºô¸ôªº¤l¨t²Î¡A¦Ó¦¹¨â¼h©Ò²Õ¦¨ªº¨t²Î¤§¤W¡A«h¬O¯u¥¿»P¨Ï¥ÎªÌ±µÄ²ªºÀ³¥Îµ{¦¡»P¯u¥¿ªA°Èªº³sµ²¡A¨t²Î³¡¤Àªº¬[ºc¦p¤U¹Ï©Ò¥Ü¡G

¹Ï 10 ¨t²Î¤À¼h¬[ºc¹Ï

¹Ï 11 GFS¨t²Î¬[ºc¹Ï
³o¼Ëªº³]p¨Ï±o¦U¦¡¦U¼Ëªººô¸ôªA°È§¡¥iÂǥѼҲդƪº¤è¦¡¨Ó¾ã¦X¶i¨t²Î·í¤¤¡F¤W¹Ï¥Dn¬O¥H¹q¤l¶l¥ó¨t²Î¬°¨Ò¡A¥t¥~¤]¥iÂǥѳ]p¨ä¥Lªººô¸ôªA°Èªº²Ä¤G¼h³¡¥÷¡]¦pFTP Proxy¡^¡A¨Óª½±µ¦@¥Î©³¼hªº¨t²Î¡C
¨Æ¹ê¤W¡A»P¯S©wªA°ÈµLÃöªº³¡¤À¨Æ¹ê¤W¬O¤@ÓµêÀÀªºÀɮרt²Î¡A§Ú̺٤§¬°General File System¡A²ºÙGFS¡C¦Ó¦b¹ê»Ú°õ¦æªº®ÉÔ¡AGFS¤§¤U«hÁÙ¦³Java Virtual Machine¡BNative File System¥H¤ÎOperation System¤T¼h¡C
³Ì©³¤U¤T¼h¬OÄÝ©ó¨t²Î°õ¦æÀô¹Ò³¡¤À¡A¤¤¶¡ªº¨â¼h«h¬O§Ų́t²Î³Ì¥Dn®Ö¤ß©Ò¦b¡A¦Ó³Ì¤W¼h¡A«h¬O»P¨Ï¥ÎªÌª½±µ·¾³qªºÀ³¥Îµ{¦¡³¡¤À¡C¤U±§Ṵ́w¹ï§ÚÌ¥D¨t²Îªº¨â¼h¬[ºc§@²`¤Jªº»¡©ú¡A¦Ó¦b«á±ªº³¹¸`¤¤¡A§Ṳ́]·|¹ï¦U¼h©Òt³dªº¥\¯à¥H¤Î¦U¼h¶¡ªº©I¥s¤¶±§@¸Ô²ÓªºåªR¡C
¾ãÓ¨t²Î³Ì©³¼hªº¤@¼h¬OÄÝ©ó¦U¶µºô¸ôªA°È³q¥Îªº³¡¤À¡A³o¤@³¡¥÷¥Dn¥Ñ¤@ÓµêÀÀÀɮרt²Î²Õ¦¨¡A¦¹§YGFS¡CGFS¬O¤@Ó¾ã¦X¦UÃþºô¸ôªA°ÈªºÀɮרt²Î¡F¤]´N¬O»¡¡A¥»¨t²Î§â©Ò¦³ªA°È©Ò»Ýnªººô¸ô³q°T³¡¤À¡A³£¾ã¦X¶iÀɮרt²Î¤§¤¤¡F©Ò¦³¸ê°Tªº¶Ç¿é»PÀò¨ú¡A³£Âର¹ïÀɮרt²Îªº¦s¨ú¡A¦p¦¹¤@¨Ó¤W¼h¦UÓÀ³¥Îµ{¦¡´N¥u»Ýnª¾¹D¦p¦ó¾Þ§@GFSÀɮרt²Î¡A§Y¥i±o¨ì©Ò»Ýnªººô¸ôªA°È¡C°£¦¹¤§¥~¡AGFS¥i¥H´x´¤ºô¸ôªº¶Ç¿éª¬ªp¡A°w¹ï°T®§ªº¶Ç¿é°µ¾A·íªº±±¨î»P«O¦s¡C

¹Ï 12 GFS¨t²Î¥\¯à¥Ü·N
§Ö¨ú¡]caching¡^¥Dn¬OÂÇ¥ÑÃþ¦üAndrew File SystemªºÆ[©À°t¦X¤W¼hºô¸ôªA°È©Ò´£¨Ñªº°T®§©R¦W³W«h¨Ó§¹¦¨¡A¥Øªº¬O¬°¤F´£¨Ñ¤@Ó§¹¥þ¦Û°Ê¤Æªº§Ö¨ú¥\¯à¡AÅý©Ò¦³ªººô¸ôªA°È³£¯à«Ü®e©ö¨É¨ü¨ì§Ö¨úªºÀuÂI¡C
¤W¹ÏªºMessage Queue¥Dn¬O¬°¤F¸Ñ¨M¬Y¨ÇÀô¹Ò¤U¡]¦p¡G¦æ°Êpºâ¡^ºô¸ô¤£Ã©wªº°ÝÃD¡C·íºô¸ôÂ_½u©Î¤£Ã©w®É¡A¦¹Message Queueªº§@¥Î´N¬O§â¤W¼hªº°T®§«ü¥O¥H§å¦¸¤è¦¡Àx¦s¤U¨Ó¡Aµ¥¨ì³s½u«ì´_«á¡A¦A±N©Ò¦³¥¼°e¥Xªº°T®§¦Û°Ê°e¥X¡A§¹¥þ¤£»Ý¤W¼hªººô¸ôªA°È©ÎÀ³¥Îµ{¦¡¾Þ¤ß¡C¬Æ¦Ü§Y¨Ïµ{¦¡©Î¹q¸£·í±¼¤F¡A³o¨Ç°T®§¤]·|³Q¥HÀx¦s¦bµwºÐ¡]persistent¡^ªº¤è¦¡¡A«O¯d¤U¨Ó¡A¤U¦¸«·s±Ò°Ê®É¡A©Ò¦³¥¼°e¥Xªº°T®§¤]·Ó¼Ë¤£·|¿òº|¡C
GFS°£¤Ft³dÀɮ׳B²z»P§Ö¨ú¤§¥~¡AÁÙ¥it³d¶Ç°e¤W¼hlayer¤§¶¡ªº³q°T¨ó©w©Î¯S®í°T®§¡A¦bGFS¤§¶¡¡A³o¨Ç°T®§©MÀɮתº¶Ç¿é¤@¼Ë¡A·|³Q©ñ¶iMessage Queue¤¤«O¦s¡A½T«O¸ê®Æ¥¿½T¶Ç°e¨ì¥Øªº¦a¡C
¥H¹q¤l¶l¥ó¨t²Î¬°¨Ò¡AGFSªº§Ö¨ú¥\¯à¥Dn´N¬O§â¤wŪ¹Lªº«H¥ó¥HÀɮתº§Î¦¡Àx¦s¤U¨Ó¡A«h¥H«áY¦³nŪ¦P¼Ëªº«H¥ó®É¡A´N¥i¥H¤£¥²¦A¸g¥Ñºô¸ô¶Ç°e¤@¦¸¡C¥t¥~´N¬O·í¶Ç°e«H¥ó©Î³B²z«H¥ó®É¡AYºô¸ôÂ_±¼¬Æ¦Ü©Î¾÷¾¹·í±¼¡A«hGFS·|t³d§â¤w°µ¹Lªº°Ê§@«O¦s¦bµwºÐ¤¤¡Aª½¨ì°Ê§@§¹¦¨¬°¤î¡C¦P®É¡AGFS¨t²ÎÁÙt³dÂà°e¤W¼hE-Mail¨t²Î¤§¶¡¬Û¤¬·¾³qªº©R¥O¡C
©³¼hªºGFS¨t²Î¨Æ¹ê¤W¨Ã¤£¾å±o¥¦©Ò³B²zªº¬Oþ¤@ºØºô¸ôªA°È¡AGFS¨t²Î¥»¨¥u»{±oÀɦW¡A¦Ó¦¹ÀɦW¬O¥Ñ¤W¼hlayer¡]¦pE-Mail©ÎFTP¡^«ü©wªº¡C¹ï©ó¹q¤l¶l¥ó¨t²Î¤§¶¡ªº³q°T¨ó©w¡AGFS¥ut³dÂà°e³o¨Ç°T®§¡A¨Ã¤£t³d³B²z¨ä¤º®e¡C
ºî¦X¤W±©Òz¡AGFS¬O¤@Ó¡u»Pºô¸ôªA°ÈµLÃö¡vªº©³¼h¨t²Î¡A¨ä¤W±¥i¥H»Î±µ¦U¦¡¦U¼Ëªººô¸ôªA°È¡A¦P®ÉGFS¨Ã´£¨Ñ¤F°ò¥»ªººô¸ô¶Ç¿é±±¨î¡A¨Ò¦p§Ö¨ú©M«¶Çµ¥¥\¯à¡C
³s±µ¦bGFS¤W±ªº¬O°w¹ï¦U¶µºô¸ôªA°È§@¯S®í³B²zªº³¡¥÷¡A¦U¶µªA°È¨Ì¾Ú¨ä©Ê½è¡A»s§@¥X¾A¦X¯S©wºô¸ôÀô¹Ò¡]¦p¡G¦æ°Êpºâ¡^ªººô¸ôªA°È¥N²zªÌ¡]Service Proxy¡^¡C°£¦¹¤§¥~¡A¦¹¼hÁÙ»Ýt³d´£¨Ñ¸Ó¶µºô¸ôªA°Èªº¸ê°T©R¦W³W«hµ¹GFS¡A¥H«KGFS§Q¥Î¦¹©R¦W³W«h¨Ó§@¾A·íªº§Ö¨ú³B²z»P°T®§«O¦s¡C

¹Ï 13 ¯S©wªA°È»PGFS¤§³s±µ
¥H¹q¤l¶l¥ó¨t²Î¬°¨Ò¡A³oÓService Proxy³¡¥÷´NºÙ¬°E-Mail Proxy¡M¥Dn¦b´£¨ÑÀ³¥Îµ{¦¡Åª«H©M°e«Hªº¥\¯à¡A¨Ã¥Bª¾¹D¦p¦ó¸g¥ÑSMTP¦øªA¾¹¨Ó°e«H¥H¤Î¦p¦ó¨ì¶l¥ó¦øªA¾¹¤W¨ú«H¡C
Service
Proxy¤À¬°client»Pserver¨âºØ¡G¥H¦¹¹q¤l¶l¥ó¨t²Î¬°¨Ò¡A¦bclientºÝ¦³Mail Client Proxy¡A¦bserverºÝ¦³Mail Server Proxy¡FMail Client Proxyt³d±µ¦¬¨Ó¦Û¨Ï¥ÎªÌºÝªºÀ³¥Îµ{¦¡¦UºØ«H¥ó³B²zn¨D¡A¦ÓMail Server Proxy«ht³d¥N¬°¨ú«H»P°e«H¡C
¹ï©óGFS¦Ó¨¥¡AE-Mail Proxy©Ò§êºtªº¨¤¦â´N¬O´£¨Ñ©Ò¦³«H¥óµ¥°T®§¤@Ó¯S©wªº©R¦W³W«h¡AGFS¤~¥i¥H¥Ñ¦¹naming¨Ó¦V»·¤èGFS´£¥XŪ¨úÀɮתºn¨D¡A¦P®É¹ïÀɮצs¨ú§@§Ö¨ú³B²z¡C¦¹©R¦W³W«h¬O¥Ñ¸Ó¶µºô¸ôªA°È´£¨ÑªÌ©Ò¦Û¦æ©w¸q¡A¹ï©ó¦¨¹ïªºServer Proxy»PClient Proxy¡A¨âªÌ¥²¶·¿í¦u¤@¼Ëªº©R¦W³W«h¡A³o¼Ëºô¸ôªA°È¤~¥i¥H±o¨ì¥¿½Tªº¸ê°T¡C
¦b¤@Óºô¸ô¤£Ã©wªºÀô¹Ò¤¤¡AGFS©Ò¯à´£¨Ñ³Ì¦³¥Îªº¥\¯à´N¬O§Ö¨ú¡C¦b¥»¨t²Î¤¤¡A§ÚÌ¥H¹q¤l¶l¥ó¡]E-Mail¡^¤l¨t²Î¨Ó®i¥ÜGFS¨t²Î©Ò¨ã¦³ªº§Ö¨ú¥\¯à¡A§Ú̳]ªk§Q¥ÎGFSªº§Ö¨ú¥\¯à¨Ó§ï¨}¥Ø«e¼sªx¨Ï¥ÎªºPOP3©Ò¦s¦bªº¤@¨Ç°ÝÃD¡A¨Ï¤§¯àµ½¥Î§Ö¨úªº¥\¯à¨Ó¹F¨ì°§Cºô¸ô¶Ç¿éÀW²vªº®ÄªG¡C
¦P®É¡A°w¹ï²{¦³ªº¹q¤l¶l¥ó¨t²Î¡A§Ú̥ѫe¤@³¹ªº¤ÀªR¤¤¡Aª¾¹DPOP3³Ì«nªº¤@Ó¯ÊÂI¬OµLªk¹w¥ý¹ï¹q¤l¶l¥óªº¤º®e§@¤ÀªR¡AÅý¨Ï¥ÎªÌ¦Û¦æ¿ï¾Ü·QnÆ[¬Ýªº«H¥ó¡F¨Ï¥ÎªÌ¥²¶·¤U¸ü¥þ³¡ªº«H¥ó¤º®e¡A¤~¯à±oª¾©ÒnÆ[¬Ýªº«H¥ó¸ê°T¡C¦P®É¡A¥Ñ©óPOP3³q°T¨ó©w¥ý¤Ñ¤Wªº¨î¡A¨Ï±o§Ö¨úªº¥\¯à«ÜÃø¹F¦¨¡C¦]¦¹¡A¹q¤l¶l¥ó¤l¨t²Î°t¦X©³¼hGFS§Ö¨ú¥\¯àªº¹B§@¡A³Ì¥Dn¦³¤U¦C¨â¤j§ï¶i¡G
1.
¨Ï¥ÎªÌ¥i¥H¹w¥ý±oª¾«H½c¤¤©Ò¦³«H¥óªº¸ê°T¡A¦Ó¤£¥²¥ý¦æ¤U¸ü«H¥ó¥»Åé¡C¨Ï¥ÎªÌ¹ï©ó¦³¿³½ìªº«H¥ó¡A¥i¥H¿ï¾Ü©Ê¤U¶Ç¡F¦Ó¤£¥²¹³POP3¤@¼Ë»Ý¥þ³¡¤U¶Ç¡C
2.
¨Ï¥ÎªÌ¤w¸g¾\Ū¹Lªº«H¥ó©Î¼ÐÃD¡A¦b¨Ï¥ÎªÌ¤U¦¸n¨D¦P¼Ëªº¤º®e®É¡A¥iª½±µ¥Ñ¦s¦b©ó¨Ï¥ÎªÌºÝªº§Ö¨ú¤¤¨ú±o¡A¦Ó¤£»Ý¸g¥Ñºô¸ô¦A«¶Ç¤@¦¸¡AGFS·|¦Û°ÊÀˬd¸ÓÀɮ׬O§_§ó·s¹L¡C
GFS¨t²Î¤Uªº§Ö¨ú¹B§@¹Lµ{¬ù¦p¤U¹Ï©Ò¥Ü¡G

¹Ï 14 GFS¨t²Îªº§Ö¨ú¥\¯à
§Ö¨ú¥\¯à¥Dn¬O¥Ñ§Ų́t²Î¤¤ªº¨â¼hlayer¤§¶¡¤¬¬Û°t¦X¨Ó¹F¦¨¡C©³¼hªºGFSt³d§Ö¨úª«¥óªºÀx¦s¡A¦P®É·|§P§O©Òn¨Dªºª«¥ó¬O§_¤w¸g¦s¦b§Ö¨ú¤§¤¤¡A¥H¤Î³Q§Ö¨úªºª«¥ó¤º®e¬O§_»P¦øªA¾¹ºÝª«¥ó¦P¨B¡A¤W¤@¼hªººô¸ôªA°È¥u»Ý¤U¤@ÓÀÉ®×Ū¨ú«ü¥O¡A§Y·|¤ÞµoGFS¤@³s¦ê§PÂ_§Ö¨úª«¥óªºµ{§Ç¡C
¦b¥»¨t²Î¤¤¡A§Ú̧Q¥Î¤W¼hªºService Proxy¨Ó´£¨Ñ¦UÃþ¸ê°Tªº©R¦W³W«h¡]naming¡^¡A©³¼h¨t²Î«h§Q¥Î¦¹naming¨ÓÀx¦s©Î´M§ä§Ö¨ú¤¤ªº¤º®e¡A¦Ó©³¼h¨t²Î¨Ã¤£ª¾¹D¥¦©Ò³B²zªºÀɮפº®eªº¬O¤°»ò¡C
Á|¨Ò¨Ó»¡¡A°²³]¬Y¸ê°T¡]¨Ò¦p¤@«Ê«H¡^³QMail Proxy¨ú¦W¬°¡ufoo¡v¡A«h·í¨Ï¥ÎªÌn¨D¨ú±o¦¹¸ê°T®É¡AMail Proxy´Nª½±µ§â¦s¨ú¡ufoo¡vªºn¨D¦V©³¼hªºGFS´£¥X¡C
©³¼hªºGFS±µ¨ì¦s¨ú¦¹Àɮתºn¨D«á¡A·|¥ý¬Ý¬Ý§Ö¨ú¤¤¬O§_¦s¦b¡ufoo¡v³oÓÀɮסAYµL«h§â¦¹¦s¨ún¨DÂà°eµ¹»·ºÝªºGFS¡A¨Ï¥ÎªÌºÝªºGFS¦b¨ú±oÀɮ׫á¡A§Y·|¦bGFS¤¤¦s©ñ¤@¥÷¡AµM«á¦A§â¸ê°T©¹¤W¶Çµ¹Mail Proxy¡CY§Ö¨ú¤¤¤w¸g¦s¦b¦¹ÀɮסA«h¬°¤F¸ê°Tªº¦P¨B¡AGFSÁÙ·|À°¦£Àˬd¨Ï¥ÎªÌºÝ§Ö¨úªº¸ê®Æ¬O§_¹L´Á¤F¡AY¹L´Á¤F¡AGFS·|¦Û°ÊÀ°¦£§ó·s¡CMail Proxy¦P®É¥i¥H®Ú¾Ú»Ýn¿ï¾Ün¤£nGFS§@³o¶µÀˬd¡C
¦b»·ºÝªºGFS³¡¤À¡A±µ¦¬¨ìÀɮצs¨úªºn¨D«á¡A·|¥ý§PÂ_¦¹Àɮ׬O¥Ñ¨ºÓService Proxyt³dªº¡A¨Ò¦p¡GMail Proxy¡AµM«á±N¦s¨ún¨DÂର¦VMail Proxy´£¥X¡AMail Proxy»Ý®Ú¾Ú¦Û¤v©wªº©R¦W³W«h¡At³d±N¦¹ÀÉ®×¥Nªíªº¸ê°T¶Ç¦^µ¹GFS¡AÅýGFS§âÀɮ׶Ǧ^µ¹¨Ï¥ÎªÌºÝ¡C¨Ò¦p¦¹®ÉªºMail Proxy±µ¦¬¨ì¦s¨ú¡ufoo¡vÀɮתºn¨D¡A´N»Ýt³d§â¥Nªí¸ÓÀɮתº«H¥ó¤º®e¶Ç¦^µ¹GFS¡C
¦bºô¸ô¤£Ã©wªºÀô¹Ò¤¤¡A¥t¤@Ó«nªºÄ³ÃD´N¬O¦p¦ó¨Ï±o©Ò¦³ªº³q°T¶Ç¿é³£¯à¥¿½TµL»~ªº§¹¦¨¡A¤£·|¨üºô¸ô¬O§_¶¶ºZªº¼vÅT¡A³o´N¬O¥»¨t²Î©Ò±j½Õªººô¸ô¿ù»~®e§Ô¡]fault-tolerant¡^¯à¤O¡C¦b¥»¨t²Î¤¤¡A¿ù»~§ó¥¿ªº¥\¯à§¹¥þ¥Ñ©³¼hªºGFS¨Ó¹F¦¨¡A¤W¼hªº©R¥O©Î°Ê§@§¡·|¥Ñ¤U¼hªºGFS§@¾A·íªº«O¦s¡Aª½¨ì³q°T¥¿½TµL»~ªº§¹¦¨¬°¤î¡C
GFS§@°T®§«O¦sªº¤è¦¡¬O§â¤W¼hªº©R¥O¥H§å¦¸¡]batch¡^¤è¦¡©ñ¦b¦î¦C¡]queue¡^¤§¤¤¡A¦bºô¸ô¶¶ºZ®É¡A¦ø¾÷°e¥X¡C¦p¦¹¤@¨Ó¡A¤£¦ýÁ×§K¦]ºô¸ôÂ_½u³y¦¨¸ê®Æ¬y¥¢¡A¦P®É¤]¥i¥H´î§Cclient»Pserver¶¡ºô¸ô¶Ç¿éªºÀW²v¡A¦³®Ä´£ª@ºô¸ôªº¨Ï¥Î²v¡C

¹Ï 15 GFS°T®§¶Ç¿é¬[ºc
¦p¤W¹Ï©Ò¥Ü¡AGFS¹ï©ó¥²¶·Âà°e¨ì»·ºÝªº°T®§©Î¸ê®Æ¡A³£·|¥ý©ñ¸m¨ì¤@Ó¦î¦C¡]queue¡^¤¤¡A¦Ó¦¹¦î¦C«h·|¦Û°Ê¦s©ñ¤@¥÷¦b¥Ã¤[©ÊªºÀx¦s´CÅé¡]¦pµwºÐ¡^¤W¡]persistent storage¡^¡A©Ò¥H§Y¨Ï¦]»~IJ¹q·½¶}Ãö¦ÓÃö¾÷©Î¦]¨t²Î·í¾÷¦Ó«·s±Ò°Ê¡A¦¹¦î¦C¤´µM¦s¦b¤£·|®ø¥¢¡A¦p¦¹¤@¨Ó¡A´£¨Ñ¤F¨Ï¥ÎªÌ¤@Ó°T®§¶Ç¿éªºµ´¹ï«OÃÒ¡F¨Ï¥ÎªÌ¤£¥²¾á¤ß¸ê®Æ·|¦]¨t²Î©Îºô¸ô¤£Ã¦Ó¬y¥¢¡C
¦b°T®§¶Ç°e¦Ü¥Øªº¦a«á¡A»·ºÝGFS¦P®É·|¹ï¦¹°T®§«Ê¥]§@CRCªºÀˬd¡A¬Ý¬Ý¶Ç¿é¹Lµ{¬O§_¿ù»~¡C¥u¦³·í°T®§³Q»·ºÝGFS¥¿½TµL»~ªº±µ¦¬¡A¨Ï¥ÎªÌºÝªºGFS±µ¨ü¨ì¨Ó¦Û»·ºÝGFSªºACK°T®§«á¡A¤~·|±N¸Ó°T®§¦Û¦î¦C¤¤§R°£¡]dequeue¡^¡A§_«h°T®§ÁÙ·|³Q¶Ç°e¤@¦¸¡Aª½¨ì¦¨¥\¬°¤î¡C
¦P®É¡A©Ò¦³¶Ç¿éªº°T®§¡A³£·|¸g¹LÀ£ÁY¡A¦³®Ä°§C¶Ç¿é©Ò»Ý¸ê®Æ¶q¡C¥H¹q¤l¶l¥ó¤l¨t²Î¬°¨Ò¡A¥Ñ©ó¶Ç¿éªº¸ê®Æ¦h¬°¤å¦r«¬ºA¸ê®Æ¡A¥iÀ£ÁY²v·¥°ª¡A¸g¹LÀ£ÁY«áªº¶Ç¿é¶q¤j¬ù¥i´î¤Ö50%¥H¤W¡C
¹ï©óGFS¦Ó¨¥¡A©Ò³B²zªº¤u§@´N¬O½T«O°T®§¥¿½T¥B§Ö³tªº¶Ç°e¨ì¥Øªº¦a¡A¤]´N¬O§âºô¸ô¶Ç¿é³¡¤À§¹¥þ¹ï¤W¼hªººô¸ôªA°ÈÁôÂð_¨Ó¡A¥ÑGFS§¹¥þ´x±±¡C¥t¥~¡A«e¤@¸`©ÒzÀɮרt²Îªº§Ö¨ú³¡¤À¡A¤]¬OGFSªº¥\¯à¤§¤@¡C
°£¤F«ezªº¹q¤l¶l¥ó¤l¨t²Î¤§¥~¡A§Ṳ́]¦bGFS¤W±¥t¥~¬[³]¤@ÓÀÉ®×¶Ç¿é¤l¨t²Î¡]FTP Service Proxy¡^¡C¬[³]³o¤@Ó¤l¨t²Îªº¥Øªº¦³¨âÓ¡G¤@¬O®i¥ÜGFS¥¥x¤§¥iÂX¥R©Ê¡A¤G¬O»¡©ú¤À¼h¬[ºcªº°ª«×¼u©Ê¡C
§Ú̪ºÀÉ®×¶Ç¿é¤l¨t²Î¥Ø«e¤´¥¼¨ã¦³¶Ç²ÎFTP©Ò¦³ªº¥\¯à¡AµM¦Ó¨ä³Ì¥Dnªº§ï¶i¬O¼W¥[FTP¨t²Îªº¥N²z¶Ç¿é¯à¤O¡]proxy-ftp¡^¡A§Æ±æ¯à¬°ºô¸ô¶Ç¿é¤£Ãªº¦a°Ï¡A´£¨Ñ¦³®Ä²vªºÀɮפU¸ü¥\¯à¡C
¦p¦P§Ú̦b²Ä¤G³¹¤¤ªº»¡©ú¡A¦b¬Y¨Çºô¸ôª¬ªp¤§¤U¡AÀÉ®×¶Ç¿é±`±`·|¦]¬°¸ó¹L³\¦h¬qºô¸ô¦Ó³y¦¨·¥°ªªº¤£Ã©w©Ê¡C¦]¦¹¡A±Ä¥Î¶¡±µ¦¡ªººô¸ô¶Ç¿é¡]Indirect FTP¡^¡AÅý¨Ï¥ÎªÌ¯à¶¶§Qªº¤U¸ü©Ò»ÝªºÀÉ®×´N¦¨¬°¸Ñ¨M³oÓ°ÝÃDªº³Ì¦n¤è¦¡¡C¦ÓÂǥѧÚÌ©³¼hGFS¨t²Î©Ò´£¨Ñªº¼u©Ê¡A§Ú̫ܻ´©öªº¥i¥H°w¹ï¶¡±µ¦¡¶Ç¿é³]p¥X¤@Ó¯u¥¿¥i¥H¹ê»Ú¹B¥ÎªºFTP¨t²Î¡C

¹Ï 16 ¶¡±µÀÉ®×¶Ç¿é¬[ºc
¦p¦P¹q¤l¶l¥ó¤l¨t²Î¤@¼Ë¡AÀÉ®×¶Ç¿é¤l¨t²Î¤À¬°FTP Client Proxy¡BFTP Server Proxy¨â³¡¤À¡A¦P®É§Ṳ́]³]p¤F¤@Ó²³æªºFTPÀ³¥Îµ{¦¡¨Ï¥ÎªÌ¤¶±¡A¨Ó¯u¥¿±±¨îFTPªº¹B§@¡C
¨Ï¥ÎªÌ¥i¥Hn¨D»·ºÝFTP Server Proxy¥N¬°³s±µþ¤@¥xFTP¦øªA¾¹¡A¤§«á¦b¨Ï¥ÎªÌºÝ©Ò¬Ý¨ì¡B©Ò·Pı¨ìªºÀɮ׶ǿ鱡ªp³£·|¸ò¨Ï¥Î¤@¯ëªºFTPµ{¦¡¤@¼Ë¡C¦Ó¨Æ¹ê¤W¡A©Ò¦³¨Ï¥ÎªÌªºÀÉ®×¶Ç¿én¨D¡AFTP Server Proxy³£·|¥N¬°Âର¦V©Ò«ü©wªºFTP¦øªA¾¹´£¥X¬Û¦Pªºn¨D¡AÀɮתº¶Ç¿é·|¥ý¤U¸ü¨ì»·ºÝGFSªºÀɮרt²Î¤¤¡A¦A¶Ç¦^¨Ï¥ÎªÌºÝªºGFS¨t²Î¤§¤¤¡A³Ì«á¦A¥ÑFTP Client Proxy§âÀɮ׶Ǧ^µ¹À³¥Îµ{¦¡ºÝ¡C
§Ú̧Q¥Î¨t²Î©Ò´£¨Ñªº©R¦W³W«h¡A¥HÃþ¦üAFSªº¤è¦¡¡A§i¶D»·ºÝªºFTP Server Proxy©Ò»ÝnªºÀɮצì¸m¡A¥Ñ»·ºÝªºFTP Server Proxy¥N¬°¨ú±o©Ò»ÝnªºÀɮסC¦b³o¤§¤¤¡AGFS¦P¼Ë¤w¸g¥N¬°³B²z±¼¤j³¡¤Àªººô¸ô¶Ç¿é°ÝÃD¡A¦P®É¹ï©óÀɮתº§Ö¨ú¥H¤Î¿ù»~§ó¥¿µ¥°ÝÃD¡A¤]³£´£¨Ñ¤F§¹¾ãªº¸Ñ¨M¤èªk¡C
¦b¼¶¼gFTPºô¸ô¶Ç¿éªA°È¤§®É¡A¥un³z¹L¨t²Î©Ò´£¨ÑªºÀ³¥Îµ{¦¡¤¶±¡]API¡^¡A®M¥Î¬J¦³ªºµ{¦¡®Ø¬[¡A´N¯à«Ü§Öªº³]p¥X¤@Ө㦳°ª®Ä²v»P°ª«×ºô¸ô¶Ç¿é®e§Ô¯à¤OªºÀ³¥Îµ{¦¡¡C
¨t²Î¥Dnªº¹ê§@Àô¹Ò¦p¤U
¦øªA¾¹³¡¤À Solaris
2.6, SUN JDK 1.1.6
«È¤áºÝ³¡¤À Microsoft
Windows 95, SUN JDK 1.1.6
¦øªA¾¹³¡¤À¥Ñ©ó¥Ø«e¤j³¡¤Àªº«H¥ó¦øªA¾¹³£¥HUNIX¬°¥D¡A¦]¦¹¬°¤F¯à¨Ï¥»¨t²Î¤¤ªº¹q¤l¶l¥ó¤l¨t²Î¯à¥¿±`¹B§@¡A¦]¦¹¦øªA¾¹¥²¶·«Ø¸m¦bUNIXªº¾÷¾¹¤W¡A¥t¥~¤]¥Ñ©ó¨t²Î³\¦h¥\¯à¤Wªº»Ýn¡AJava¥²¶·¨Ï¥ÎJDK 1.1 [22]¥H¤Wªºª©¥»¡C¦]¦¹§ÚÌ¿ï©wªºµ{¦¡µo®iÀô¹Ò´N¥ÑSolaris·f°tWindows 95§@¬°Server/Clientªº§@·~¥¥x¡C
¥»¨t²Î¥ç´¿¸g©óSolaris/Solaris»PLinux/Win95ªºServer/ClientÀô¹Ò´ú¸ÕµL»~¡A©Ò¨Ï¥ÎªºJava¥ç§¡¬°JDK 1.1¥H¤Wªºª©¥»¡ASolarisªºclientÀô¹Ò¥²¶·¦bX-window¤U¨Ï¥Î¡C
¦b¨Ï¥ÎJava¶}µo¥»¨t²Î®É¡A©Ò¨Ï¥Î¨ì¤ñ¸û¯S§OªºJDK API¥Dn¥]§t¤U¦C´XÓ«ÂI¡A¦³¤@¨Ç¬OÄÝ©óJDK 1.1©Ò¿W¦³ªº³¡¤À¡G
1.
Object Serialization
¥Dn¬O¥Î¦bGFS¤§¶¡°T®§ªº¶Ç¿é¡A¥H¤Î§Q¥Î¦¹¾÷¨î±N¼È®É¥¼¯à¶Ç¿é¥X¥hªº°T®§Àx¦s¦bµwºÐ¤¤¡C
2.
Compression API
ÂǧU©óJDK 1.1©Ò´£¨ÑªºCompression API¡A¨t²Î¥i¥H«Ü»´©öªº¹ï°T®§¤§¶Ç»¼°µÀ£ÁY¡A¦³®Ä°§C¶Ç¿é¶q¡C
3.
CRC Checking
¨t²Î¨Ï¥ÎJDK 1.1ªºCRC32 checksum¨Ó½T«O¶Ç¿éªº¸ê®Æ¯à¥¿½T¶Ç¿é¨ì¥Øªº¦a¡C
4.
AWT delegation model
¦bÀ³¥Îµ{¦¡ºÝ¡A§Ų́ϥÎAWT 1.1ªºdelegation event model¡A¨Ï±oµ{¦¡µe±³¡¤À©ö©ó³]p¡A¦P®É¼W±j¨ä°õ¦æ®Ä²v¡C
¹q¤l¶l¥ó¤l¨t²Î¤è±¡Aµ{¦¡Á`¦@¤À¬°¥|¤j³¡¤À¡AGFS¡BMail Client Proxy¡BMail Server Proxy¥H¤ÎÀ³¥Îµ{¦¡ºÝªºMail Explorer¡C¥t¥~ÀÉ®×¶Ç¿é¤l¨t²Î¤è±¡A«h¦³FTP Server Proxy¡BFTP Client Proxy¥H¤Î¨äÀ³¥Îµ{¦¡ºÝ¨Ï¥ÎªÌ¤¶±Proxy FTP¡C
GFS¬°¨t²Î³Ì¥Dnªº©³¼h¬[ºc¡At³d¤j³¡¤Àªººô¸ô¶Ç¿é¤u§@¡F¦b¨t²Î±Ò°Ê¤§ªì¡AGFS·|¬°¨C¤@¶µºô¸ôªA°È¤À§O¶}¤@Ó°õ¦æºü¡]Thread¡^¡A¥]§tMail Client/Server Proxy¥H¤ÎFTP Client/Server Proxy¡C
Mail
Server Proxy«ht³d¯u¥¿¹ïmail spool»P¨Ï¥ÎªÌ¦Û¤vªº«H½c§@°Ê§@¡AMail Client Proxy«ht³d±µ¨üMail Explorerªº³s½un¨D¡A¤@¯ë¨Ï¥ÎªÌ¬Ý¨ìªº´N¬O³oÓMail Explorer¤¶±¡C¤U±¤À¬q¸Ô²Ó¤¶²Ð¦U³¡¤À¡G
A. GFS
GFS¥iµø§@¤@Ó©³¼hªººô¸ôÀɮרt²Î¡AÀ³¥Îµ{¦¡¥i±Nì¥ýªº³\¦h¥²¶·¸g¥Ñºô¸ô¶Ç¿éªºn¨DÂà¤Æ¦¨¹ïGFSÀɮתº¦s¨ú¡A¥ÑGFS¥N¬°³B²zºô¸ô¶Ç¿é³¡¤À¡A¦P®ÉGFS·|¹ï³o¨ÇÀÉ®×°µ¾A·íªº§Ö¨ú¥H¤ÎºûÅ@§Ö¨úªº¤@P©Ê¡F¥t¥~¡AGFS¤]¥i¥N¤W¼hªººô¸ôªA°È¶Ç»¼°T®§¡C
¦ÓGFS»PGFS¤§¶¡³o¨Ç¸g¥Ñºô¸ô¶Ç»¼ªº°T®§¡A³£·|¥ÑGFSªº¦î¦C¾÷¨î½T«O°T®§¤£·|¿ò¥¢¡A¦P®É¹ï©ó©|¥¼³B²zªº°T®§¡A¤]·|Àx¦s©óµwºÐ¤§¤¤¡Aª½¨ì°T®§³Q³B²z§¹¬°¤î¡C
GFS¨t²Î¦bªì©l¤Æ¤§®É¡A·|¦P®É±Ò°Ê±¾¦b¨ä¤Wªº¦UÓºô¸ôªA°È¡A¨Ò¦pMail Proxy»PFTP Proxy¡A¨Ã¶}©l±µ¨üproxy¹ïGFSªº©I¥s¥H¤Î»·¤èGFSªº³s±µ¡CGFS·|¦b©Ò«ü©wªº¥Ø¿ý¤UºûÅ@¤@¥÷¡uGeneral File System¡v¡A¦¹µêÀÀÀɮרt²Î°£¤F´£¨Ñ¤W¼hºô¸ôªA°È¸m©ñ¬ÛÃöªºÀÉ®×¥H¤Î§Ö¨ú¤§¥~¡A¤]¬O¨t²Î¥¼°e¥X°T®§¥Ã¤[Àx¦sªº¦a¤è¡C
B. Mail Server Proxy
Mail Server Proxy t³d¨ú«H»P°e«Hªº¯u¥¿°Ê§@¡F¨ú«H®Éª½±µ¦Ûmail spool¤¤¦s¨ú¡A°e«H®Éª½±µ¸g¥ÑSMTP³q°T¨ó©w»P«H¥ó¦øªA¾¹·¾³q¡CMail Server Proxy¥Dn¬O±µ¨üGFSªº©I¥s¡A³B²z»·ºÝMail Client Proxy¹ïGFSªº¦s¨ú°Ê§@¡C
C. Mail Client Proxy
Mail Client Proxyt³d±µ¦¬»P³B²zÀ³¥Îµ{¦¡¡]Mail Explorer¡^ªº°T®§»P©R¥O¡A¨Ã±N¤§Âà¤Æ¬°¹ïGFSÀɮרt²Îªº¦s¨ú¡A¦b¨ú±o©Ò»Ýnªº°T®§«á¡A¦A¶Ç¦^µ¹À³¥Îµ{¦¡ºÝ¡C
D. Mail Explorer
Mail Explorer¬O¨Ï¥ÎªÌ±µ¨ú¤Îµo°e«H¥óªºGUI¤¶±¡AMail Explorer¸g¥Ñ§Ú̩ҩw¸qªº¤@®MMobile Mail Protocol ¡]«á¸Ôz¡^¹ï¦ì©ó¨Ï¥ÎªÌºÝªºMail Client Proxyµo°e©Ò»Ýnªº©R¥O¡C
GFSªº°õ¦æµe±¦p¤U©Ò¥Ü¡G

¹Ï 17 GFS°õ¦æµe±
±Ò°ÊGFS»Ý«ü©w¤@ӥؿý¨Ó·í§@GFSªºµêÀÀÀɮרt²Î¡A¤W¹Ïªº¨Ò¤l¬Ofile-system/ ¤l¥Ø¿ý¡A¦bGFS±Ò°Ê¤§«á¡A·|¶}±Ò¦UÃþService Proxy¡A¨Ò¦pMail¤ÎFTP Proxy¡A¦P®É¶}©l±µ¨ü»·ºÝGFSªº³s±µ¥H¤Î¤W¼hºô¸ôªA°Èªº©I¥s¡C
¦p«e©Òz¡AGFS¬°¤@µêÀÀªºÀɮרt²Î¡A¥Ø«e´£¨Ñ¤W¼hºô¸ôªA°È¤@¨Ç°ò¥»ªºÀɮצs¨ú»P°T®§µo°eªº¥\¯à¡AGFS©Ò´£¨Ñªº¨ç¼Æ©Ò±µ¨üªºÀɦW§¡¬°¦bGFS¨t²Î¤¤ªºÀɦW¡A¨Ã¤£¬O¯u¥¿§@·~¨t²Î±µ¨üªºÀɦW¡C¥Ø«eGFS¶È´£¨Ñ¤»¤j¥\¯à¨ÑService Proxy©I¥s¤§¥Î¡A¥]§t¦p¤U¡G
1. gfsFile()
¦¹¨ç¼Æ¥Î¥H¨ú±oGFS¨t²Î¤¤¬Y¤@Àɮתº¸ê°T¡C
2. gfsRead()
¦¹¨ç¼Æ¥Î¥HŪ¨úGFS¨t²Î¤¤ªºÀɮסC
¨
¦pªG¸ÓÀɮצb«È¤áºÝ¤w¦s¦b¡A«hª½±µ±N¸ÓÀɶ}±Ò«á¦^¶Ç¡C
¨
¦pªG¸ÓÀÉ®×Äݩ󻷺ݩҦ³¡A«h¦³¨âºØ¿ï¾Ü¡G
a. ¤£»ÝÅçÃÒ§Ö¨ú¬O§_³Ì·s
¦¹®ÉY§Ö¨ú¤¤¤w¦³¸ÓÀɮצs¦b¡A«hª½±µ¶}±Ò¦^¶Ç¡C
Y¤£¦s¦b¡A«h¦A¦V»·ºÝGFS´£¥Xn¨D¡C
b. ÅçÃÒ§Ö¨ú¤§¥¿½T»P§_
¦¹®É·|¦V»·ºÝªºGFSÅçÃÒ¦¹ÀɬO§_¦³§ó·s¹L¡AY¦³§ó·s¡A«h±N·sªºÀɮ׶Ǧ^¡AY¥¼§ó·s¡A«h±N§Ö¨ú¤¤ªºÀɮת½±µ¶Ç¦^µ¹¤W¼hproxy¡C
3. gfsWrite()
¦¹¨ç¼Æ¥Î¥H¶}±ÒGFS¨t²Î¤¤ªºÀɮרѼg¤J¤§¥Î¡C
¦¹¨ç¼Æ¶Ç¦^OutputStream¡A¦b¼g¤J§¹¦¨«á»Ý¦Û¦æ±N¨äÃö³¬¡A¦Ü©ó¼g¤J¸ÓÀɪº¥Î·N¬°¦ó¡A¦¹¨ç¼Æ¨Ã¤£§@³B²z¡C
4. gfsSave()
¦¹¨ç¼Æ¥Î¥H±NGFS¨t²Î¤¤ªº¤@Ó·sÀɮ׸ê°T§iª¾»·¤èªºGFS¡A¸ÓÀÉ®×¥i¯à¬O¸g¥ÑgfsWrite() ¼g¤JGFS¤¤ªº¡C¨Ò¦p¦b¥»¨t²ÎªºMail Client Proxy¡A§Y¬O§Q¥Î¦¹¨ç¼Æ¨Ó³qª¾»·ºÝªºMail Server Proxy¦³·s«H¥ón°e¥X¥h¡C
5. gfsFetch()
¦¹¨ç¼Æªº°Ê§@²¤¦P©ógfsRead()¡A¦ý¦¹¨ç¼Æ·|¥ß§Yreturn¡AŪ¨úÀɮתº°Ê§@·|©ñ¦bI´º³B²z¡C¦¹¨ç¼Æªº³Ì¥Dn¥Î³~¬O´£¨Ñ¦æ°ÊpºâÀô¹Ò¤U¡A¦bÂ÷½u«e¡A§iª¾¨t²Î¹w¥ý¤U¸ü¬Y¨Ç±N¨Ó¥i¯à·|Ū¨úªºÀɮפ§¥Î¡C
6. sendMessage()
¦¹¨ç¼Æ¥i´£¨Ñ¤W¼hªººô¸ôªA°Èµo°e°T®§¤§¥Î¡Aµo°e°T®§ªº®æ¦¡¥i¥Ñ¤W¼hºô¸ôªA°È¦Û©w¡AGFS¶È±N¤§µø¬°¤@Óª«¥ó¡A§Q¥ÎJDK 1.1©Ò´£¨ÑªºObject Serialization±N°T®§¶Ç»¼¥X¥h¶Ç»¼¥X¥h¡C
¤W±³o¨Ç¨ç¼Æ¥Dn¤j¦h¥Ñ«È¤áºÝªºproxy©I¥s¨Ï¥Î¡A¥Ñclient proxyÂǥѩI¥s¨Ï¥Î¾A·íªº¨ç¼Æ¨Ó¨ú±o©Ò»Ýnªººô¸ôªA°È¡C
¦Ó³o¨Ç©R¥On¨D§¡·|¤ÏÀ³¨ì¦øªA¾¹ºÝªºserver proxy¡A»·ºÝªºGFS·|ÂǥѩI¥sserver proxyªº¤TÓcall back function¡A¨Ó¹F¦¨client proxy©Òn¨Dªº°Ê§@¡C¦]¦¹server proxy¥²¶·n¹ê§@¡]implement¡^¤U¦C¤TÓabstract function¡G
1. refresh_file()
¦¹¨ç¼Æ¬O¥ÑGFS¸ß°Ýserver proxy¬YÓÀɮ׬O§_»Ýn§ó·s¡AY»Ý§ó·s¡A«h¥Ñserver proxyt³d§ó·sÀɮרt²Î¤¤ªºÀɮסFY¤£»Ý§ó·s¡A«hª½±µ¦^¶ÇÀɮץثeª¬ºA¡C
¦¹¨ç¼Æªº§@¥Î¬O¦bserverºÝ¹ï©óclientºÝªºgfsRead()¡BgfsFetch() µ¥©I¥s¡A´£¨Ñ¥¿½TªºÀɮ׸ê°T¡C¨Ò¦p¦b¹q¤l¶l¥ó¤l¨t²Î¤¤¡AŪ¨ú«H¥ó¦Cªí¡BŪ¨ú«H¥óµ¥¥\¯à¡A§¡¬OÂǥѩI¥smail server proxy¦¹¨ç¼Æ¨Ó¨ú±o»Ýnªº¸ê°T¡C
2. notify_file()
¦¹¨ç¼Æ¬O¥ÑGFS³qª¾server proxy¡A»·ºÝªºGFS¤wÀx¦s¤@ÓÀɮרìGFSÀɮרt²Î¤§¤¤¡Aserver proxy¥i¦b¦¹¨ç¼Æ¤¤°µ¬Û¹ïÀ³ªº°Ê§@¡C
¦¹¨ç¼Æ§@¥Î¬O¦b¦øªA¾¹ºÝ¹ï©ó«È¤áºÝªºgfsSave() ©I¥s¡A°w¹ï¸Ó¶µºô¸ôªA°È©Ê½è°µ¥X¬Û¹ïÀ³ªº°Ê§@¡C¨Ò¦p¦b¥»¨t²Î¤¤ªºmail client proxy·|§â°e¥Xªº«H¥ó¥ý¦s¨ìGFS¤¤¡A¦A³qª¾»·ºÝªºmail server proxy¦³·sªºÀɮצs¤JGFS¡AµM«á¥Ñ»·ºÝªºproxy±N«H¥óÂÇ¥ÑSMTP¯u¥¿±N«H¥ó°e¥X¡C
3. notify_msg()
¦¹¨ç¼Æ¬O¥ÑGFS³qª¾server proxy¡A»·¤èªºclient proxyÂÇ¥ÑGFS°e¹F¤@Ó°T®§ª«¥ó¡C¸Ó°T®§ª«¥ó®æ¦¡¥Ñclient proxy»Pserver proxy¦@¦P¨M©w¡A¦]¦¹server proxy§Y¥i®Ú¾Ú¸Ó°T®§ª«¥ó¤º®e°õ¦æ¨ä¹w¥ý»Pclient proxy¨ó©w¦nªº°Ê§@¡C
¦¹¨ç¼Æ¥Øªº¬O¦b¦øªA¾¹ºÝ¹ï©ó«È¤áºÝªºsendMessage()©I¥s°µ¥X¾A·íªº¤ÏÀ³¡C¨Ò¦p¦b¥»¨t²Î¤¤¡Amail client proxyn¨D«Ø¥ß·sªº«H¥ó§¨¡B§R°£¬Y«Ê«H¡B¥H¤ÎÀx¦s«H¥óªº°Ê§@¡A³£¬OÂǥѰT®§ª«¥ó¦V»·ºÝªºmail server proxy´£¥Xn¨Dªº¡C
¦]¦¹¡A¬°¤FÅý¨C¤@Óserver proxy³£¯à¹ïclient proxyªº©I¥s§@¥X¤ÏÀ³¡AServer Proxy¥²¶·Ä~©Ó¤U¦CªºÃþ§O¡A¦P®Éoverride¤TÓ¨ç¼Æ¡G
abstract public class ServerProxy extends Proxy {
abstract public FileStatus refresh_file( String filename );
abstract public boolean notify_file( String filename );
abstract public Object notify_msg( Object msg );
}
¤Wzªº©Ò¦³¨ç¼Æ¤§¤¤¡A§Ṳ́]¦³´£¨Ñ¤@Ó¿ï¶µ¡A¥i¥H¬°©Ò·QnŪ¨úªºÀÉ®×¥[¤W±K½XºÞ¨î¡A¨Ò¦p§Ú̪ºÀÉ®×¶Ç¿é¤l¨t²Î´N¬O§Q¥Î³oÓ¤èªk¨Ó¹ï¨Ï¥ÎªÌªº¨¥÷§@»{ÃÒ¡A¨Ó¨ú±oµn¤J¦Ü»·ºÝ¨t²ÎªºÅv§Q¡C

¹Ï
18 Service
Proxy»PGFS¤§¶¡ªº¤¶±
GFS»PGFS¤§¶¡ªº³q°T¡A§¡¬O¥H¤@Ó¤@Óªº ¡¨Message Block¡¨ ¬°³æ¦ì¡AMessage Block¥i¶Ç°eGFS¤§¶¡ªº©Ò¦³©R¥On¨D¡B¦UÃþÀɮסB¤Î°T®§µ¥¡CGFS¶Ç»¼Message Blockªº¤è¦¡¬O±Ä¥ÎJDK 1.1´£¨ÑªºObject Serialization±N¤§¥HObject¤è¦¡ª½±µ³z¹Lºô¸ô¸ê®Æ¬y¶Ç°e¡C
¹ï©ó¤£»Ý§Y®É°e¥X¡A©ÎªÌ¦]ºô¸ô°ÝÃD¡A¼È®ÉµLªk°e¥XªºMessage Block¡A§¡·|³QÀx¦s¦bµwºÐ·í¤¤¡]persistent¡^¡C¹ï©ó¦¬¨ì¨Ó¦Û»·ºÝGFSªº Message Block¡A©|¥¼³B²zªº³¡¤À¤]¦P¼Ë·|³Q«O¦s©óµwºÐ¤§¤¤¡C
³o¨Ç¥¼¦¨¥\°e¥X©Î¥¼³B²zªºMessage Block·|¥Ñ¨t²Î©w®ÉÀˬd¬O§_¤w¥i³B²z¡AY¨t²Î·í±¼¡A¦b¨t²Î«·s±Ò°Ê®É¡A¤]·|±NµwºÐ¤¤©|¥¼§¹¦¨ªº«ü¥OŪ¤J¡Aª½¨ì³B²z§¹©Ò¦³°T®§¬°¤î¡C
¦bGFS¶¡¶Ç»¼ªºMessage Block¡A§¡·|§Q¥ÎCRC32 checksum§@¿ù»~Àˬd¡A¦P®É¤¬¬Û§@½T»{¡]acknowledgement¡^¡A½T«O°T®§¥¿½TµL»~ªº°e¨ì¹ï¤è¡C¦Ó¶Ç°e°T®§®É¡AGFS¤]·|³]ªk¨Ì¾Úì¨Óµo°eªº¶¶§Ç³B²z¡A¥Hºû«ù°T®§¶Ç¿éªº¥ý«áÃö«Y¡C
¦pªG¶Ç°eªº¬O¤@ÓÀɮסAGFS¦P®É·|¹ï¸ÓÀÉ®×§@À£ÁY¡A´î§C¶Ç¿éªº°T®§¶q«á¦A°e¥X¡C¤@¯ë¦Ó¨¥¡AÀ£ÁYªº°Ê§@¥i¥H¤j´T°§C³q°T¶q¦Ü50%¥ª¥k¡C
¹ï©óÀɮתºÅª¨ú°Ê§@¡AGFS·|¦Û°Ê½T»{§Ö¨ú¤¤ªº¸ê®Æ¬O§_»Ýn§ó·s¡A«D¥²n¤£®ö¶OÃB¥~ªººô¸ôÀW¼e¡C¦P®É¥Ñ©ó¦UÓ¨t²Îªº®É¶¡¥i¯à¤£¬O¦P¨Bªº¡A¦]¦¹¦p¦ó§PÂ_Àɮ׬O§_§ó·sÅܱo«Ü³Â·Ð¡C¦]¦¹¡AGFS·|¦b«È¤áºÝªºÀɮרt²Î¤¤ªº¨C¤@ӥؿý¡AÀx¦s¤@ÓÀÉ®× .dir ¬ö¿ý¸Ó¥Ø¿ý¤UÀÉ®×©ó¦øªA¾¹¤WªºLast Modified Time¡AGFS§Y·|ÂǦ¹°O¿ý¨Ó»P¦øªA¾¹¦@¦PÀ˵øÀɮ׬O§_§ó·s¡A¶i¦Ó¨Ó¹F¨ì®É¶¡¦P¨B¡]Time synchronization¡^ªº»Ý¨D¡C
¦bÀ³¥Îµ{¦¡»PMail Client Proxy ¤§¶¡ªº¤¶±³¡¤À¥Ñ©ó»Ýn¦Ò¼{¯S®íºô¸ôÀô¹Ò¡]¦pmobile¡^ªº¯S©Ê¡A¥H§@§ó¦³®Ä²vªº¦s¨ú¡A¦]¦¹ª½±µ¨Ï¥Î¦³ªºPOP3 protocol¨Ã¤£¾A¦X¡A¦]¦¹¦b³o³¡¤À¡A§Ú̳]p¤F¤@Ó²³æªº³q°T¤¶±¡A¥Î¥H¹ï¯S®íºô¸ôÀô¹Ò¦³§ó¨Îªº¾AÀ³¤O¡A¦P®É¤]°w¹ïPOP3¨S¦³¦Ò¼{¨ìªº°e«H³¡¤À´£¨Ñ¤ä´©¡C
¦¹³q°T¨ó©w¦b¥»¨t²Î¤¤ºÙ¤§¬°Mobile Mail Protocol¡A¨Ï¥ÎªºTCP port¬° 5510¡C¦b¦¹³q°T¨ó©w¤¤¡Aclient proxy¬°³Q°Êªºµ¥«Ý¨Ó¦ÛÀ³¥Îµ{¦¡ªº³s½u½Ð¨D¡C¥Ñ©óÀ³¥Îµ{¦¡»Pclient proxy §¡¦b¦P¤@¥x¾÷¾¹¤W¡A¦]¦¹¨âªÌ¤§¶¡ªº³s½u¥i¯à·|¤@ª½ºû«ù¡C
©R¥O»P¦^À³¤§°T®§®æ¦¡§¡¬°¥H \r \n µ²§À¤§ ASCII ¦r¦ê
¦bÀ³¥Îµ{¦¡ºÝ±o¨ìªº¦^À³¬O¥H¤@Ó 3 ¦ì¼Æªº¼Æ¦r¥N½X¬°º¡A¥N½Xªº·N¸q±Ä¥ÎÃþ¦üSMTP/NNTP [6]ªº¤ÀÃþ¦p¤U¡G
1xx -
°T®§¸ê®Æ
2xx -
«ü¥O¥¿½T
3xx -
«ü¥O©|¥¼§¹¦¨¡A»ÝÄ~Äò¶Ç°e¨ä¥¦¸ê®Æ
4xx -
«ü¥O¥¿½T¡A¦ý¦]¬Y¨Çì¦]¦ÓµL®Ä
5xx -
«ü¥O¥¼´£¨Ñ¡B¿ù»~©Î¬OÄY«ªºµ{¦¡¿ù»~µo¥Í
6xx -
«ü¥O¥¿½T¡A¦ý¸ê®Æ¥i¯à¿ù»~
x0x -
¥¼³q¹L¨¥÷½T»{¡A³s½u¥¿±`
x1x -
¤w³q¹L¨¥÷½T»{¡A³s½u¥¿±`
x2x -
³s½u±Nn¤ÁÂ_
xx0 -
¶È¦³¤@¦æ¦^À³
xx1 -
«á©|¦³¤@¦æ¤§¦^À³
xx2 -
«á¦³¦h¦æ¦^À³¡A¥H '.' ¤@¦æµ²§ô
¦b¦¹¥N½X«á·|¸òÀHµÛ¤@¨Ç¤å¦r¸ê°T¡A¨Ì¦^À³ªºª¬ºA¦Ó¦³©Ò¤£¦P¡C
©R¥O³¡¥÷¡A«h¥H POP3 ¬°°ò¦¡A¨Ã¦b¦Ò¶q¯S®íºô¸ôÀô¹Ò¤U¡A§@¤@¨ÇÂX¥R¡C·í©R¥O©Î¦^À³»Ýn¦h¦æªº°T®§®É¡A«h¥H¶È¦³¤@Ó . ¤§¤@¦æ§@¬°°T®§¤§µ²§ô¡Cº¥ý·íÀ³¥Îµ{¦¡³s±µ¤WMail Client Proxy®É¡]TCP port 5510¡^¡Aproxy·|¦^À³¤U¦C³s±µ¥¿½Tªº°T®§¡G
100 java.csie.nctu.edu.tw E-Mail Proxy
Ready
±µ¤U¨Ó¡A¤À¬°¨âÓ¶¥¬q¡Aº¥ý¥²¶·³q¹L¨¥÷½T»{¡A¦¹¬°»{ÃÒ¶¥¬q¡]authentication phase¡^¡A±µ¤U¨Ó´N¥i¥H§@¦UÃþªºÅª«H¡B¨ú«Hµ¥°Ê§@¡A§Y°Ê§@¶¥¬q¡]communication phase¡^¡C¥H¤U¡A§ÚÌ´N°w¹ï³o¨âÓ¶¥¬qªº¦UºØ©R¥O§@¤@¨Ç»¡©ú¡C
Authentication Phase
<©R¥O> SERV [hostname]
<¥\¥Î> ¿ï¾Ü Mail
server¡A§iª¾proxy¥N¬°³s±µþ¥xªºmail server
<¦^À³> 200 set mail server to [hostname]
<©R¥O> AUTH [username] [password]
<¥\¥Î> ¶i¦æ¨¥÷½T»{
<¦^À³> 210 [username] login on [hostname]
Communication Phase
<©R¥O> INDEX
<¥\¥Î> ¨ú±o©Ò¦³«H½c¦Cªí
<¦^À³> 212 mailboxes follows
<¦^À³> inbox
<¦^À³> outbox
<¦^À³> .
<©R¥O> SELECT [mail-box]
<¥\¥Î> «ü©w§@¥Îªº«H½c
<¦^À³> 210 [mail-box] selected.
<©R¥O> LIST
<¥\¥Î> ¦C¥X«H½c¤¤¤§«H¥ó¸ê°T
<¦^À³> 212 mails in [mail-box] follows.
<¦^À³> C msg-id date email-from email-to lines size subject
<¦^À³> C msg-id date email-from email-to lines size subject
<¦^À³> .
¡]¸g¥ÑLIST©R¥O¦^À³µ¹À³¥Îµ{¦¡ªº¸ê°T¥]¬A¤U¦C¤K¶µ¡^
1. ¦¹«Ê«H¬O§_¦³§Ö¨ú¤§¦s¦b¡]C / U¡^
2. ¦¹«Ê«Hªº¥N¸¹
3. ¦¹«Ê«Hªº¤é´Á
4. ±H«HªÌªºE-Mail address
5. ¦¬«HªÌªºE-Mail address
6. «H¥ó¦æ¼Æ
7. «H¥ó¤j¤p
8. «H¥ó¼ÐÃD
<©R¥O> RETR [msg-id]
<¥\¥Î> ¨ú±o«H¥ó
<¦^À³> 212 content of [msg-id] in [mail-box] follows
<¦^À³> <RFC 822 mail content>
<¦^À³> .
<©R¥O> PREFETCH
<¥\¥Î> ¹w¥ý¨ú±o«H¥ó
<¦^À³> 310 send the msgid to be prefetched, ends
with '.'
<©R¥O> msg-id-1
<©R¥O> msg-id-2
<©R¥O> .
<¦^À³> 210 total 2 prefetch requests sent.
<©R¥O> DEL [msg-id]
<¥\¥Î> §R°£«H¥ó
<¦^À³> 210 [msg-id] deleted in [mail-box]
<©R¥O> SEND [email-addr]
<¥\¥Î> °e¥X«H¥ó
<¦^À³> 310 send your message in RFC 822 format
<©R¥O> <RFC 822 mail content>
<©R¥O> .
<¦^À³> 210 message sending.
<©R¥O> SAVE [msg-id] [mail-box]
<¥\¥Î> ¦s¤J«H¥ó
<¦^À³> 210 saved [msg-id] in [mail-box] into [mail-box]
<©R¥O> NEW [folder-name]
<¥\¥Î> ·s¼W«H¥ó§¨(«H½c)
<¦^À³> 210 [folder-name] created
<©R¥O> HELP
<¥\¥Î> ¨ú±o©R¥O»¡©ú
<¦^À³> 212 useful commands follows
<¦^À³> <help message>
<¦^À³> .
<©R¥O> QUIT
<¥\¥Î> µ²§ô³s½u
<¦^À³> 120 Bye!
¥H¤W©ÒzªºMobile Mail Protocol¾ã²z¦p¤U¡G
¡· Authentication phase
SERV
[hostname] select
a mail server
AUTH
[username] [passwd] authentication
phase login
¡·
Communication phase
INDEX list
mailboxes in this account
SELECT
[mailbox] select
an active mailbox
LIST information
of the mails in mailbox
RETR
[msg-id] retrieve
the mail with msg-id
DEL
[msg-id] delete
the mail with msg-id
SEND
[email-addr] send
the mail to an email address
SAVE
[msg-id] [mail-box] save
the mail in mailbox
NEW
[folder] create
a new mail folder
PREFETCH prefetch
mails
HELP available
commands
QUIT say
goodbye
²¨¥¤§¡A§Ú̩ҳ]pªº¶l¥ó¶Ç¿é¨ó©w¤ñ¶Ç²ÎªºPOP3 ¥[±j¤F´XÓ¥\¯à¡G
1.
¦h««H½c³B²z¥\¯à
(INDEX, SELECT)
2.
§ó¸Ô²Óªº«H¥ó¸ê°T
(LIST)
3.
°e«H¥\¯à
(SEND)
4.
¹w¥ý¤U¸ü¥\¯à
(PREFETCH)
5.
¦b¦øªA¾¹¤Wªº«H¥ó³B²z
(SAVE, NEW, DEL)
Mail
Client Proxy¦b±µ¨ìMail Explorerªº½Ð¨D¤§«á¡A¥²¶·±N¤§Âà¤Æ¬°¹ïGFSÀɮרt²Îªº¦s¨ú¡C¦]¦¹¡A¦b³oÓ¦a¤è¡A¾A·íªº©R¦W³W«h´NÅܦ¨¤@Ó«Ü«nªº½ÒÃD¡F¦b³o¤@¤p¸`¡A§Ú̱N°w¹ï¶l¥óªA°È¦bÀɮרt²Î¤¤ªº©R¦W¤è¦¡°µ¤@¨Ç©w¸q¡C
º¥ý¡A¦b½Í¨ìMail Proxyªº©R¦W¤è¦¡¤§«e¡A¥ý¨Ó¬Ý¬ÝGFS¥»¨¤º©wªº©R¦W³W«h¡G
/ IP-Address / service /
©Ò¦³proxy service¦bGFS¨t²Î¤ºªºÀɮ׳£¥²¶·¦ì©ó¤Wz³W©wªº©R¦W¥Ø¿ý¤§¤U¡AIP-Addressªí¥Ü¦øªA¾¹ºÝªº¦ì§}¡A¦Óserviceªí¥Ü¸Óproxyªº¦W¦r¡]¦p¡¨mail¡¨©Î¡¨ftp¡¨¡^¡C
¦b¦¹¥Ø¿ý¤Uªº©Ò¦³ÀÉ®×§¡¬°¸Óproxy service©Ò¾Ö¦³¡A¨ä¤UÀɮתº©R¦W¤è¦¡¤]¥Ñproxy service¦Ûq¡AGFS¥u»{±o¤Wz³o«e¨â¼hªº¥Ø¿ý¡A¦Ó¨ä«áªº¥Ø¿ý«h¥æ¥Ñ¸Ó¶µproxy³B²z¡C
±µ¤U¨Ó¡A°w¹ïMail Proxyªº©R¦W³W«h¡A©w¸q¦p¤U¡G
¨Ï¥ÎªÌªº¥Ø¿ý / IP-Address / mail / username /
¨Ï¥ÎªÌªº«H½c¦Cªí / IP-Address / mail / username / index
¨Ï¥ÎªÌªºinbox«H½c / IP-Address / mail / username / inbox /
¨Ï¥ÎªÌinbox«H½c¤§¸ê°T / IP-Address / mail / username / inbox / index
¨Ï¥ÎªÌinbox«H½c¤ºªº«H¥ó / IP-Address / mail / username / inbox / msgid
¨Ï¥ÎªÌªºoutbox«H½c / IP-Address / mail / username / outbox /
¨Ï¥ÎªÌoutbox«H½c¤§¸ê°T / IP-Address / mail / username / outbox / index
¨Ï¥ÎªÌoutbox«H½c¤ºªº«H¥ó / IP-Address / mail / username / outbox / msgid
¦]¦¹¡AMail Client Proxy·|±N©Ò¦³°e«H¡BŪ«Hªº°Ê§@¨Ì¾Ú¤Wzªº©R¦W¤è¦¡¡AÂন¹ïGFS¨t²ÎªºÀɮצs¨ú°Ê§@¡AµM«á¥ÑGFS±N¦¹¦s¨ú°Ê§@§iª¾»·ºÝªºGFS¡C
»·ºÝªºGFS¦¬¨ì¦¹°T®§«á¡A¦AÂાMail Server Proxy¡FMail Server Proxy¤]¬O®Ú¾Ú¤Wz¦P¼Ëªº©R¦W³W«h¡A´£¨Ñ¾A·íªºÀɮ׸ê°Tµ¹GFS¡C¤§«á¦A´`¦P¼Ë¸ô®|±N©Ò»Ýnªº°T®§¶Ç¦^¨Ï¥ÎªÌºÝ¡C¤U±¬O¤@Ó¦b«È¤áºÝªºGFSÀɮרt²Îªº¤j·§¬[ºc¡G

¹Ï 19 ¶l¥ó¤l¨t²Î¥Ø¿ý¬[ºc
¦p¤W¹Ï©Ò¥Ü¡A¨Ï¥ÎªÌcdsheenªºinbox«H½c¤º¡A¨C¤@«ÊŪ¹Lªº«H¥ó¡A³£·|¥Hmsgid·í§@ÀɦW¡A¦s©ñ¤@¥÷¦b§Ö¨úÀɮרt²Î¤§¤¤¡C¦Ó³o¨ÇÀɮץѩ󳣦bmailªº¥Ø¿ý¤§¤U¡A©Ò¥H¤@¤Á°Ê§@³£·|¥ÑGFS¸ß°ÝMail Proxy¦p¦ó¹ï¦s¨ú¸ÓÀɮתº½Ð¨D§@¥X¾A·íªº¦^À³¡C
¨Ï¥ÎªÌ¥i¥H¨Ï¥Î¦hÓGFS¤Wªº«H½c¡A³o®É¾¨ºÞ¨Ï¥ÎªÌ±b¸¹¦WºÙ¤@¼Ë¡A¤]¤£·|²£¥Í²V²c¡A¦]¬°Àɮ׬O¥HGFSªºIP Address¨Ó·í§@¬°³Ì¤W¼hªº¥Ø¿ý¦WºÙ¡C
¹ï©óÀÉ®×¶Ç¿é¤l¨t²Î¦Ó¨¥¡A©R¦W³W«h¥Dn¬O¼W¥[¤F¶¡±µ¶Ç¿éªº¥\¯à¡AÅýFTP Proxy¥i¥N¬°³s±µ©Ò«ü©wªºFTP¦øªA¾¹¡C¦b§Ú̪º¹ê§@¤¤¡A§Ú̱NÀɮשR¦W¬°¤U¦C§Î¦¡¡G
/ IP-Address
/ ftp / FTP-Address / username /
²Ä¤@ÓIP-Addressªí¥Ü»·ºÝGFSªº¦ì¸m¡A¤]´N¬OFTP¥N²z¦øªA¾¹¡]FTP Server Proxy¡^©Ò¦bªº¦ì§}¡C±µ¤U¨Óªº¡uftp¡v«h¬Oªí¥ÜÀÉ®×¶Ç¿é¤l¨t²Î¡CFTP-Address«h¬On¨DFTP Proxy¥N¬°³s±µªº¯u¥¿FTP¯¸¦ì§}¡C³Ì«áªºusername«h¬Oµn¤J¸ÓFTP ¦øªA¾¹©Ò¥Îªº¨Ï¥ÎªÌ¦WºÙ¡C¦Ü©ó±K½X¡A«h·|¸g¥Ñ°Ñ¼Æ³]©w¡A¦b¨Ï¥ÎªÌºÝŪ¨úÀɮ׮ɶǤJ¡C
/
140.113.209.112 / ftp / 140.113.214.168 / cdsheen / hello.c
¨Ò¦p¤W±³oÓ©R¦W§Yªí¥Ü¡A¥Ñ¦b140.113.209.112¤W±ªºFTP Server Proxy¥N¬°³s±µ140.113.214.168¤WªºFTP Service¡A¦P®É¨Ï¥Îcdsheenµn¤J¸Ó¨t²Î¡A¨Ã¦b¨ä¥Ø¿ý¤U§ä¨ì¤@Ó¦WºÙ¬°hello.cªºÀɮסC¦Ü©óµn¤J±K½X¡A«h¦b©I¥sgfsRead() ®É¡A¥ÑFTP Client Proxy«ü©w¡C
¥t¥~¡A¹ï©ó¨Cӥؿý¤Uªº¥Ø¿ý¦Cªí¡A§Ú̱N¤§©R¦W¬° .index¡C¦]¦¹¾ãÓÀÉ®×¶Ç¿é¤l¨t²Îªº¥Ø¿ý¬[ºc´N¹³¤U±³oÓ¨Ò¤l¤@¼Ë¡G

¹Ï 20 ÀÉ®×¶Ç¿é¤l¨t²Î¥Ø¿ý¬[ºc
¦b³o¤@¸`¡A§ÚÌ¥H¹q¤l¶l¥ó¤l¨t²Î¬°¨Ò¡A¸Ôz¨ä¹B§@¬yµ{¡A¦P®É¼ÒÀÀ¯S®íªººô¸ôª¬ªp¡A»¡©ú¨t²Î©Ò¯à´£¨Ñªº¥\¯à¤ä´©¡C¹q¤l¶l¥ó¤l¨t²Î¦P®É°w¹ï¹q¤l¶l¥ó¨t²Î¥»¨§@¤F¤@¨Ç§ï¶i¡Aº¥ý¡A§ÚÌ¥ý¨Ó¦^ÅU¤@¤U¨Ï¥ÎªÌŪ«Hªº¨âӳ̱`¥Îªº¤èªk¡G
1.
¨Ï¥ÎªÌ§Q¥Îtelnetµn¤J«H¥ó¦øªA¾¹¡A¨Ã¦b¤W±Åª«H¡B³B²z«H¥ó¡B¤Îµo°e«H¥ó¡A¥Ñ©ó³o¨Ç°Ê§@§¡n¦b¦øªA¾¹¤W§¹¦¨¡A¦]¦¹»Ýnºû«ùªø®É¶¡ªº³s½u¡Aºô¸ô«~½è¤Wªºn¨D¦ÛµM¸û°ª¡C
2.
¨Ï¥ÎªÌ§Q¥ÎPOP3§â«H¥ó¤U¸ü¤U¨Ó¡A§Q¥ÎSMTPª½±µ°e«H¡C³oºØ¤è¦¡¥Ñ©ó§â«H¥ó¥þ³¡¤U¦A¤F¡A¦]¦¹¦pªG¥Ò¥u·Q¾\Ū¤Aªº«H¥ó¡APOP3¨Ã¥¼´£¨Ñ¦¹ºØ¿ï¾Ü©ÊŪ¨ú¥\¯à¡C¦P®É¦¬µo«Hªº°Ê§@¤]¦P¼Ë©ö©ó¦]ºô¸ô°ÝÃD¦Ó¤¤Â_¡C
«ÜÅãµMªº¡A³o¨âºØ¤è¦¡©Ò´£¨Ñªº¥\¯à¨Ã¤£¨¬¥H¦bºô¸ô³t«×ºC©Î¦æ°ÊpºâÀô¹Ò¤U¹ïºô¸ôªº¶Ç¿é§@§ó¦³®Ä²vªºÀ³¥Î¡C
¦]¦¹¡A¦b§Ú̪º¹q¤l¶l¥ó¤l¨t²Î¡A§Æ±æ¯à°w¹ïºô¸ôªº¦³ÀW¼e§@§ó¦³®Äªº§Q¥Î¡A¥H¤Î¯à°w¹ïPOP3³q°T¨ó©w©Ò¦s¦bªº°ÝÃD§@¤@¨Ç§ï¶i¡C§Ú̧Q¥Î¤U±³oÓ²³æªº¨Ò¤l¡A²³æ·§z¨t²Î¦p¦óÂÇ¥ÑMail Proxy»PGFSªº°t¦X¡A¨Ó¹F¨ì´£°ªºô¸ô¶Ç¿é®Ä²vªºn¨D¡G
°²³]¬Y¤H¦b«H¥ó¦øªA¾¹¤W¦³¤U¦C´XÓ«H½c¡G
|
INBOX |
±µ¦¬ªº«H¥ó |
|
OUTBOX |
©Òµo°eªº«H¥ó |
|
Friend |
¦n¤Íªº«H |
|
Boss |
¦ÑÁ󪺫H |
¤U±§Ų́ӼÒÀÀ¤@¨Çª¬ªp¡A¨Ã¦Ò¼{¨Ï¥ÎªÌ¥i¯àªº¦æ¬°¡A¨Ó¬Ý¬Ý¹q¤l¶l¥ó¤l¨t²Î©Ò±Ä¨úªº¬Û¹ïÀ³°Ê§@¡G
1.
¥´¶} INBOX «H½c¡MÂsÄý«H½cª¬ºA
¦¹®É¨t²Î·|Åã¥Ü INBOX ªºª¬ºA¡A¥]¬A±H«HªÌ¡B±H«H®É¶¡¡B«H¥ó¤j¤p¡B«H¥ó¼ÐÃD¡A¥H¤Î¦¹«Ê«H¬O§_¦b«È¤áºÝ¦³§Ö¨ú¡]¼Ð¥Ü¬°C¡^¡C
|
|
|
±H«HªÌ |
±H«H®É¶¡ |
«H¥ó¤j¤p |
«H¥ó¼ÐÃD |
|
C |
1 |
A |
6/1 |
650 bytes |
Hello, ¦n¤[¤£¨£ |
|
|
2 |
B |
6/2 |
5.7 Kbytes |
[¼s§i] ¹q¸£©PÃä¯S»ù¤jÀu´f |
|
C |
3 |
A |
6/2 |
4.5 Kbytes |
Re: Hello, ¦n¤[¤£¨£ |
|
|
4 |
C |
6/3 |
820 bytes |
½Ð°Ý¡K. |
|
|
5 |
D |
6/5 |
560 bytes |
Homework! |
2.
µo²{¦³¼s§i«H¡]²Ä¤G«Ê¡^¡Mª½±µ§R°£
¥Ñ©ó¥i±oª¾«H¥óªººKn¸ê°T¡A¦]¦¹¹ï©ó¤£·Q¬Ý¨ìªº«H¥ó¡A¥i©ó«H¥ó¥»Åé¤U¸ü¤§«e§Y¤©§R°£¡A¦]¦¹¹ï©ó²Ä¤G«Êªº¼s§i«H¡A¥iª½±µ§R°£¤£»Ý¤U¸ü¡C
3.
¦³¦nªB¤Í¨Ó«H¡]²Ä¤«Ê¡^¡M¶}±Ò«H½c¾\Ū
¹ï©ó·Q¬Ýªº«H¥ó¡A¥iª½±µ¿ï¾Ü©ÊŪ¨ú¡A¤£»Ý¥þ³¡¤U¸ü¡C
4.
§â¦n¤Íªº«H¦s¨ì«H¥ó¦øªA¾¹¤Wªº Friend «H½c
¥Ñ«È¤áºÝ§iª¾¦øªA¾¹ºÝ¦¹°T®§¡A¥Ñ¦øªA¾¹ºÝt³d°µ¦¹Àx¦sªº°Ê§@¡A ¨â¤è¤§¶¡¶È»Ý¶Ç¿é¦¹°Ê§@ªº°T®§¡A¨Ã¤£»Ý¶Ç»¼¾ã«Ê«H¥ó¡C
5.
¦^«Hµ¹ A¡A¦ý¦¹®É³q°T¤£¨}....
¨Ï¥ÎªÌ¦b«È¤áºÝ½s¿è¦^«H«á±H¥X¡A¦¹«HYµLªk¥ß§Y±H¥X¡A·|³Q«O¦s¦b°T®§¦î¦C¤§¤¤¡A¦ø¾÷°e¥X¡C
6.
«·s¾\۲Ĥ@«Ê«H....
²Ä¤@«Ê«H¦]¬°¤§«e¦³Åª¹L¡A¨t²Î¦b«È¤áºÝªºGFS¤ººÝ·|¦³¸Ó«H¥óªº§Ö¨ú¡A©Ò¥H¦¹°Ê§@¤£»Ý¸g¹L¥ô¦óªººô¸ô¶Ç¿é°Ê§@¡C¦]¦¹§Y¨Ï¦¹®Éºô¸ô¤£³q¡A¤´¥i¾\Ū¤§«e¦³Åª¹Lªº«H¥ó¡C
7.
»P¦øªA¾¹ªº³s½u«·s±µ¤W¡K
¦¹®É¨t²Î·|§âì¨Ó¦b°T®§¦î¦C¤¤¥¼°e¥Xªº°T®§¡]¨Ò¦p¨BÆJ 5. ©Ò°e¥Xªº«H¡^¡A«·s°e©¹»·ºÝ¦øªA¾¹¡C
µe±®i¥Ü¥Dn¬O¨Ï¥ÎªÌºÝªºÀ³¥Îµ{¦¡³¡¤À¡A§ÚÌÂ^¨ú´XÓ¥Dnµe±¨Ó®i¥Ü¹q¤l¶l¥ó¤l¨t²Î»PÀÉ®×¶Ç¿é¤l¨t²Îªº¥\¯à¡A¦P®É¤]¹ï©³¼h¨t²Î¦p¦ó°t¦X¨âÓ¤l¨t²Îªº¹B§@¡A§@¤@Ó¸Ô²Óªº»¡©ú¡C
¦b¹q¤l¶l¥ó¤l¨t²Î¤è±¡A¥un¦bÀ³¥Îµ{¦¡ºÝ«ü©ú¦øªA¾¹ªº¦ì§}¡AMail Client Proxy§Y·|¦VGFS´£¥X¦s¨ú«H¥ón¨D¡A¦A¥ÑGFS¥N¬°³s±µ»·ºÝ¨t²Î¡C¦]¦¹«H¥ó¦øªA¾¹¤W±¤]¥²¶·°õ¦æGFS¨t²Î¥H¤ÎMail Server Proxy¡A¤~¯à±µ¨üÀ³¥Îµ{¦¡ªº©I¥s¡C

¹Ï 21 µn¤J¦øªA¾¹³]©w
¨Ï¥ÎªÌ°õ¦æMail
explorer«á¥X²{ªº²Ä¤@Óµe±´N¬On¨D¨Ï¥ÎªÌ¿é¤J«H¥ó¦øªA¾¹ªº¦ì§}¡A¥H¤Î¨Ï¥ÎªÌ¥N¸¹¤Î±K½X¡C
¦b¿é¤Jµn¤J«H¥ó¦øªA¾¹©Ò»Ýªº¸ê°T«á¡AMail Proxy§Y·|¥N¬°³s±µ¦ì©ó«H¥ó¦øªA¾¹¤WªºGFS»PMail Server Proxy¡A¨Ã¨ú±o«H¥ó¬ÛÃö¸ê°T¡A¦p«H¥ó§¨¦Cªí¡B«H¥ó¦Cªíµ¥¡A¤§«á¨Ï¥ÎªÌ´N¥i¥H¹ï«H¥ó§@¦UºØ³B²z¡A¦pÀx¦s¡B§R°£¡BÂà°e¡A¦^«Hµ¥¡C
¦p¤U¶¹Ï22©Ò¥Ü¡A¨Ï¥ÎªÌ¥i¥H¿ï¾Ü¥ô¤@Ó«H¥ó§¨¡A¨Ã¦C¥X©Ò¦³ªº«H¥ó¦Cªí¡A¦b«H¥ó¦Cªí¤¤¡A°O¸ü¦³¨C¤@«Ê«Hªº±H«H¤é´Á¡B±H«HªÌ¡B¤j¤p¥H¤Î¼ÐÃDµ¥¸ê°T¡A¨Ï¥ÎªÌ¥i¥H¾Ú¦¹¿ï¾Ü·Q¾\Ūªº«H¥ó¡A¦Ó¤£·QŪ¨úªº«H¥ó¨Ã¤£·|¯Ó¶OÃB¥~ªººô¸ô¶Ç¿é¡C
¨Ï¥ÎªÌ¹ï«H¥óªº¥ô¦ó³B²z°Ê§@¡A§¡¤£¬O¦b¨Ï¥ÎªÌºÝ¶i¦æ¡A¦Ó¬O¶Ç°e¸Ó©R¥O¨ì¦øªA¾¹ºÝ¡A¥Ñ»·ºÝªºMail Server Proxy¥N¬°§¹¦¨¸Ó¶µ«ü¥O¡C³o¼Ëªº³]p¡A¥i¥H¨Ï«H¥ó³B²z¤ñ¸û®e©ö¶°¤¤ºÞ²z¡A¦Ó¥B¾¨¶q´î¤Öºô¸ô¶Ç¿éªº¥²n©Ê¡C

¹Ï 22 Mail
Explorer°õ¦æµe±
§Ú̪º¹q¤l¶l¥ó¤l¨t²Î»PPOP3¤£¦Pªº¬O¡A©Ò¦³«H¥óªº³B²z§¡¶°¤¤¦b«H¥ó¦øªA¾¹¤W±¡A¨Ï¥ÎªÌ¥i¥H¥ô·N¦b¦øªA¾¹¤W±«Ø¥ß¦Û¤vªº«H¥ó§¨¡A¥Ñ©ó³o¨Ç«H¥ó§¨¦s©ñ©ó¦øªA¾¹¤W¡A©Ò¥H¤£·|¦]³s½u¦aÂI¤£¦P¦Ó¬Ý¨ì¤£¤@¼Ëªº«H¥ó³B²zÀô¹Ò¡C
¬°¤F®e§Ôºô¸ô¤£Ã©w±¡§Î¡A¤×¨ä¬O¦æ°ÊpºâÀô¹Ò¤Uªº¯S®í»Ý¨D¡A§Ú̪º¹q¤l¶l¥ó¤l¨t²Î¯S§O¹ïÂ_½u³B²z¡]disconnected operation¡^¡BÂ÷½u¾\Ū¡]offline reading¡^§@¯S§Oªº¦Ò¶q¡C
«H¥ó¦Cªí¤¤¡A«e±¦³ * °O¸¹ªÌ¡Aªí¥Ü¦b¨Ï¥ÎªÌºÝªºGFS¤§¤¤¦³¸Ó«H¥óªº§Ö¨ú¦s¦b¡A¦bÂ÷½u¡]offline¡^¤§®É¡A¥u¯àŪ¨ú¦s¦b©ó§Ö¨ú¤§¤¤ªº«H¥ó¡A¨Ï¥ÎªÌ¤]¥i¥H¨Ï¥Î¡uprefetch¡v¡]¹w¥ý¤U¸ü¡^¥\¯à¡A§â«H¥ó¹w¥ý¤U¸ü¡A¥H§QÂ÷½u«á¾\Ū¡CÂ÷½u¤§®É¡AYnŪ¨ú¥¼¦s¦b§Ö¨ú¤§¤ºªº«H¥ó¡]«H¥ó¦Cªí«e¨S¦³ * °O¸¹ªÌ¡^¡A«h·|§iª¾¨Ï¥ÎªÌ¡u(offline)
this mail is not cached¡v¡C
¤U±´N¬O¦bÂ÷½uª¬ºA¡Aª½±µÂI¿ï¥¼§Ö¨ú¤U¨Óªº«H¥ó®Éªº±¡§Î¡C

¹Ï 26 Â÷½u®ÉŪ¨ú¥¼§Ö¨ú¤§«H¥ó
¦b«e±³¹¸`§ÚÌ´¿¸g´£¹L¡AGFS¨t²Îªº°T®§¶Ç¿é·|¸g¹LÀ£ÁY¡A¥H´£°ªºô¸ô¶Ç¿é®Ä²v¡A¤U±¬OGFS¥N¬°¶Ç¿éÀɮ׫H¥ó®É¡A°T®§¸g¹LÀ£ÁY³B²zªº±¡§Î¡A¥H¤å¦r«¬ºAªº«H¥ó¦Ó¨¥¡AÀ£ÁY²v¤j¦h¦³50%¥H¤W¡C

¹Ï 27 ÀÉ®×¶Ç¿éÀ£ÁY¥\¯à
¥t¤@¤è±¡A§Ú̪ºÀÉ®×¶Ç¿é¤l¨t²Î³Ì«nªº´N¬O¶¡±µ¥N²zFTPªº¥\¯à¡A¨Ï¥ÎªÌºÝªºÀ³¥Îµ{¦¡¦p¤U¹Ï©Ò¥Ü¡G

¹Ï 28 ÀÉ®×¶Ç¿é¥N²z¦øªA¾¹³]©w
¨Ï¥ÎªÌ¥²¶·¿é¤J¥N²zªÌªº¦ì§}¡A¤]´N¬O»·ºÝªºGFS¤ÎFTP Server Proxy©Ò¦bªº¦ì§}¡AµM«á§iª¾n³s±µªºFTP¦øªA¾¹¦ì§}¡B¨Ï¥ÎªÌ±b¸¹¤Î±K½X¡A¨Ï¥ÎªÌºÝªºFTP Client Proxy´N·|½Ð»·ºÝªºFTP Server Proxy¥N¬°³s±µ©Ò»ÝnªºFTP¦øªA¾¹¡A¤U±¬OÀɮפU¸üªº±¡§Î¡C

¹Ï 29 Àɮ׶ǿ鱡§Î
¦b¥H©¹µo®i¤@Óºô¸ôÀ³¥Îµ{¦¡¡A¤j¦h³£¥²¶·¥Ñ¶}µoªÌ¦Û¦æ³B²zºô¸ôªº³s½u¡A¦P®ÉÁÙnÀ³¥I¦U¦¡¦U¼Ëªººô¸ôª¬ªp¡A¦Ó¦UÀ³¥Îµ{¦¡¶¡¤]¦]¦¹«ÜÃø§@¾ã¦X¡C¥»½×¤å°Ñ¦ÒAFS¡BCodaµ¥Àɮרt²Î¡A´£¥X¤F¤@Ó¹êÅç©ÊªºµêÀÀºô¸ôÀɮרt²ÎGeneral File System¡]GFS¡^¡A¨Ó§@¬°ºô¸ôÀ³¥Îµ{¦¡ªº¶}µo¥¥x¡AÅýºô¸ô³q°T¯àÂÇ¥ÑÂà¤Æ¦¨Àɮתº¦s¨ú¡A¥H²¤Æ³]p¤Wªº½ÆÂø«×¡F¦P®É¤]¥Ñ©ó©³¼h¨t²Î¹ïºô¸ôª¬ªpªº¾AÀ³¯à¤O¡A¦³®Ä´£°ª¤Fºô¸ô¶Ç¿éªº®Ä²v»Péw©Ê¡C§Ú̩ұĥΪº¬[ºc³Ì¥Dn¬O±N³q¥Î©Êªººô¸ôªA°È©â¨ú¥X¨Ó¡A·í§@©³¼hªº³Ì°ò¥»³q°T¾÷¨î¡A¨ä¤W¥i¥H®Ú¾Ú»Ýn¡A¦A±¾¤W¦UÃþºô¸ôªA°È¡A§¹¦¨¤@Ó¾ã¦X©Êªº¨t²ÎÀô¹Ò¡C
GFS¨t²Î¹ïÀɮתº¦s¨ú´£¨Ñ¤F§Ö¨úªº¥\¯à¡A©³¼hªº°T®§¶Ç¿é«h¨ã¦³À£ÁY¶Ç¿é¡B¿ù»~Àˬd¥H¤Î¦î¦C³B²zµ¥¥\¯à¡CGFS¨t²Î¥Ø«e¨Ã¥¼¦Ò¼{Àɮפ@P©Êªº°ÝÃD¡A§Ö¨úªºÀÉ®×¥u¯àŪ¨ú¡A¤£¯à³Q×§ï¡A¦]¦¹¡A¤¹³\Àɮׯu¥¿¤À´²³B²zªº½Æ»s¥\¯à¡]replication¡^±N¬O¨t²Î¥¼¨ÓÂX¥Rªº¤è¦V¤§¤@¡C
¥»½×¤å¨Ã¦bGFS¤W±¹ê§@¤F¹q¤l¶l¥ó¤l¨t²Î»PÀÉ®×¶Ç¿é¤l¨t²Î¡C¨âÓ¤l¨t²Î°£¤F¤À§O§ï¶i¤F즳ªA°Èªº¥\¯à¤§¥~¡A¤]¶i¤@¨B®i¥Ü¤F¾ãÓ¨t²Î¬[ºcªº¼u©Ê»P¥i¦æ©Ê¡C
[1] Callaghan, B., Pawlowski , B., Staubach, P., ¡§NFS Version 3 Protocol Specification¡¨, RFC 1813, June 1995
[2] Crispin, M., ¡§Internet Message Access Protocol ¡V Version 4 rev1¡¨, RFC 2060, Dec. 1996
[3] Crocker, David H., ¡§Standard for ARPA Internet Text Messages¡¨, RFC 822, Aug. 1982
[4] Ebling, M.R., Mummert, L.B., Steere, D.C., ¡§Overcoming the Network Bottleneck in Mobile Computing¡¨, Proceedings of the IEEE Workshop on Mobile Computing Systems and Applications Dec. 1994, Santa Cruz, CA
[5] John H Howard, Michael L Kazar, Sherri G Menees, David A Nichols, M Satyanarayanan, Robert N Sidebotham, Michael J West, "Scale and Performance in a Distributed File System", ACM Transactions on Computer Systems, Vol. 6, No. 1, Feb 1988 pp 51-81
[6] Kantor, B., Lapsley, P., ¡§Network News Transfer Protocol¡¨, RFC 977, Feb 1986
[7] Kistler, J.J., Satyanarayanan, M., ¡§Disconnected Operation in the Coda File System¡¨, ACM Transactions on Computer Systems Feb. 1992, Vol. 10, No. 1, pp. 3-25
[8] Kistler, J.J., Satyanarayanan, M., ¡§Transparent Disconnected Operation for Fault-Tolerance¡¨, Fourth ACM SIGOPS European Workshop Sep. 1990, Bologna, Italy
[9] Michael L Kazar, "Synchronization and Caching Issues in the Andrew File System", USENIX Proceedings, Dallas, TX, Winter 1988
[10] Microsoft Corporation, ¡§SMB File Sharing Protocol Extension version 2.0¡¨, Nov. 1989
[11] Myers, J., Rose, M., ¡§Post Office Protocol ¡V Version 3¡¨, RFC 1939, May 1996
[12] Myers, J.G., ¡§Application Configuration Access Protocol¡¨, Nov. 1996
[13] Noble, B., Satyanarayanan, M., ¡§A Research Status Report on Adaptation for Mobile Data Access¡¨, SIGMOD Record, Vol. 24, No. 4, December 1995
[14] Postel, J., Reynolds, J., ¡§File Transfer Protocol¡¨, RFC 959, Oct. 1985
[15] Postel, Jonathan B., ¡§Simple Mail Transfer Protocol¡¨, RFC 821, Aug. 1982
[16] Satyanarayanan, M., ¡§Coda: A Highly Available File System for a Distributed Workstation Environment¡¨, Proceedings of the Second IEEE Workshop on Workstation Operating Systems Sep. 1989, Pacific Grove, CA
[17] Satyanarayanan, M., ¡§Fundamental Challenges in Mobile Computing¡¨, Fifteenth ACM Symposium on Principles of Distributed Computing May 1996, Philadelphia, PA
[18] Satyanarayanan, M., ¡§Mobile Information Access¡¨, IEEE Personal Communications, Vol. 3, No. 1, February 1996
[19] Satyanarayanan, M., ¡§Scalable, Secure, and Highly Available Distributed File Access¡¨, IEEE Computer May 1990, Vol. 23, No. 5
[20] Satyanarayanan, M., Kistler, J.J., Siegel, E.H., ¡§Coda: A Resilient Distributed File System¡¨, IEEE Workshop on Workstation Operating Systems, Nov. 1987, Cambridge, MA
[21] Satyanarayanan, M., Noble, B., Kumar, P., and Price, M., ¡§Application-aware Adaptation for Mobile Computing¡¨, Operating Systems Review 29 (January 1995). Also as technical report CMU-CS-95-183, School of Computer Science, Carnegie Mellon University.
[22] Sun Microsystems, Inc., ¡§JDKTM 1.1.6 Documentation¡¨, Apr. 1998