USOO8732306B2

(12) United States Patent (10) Patent N0.: US 8,732,306 B2 Chincisan (45) Date of Patent: May 20, 2014

(54) HIGH SPEED PARALLEL DATA EXCHANGE 5,488,702 A 1/1996 Byers et a1. WITH TRANSFER RECOVERY 5,553,083 A 9/1996 Miller 5,555,391 A 9/1996 De Subijana et a1...... 5,572,678 A * 11/1996 Homma et a1...... 709/227 (75) Inventor: OctaVIan Chinclsan, R1chmond H111 5,903,724 A * 5/1999 Takamoto et al‘ “““““ N 709034 (CA) 5,951,706 A 9/1999 Benner 6,308,178 B1* 10/2001 Chang et a1...... 709/225 (73) Assignee: Z124, George Town (KY) 7,031,264 B2 4/2006 Adhik?fi eta1~ 1 7,047,297 B2 5 2006 Huntington eta . ( * ) Notice: Subject to any disclaimer, the term of this 3’} g/ig?en et al' patent is extended or adjusted under 35 731783060 B2 2/2007 Bamford U.S.C. 154(b) by 0 days. 7,272,613 B2 9/2007 Sim et a1. 7,484,000 B2 1/2009 Jiang (21) Appl. No.: 13/186,307 7,551,608 B1 6/2009 Roy Continued (22) Filed: Jul. 19, 2011 ( ) FOREIGN PATENT DOCUMENTS (65) Prior Publication Data KR 10-0547749 1/2006 US 2012/0079323 A1 Mar. 29, 2012 KR 10_2006_0028961 4/2006 KR 10-0748900 8/2007 Related US. Application Data OTHER PUBLICATIONS (63) Continuation of application No. 12/891,290, ?led on _ Sep. 27, 2010, and a continuation of application No. U'S' Appl' NO' 13/188’335’ ?led JUL 21’ 2011’ POCkhngton 12/891,438, ?led on Sep. 27, 2010. (Continued)

