µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

uipÔ´Âë·ÖÎö

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/8/5 9:02:49 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

#define UIP_CONF_UDP_CHECKSUMS ÊÇ·ñÆôÓÃUDCУÑéºÍ. #define UIP_CONF_STATISTICS UIPÅäÖÃͳ¼ÆÊÇ·ñ¿ªÆô. typedef uint8_t u8_t 8λµÄÊý¾ÝÀàÐÍ. typedef uint16_t u16_t 16λµÄÊý¾ÝÀàÐÍ.

typedef unsigned short uip_stats_t ͳ¼ÆÊý¾ÝÀàÐÍ. ¸´ÖÆ´úÂë

¾²Ì¬ÅäÖÃÑ¡Ïî:

ÕâЩѡÏî¿ÉÒÔÓÃÀ´¾²Ì¬ÅäÖÃIPµØÖ·,Ìõ¼þÊÇUIP_FIXEDADDR±ØÐëÉèΪ1. Ö¸¶¨½ÚµãµÄÅäÖÃÑ¡Ïî°üÀ¨IPµØÖ·,×ÓÍøÑÚÂë,ĬÈÏ·Óɼ°ÒÔÌ«ÍøÖ·.¶øºóÈýÏîÖ»ÓÐÔÚÒÔÌ«ÍøÖÐʱ²Å¿ÉÓÃ. #define UIP_FIXEDADDR ¾ö¶¨uIPʹÓù̶¨IPÓë·ñ. #define UIP_PINGADDRCONF ÉèÖÃpingµØÖ·.

#define UIP_FIXEDETHADDR ARPÄ£¿éµÄ±àÒëÊÇ·ñÓù̶¨µÄMACµØÖ·. ¸´ÖÆ´úÂë

IPÅäÖÃÑ¡Ïî:

#define UIP_TTL 64 ¶¨ÒåUIP°üµÄÉú´æÊ±¼ä.TTL. #define UIP_REASSEMBLY ´ò¿ªIP°üÖØÐÂ×é×°¹¦ÄÜ.

#define UIP_REASS_MAXAGE 40 IPƬ¶ÏÈÓµô֮ǰÔÚÖØ×é×°»º³åÇøµÈ´ýµÄʱ¼ä. ¸´ÖÆ´úÂë

UDPÅäÖÃÑ¡Ïî:

#define UIP_UDP UDPÖ§³ÖÊÇ·ñ±àÒë

#define UIP_UDP_CHECKSUMS. ÊÇ·ñʹÓÃUDPУÑéºÍ. #define UIP_UDP_CONNS ×î´ó²¢·¢UDPÁ¬½ÓÊý. ¸´ÖÆ´úÂë

TCPÅäÖÃÑ¡Ïî:

#define UIP_ACTIVE_OPEN ¾ö¶¨UIPµÄ´ò¿ªÁ¬½ÓÖ§³ÖÊÇ·ñ±àÒë. #define UIP_CONNS ×î´óͬʱ´ò¿ªµÄTCPÁ¬½ÓÊý. #define UIP_LISTENPORTS ×î´óTCP¼àÌý¶Ë¿ÚÊý. #define UIP_URGDATA??ÊÇ·ñ±àÒëTCP½ôÆÈÊý¾ÝÌáÐÑ.

#define UIP_RTO 3 ³õÊ¼ÖØ´«³¬Ê±¼ÆÊý,ÒÔ¶¨Ê±Æ÷Âö³å¸öÊý¼Æ. #define UIP_MAXRTX 8 Ò»¶ÎÊý¾Ý×î´óÖØ´«¶àÉٴβÅÈ¡ÏûÁ¬½Ó.

#define UIP_MAXSYNRTX 5 Ò»¶ÎSYNÊý¾ÝÒª×î´óµÃ´«¶àÉÙ´Î,²ÅÈ϶¨Á¬½ÓÇëÇóʧ°Ü.

#define UIP_TCP_MSS (UIP_BUFSIZE - UIP_LLH_LEN - UIP_TCPIP_HLEN) TCP×î´ó¶Î´óС #define UIP_RECEIVE_WINDOW ¹ã²¥½ÓÊÕÆ÷µÄ×î´ó´°¿Ú´óС.

#define UIP_TIME_WAIT_TIMEOUT 120 Ò»¸öÁ¬½Ó´¦ÓÚTIME_WAIT״̬µÄ×î´óʱ¼ä. ¸´ÖÆ´úÂë

ARPÅäÖÃÑ¡Ïî:

#define UIP_ARPTAB_SIZE ARP±í´óС.

