基于PPP協議單片機拔號上網的設計與實現
LCP包的配置如圖5所示。
a.LCP包概述
LCP包有3類:a鏈路配置包,用于建立和配置鏈路,包括Configure Ack、Configure Nak、Configure Request、Configure Reject;b鏈路結束包,用于結束一個鏈路,包括Terminate Request、Terminate Ack;c鏈路維修包,用于管理和調試一個鏈路,包括Code Reject、Protocol Reject、Echo Request、Echo Reply、Discard Request。LCP包的選項最常見的有:1 Maximum Receive Unit、2 Async Control Character Map、3 Authectication Protocol、7 Protocol Field Compression、8 Address and Control Field Compression。
b.LCP包種類的取舍
本文中,只用了Configure-Request、Reject、Ack三種LCP數據包,這是實現應答所必需的最低限度。單片機發出的Request選項是我們預先設定的,而ISP發出的選項若有我們不接受的內部,則單片機回答一個Reject,任何一方接受請求時發Ack,因此未處理NAK數據包。本文也未處理剩余的七類數據包,因任何原因造成的鏈路終止問題都由單片機在程序的控制下重新撥號來解決。
c.LCP選項的取舍
由于我們每次發送(接收)的數據較少(由于單片機RAM的限制,設定的緩沖區很小),MRU選項默認值為1500字節,最小值為576字節,所以測試程序不支持選項1;選項2是必須支持的;選項3提供了發送password的方法,它的參數可以是 0xc023或0xc223。為簡單起見,本文的測試程序選擇了0xc023作為選項3的參數,這樣,程序將以明文的形在一個數據包中發出用戶名和密碼。測試程序不請求選項7和8的服務,也就是根據默認的規定,發送的數據包含有PPP協議域和控制域。
tcp/ip相關文章:tcp/ip是什么
評論