(51) Int- Cl- Primary Examiner * Bharat N Barot (74) Attorney, Agent, or Firm * Sheridan Ross RC. (52) US. Cl. (57) ABSTRACT USPC """"" " 709/225; 709/203; 709/229; 709/232; Systems and methods for transfer of data including establish 714/18; 370/389; 370/401 . . . _ _ _ mg two separate connectlons, the two separate connectlons (58) Fleld 0f ClaSSI?catlon SearCh _ including a high speed connection and a high integrity con USPC """""""" " 709/202T203’ 225T22_9’ 231T235 ’ nection. Blocks of data are exchanged over the high speed _ _ 370/389’ 40m4013 714/18T20 connection while the high integrity connection facilitates see apphcanon ?le for complete searCh hlsmry' communication of descriptor data regarding data received (56) References Cited over the hlgh speed connectlon. As such, the data transfer speed of the high speed connection is utilized while commu US. PATENT DOCUMENTS nication via the high integrity connection allows for data reliability features not provided by the high speed connection. 3,675,209 A 7/1972 Trost 4,839,453 A 6/1989 Chung et a1. 9 Claims, 12 Drawing Sheets

ESTABLISH A HIGH INTEGRITY 00111112011011 ,, AND A HIGHRECEIVER/"IND SPEED CONNECTION SENDER BETWEEN W j100 1' $ENDER AND RECEIVER EXCHANGE INFORMATION VIA HIGH INTEGRITY 104 CONNECTION REGARDING FILE SIZE AND FILE NAME INITIATE T ER OF PORTION VIA HIGH TY CONNECTION SENDER SENDS DESCR' FILE FOR REQUESTED R VIA HIGH INTEGRITY C

RECEIVER SENDS UPDATED DESCRIPTOR FILE VIA HIGH INTEGRITY CONNECTION US 8,732,306 B2 Page 2

(56) References Cited 2012/0081854 A1 4/2012 Sirpal et al. 2012/0083319 A1 4/2012 Sirpal et al. US PATENT DOCUMENTS 2012/0084673 A1 4/2012 Sirpal et al. 2012/0084674 A1 4/2012 Visosky 7,623,466 B2 * 11/2009 Whitehead ...... 370/250 2012/0084675 A1 4/2012 $111391 et al~ 7,627,343 B2 12/2009 Fade“ 2012/0084676 A1 4/2012 de PaZ 7,675,939 B2 3/2010 Kawamura et al‘ 2012/0084677 A1 4/2012 Sirpal et a1. 7,688,867 B1 3/2010 Kizhepat 2012/0084678 A1 4/2012 Sirpal et al. 7,719,830 B2 5/2010 HowaI-th 2012/0084679 A1 4/2012 Sirpal et al. 7,885,264 B2 2/2011 Tateno et al‘ 2012/0084680 A1 4/2012 Gimpl et a1. 8,010,646 B2 8/2011 Bier et al‘ 2012/0084681 A1 4/2012 Cassar 8,027,293 B2 * 9/2011 Spaur et al...... 370/329 2012/0084682 A1 4/2012 591391 et al~ 8,131,556 B2 3/2012 Bmon et al‘ 2012/0084686 A1 4/2012 Sirpal et a1. 8,161,175 B2 4/2012 Lu 2012/0084687 A1 4/2012 Sirpal et a1. 8,184,552 B2 5/2012 Onda et al‘ 2012/0084693 A1 4/2012 Sirpal et al. 8,373,538 B1 2/2013 Hildner et al‘ 2012/0084694 A1 4/2012 Sirpal et al. 8,385,200 B2 2/2013 Rainer et al‘ 2012/0084698 A1 4/2012 Sirpal et al. 8,391,928 B2 3/2013 Karaoguz et al‘ 2012/0084699 A1 4/2012 Sirpal et al. 8,532,124 B2 * 9/2013 Satterlee et al...... 370/401 2012/0084700 A1 4/2012 591391 et al~ 2001/0037406 A1 11/2001 Philbrick et a1. 2012/0084701 A1 4/2012 51112418431 2002/0002550 A1 1/2002 Berman 2012/0084706 A1 4/2012 Sirpal et al. 2002/0110134 A1 8/2002 Gracon et a1. 2012/0084709 A1 4/2012 Sirpal 2003/0063324 A1 4/2003 Takaoka 2012/0084710 A1 4/2012 Sirpal et a1. 2003/0097481 A1 5/2003 Richter 2012/0084712 A1 4/2012 Gimpl et a1. 2004/0121778 A1 6/2004 Hunkeler et al. 2012/0084714 A1 4/2012 Sgrpal er al~ 2004/0221004 A1 11/2004 Chal?n et a1. 2012/0084715 A1 4/2012 Sgrpal er al~ 2007/0083574 A1 * 4/2007 Gduh et al...... 707/204 2012/0084716 A1 4/2012 SITPal et al~ 2007/0223483 A1 * 9/2007 Huang et al...... 370/394 2012/0084718 A1 4/2012 Glmpl et 31 2007/0233994 A1 10/2007 Ye 2012/0084719 A1 4/2012 Sirpal et al. 2007/0248084 A1 * 10/2007 Whitehead ...... 370/389 2012/ 0084720 A1 4/2012 SITPal et al~ 2007/0300120 A1 12/2007 Kim et al. 2012/0084721 A1 4/2012 Glmpl er al Zoos/0162514 A1 7/2008 Franks et al‘ 2012/0084722 A1 4/2012 Cassar et al. Zoos/0201751 A1 8/2008 Ahmed et 31‘ 2012/0084723 A1 4/2012 Reeves et a1. 2009/0031092 A1 1/2009 Tsumura 2012/0084724 A1 4/2012 Sirpal et a1. 2009/0303999 A1 12/2009 Guguen et al. 2012/0084725 A1 4/2012 Sgrpal er al~ 2010/0235701 A1 9/2010 Choo 2012/0084726 A1 4/2012 Sirpal et al. 2010/0262711 A1 10/2010 BouaZiZi 2012/0084727 A1 4/2012 511114191411 2010/0304730 A1 12/2010 Huang et al. 2012/0084739 A1 4/2012 Sgrpal er al~ 2011/0078249 A1 * 3/2011 Blocksome et al...... 709/206 2012/0105363 A1 5/2012 591391 et al~ 2011/0093437 A1 4/2011 Sampathkumar 2012/0110486 A1 5/2012 Sirpal et a1. 2011/0096828 A1 4/2011 Chen et al. 2012/0110497 A1 5/2012 Glmpl er al 2011/0103377 A1 5/2011 Hua et al‘ 2012/0117495 A1 5/2012 Sirpal et al. 2012/0079001 A1 3/2012 Chincisan 2012/0124490 A1 5/2012 Sirpal et a1. 2012/0079076 A1 3/2012 Chincisan 2012/0135704 A1 5/2012 Gunasekara 2012/0081267 A1 4/2012 Sirpal et al‘ 2012/0144323 A1 6/2012 Sirpal et al. 2012/0081268 A1 4/2012 Sirpal et al‘ 2012/0174028 A1 7/2012 Sirpal et al. 2012/0081269 A1 4/2012 de paZ 2013/0086293 A1 4/2013 Bosse 2012/0081270 A1 4/2012 Gimpl et al. 2013/0210489 A1 8/2013 Joum 2012/0081271 A1 4/2012 Gimpl et al. 2013/0210494 A1 8/2013 Jouln 2012/0081280 A1 4/2012 Schrock et a1. 2012/0081289 A1 4/2012 Sirpal et a1. OTHER PUBLICATIONS 5854882535 2} 3458}; Egg} U.S. Appl. No. 13/571,668, ?led Aug. 20, 2012, Jouin 2012/0081302 A1 4000 Gimpl et all US. Appl. No. 13/571,724, ?led Aug. 10, 2012, Jouin. 2012/0081303 A1 4000 Cassar et al‘ US. Appl. No. 13/571,829, ?led Aug. 10, 2012, Jouin. 2012/0081304 A1 4000 Sirpal et al‘ US. Appl. No. 13/571,961, ?led Aug. 10, 2012, Jou1n 2012/0081305 A1 4000 Schrock U.S. Appl. No. 13/572,133, ?led Aug. 10, 2012, Jouin 2012/0081306 A1 4/2012 et al‘ US. NO. 13/187,026, Jul. 20, 2011, Chen. 2012/0081307 A1 4/2012 Sirpal et al‘ “1G”, Wikipedia, Printed at http://en.Wikipedia.org/Wiki/1G on Jun.

2012/0081308 A1 4/2012 Sirpal 61201212131169 ______2012/0081309 A1 4/2012 Sirpal et al‘ “2G”, W1k1ped1a, Printed at http://en.W1k1ped1a.org/W1k1/2G on Jun. 2012/0081310 A1 4/2012 Schrock 6, 2012, 4 Pages~ 2012/0081311 A1 4/2012 Sirpal et 31, “3G,” Wikipedia, printed Jun. 6, 2012, 8 pages (found at http://en. 2012/0081312 A1 4/2012 Sirpal et al. wikipediwrg/WmiBG) 2012/0081313 A1 4/2012 Sirpal et 31, “4G,” Wikipedia, printed Jun. 6, 2012, 10 pages (found at http://en. 2012/0081314 A1 4/2012 Sirpal et al. Wikipedia.org/Wiki/4G). 2012/0081315 A1 4/2012 Sirpal “5G”, Wikipedia, Printed at http://en.Wikipedia.org/Wiki/5G on Jun. 2012/0081316 A1 4/2012 Sirpal et a1. 6, 2012, 3 pages. 2012/0081317 A1 4/2012 Sirpal et al. “,” Wikipedia, printed Jun. 8, 2012, 11 pages (found at 2012/0081318 A1 4/ 2012 Sirpal et al. http://en.Wikipedia.org/Wiki/Bluetooth). 2012/0081319 A1 4/2012 Gimpl et a1. “Everything You Need to Know About 4G Wireless Technology”, 2012/0081322 A1 4/2012 Sirpal et 61. Techspot Guides, printed at http://WWW.techspot.corn/guides/272 2012/0081323 A1 4/2012 SirPal et al~ everything-about-4g/, printed on Jun. 8, 2012, 4 pages. 2012/0081397 A1 4/2012 de PaZ “Global Positioning System,”Wikipedia, last modi?ed Jan. 14, 2013, 2012/0081398 A1 4/2012 Sirpal et a1. 15 pages (found at http://en.Wikipedia.org/Wiki/GlobaliPosition 2012/0081399 A1 4/2012 Sirpal et al. inLSystem). 2012/0081400 A1 4/2012 Schrock “LapdockTM for Motorola ATRIX,” at http://WWW.motorola.corn/ 2012/0081401 A1 4/2012 Sirpal et al. Consumers/US-EN/Consumer-Product-and-Services/Mobile . . . , 2012/0081403 A1 4/2012 Sirpal et al. accessed Apr. 18, 2011, 1 page. US 8,732,306 B2 Page 3

(56) References Cited Ravi et al., “4G Mobile BroadbandiLTE Network Architecture and Protocol Stack”, International Journal of Research and Reviews in Ad OTHER PUBLICATIONS Hoc Networks, vol. 1, No. 1, Mar. 2011, 8 pages. Stein, S., “How does the Motorola AtriX 4G Lapdock compare with a “Location-based service,” Wikipedia, last modi?ed, Jan. 7, 2013, 10 laptop?” Crave4CNET, at http://news.cnet.com/8301-17938i105 pages (found at http://en.wikipedia.org/wiki/Location-basediser vice). 20031251-1.html, Feb. 9, 2011, 7 pages. “LTE Advanced,” Wikipedia, last modi?ed Dec. 24, 2012, 5 pages Vilches, “Everything You Need to Know About 4G Wireless Tech (found at http://en.wikipedia.org/wiki/LTEiAdvanced). nology”, printed from www.techspot.com/guides/272-everything “LTE (telecommunication),” Wikipedia, printed Jan. 15, 2013, 10 about-4g/, Apr. 29, 2010, 12 pages. pages (found at http://en.wikipedia.org/wiki/3GPPiLongiTermi Wikipedia, “Bandwidth (computing)”, Printed at http://en.wikipedia. Evolution). org/wiki/Networkibandwidth, on Jun. 6, 2012, 2 pages. “Microsoft Outlook 2010 Product Guide,” Microsoft, 2010, 65 Wikipedia, “Bandwidth optimization”, Printed at http:// en. pages. wikipedia.org/wiki/Bandwidthioptimization, on Jun. 6, 2012, 2 “Moore’s law,” Wikipedia, printed Jan. 15, 2013, 11 pages (found at pages. http://en.wikipedia.org/wiki/Moore’silaw). Wikipedia, “Bit rate”, Printed at http://en.wikipedia.org/wiki/Biti “Motorola ATRIX 4G Laptop Dock Review,” at http://www. rate on Jun. 6, 2012, 8 pages. phonearena.com/reviews/Motorola-ATRIX-4G-Laptop-Dock-Re Wikipedia, “IEEE 802.11”, Printed at http://en.wikipedia.org/wiki/ viewiid2667, Mar. 2, 2011, 6 pages. IEEEi802.11 on Jun. 8,2012, 12 pages. “Pandora Radio,” Wikipedia, printed Jan. 15, 2013, 7 pages (retrieved Wikipedia, “Measuring network throughput”, Printed at http://en. from http://en.wikipedia.org/wiki/PandoraiRadio). wikipedia.org/wiki/Bandwidthitest on Jun. 6, 2012, 7 pages. “Reliability (computer networking),” Wikipedia, last modi?ed Oct. Wikipedia, “Network performance”, Printed at http://en.wikipedia. 24, 2012, 2 pages (retrieved from http://en.wikipedia.org/wiki/Reli org/wiki/Comparisoniofilatencyiandithroughput on Jun. 6, abilityi(computerinetworking). 2012, 7 pages. “Roaming Guard,” CMI Technologies, Installation and User Manual Wikipedia “Protocol stack”, Printed at http://en.wikipedia.org/wiki/ Version 1.04, 2011, 8 pages. Protocolistack on Jun. 8, 2012, 4 pages. “RootMetrics. The one true picture of carrier performance.” Wikipedia, “Quality of service”, Printed at http://en.wikipedia.org/ RootMetrics, captured Dec. 22, 2011, 2 pages (retrieved from http:// wiki/Qualityiofiservice on Jun. 6, 2012, 11 pages. web.archive.org/web/201112222315 50/http://www.rootrnetrics. Wikipedia, “Throughput”, Printed at http://en.wikipedia.org/wiki/ com/). Throughput on Jun. 6, 2012, 7 pages. “Transmission Control Protocol,” Wikipedia, last modi?ed Jan. 14, Wikipedia “WiMAX”, Printed at http://en.wikipedia.org/wiki/ 2013, 18 pages (retrieved from http://en.wikipedia.org/wiki/Trans WiMAX on Jun. 6, 2012, 8 pages. missioniControliProtocol. International Search Report for International (PCT) Patent Applica “User Datagram Protocol,” Wikipedia, last modi?ed Jan. 9, 2013, 6 tion No. PCT/US2011/052563, mailed Feb. 10, 2012 3 pages. pages (retrieved from http://en.wikipedia.org/wiki/Useri International Search Report for International (PCT) Patent Applica DatagramiProtocol). tion No. PCT/US2011/052563, mailed Feb. 12,2012 3 pages. “Wi-Fi,” Wikipedia, printed Jun. 6, 2012, 7 pages (http://en. International Search Report for International (PCT) Patent Applica wikipedia.org/wiki/Wi-Fi). tion No. PCT/US201 1/052556, mailed Apr. 26, 2012 3 pages. “Wireless HDMI,” Wikipedia, last modi?ed Sep. 24, 2012, 1 page International Search Report for International (PCT) Patent Applica (found at http://en.wikipedia.org/wiki/WirelessiHDMI). tion No. PCT/US201 1/052355, mailed Apr. 19, 2012 3 pages. “Wireless Standard: 4G,” printed at http://www.nd.edu/-mhaenggi/ International Preliminary Report on Patentability for International NET/wireless/4G/, on Jun. 8, 2012, 6 pages. (PCT) Patent Application No. PCT/US20 1 1/052355, mailed Apr. 11, Burns, G, “Motorola ATRIX 4G Laptop Dock Review,” at http:// 2013 7 pages. androidcommunity.com/motorola-atriX-4g-laptop-dock-review International Preliminary Report on Patentability for International 20110220/, Feb. 20, 2011, 5 pages. (PCT) Patent Application No. PCT/US20 1 1/052563, mailed Apr. 11, Catacchio, Chad, “This smartphone has two huge screens . . . that 2013 6 pages. rotate,” The Next Web at http://thenexbvebcom/asia/2010/10/07/ International Preliminary Report on Patentability for International this-smartphone-has-two-huge-screens-that-rotate/, Jul. 21, 2011, 2 (PCT) Patent Application No. PCT/US20 1 1/052556, mailed Apr. 11, pages. 2013 6 pages. Google images, accessed Apr. 18, 2011, 6 pages. Of?cial Action for US. Appl. No. 12/891,290, mailed May 15, 2013 Google Search “wi? protocol stack”, Printed at http://wwwgoogle. 15 pages. com/search?q:wi?:protocol+stack&hl:en&qscr1:1&nord:1 Of?cial Action for US. Appl. No. 12/891,438, mailed Sep. 24,2012 &le:lT4 . . . on Jun. 8,2012, 15 pages. 16 pages. Harman03, “Kyocera Echo Dual-screen Android Phone,” posted 4 Of?cial Action for US. Appl. No. 12/891,438, mailed Mar. 1, 2013 weeks from Apr. 18, 2011, 3 pages. 19 pages. Mitchell, “Wireless Standardsi802.11b 802.11a 802.11g and 802. Notice of Allowance for US. Appl. No. 13/188,335, mailed Apr. 3, 11n” About.com Guide, Printed at http://compnetworking.about. 2013 14 pages. com/cs/wireless80211/a/aa80211standard.htm on Jun. 8, 2012, 2 Of?cial Action for US. Appl. No. 13/571,951 mailed Nov. 14,2013, pages. 9 pages. Mok et al. “Location determination using WiFi ?ngerprinting versus Of?cial Action for US. Appl. No. 13/572,133 mailed Nov. 19,2013, WiFi trilateration,” Journal of Location Based Services, Jun. 2007, 19 pages. pp. 145-159 (Abstract Only) (retrieved from http://dl.acm.org/cita Of?cial Action for US. Appl. No. 12/891,290, mailed Oct. 15,2013, tion.cfm?id:1451884). 7 pages. Oraskari, “Bluetooth versus WLAN IEEE 802.1 1X” Product Model Of?cial Action for US. Appl. No. 12/891,438, mailed Sep. 18,2013 ling and Realization Group (PM&RG) Department of Computer 18 pages. Science and Engineering Helsinki University of Technology, jyrki. oraskari@hut? 37266J, 5 pages. * cited by examiner

US. Patent May 20, 2014

lg? ?GHENTEGQTYCONNECHON EQIMEZEQIWEOE 128

R—@»S EHWMEOMOW

US. Patent May 20, 2014 Sheet 5 0f 12 US 8,732,306 B2 US. Patent May 20, 2014 Sheet 6 0f 12 US 8,732,306 B2

mmmmzxwwmw MJQQQE W mac?)ka ZQMQQMZDEEQQ mum/mm

EQEMWFM w mowwwuomm

US. Patent May 20, 2014 Sheet 8 0f 12 US 8,732,306 B2 mQE

MEmam US. Patent May 20, 2014 Sheet 9 0f 12 US 8,732,306 B2

/?3N @QE US. Patent May 20, 2014 Sheet 10 0f 12 US 8,732,306 B2

Q:

3N.. gm... @ww.. QR.. gml?wmQU

L L J US. Patent May 20, 2014 Sheet 11 0f 12 US 8,732,306 B2

244 f A 245 EEiEiiiiiiEiiiPM Eiiiiiiiiiiiii

248 m EiEiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

\. Y J 246 FEGN US. Patent May 20, 2014 Sheet 12 0f 12 US 8,732,306 B2

SOURCE M250 SQURCE WMZSG 25% 1 DESHNATEON M252 @ESTiNATEON “W252

FEG.12A FEG.1ES

SOURCE M250 SGURCE

254 H 7255

g DESTENATEON DESTiNATEON “M2512 US 8,732,306 B2 1 2 HIGH SPEED PARALLEL DATA EXCHANGE ensuring data packet delivery, the high reliability of the TCP WITH TRANSFER RECOVERY connection comes at a cost of speed. The acknowledgement messages exchanged between sender and receiver take time RELATED APPLICATIONS to transmit. In turn, these messages are exchanged during times that could otherwise be used for transferring data, thus This application is a continuation of US. patent applica limiting the overall transfer rate. For example, oftentimes tion Ser. No. 12/891,290 ?led Sep. 27, 2010 and entitled delays in the order of seconds are required waiting for out of “HIGH SPEED PARALLEL DATA EXCHANGE”, and is a order messages or waiting for retransmission of a packet. continuation of US. patent application Ser. No. 12/891,438 A UDP connection, on the other hand, provides high speed ?led Sep. 27, 2010 and entitled “HIGH SPEED PARALLEL data exchange, yet may sacri?ce features that help ensure the DATA EXCHANGE WITH RECEIVER SIDE DATA HAN integrity of data received at a receiving entity. In this regard, DLING”, both of which are incorporated herein by reference data packets (i.e., datagrams) sent via a UDP connection are in their entirety. not subjected to acknowledgement or other integrity checks similar to those present in a TCP connection. Thus, the trans BACKGROUND fer rate of a UDP connection may be higher than that of a TCP connection. However, there may be no mechanism in a UDP In order to facilitate communication between computing connection to help ensure that the all data packets were devices, data may be transmitted between devices in a format received, that all data packets arrived in order, and that there that is comprehensible by both the sending and receiving was no corruption of data during the transfer. Rather, data is devices. In this regard, protocols have been developed that 20 simply delivered to the Application layer in the form it was enable communication between computing devices con received. As such, UDP connections either rely on applica nected by way of a network or the Internet. These protocols tions to perform integrity checks, or assume that such integ provide a standardized format in which data may be sent over rity is of lesser importance than the overall speed of data a network. Accordingly, data may be sent between computing transport. In this regard UDP connections are valuable in devices on a network or over the Internet and be properly 25 certain applications such as Internet broadcasting, voice interpreted by the receiving computer. The mo st common set over-IP (VoIP) transmissions, queries to the Domain Name of protocols governing communication over or between net System (DNS), streaming media applications such as IPTV, works is the Internet Protocol Suite (commonly referred to as Trivial File Transfer Protocol (TFTP), online gaming, or TCP/IP). other time sensitive communications where a loss in data The Internet Protocol Suite includes several layers that 30 integrity is preferable to a slow communication due to the provide different functions at different levels of abstraction. time sensitive nature of the data. These layers consist of the Application layer, the Transport In short, a UDP connection emphasizes speed at the cost of layer, the Internet layer, and the Link layer. Within each of reliability, while a TCP connection emphasizes reliability at these layers, different protocols have been developed to facili the cost of speed. tate communication between computing devices. For 35 Other protocols been developed for data exchange that are instance, within the Transport layer many protocols have tailored for particular applications. One example of such a been developed in order to format data for communication tailored protocol is the BitTorrent protocol. BitTorrent allows over a network such that the sending and receiving computer for exchange of a relatively large amount of data without devices may properly direct the data to and from an appro dominating the bandwidth of any one computing device par priate application on each computer. These protocols may 40 ticipating in the data transfer. In this regard, a torrent ?le is provide different features depending upon the nature and obtained by a receiving computer that in turn uses the ?le to intended role of the protocol. For example, connection-ori seek and download small portions of a target ?le from various ented data stream support, reliability, ?ow-control, and error locations in the network (often called seeds). In this regard, correction may be provided by protocols within the Transport the torrent ?le directs the acquisition of data from a multitude layer. However, the feature set for each protocol may be 45 of different sources. However, BitTorrent was developed in different and may include or omit features to strike a balance order to provide relatively low bandwidth usage which is between performance (e. g., data transfer rates) and reliability spread across a large number of users in the network in order (e. g., data integrity at the receiving device). That is, a protocol to transfer data. Additionally, transfers using the BitTorrent tailored for high rates of data transfer generally includes protocol may use existing transport protocols (e. g. TCP), and fewer data reliability features, whereas protocols tailored for 50 are thus subject to the limitations presented by such transport high reliability may include reliability features that may limit protocols. As such, the data transfer is often slow as the usage data transfer rates. Two popular and widely used transport of any one user’s bandwidth is relatively low. layer protocols demonstrate this inherent balance between performance and reliability. These are the Transport Control SUMMARY Protocol (TCP) and the User Datagram Protocol (U DP). 55 TCP connections provide data transfers that help to ensure A ?rst aspect of the present invention includes a method of high data integrity at the receiving device, but generally pro transferring data between computing devices operable to vide slower data transfer speeds than speeds obtainable using communicate over an electronic network. The method a UDP connection. A TCP connection utilizes a positive includes sending data from a source device to a destination acknowledgement with retransmission technique that 60 device using at least one high speed connection. Also, the requires an acknowledgment message to be exchanged method includes communicating a descriptor regarding the between a receiving entity and a sending entity to con?rm that data from the source device to the destination device using at each individual data packet sent from a sender to a receiver least one high integrity connection. Additionally, data was in fact received at the receiver. If not received, the data received at the destination device is correlated to the descrip packet is retransmitted until acknowledgement is received 65 tor received at the destination device. The method further from the receiver. While this may help to ensure that the data includes modifying the descriptor to identify data received at being sent arrives in the correct order and may assist in the destination device and informing the source device of the US 8,732,306 B2 3 4 identity of data not received by the destination device using may include transmitting the descriptor having to ggled bits to the at least one high integrity connection. The method also the source device via the high integrity connection. includes resending data not received by the destination device In another embodiment, the method may be repeated until from the source device to the destination device using the at each of the blocks in the ?rst portion is received at the desti least one high speed connection. nation device. As such, the method may be repeated for a A second aspect of the present invention includes a com plurality of portions until all of the ?le is transferred. puting device that is operable to communicate with other In yet another embodiment, a plurality of parallel data computing devices to perform a parallel data transfer. The transfer connections may be established. Each parallel data computing device includes a microprocessor, a memory in transfer connection may include a high speed connection and operative communication with the microprocessor that is a high integrity connection, and each parallel transfer con operative to store one or more ?les, a network communication nection may be operable to perform a method to transfer a module in operative to communicate data packets to a remote respective one of a plurality of portions of a ?le. Furthermore, a plurality of parallel data transfer connections may be estab device on a network using a high integrity connection and a lished. Each parallel data transfer connection may include at high speed connection, and a parallel data transfer module in least one high integrity connection and a plurality of high operative communication with the microprocessor and the speed connections. The plurality of parallel high speed con network communication device. The parallel data transfer nection may be operable to perform a method as recited above module is operable to receive a descriptor over the high integ in concert with the at least one high integrity connections to rity connection regarding blocks of data received over the transfer a respective one of a plurality of portions of a ?le. high speed connection, update the descriptor ?le based on the 20 In another embodiment, the at least one high speed con blocks of data received over the high speed connection, and nection may employ a User Datagram Protocol (U DP). Addi communicate the updated descriptor ?le over the high integ tionally, the at least one high integrity connection may rity connection using the network device. employ a Transmission Control Protocol (TCP). Also, the A third aspect of the present invention includes a method source device may be a server and the destination device may for receiving data at a destination device from a source device. 25 be a client device. The client device may a handheld comput The method includes receiving data at the destination device ing device (e.g., a smartphone, PDA, tablet computer, or the from the source device over at least one high speed connec like). In addition, the source device and the destination device tion. Additionally, the method includes acquiring a descriptor may both be servers. at the destination device regarding the data from the source In still further embodiments, the method may be executed device over at least one high integrity connection. Data 30 as an application directly controllable by a user. Commands received from the source device is correlated at the destina may be received from a user by at least one of a command line tion device to the descriptor. The method also includes modi interface and a graphical user interface. The method may also fying the descriptor based on data received at the destination executed as a service controllable by an application. The device over the high speed connection. In addition, the modi service may be controllable by way of at least one of an ?ed descriptor is sent to the source device and the destination 35 application programming interface, a script, and a remote device receives data that has been resent by the source device procedure call. The method may be initiated by the source using the at least one high speed connection. device or may be initiated by the destination device. A fourth aspect of the present invention includes a method Any of the embodiments, arrangements, or the like dis of sending data from a source device to a destination device. cussed herein may be used (either alone or in combination The method includes sending data from the source device to 40 with other embodiments, arrangements, or the like) with any the destination device using at least one high speed connec of the disclosed aspects. Any feature disclosed herein that is tion. Additionally, the method includes transmitting a intended to be limited to a “singular” context or the like will descriptor regarding the data from the source device to the be clearly set forth herein by terms such as “only,” “single,” destination device using at least one high integrity connec “limited to,” or the like. Merely introducing a feature in tion. Also, the method includes receiving, at the source 45 accordance with commonly accepted antecedent basis prac device, a modi?ed descriptor including the identity of data tice does not limit the corresponding feature to the singular not received by the destination device using the at least one (e.g., indicating that a data transfer protocol includes “the high integrity connection. The method includes resending, at high speed connection” alone does not mean that the data the source device, data not received by the destination device transfer protocol includes only a single high speed connec to the destination device using the at least one high speed 50 tion). Moreover, any failure to use phrases such as “at least connection. one” also does not limit the corresponding feature to the A number of feature re?nements and additional features singular (e.g., indicating that data transfer protocol includes are applicable to any of the aspects presented herein. These “a high speed connection” alone does not mean that the data feature re?nements and additional features may be used indi transfer protocol includes only a single high speed connec vidually or in any combination. As such, each of the following 55 tion). Use of the phrase “at least generally,” “at least par features that will be discussed may be, but are not required to tially,” or the like in relation to a particular feature encom be, used with any other feature or combination of features of passes the corresponding characteristic and insubstantial the any of the aspects presented herein. variations thereof. Finally, a reference of a feature in conjunc For instance, in one embodiment, the data may include a tion with the phrase “in one embodiment” does not limit the ?rst portion of a ?le. The ?rst portion may include a plurality 60 use of the feature to a single embodiment. of blocks. Additionally, the descriptor may include a ?le which contains a set of unique elements. Each unique element BRIEF DESCRIPTION OF THE DRAWINGS may correspond to a different one of the plurality of blocks. For example, the unique element may be a bit in the ?le. In an FIG. 1 is a ?owchart of an embodiment of a protocol for embodiment, the modifying may include toggling at least one 65 parallel data transfer. bit in response to receipt of a corresponding block of the ?rst FIG. 2 is a schematic representation of an embodiment of a portion at the destination device. In this regard, the informing descriptor ?le and one corresponding block. US 8,732,306 B2 5 6 FIG. 3 is a graphical representation of a descriptor ?le regarding a ?le name and a ?le size of a ?le to be transferred being updated in response to receipt of blocks according to an from the sender to the receiver. Additionally, the receiver may, embodiment of parallel data transfer. based on the exchanged ?le information, allocate an appro FIGS. 4A-B depict a graphical representation of an priate amount of memory at the receiver device to accommo embodiment of physical memory in a computing device. date the ?le as will be discussed fur‘ther below. As this FIG. 5 depicts a schematic view of an embodiment of a exchanged information may comprise only metadata regard system of computing devices in operative communication. ing the information to be exchanged via the high speed con FIG. 6 is a schematic view of an embodiment of a comput nection, the amount of data exchanged via the high integrity ing device capable of performing high speed parallel data connection may be small compared to the amount of data to transfers. be exchanged via the high speed connection. FIGS. 7-10 are screenshots of an embodiment of a graphi With additional reference to FIG. 11, a graphical represen cal user interface for controlling a parallel data transfer mod tation of the division of a ?le into small pieces is shown. A ?le ule. 242 is represented as a line segment, wherein the length of the FIG. 11 is a graphical representation of an embodiment of the division of a ?le into superblocks, portions, and blocks. line segment is representative of the amount of data compris FIGS. 12A-D are graphical representations of different ing the ?le 242. The ?le 242 may in turn be divided into a embodiments of a parallel data transfer protocol having dif number of superblocks 244. Each of the superblocks may in ferent numbers of connections. turn be divided into portions 246. Each of the portions 246 may be divided into a number of blocks 248. Each of the DETAILED DESCRIPTION 20 blocks 248 may be transmitted over the high speed connec tion as a single data packet. Thus, each block 248 may be While the invention is susceptible to various modi?cations provided with header data corresponding to the protocol used and alternative forms, speci?c embodiments thereof have for the high speed connection. Furthermore, each portion may been shown by way of example in the drawings and are have associated with it a descriptor ?le. The descriptor ?le described in detail herein. It should be understood, however, 25 may have a bit corresponding to each block 248 in a portion that it is not intended to limit the invention to the particular 246. The relationship between blocks 248 and descriptor ?les form disclosed, but rather, the invention is to cover all modi will be discussed further below. Additional data regarding the ?cations, equivalents, and alternatives falling within the ?le such as the number of superblocks 244 to be exchanged, scope of the invention as de?ned by the claims. the number of portions 246 per superblock 244, and the The present disclosure is generally directed to parallel data 30 number of blocks 248 per portion 246 may also be exchanged exchange between computing devices. The exchange at step 104 of FIG. 1. involves establishing at least one pair of connections that The protocol 100 may include the receiver and/or sender include a high speed connection and a high integrity connec initiating (106) the transfer a portion of a superblock via the tion. As used herein, each one of the high speed and high high integrity connection. For instance, in order to initiate integrity connections may be judged relative to the other. That 35 (106) the data transfer, the receiver may request the ?rst is, the high speed connection may be capable of data transfer portion of the ?rst superblock. In another embodiment, the speeds at least greater than the high integrity connection, and sender may initiate a transfer of the ?rst portion of the super the high integrity connection may provide at least greater data block. Thus, the initiation of a transfer of a portion may reliability than the high speed connection. In one particular originate at the sender or receiver. embodiment, the high speed connection utilizes a UDP pro 40 In any regard, the protocol may include sending (108) a tocol and the high integrity connection utilizes a TCP proto descriptor ?le for the portion to be transferred via the high col. integrity connection. The descriptor ?le may include a num The high integrity connection may be a side channel that is ber of unique elements. Each unique element may correspond used to communicate descriptor data regarding the status of to a different one of the blocks to be sent for the portion. In one data transferred over the high speed connection. As such, 45 embodiment, the descriptor ?le is a 32 bit word, such that the while the high integrity connection may provide slower data descriptor ?le corresponds to 32 blocks of data that comprise transfer rates than the high speed connection, the amount of one portion of a superblock. In this regard, each bit is a unique data communicated over the high integrity connection may be element. Alternative embodiments may include that the small compared to the amount of data communicated over the unique element is a larger portion of the ?le, such as a byte or high speed connection. 50 other portion of the ?le. During a data transfer, the majority of the data exchanged The sender may send (110) the blocks of the portion from between a sender and receiver may be exchanged over the the sender to the receiver via the high speed connection. It will high speed connection. The high integrity connection may be be understood that because the blocks are sent via the high used to exchange information used to provide data integrity speed connection, there may few or no features to help ensure features typically not available using the high speed connec 55 reliable data delivery provided by the high speed connection. tion. For example, a data checksum may be provided (e.g., in a FIG. 1 depicts an embodiment of one such protocol 100 for UDP header) to ensure the contents of each individual block parallel data transfer between a sender (i.e., a source device) are accurately received, however no mechanism may be pro and receiver (i.e., a destination device). The protocol 100 may vided to help ensure all blocks are received or to ensure the include establishing (102) a high speed and a high integrity 60 blocks are received in the correct order. connection between the receiver and the sender. In one par As such, the descriptor ?le may be updated (112) to re?ect ticular embodiment, the high speed connection may be a UDP whether blocks send by the sender were received at the connection and the high integrity connection may be a TCP receiver. Updating the descriptor ?le may include toggling connection. bits that correspond to blocks that are received at the receiver. The protocol 100 may further include the sender and 65 Thus, the updated descriptor ?le may include bits indicating receiver exchanging (104) information via the high integrity the ?les that have been received at the receiver and ?les that connection. This information may include information have yet to be received at the receiver. US 8,732,306 B2 7 8 As an example, for a portion comprising six blocks of data, Transfers between sender and receiver via a high integrity a corresponding six bit descriptor ?le may be sent (108). As connection 148 are depicted in the left column, and transfers such, upon initial receipt of the descriptor ?le at the receiver between sender and receiver via a high speed connection 150 (i.e., prior to receiving any blocks via the high speed connec are depicted in the right column. In the depicted embodiment, tion) the descriptor ?le may be populated with zeros indicat an eight bit descriptor ?le 128 is initially sent from the sender ing no blocks have been received. Thus, the descriptor ?le to the receiver over the high integrity connection 148. Each may be represented as [000000]. After having received the one of the eight bits of the descriptor ?le 128 is populated with ?rst block (block 0), third block (block 2), and fourth block a zero to indicate that none of the eight blocks (132-146) (block 3), the descriptor ?le may be updated (112) to re?ect corresponding to the descriptor ?le 128 has been received at which of the blocks were received. Thus, the updated descrip the receiver. Subsequently, block 0 132, block 2 136, block 3 tor ?le may be represented as [101 100]. When all blocks have 138, block 5 142, and block 7 146 may be sent via the high been received, the descriptor ?le may be represented as speed connection 150 and received at the receiver. Each of the [l l l l l l]. blocks (132-146) may include an identi?er (130a-130h). The Returning to FIG. 1, the receiver may send (114) an respective identi?ers (130a-130h) may be used to correlate updated descriptor ?le via the high integrity connection to the each of the blocks (132-146) to a corresponding one of the receiver. At 116, the updated descriptor ?le may be used to bits of the descriptor ?le 128. determine which blocks of the requested portion of the It may be the case that all eight blocks (132-146) are sent request superblock have been received. If not all blocks of the via the high speed connection 150; however, due to network requested portion have been received the sender may resend conditions or other factors, some blocks may not all be (118) the blocks that were not received based on the updated 20 received at the receiver. In this regard, the descriptor ?le 128 descriptor ?le. may be updated with respect to the received blocks. This The process may then loop such that the descriptor ?le is updated descriptor ?le is designated with a single prime updated (112) based on any newly received blocks, the non (128'). The bits associated with block 0 132, block 2 136, received blocks are sent (114) via the high integrity connec block 3 138, block 5 142, and block 7 146 in the updated tion to the sender, and it is determined (116) whether all 25 descriptor ?le 128' have been populated with ones to indicate blocks of the requested portion have been received. This loop in these blocks were in fact received. The updated descriptor may be repeated until all blocks of the requested portion have 128' may then be transmitted via the high integrity connection been received at the receiver or until the process times out 148 to the sender. Based on this received updated descriptor (e. g., performs a predetermined number of loops without any ?le 128', the sender may resend the non-received blocks (i.e., blocks being received by the receiver or without receiving an 30 block 1 134, block 4 140, and block 6 144). Block 1 134, updated descriptor ?le). block 4 140, and block 6 144 may subsequently be received If all blocks of the requested portion have been received, via the high speed connection 150. As such, the descriptor ?le the protocol 100 may proceed to determining (119) if the 128' may again be updated. This updated descriptor ?le is entire ?le transfer has been completed. If all portions of all designated with a double prime (128"). Thus, the updated superblocks (e. g., the entire ?le) have been received, the 35 descriptor ?le 128" indicates all blocks have been received transfer may be ended. If there are remaining portions of (i.e., all bits are set to one). The updated descriptor ?le 128" superblocks to be received, the process may loop such that the may then be sent via the high integrity connection 148 to the transfer of the next portion of the superblock is initiated receiver. Thus, the receiver is noti?ed that all blocks have (106). Alternatively, the transfer of the ?rst portion of the next been received at the receiver and that the transfer of the superblock may be initiated (106). The protocol 100 may be 40 portion corresponding to the descriptor ?le 128 is complete. repeated until all portions of all superblocks into which the Thus, blocks of data corresponding to a bit in a descriptor ?le was divided have been transferred. ?le may be transferred between machines. Each group of With additional reference to FIG. 2, a graphical represen blocks correlated to the same descriptor ?le may comprise a tation of a descriptor ?le 120 and a block 122 is shown. For portion. Blocks may have a predetermined size. For example, illustrative purposes, a 32 bit descriptor ?le 120 is depicted. 45 in one embodiment, each block may have about 1440 bytes or Thus, in this particular embodiment, each superblock may be less. Blocks may be sized such that the data of the block, the divided into portions having 32 blocks. However, a descriptor identi?er correlating the block to a descriptor ?le, and any ?le with a different number of bits may be provided such that header information added to the block to facilitate communi each portion of the superblock contains a corresponding num cation via a protocol (e.g., a UDP header) does not render the ber of bits (e.g., a 20 bit descriptor ?le would result in portions 50 block too large to transmit using the selected protocol. In one of 20 blocks, etc.). That is, the number of bits used for the embodiment, each superblock may have associated with it descriptor ?le may determine the size of the portions into 1000 blocks. As brie?y discussed above, the number of por which each superblock is divided. Prior to being sent over the tions of blocks within a superblock may be determined by the high speed connection, each block 122 may be appended with number of bits of the descriptor ?le. That is, a portion may an identi?er 124. The identi?er 124 may be used to correlate 55 comprise all the blocks correlated to a common descriptor the block 122 with the appropriate corresponding bit 126 for ?le. For instance, in an embodiment, where a superblock has the descriptor ?le 120. As depicted, block 7 of the portion is 1000 blocks, and a 20 bit descriptor ?le is utilized, the super shown corresponding to bit 7. Thus, the identi?er 124 may be block may have 50 portions. For each of these portions, each used to correlate block 7 with bit 7 when block 7 is received bit of a 20 bit descriptor may have a corresponding block. at the receiver. Bit 7 may be toggled (i.e., a 0 value changed to 60 Thus, during a transfer, each portion may be sent via the a 1 value) upon receipt of block 7 at the receiver. In this process described above with reference to FIGS. 1 and 3. The regard, the status of whether each block of the portion being transfer of a complete ?le may entail dividing the ?le into transferred has been received may be tracked using the superblocks, dividing the superblocks into portions, and cor descriptor ?le 120. This is further illustrated with reference to relating each block of a portion to a bit in a descriptor ?le to FIG. 3. 65 facilitate transfer. FIG. 3 is a graphical representation of the status of a Additionally, while the foregoing has generally discussed a descriptor ?le 128 and corresponding blocks (132-146). single instance of a parallel transfer using a high speed con US 8,732,306 B2 9 10 nection and a high integrity connection, it is also contem rity connections are established for each parallel transfer plated that a plurality of parallel transfers using the method connection. For instance, a graphical representation of vari described above may be carried out simultaneously. In this ous embodiments of parallel transfer connections are shown regard, a plurality of pairs of high speed and high integrity in FIGS. 12A-D. In each of the embodiments depicted, a connections may be established between a sender and parallel transfer connection is established between a source receiver. For instance, in an embodiment utilizing a UDP device 250 and a destination device 254. As shown in FIG. protocol for the high speed connection and a TCP protocol for 12A, a single high integrity connection 254 and a single high the high integrity connection, a unique port number may be speed connection 256 is established. FIG. 12B shows a plu used for each UDP and TCP connection comprising a high rality of high integrity connections 254 and a single high speed connection and high integrity connection pair. In one speed connection 256. In this regard, multiple descriptors or embodiment, TCP Port 10600 is used as a listening port for portions of a single descriptor may be exchanged using the the sending device and TCP port 10601 is used as a listening high integrity connections 254 to conduct a transfer as dis port for a remote procedure call to the protocol, as will be described further below. UDP Ports 10610-10640 and 10650 cussed above, while blocks are transferred over the single 10670 may be used for sending and receiving device pairs. In high speed connection 256. one embodiment, up to 16 parallel transfer connections may Additionally, FIG. 12C depicts a parallel transfer connec be established, each parallel transfer connection may include tion wherein a single high integrity connection 254 is pro a high speed connection and a high integrity connection. vided along with a plurality of high speed connections 256. More parallel transfer connections could be provided; how The high integrity connection 254 may be operative to trans ever the available bandwidth of a device may preclude the 20 mit descriptor data between the source device 250 and the effective use of more than 16 parallel connections. destination device 256 regarding blocks that have been trans The use of multiple parallel transport connections simul mitted/received over the plurality of high speed connections taneously may facilitate even higher data transfer rates as 256. In addition, FIG. 12D depicts an embodiment of a par each parallel transfer connection may work to simultaneously allel transfer connection wherein a plurality of high integrity transfer a portion of a superblock as described above. In this 25 connections 254 and a plurality of high speed connections regard, each parallel transfer connection may be tasked with 256 are provided. In this regard, a parallel transfer connection transferring one portion of the superblock. After completing may include more than one high speed connection 256 and/or the transfer of a portion of the superblock, each connection high integrity connection 254 that may be used to carry out may be tasked with transfer of another portion of the super the transfer as described above. block until all portions have been transferred. Once the super 30 Parallel transfer connections may process non-adjacent block has been completely transferred, the parallel transfer portions of a ?le simultaneously. By non-adjacent portions of connections may be tasked with transfer of another super a ?le, it is meant that portions of the ?le may be transferred out block. of order. Thus, the presently contemplated process of data For example, one embodiment may include three parallel transfer may provide a mechanism of ordering a received ?le transfer connections operative to transfer ?ve portions of a 35 despite individual blocks of the ?le being received at the superblock. In this regard, the superblock maybe divided into receiver out of order. portions A, B, C, D, and E. The ?rst parallel transfer connec For instance, upon initiation of a ?le transfer, the ?le name tion may begin transferring portion A, the second parallel and ?le size may be provided. Thus, the receiver may be transfer connection may begin transferring portion B, and a aware of the size of the ?le. This, coupled with known infor third parallel transfer connection may begin to transfer por 40 mation regarding the size and number of superblocks, por tion C. The parallel transfer connection that ?rst completes tions, and blocks may be used to determine the appropriate the transfer of a portion may begin transferring the next location in memory of a given amount of received data. portion (portion D). The next parallel transfer connection that Accordingly, despite receiving blocks of a ?le out of order, a completes a transfer may be tasked with downloading portion receiver may be able to write a block to an appropriate loca E. In the event a parallel transfer connection completes the 45 tion in memory such that once all blocks have been received, transfer of a portion and no remaining portions of the super the ?le is identically reproduced at the receiver. block are available, the parallel transfer connections may be For instance, a ?le having two or more portions may be idled until all portions of the superblock have been down transferred such that the two or more portions are transmitted loaded. Once all portions of the superblock have been down simultaneously using two or more parallel transfer connec loaded, the process may proceed to a second superblock 50 tions. Thus, blocks may be received simultaneously that wherein the foregoing may be repeated. Thus, when a parallel belong to different portions of the ?le. Thus, the receiver may transfer connection completes a transfer of a portion, the next be operative to write the received block into memory at an portion to be transferred may be assigned to the available appropriate location despite the receipt of the blocks out of parallel transfer connection. However, once all portions have order. For example, this may be accomplished by writing to been transferred or are actively being transferred by another 55 an absolute position associated with the correct location of a parallel transfer connection, any free parallel transfer connec particular block or may be accomplished by using a known tions may be idled upon completion of the transfer of the offset from a known reference in the memory (e. g., the loca superblock. tion in the memory associated with the beginning of the ?le) In this regard, the transfer process may be implemented on A graphical representation of one embodiment writing a superblock-by-superblock basis such that each superblock 60 non-adjacent data into a memory based on an offset is shown is fully transferred prior to initiating the transfer of another in FIGS. 4A-B. The receiver, upon initiation of the data trans superblock. Thus, each superblock of the ?le may be trans fer, may receive information regarding the total size of the ?le ferred in this manner until the entire ?le has been transferred. to be received and the size of each block and each portion. Additionally, while the foregoing has described a parallel Thus, the receiver may allocate the appropriate amount of transfer connection including a single high integrity connec 65 local memory 188 to store the ?le that is to be received. When tion and a single high speed connection, further embodiments receiving the ?le information, the receiver may determine if may be provided where additional high speed or high integ enough memory exists at the receiver. If insu?icient memory