#define UIP_ARP_MAXAGE 120 ARP±íµÄ×î´ó´æ»îÄêÁä,µ¥Î»Îª10s. ¸´ÖÆ´úÂë

ͨÓÃÅäÖÃÑ¡Ïî:

#define UIP_BUFSIZE UIP°ü»º³åÇø´óС. #define UIP_STATISTICS ÊÇ·ñ±àÒëͳ¼Æ¹¦ÄÜ.

#define UIP_LOGGING ijЩʼþµÄÈÕÖ¾¹¦ÄÜÊÇ·ñ±àÒë.

#define UIP_BROADCAST ¹ã²¥¹¦ÄÜÊÇ·ñÖ§³Ö. #define UIP_LLH_LEN Á´Â·²ãÍ·³¤¶È.

void uip_log (char *msg) ´òÓ¡UIPÈÕÖ¾ÐÅÏ¢. ¸´ÖÆ´úÂë

CPU¼Ü¹¹ÅäÖÃ:

ÕâÀïÖ¸¶¨µÄÊÇCPUµÄ´óС¶Ëģʽ.µ±½ñµÄCPU¶àʱС¶ËµÄ,È»¶ø×î×ÅÃûµÄÀýÍâ¾ÍÊÇmotorolaµÄCPU.ËüÊÇ´ó¶ËµÄ.Ó¦¸ù¾ÝCPUµÄ´óС¶Ëģʽ²»Í¬,ÅäÖà BYTE_ORDER. #define UIP_BYTE_ORDER UIPËùÔËÐеÄCPU´óС¶Ëģʽ. ¸´ÖÆ´úÂë

Õë¶ÔÓ¦ÓõÄÅäÖÃ:

UIPÓ¦ÓÃÊÇʹÓõ¥¸öÓ¦Óú¯ÊýÊýʵÏÖµÄ.Ö»ÒªTCP/IPʼþ·¢Éú,uIP¾Í»áµ÷ÓÃÕâ¸öº¯Êý.Õâ¸öº¯ÊýµÄÃû×Ö±ØÐëÔÚ±àÒëʱʹÓÃUIP_APPCALL×¢²áµ½uIP.

uIPÓ¦ÓÿÉÒÔÔÚuip_conn½á¹¹Öб£´æÓ¦ÓÃ״̬.ÕâÊÇͨ¹ýÀûÓÃtypedef uip_tcp_appstate_tºÍ

uip_udp_appstate_tÖ¸¶¨Ó¦ÓõÄÀàÐÍʵÏÖµÄ.°üº¬´Ë¶¨ÒåµÄÎļþ±ØÐë±»°üº¬ÔÚÎļþÖÐ. ÏÂÃæÊÇÒ»¸öÀý×Ó:

void httpd_appcall(void);

#define UIP_APPCALL? ???httpd_appcall

struct httpd_state { ??u8_t state; ??u16_t count; ??char *dataptr; ??char *script; };

typedef struct httpd_state uip_tcp_appstate_t ¸´ÖÆ´úÂë

#define UIP_APPCALL smtp_appcall??TCP/IPʼþµÄÓ¦´ðº¯ÊýÃû³Æ.

typedef smtp_state uip_tcp_appstate_t ´æ´¢ÔÚuip_connÖеÄÓ¦ÓÃ״̬ÀàÐÍ. typedef int uip_udp_appstate_t ´æ´¢ÔÚuip_connÖеÄÓ¦ÓÃ״̬ÀàÐÍ #define UIP_LITTLE_ENDIAN 3412 #define UIP_BIG_ENDIAN 1234 ¸´ÖÆ´úÂë

1. #define UIP_ACTIVE_OPEN

¾ö¶¨ÊÇ·ñÖ§³ÖÔÚuipÖдò¿ªÁ¬½Ó.

Èç¹û´Ë¹¤³ÌÖй¤×÷ÓÚuipÉϲãµÄÓ¦Óò»ÐèÒª´ò¿ªTCPÁ¬½Ó,¿ÉÒԹرմËÏîÒÔ¼õС±àÒëºóµÄ´úÂë´óС. ¶¨ÒåÓÚÖеÄ233ÐÐ.

2. 2. #define UIP_ARP_MAXAGE 120

ÒÔ10sΪµ¥Î»µÄARP±íÏîµÄ×î´óÄêÁä. 120´ú±íµÄÊÇ20·ÖÖÓ(BSDÖеÄĬÈÏÖµ). ¶¨ÒåÓÚÖеÄ358ÐÐ.

ÒýÓÃÓÚuip_arp_timer(). 3. 3. #define UIP_ARPTAB_SIZE

1. #define UIP_ACTIVE_OPEN ¾ö¶¨ÊÇ·ñÖ§³ÖÔÚuipÖдò¿ªÁ¬½Ó.

