關於CP220x使用TCP傳送的疑問
此內容有點長, 請看倌耐心看完, 謝謝!!
一般TCP傳送流程都有ACK的封包確認
小弟用Ethernet\TCP_Telnet的範例測試流程
1. PC端丟1111
2. MCU回ACK
3. MCU丟1111
4. PC回ACK
以上是單次標準流程
如果PC端收發部分也改為Echo, 那測試流程會變成如下
1. PC端丟1111
2. MCU回ACK
3. MCU丟1111
4. PC回ACK同時此封包夾帶資料1111
5. MCU回ACK
6. MCU丟1111
7. PC回ACK同時此封包夾帶資料1111
....
...循環下去
用google查詢到TCP說明
"http://www.pcnet.idv.tw/pcnet/network/network_ip_tcp.htm"
Acknowledge Number
回應序號。當接收端接收到 TCP 封包並通過檢驗確認之後﹐會依照發送序號、再加上資料長度產生一個回應序號﹐附在下一個回應封包送回給對方(無需額外的送出專門的確認封包)﹐這樣接收端就知道剛才的封包已經被成功接收到了。
所以我想詢問MCU回ACK之後再丟資料, 這2筆傳送可不可以合併再一次傳送
如果可以該怎麼修改???
我有嘗試過在SCHAR callback_app_process_packet(PSOCKET_INFO socket_ptr)//取消回ACK
{
socket_ptr = socket_ptr; // This statment prevents compiler warning.
//return (1);
return(NEED_IGNORE_PACKET);
}
但會造成通訊上的錯誤, PC端會一直重送封包
我想應該是要將ACK跟下一筆資料一起傳送才行....
請問有辦法解決嗎???
還是說ACK一定要回應後才能丟資料??不能合併再一起送??
謝謝!!!