?aòa?o±????áo?×÷??ê1ó??????úTCP/IP???-?é?a1?'ó?????úTCP/IP??ê???°?o???ìá1?ò????××?òyè???×÷ó???????'óTCP/IP?2??á??????úTCP/IP??ì??????????aD?ì????ú?????úé?ê???TCP/IP×?o?ê1ó???óD??TCP/IPD-òé?????ó×?±???áD3?á?8??3??????????úTCP/IPD-òé????×?oó?ééüá?è?o?ê1ó??aD??????úTCP/IPD-òé??ê???ó??§?ùDè???????úé?í???????Dè?ó??
1??ü'ê?o?????ú??TCP/IP??D-òé????
1 TCP/IP?ò?é
TCP/IP??'?ê?????D-òé/í??êD-òé (Transmission Control Protocol / Internet Protocol)???ú??áaí?·??1????ìì??TCP/IPD-òé??ê??êé?ò??-3é?aí??ê??á???'ú??'ê??TCP/IPD-òé??2?2?·?o?ISO??72???Dí?á11???ü·??a42??'?o
1?? ó|ó?2??o?üê??ù?Yó|ó???2?í?±àD'??2?í???D-òé??àyè?3???±?'?ê?D-òé?¨ ?????ò????×óóê?t'?ê??¨SMTP???????t'?ê?D-òé?¨FTP????í?????3ì·??êD-òé?¨Telnet???è??
2?? '?ê?2??o'?ê?2??o?eêy?Y?ú??ó??????????yè·'??í??±??¤êy?Y°ü???3Dòoíêy?Y???yè·??ò?°?à'???÷òa?????òá??ó??'?ê?????D-òé?¨TCP????óDê±???ò·?á??ó??ó??§êy?Y±¨D-òé?¨UDP??ò2°üà¨?ú?aà???
3?? ??á?í???2??oò2?íê?IPD-òé???ü?o?eêy?Y±¨è?o??úí???????'??Y??àyè??????·óé?è??
4?? í????ó?ú2??oóéóúí?????àí?é?ê??2?í???Dèòa????2?í???1üàí·?ê???àyè?ò?ì?í??¨Ethernet??oíí¨1yModemé?í???·?ê?Dèòa2?í???1üàí·?·¨??
2 ?????úTCP/IP??ì???
?ú?????úé?ê???TCP/IPó??úPC?úé?ê???TCP/IPê?óD?ù2?í?????2?????TCP/IP?ú51?????úé???ê???ì???oí·?·¨?·?ò???éò?á??a???o
1?? ?ù?è?y?o?ù?Y?????????ééü12M??51?????ú??×??ìí???'??í?ù?è?a25KB/s?????D??1??ü?úóúTCP/IPDèòa??'??í??????×??ú??DDD??éoí??????ò??°±?òa????±'???a?ù51?????ú??'|àí?ù?è?í2?1?á????aá?ìá???????úTCP/IP???ù?èò?°???·?·¨ê?òa??D-òé????DD???ò??
2?? 3ìDò'?'?????oíía2?RAM????2?'ó?oò?°????????ú??×?'ó3ìDòoíêy?Y?????a64KB??TCP/IPD-òéò?°?Dèòa??·??í??êy?Y??DD?o'?????ò???×?'ó??êy?Y°ü?íóD1500B???±í????ù?èoü'ó??ê±oò?ú'???o???oü'ó????óú·???è?ê?TCP/IPD-òé????64KB??3ìDòoíêy?Y????ê?íêè?2?1?????
3?? ±àò??÷?oê??êé?oí51?????ú??ì????á11óD1???òò?a?üê?8???ú???ùò???óúDèòaíê3éí?ò???êy?Y2ù×÷??32????PC?ú?é?ü??Dèòa10ì???á?????51?????ú?é?üDèòa??°ùì???
3 ò?óD???????úTCP/IPD-òé??
óéóúTCPD-òé????3ìDòá÷3ì???a?'?ó??òò?a3ìDò?DDèòa'|àí??·?·¨?í1yà'??êy?Y??·??e??á??ó?????ò·?2?2??a?à??·??áo?ê±??DDê2?'?ù??2ù×÷???a?íê1??D-òé'|àí?eà'???a?'?ó??áííaò????-òòê??????úTCP/IPD-òé?????è?¨D?ê?ò?·?3???òa???êìa??ò????è?¨??D-òé??Dèòa?úê??êó|ó??D?-1y3¤ê±????2aê????ùò?±àD'ò????è?¨???????úTCP/IPD-òé???ü?óà§?????a'?áííaò????????íê?ê1ó???óD??TCP/IPD-òé????
1?? eCos?????úTCP/IPD-òé???oeCos TCP/IP??ê?é??°ó?eCos2ù×÷??í3/?úo?ò??e??DD????eCos?¨oíTCP/IP????óé'óá?'|àí???á11?§3???eCos TCP/IP???±?°·?2?á?ò???2aê?°???×÷?aò??????à?????é??
2?? ZLIP 51?????úTCP/IPD-òé???oZLIPê?ר???a51?????úéè??????è?ê?TCP/IPD-òé?????éò??úóD2ù×÷??í3oí??óD2ù×÷??í3?é??????DD????óD'ú??á?êê?D????DD?ù?è?ì??ó??§?ó?ú?ò??????èYBSD socket?ó?ú??ì?????ê???á?TCP??UDP??ICMP??ARPD-òé??ZLWebê???á?HTTPD-òé???§3??àTCPá??ó???àUDPá??óí?ê±??DD???§3??úuc/os-II2ù×÷??í3???àè?????DDêy?Yê?·????éò?ó?óú51?????úTCP/IPé?í??a??·?°???
3?? uc/ip ?????úTCP/IPD-òé??:uC/IP(mew-kip)ê??a?a??????éè????ò???TCP/IPD-òé????'ú???ùóúBSD?¨oü???ùóD???ü????????·?3?D????2??·??§1|?üóD?ù??éù???ü?±?°?aLinuxoíDOS??±ê???¨??
4?? BSD ?????úTCP/IPD-òé???oBSD??àúê·é?ê?????éìò??????aê?????'ó?àêyרò?TCP/IP???¨è?'?Wind-River VxWorks?úo?????ê?BSD???ééú?????aê?òò?aBSD?úBSDDí?éD-òé??ìá1?á????????????ü????Díó??¤ê1???üò?DT???ò?'DT????D?ê??áo??ü????'ú?????TD??ò''?¨????°??°??ó?GPLDíó??¤?à±è??è?1????áo?GPL?''ú????oó??òa?ó????GPL?D1??a?????''ú????
5?? lwIP ?????úTCP/IPD-òé???olwIP?¨?áDí??TCP/IP??ê?TCP/IPD-òé????ò???D?Díê??????ü°üà¨'?IPoíICMP??TCPoíUDP'?ê?2????1ìá1?ò????é????BSDì×?á×?API???aá?D??ü???1°üà¨ò???á???±'API??LwIPD-òé??ê??a??è?ê???í3éè????2??üêêo?40KB??ROMoí??°ù×??ú??RAM???aá??éò??2D??üó?C±àD'??
6?? uIP ?????úTCP/IPD-òé???ouIPê?ר???a8??oí16?????úéè????ò???·?3?D???TCP/IPD-òé????uIPíêè?ó?C±àD'??ò?'??éò?ò??2???÷??2?í????á11oí2ù×÷??í3é???ò???±àò??????éò?óD??KB ROM?ò??°ù×??úRAM?D??DD??uIP?1°üà¨ò???HTTP·t???÷×÷?a·t???úèY??
7?? TinyTCP ?????úTCP/IPD-òé???oTinyTCP??ê?TCP/IP??ò???·?3?D????ò????ê??????ü°üà¨ò???FTP?í?§??TinyTCPê??aé?è?ROMéè????2??ò???ú?aê???'ó???á11??o?ê?óDó????¨3?ê???±êê?68000D???????TinyTCPò2°üà¨ò????ò????ò?ì?í??y???÷ó?óú3Com?à×ü???¨??
8?? WATTCP ?????úTCP/IPD-òé???oWATTCPê??a??è??ùóúDOS????í3??éè????ò???D?DíTCP/IP?????ü°üà¨ò???Real Mode DOS°?±?oíáíò???32??à??1?·?3°?±???
4 è?o?ê1ó??????úTCP/IPD-òé??
ó??§?ú????ò????????úTCP/IPD-òé??ò?oó??è?o?'|àí???????D??'|àí·??aá???2?·??oé?2??ó?úoí??2??ó?ú??
4. 1 é?2??ó?ú
ó??§ê1ó??????úTCP/IP??????ê??ê·?3??÷á????íê?òaê???êy?Y??'??í???''óPC?ú?¨?ò??áíò????????ú??é?'??í1yà'??êy?Y?ü1??ú±????????úé??óê???·'??òàè????ùò?è?1??á±??×2????°???????úTCP/IPD-òé???íê?ò???'?ê?êy?Y??ê??????ùò?×?oó1é?á??á?ê1ó?send()??recv()o?êy?'?é???a?íê?ê1ó??????úTCP/IPD-òé????o?D??ù?ú??
??ê?ê?ê?é?2???óD?a?'?ò????òò?a??óúTCPDèòaóD·??eá??ó???óêüá??ó??·??íêy?Y???óê?êy?Y??1?±?á??ó?è2ù×÷ò???o?êy?Y??'?ê???TCP/IPD-òé??ò?°??aó??§ìá1?è??????ó?ú?o
1?? 3?ê???D-òé??oíêí·?D-òé????o?êy?ó?ú??àà??Init(), Release()??àà??o?êy??
2?? ìá1?àà??BSD socket??socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select?èAPIo?êy??ó??§?÷ó?'?àào?êy??DD·??eá??ó???óêüá??ó??·??íêy?Y???óê?êy?Y??1?±?á??ó?è2ù×÷??
3?? ?óêüá??ó???óê?êy?Y??±???1?±???'|àí?oóéóú'?àà2ù×÷ê?é????ú·??e?????ùò?TCP/IPD-òé??±?D?ìá1?ò?ì×?ú??à''|àí'?ààê??t??·?éú??ò?°?à'??óDá???·?·¨?o
a) ?÷???è'y?oàyè?ê1ó?BSD??recv()o?êy?è'yêy?Y????à'??
b) ???÷?ú???o2éó?àà??MFC??OnReceive()o?êy?????÷?ú????ò2?'ê????ú?óê???êy?Y??ê±oò?á×????÷ó?OnReceive()o?êy??
???'ó??§è?o?ê1ó?ò?é????ó?úà'ê?????3ì????????3ìêy?Y2é??????·?·¨oü?ò????
àyè????úDèòaê???ò?????LED????ááoí?e????3ì????ó|ó???ê×?èPC?úê1ó?TCP/IP·??í1¤??àyè?SocketDlgTest3ìDò·??íò???×??ú???°1?±???a·?°??¨?ù?Y?a·?°???IP???··??í?????a·?°??úOnReceiveo?êy?D·???ê?????ê??°1?±?????'?íí¨1yP1???ú????'ò?a??·'??è?1?ê?????ê??°0?±?ò?????¨?e??
è?1?ê?ê???ò?????3ìêy?Y2é????ó|ó???àyè??¨ê±??DD???è2é????ê×?èPC?úê1ó?SocketDlgTest3ìDò?è'y·?à'êy?Y???a·?°?????ò???ê±??2é??ò???êy?Y??è?oóí¨1ysend()o?êy??êy?Y·??í??PC?ú?¨?ù?YPC?ú??IP???··??í?????a?ùPC?í?óê???á??±?°????3ì???èêy?Y??
4. 1 ??2??ó?ú
??2??ó?úê?ò???±è???'?ó??2?·???ê??êé?ê?TCP/IPD-òé??oí?×2?ó2?t?????ó?êìa??è?1?ó??§??TCP/IPD-òé??ò??2??×??o???????ú??í3é???óéóúó2?té?'??úò??¨??2?òì???íDèòaDT???×2?'ú?????aà?Dèòa°üà¨?o
1??í??¨?y???oè?1?TCP/IPD-òé??ò??-ìá1?á?í??¨?y????2??ò?y??oíó??§ê1ó???í??¨D???ò??ù?????'?í?à??èYò×ò?D????aà???DèòaDT??í??¨???ù???·?'?é??·??òDèòa×??o??ê?D'?y??3ìDò??è?1?í??¨2éó?RTL8019AS?éò?2???à?1??a·?í?????è?1?í??¨2éó?CS8900???éò?2???????è?ê? TCP/IP D-òé?????ú??ê??úí???í¨D??D??ó|ó??·
2??TCP/IP?×2??ó?ú??ò?°??????úTCP/IPDèòa?×2??a??ìá1??¨ê±?D????í??¨?D??'|àí??è??ú???×2?Dèòa×??àó|??'|àí??