Èç¹û´Ë¹¤³ÌÖй¤×÷ÓÚuipÉϲãµÄÓ¦Óò»ÐèÒª´ò¿ªTCPÁ¬½Ó,¿ÉÒԹرմËÏîÒÔ¼õС±àÒëºóµÄ´úÂë´óС. ¶¨ÒåÓÚÖеÄ233ÐÐ.

2. #define UIP_ARP_MAXAGE 120 ÒÔ10sΪµ¥Î»µÄARP±íÏîµÄ×î´óÄêÁä. 120´ú±íµÄÊÇ20·ÖÖÓ(BSDÖеÄĬÈÏÖµ). ¶¨ÒåÓÚÖеÄ358ÐÐ. ÒýÓÃÓÚuip_arp_timer().

3. #define UIP_ARPTAB_SIZE ARP±íµÄ´óС.

Èç¹ûuip½Úµã¿ÉÄÜÔÚ±¾µØÍøÂçÖÐÓкܶàÁ¬½Ó,Ôò´ËÖµÓ¦ÉèµÃ´óЩ. ¶¨ÒåÓÚÖеÄ349ÐÐ.

ÒýÓÃÓÚuip_arp_init(), uip_arp_out(), anduip_arp_timer().

4. #define UIP_BROADCAST Ö§³Ö¹ã²¥.

´Ë±êÖ¾ÓÃÓÚÅäÖù㲥µÄÖ§³Ö,½öÔÚ¿ªÆôUDPʱ²ÅÓÐÒâÒå. ¶¨ÒåÓÚÖеÄ423ÐÐ.

5. #define UIP_BUFSIZE uip°ü»º³åÇø´óС.

²»¾ÍСÓÚ60×Ö½Ú,²»Ðë´óÓÚ1500×Ö½Ú.Õâ¸öֵԽС,TCPµÄÍÌÍÂÁ¿¾ÍԽС,Ïà·´Ô½´ó. ¶¨ÒåÓÚÖеÄ379ÐÐ.

ÒýÓÃÓÚuip_split_output().

6. #define UIP_BYTE_ORDERuipÔËÐеÄCPU¹¹¼ÜµÄ×Ö½Ú˳Ðò,¿Éѡֵ½öÓÐÁ½¸ö,·Ö±ðΪBIG_ENDIANºÍ LITTLE_ENDIAN. Ó¦ÓÃÈ«³Ì:, and . ¶¨ÒåÓÚÖеÄ475ÐÐ.

7. #define UIP_CONNS ¿Éͬʱ´ò¿ªµÄ×î´óTCPÁ¬½ÓÊý.

ÓÉTCPÁ¬½ÓÊǾ²Ì¬¿ª±ÙµÄ,ËùÒÔ¼õС´ËÑ¡ÏîµÄÖµ¿ÉÒÔ¼õСRAMÕ¼ÓÃÁ¿,ÿ¸öTCPÁ¬½ÓÐèÒª´óÔ¼30×Ö½ÚµÄRAM. ¶¨ÒåÓÚÖеÄ245ÐÐ. ÒýÓÃÓÚuip_connect().

8. #define UIP_FIXEDADDR ¾ö¶¨uIPÊÇ·ñʹÓù̶¨IPµØÖ·. Èç¹ûʹÓù̶¨IPµØÖ·,Ôò´ËµØÖ·¿ÉÒÔÔÚ

ÖÐÖ¸¶¨.·ñÔò,Èç¹ûÏëÓö¯Ì¬µÄIPµØÖ·,Ôò¿ÉÒÔʹÓÃuip_sethostaddr(), uip_setdraddr() and uip_setnetmask() Èý¸öºê¶¯Ì¬Ö¸¶¨. ¶¨ÒåÓÚÖеÄ97ÐÐ.

9. #define UIP_FIXEDETHADDR ¾ö¶¨uIPÊÇ·ñʹÓù̶¨µÄMACµØÖ·.

Èô²»Ê¹Óù̶¨µÄMACµØÖ·,Ôò¿ÉÓÃuip_setethaddr()ÔÚÔËÐÐʱ¶¯Ì¬Ö¸¶¨. ¶¨ÒåÓÚÖеÄ127ÐÐ.

10. #define UIP_LISTENPORTS

¿ÉÒÔͬʱ¼àÌýµÄ×î´ó¶Ë¿ÚÊý.ÿ¼àÌýÒ»¸öTCP¶Ë¿ÚÐèÒªÁ½×Ö½ÚÄÚ´æ. ¶¨ÒåÓÚÖеÄ259ÐÐ. ÒýÓÃÓÚ

