1 / 17

TCP 1

APP. Indirect Layer. TCP 1. TCP 2. TCP n. APP. TCP. Freeze. Mobility Agent. APP. APP. MIP APP. MIP APP. TCP. TCP. TCP intercept. TCP intercept. MSIG. NDIS. MSIG. TCP inject. TCP inject. NDIS. CMC. CMC. Mobile Status. Mobile Status. Link Detection.

shandi
Download Presentation

TCP 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. APP Indirect Layer TCP1 TCP2 TCPn

  2. APP TCP Freeze Mobility Agent

  3. APP APP MIP APP MIP APP TCP TCP TCP intercept TCP intercept MSIG NDIS MSIG TCP inject TCP inject NDIS CMC CMC Mobile Status Mobile Status

  4. Link Detection Foreach <sec> Check if there is DATA (TCP) (received packet from L2/L3) { For each <additional received packet from TCP layer> } Yes Data Link Detection No Data Keep alive ICMP <#number, time (RTT)> Wf==0 Check Wf Check Keep alive Keepalive OK Wf==1 Keepalive Timeout Normal Resume Disconnect Start Timeout’ While <exist in hash> Set (Wf=1) Send Packet Out Send Win Update Clear Hash Clear (Timeout’) Set (Wf=0) Timeout’ Yes Persistence (Zero Window) No Yes Hash No <SIP, DIP, Sport, Dport> Seq Compare Hash Store Wf = 0: Connect Wf = 1: Disconnect old==new old<new old>new Send ZeroW Update Seq Ignore (Initial Wf = 0)

  5. CheckIPPacket Flag = 0: Resume Flag = 1: Disconnect Flag = -1: Normal Operation Check TCP TCP Disconnect Flag Flag==1 Flag==-1 Flag==0 Build Zero W Copy Packet Retrieve Hash Info Build Window Update Packet CreateTCP Htable_Insert Htable_Destroy SendIPPacket

  6. Assumption & Questions? 1. Retransmission packets have to be in order; (1:OK), 2 (break), 3, 4, then 2, 3, 4 Answer: Yes 2. If 1 lost and retransmit 1 then (break) 2, so next retransmit 2 (faster than another 3rd retransmit), we send anyway. Answer: OK (RTO per socket state not per packet)  Verify (GobackN: 1 timer, Selective Repeat: timer per packet) 3. Given 2, 3, 4 (break) lost and retransmit 2, 3, 4 then link is resumed, if sending only 2 Wupdate, What happen? Answer: OK (last real ack) 4. Or, 2, 3, 4(break) lost and retransmit 2, 3, 4 then another 2, 3, 4 but we only send ZeroW for 2 not for 3 and 4 Answer: OK (last real ack) 5. For per connection, it’s only 1 unique socket ID <SIP, DIP, SPORT, DPORT> Answer: Yes 6. * SEQ round up issue * does not matter since we keep updating the least seq (will send ZeroW anyway) Answer: No problem since we check if SEQ is equal not less than. 7. Whether should we have Buffer Control or Queuing? Answer: N/A 8. If we send ZeroW with OLD-SEQ back, what’s happen? Answer: N/A 9. Whether should we send an old ack (if not, it’s OK to willing to lost data)? (Timeout Implementation) Answer: N/A 10. What if IPSec is implemented from CN to MN directly? Answer: It’s not our purpose to do that. Basically, an encryption tunnel would be ended at HA or VPN gateway 11. Should we use MobileIP keepalive rather than ICMP? (ICMP -> MobileIP independency) Answer: In case, Session Persistence is in separate box from HA, ICMP is better. <number> = Need to be verified

  7. If Status is off { do nothing or while(hash.exist) { build UpdateW packet w = 1024, len = 0 send UpdateWindow packet back to TCP } Clear Hash else { foreach TCP packet hash socket state if exist { if oldSEQ>newSEQ updateSEQ else if oldSEQ==newSEQ build freezing packet { sync = ack, w = 0, len = 0 send ZeroWindow packet back to TCP } } else { Store socket state return; } }

  8. APP Server Mobile VPN APP APP APP VPN GW HA Session Persistence Module Mobility VPN Client (CMC) Persistence Engine/HA Module TCP connection APP Server APP APP APP TDI/ Winsock Netmotion Server Netmotion Client (Internet Mobile Host ≈ MobileIP) RPC over UDP TCP connection UDP connection

  9. P1 P2 ZWA ZWA Server Client ZWP ZWP

  10. Client HA Server Probe TCP Freeze Probe . . . Probe Ack . . . TCP Freeze Probe Ack Update Window Mobility Agent Update Window Resume Connection Client Client Probe Probe . . . . . . TCP Freeze Probe Ack Update Window TCP Freeze Probe Ack Update Window Mobility Agent Mobility Agent Resume Connection

  11. Client Client Probe Probe . . . . . . TCP Freeze Probe Ack Update Window TCP Freeze Probe Ack Update Window Mobility Agent SUSPEND request Mobility Agent Save all TCP connection state SUSPEND grant Suspend the mobile node Resume the mobile node RESUME request Restore all TCP connection state RESUME grant

  12. Client Server HA TCP Freeze Probe Probe . . . Probe Ack . . . TCP Freeze Probe Ack Update Window Update Window Mobility Agent SUSPEND request Save all TCP connection state SUSPEND grant Suspend the mobile node Resume the mobile node RESUME request Restore all TCP connection state RESUME grant

  13. Probe TCP Freeze Probe Ack TCP Freeze SUSPEND request Mobility Agent Probe SUSPEND grant Save all TCP connection state Probe Ack Suspend the mobile node RESUME request Resume the mobile node RESUME grant Update Window Restore all TCP connection state Update Window Probe Probe TCP Freeze TCP Freeze Probe Ack Probe Ack SUSPEND request Mobility Agent Mobility Agent SUSPEND grant Save all TCP connection state Suspend the mobile node RESUME request Resume the mobile node RESUME grant Update Window Restore all TCP connection state Update Window

  14. APP APP APP APP APP APP Session Persistence Module Session Persistence Module Mobility VPN Client (CMC) Mobility VPN Client (CMC)

  15. Ack6 win0 100 Ack6 win0 len0 ZWP 6 Ack101 len1 Probe Ack 100 Ack6 win0 len0 Win Update 100 Ack6 win4 len0 Original Ack 6 7 8 9 DATA6 ~9 win4

  16. Data1, Win=4 1 100 Ack2 win4 len0 Ack2, Win=4 Data2 to 5, Win=4 2 3 4 5 ZWA Ack6, Win=0 100 Ack6 win0 len0 ZWPs 100 Ack6 win4 len0 Ack6, Win=4 Probe Ack Data6 to 9, Win=4 6 7 8 9 Win Update

  17. 100 Ack6, Win=0, len=0 Ack6, Win=0 ZWP: 6Ack101, len=1 Probe Ack: 100Ack6, Win=0, len=0 . . . Win Update: 100Ack6, Win=4, len=0 Original Ack 6 7 8 9 Data6 to 9, Win=4

More Related