uip_init(), uip_listen(), and uip_unlisten().

11. #define UIP_LLH_LEN Á´Â·²ãÍ·µÄ³¤¶È.

Õâ¸öIPÍ·ÔÚuip_bufÖеıàÒÆÁ¿.¶ÔÓÚÒÔÌ«ÍøÀ´Ëµ,´ËֵΪ14.¶ÔÓÚSLIPÀ´Ëµ,ÆäÖµ0 . ¶¨ÒåÓÚÖеÄ448ÐÐ.

ÒýÓÃÓÚuip_ipchksum(), uip_process(), and uip_split_output().

12. #define UIP_LOGGING ¶¨ÒåÊÇ·ñ±àÒëʼþÈÕÖ¾.

Õâ¶ÔÓÚµ÷ÊÔÊǷdz£ÓаïÖúµÄ.Èç¹û´ò¿ª´ËÏî,»ò±ØÐëÔÚ¹¤³ÌµÄ¹¹¼ÜÉÏʵÏÖuip_log(). ¶¨ÒåÓÚÖеÄ408ÐÐ.

13. #define UIP_MAXRTX 8

ÔÚ×î¶à¶àÉÙ´ÎÖØÐ·¢ËÍͬһ¶ÎÊý¾ÝÖ®ºó,¾ÍµÃÈ¡ÏûÁ¬½Ó. ´ËÏî²»Ó¦¸Ä±ä. ¶¨ÒåÓÚÖеÄ288ÐÐ. ÒýÓÃÓÚuip_process().

14. #define UIP_MAXSYNRTX 5

Ò»¸öSYNÊý¾Ý×î¶à¿ÉÒÔÖØ´«¶àÉÙ´Î,Ö®ºó¾ÍµÃÈÏΪÁ¬½ÓÇëÇóʧ°Ü. ´ËÏîÒ಻Ӧ¸Ä±ä. ¶¨ÒåÓÚÖеÄ297ÐÐ. ÒýÓÃÓÚuip_process().

15. #define UIP_PINGADDRCONF É趨ping IPµØÖ·.

Èç¹ûÉ趨´ËÏî,ÔòuipʹÓÃping°üÀ´É趨ÆäIPµØÖ·.´ËʱuipÆôÓÃʱ»áÖ»ÓÐÒ»¸ö¿ÕµÄIpµØÖ·,¶ø°ÑÊÕµ½µÄµÚÒ»¸öping°üÉèΪ×Ô¼ºµÄµØÖ·. ×¢Òâ:

´ËÏîÖ»ÓÐÔÚUIP_FIXEDADDRÉèΪ0ʱ²Å¿ÉÓÃ. ¶¨ÒåÓÚÖеÄ114ÐÐ.

16. #define UIP_REASSEMBLY´ò¿ªIP°üÖØ×é.

uipÖ§³ÖË鯬IP°üµÄÖØ×é.´ËÏîÌØÐÔÐèÒª¶àÓàµÄRAMÀ´Ê¢·ÅÖØ×黺³åÇø.ÖØ×é´úÂë´óСԼΪ700×Ö½Ú.ÖØ×黺³åÇøµÄ´óСÓëuip_bufµÄ´óС(ÓÉUIP_BUFSIZEÅäÖÃ)Ïàͬ. ×¢Òâ:

IP°üÖØ×鲢δ¾­¹ýÑϸñ²âÊÔ. ¶¨ÒåÓÚµÄ156ÐÐ.

17. #define UIP_RECEIVE_WINDOW ͨ¸æµÄ½ÓÊÕÆ÷´°¿Ú.

Èç¹û´¦ÀíÆ÷¶ÔÊäÈëÊý¾Ý´¦ÀíÄÜÁ¦½ÏÂý,ÔòÓ¦ÉèµÃµÍЩ(uip_bufµÄ´óС),·ñÔòÓ¦ÉèµÃ¸ßЩ(32768×Ö½Ú). ¶¨ÒåÓÚµÄ317ÐÐ.

18. #define UIP_RTO 3 ÒÔʱÖÓÂö³å¼ÆËãµÄÖØ´«³¬Ê±¼ÆÊý. ´ËÏî²»Ó¦¸Ä±ä. ¶¨ÒåÓÚµÄ280ÐÐ. ÒýÓÃÓÚuip_process().

ËÑË÷¸ü¶à¹ØÓÚ£º uipÔ´Âë·ÖÎö µÄÎĵµ
uipÔ´Âë·ÖÎö.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c968oj0hdj37s7tu43p391qw0b8cv4600t5d_8.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©

Ïà¹ØÍÆ¼ö£º

ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top