Նագլի ալգորիթմի ակնարկ TCP ցանցային հաղորդակցության համար

Բովանդակություն:

Նագլի ալգորիթմի ակնարկ TCP ցանցային հաղորդակցության համար
Նագլի ալգորիթմի ակնարկ TCP ցանցային հաղորդակցության համար
Anonim

Նագլի ալգորիթմը, որն անվանվել է ինժեներ Ջոն Նագլի պատվին, նախագծված է նվազեցնելու ցանցի գերբեռնվածությունը, որը առաջանում է TCP հավելվածների հետ կապված փոքր փաթեթների խնդիրների պատճառով: UNIX-ի իրականացումները սկսեցին օգտագործել Nagle ալգորիթմը 1980-ականներին, և այն այսօր մնում է TCP-ի ստանդարտ հատկանիշ:

Ինչպես է աշխատում Nagle ալգորիթմը

Նագլի ալգորիթմը մշակում է TCP հավելվածների ուղարկող կողմի տվյալները՝ Nagling կոչվող մեթոդով: Այն հայտնաբերում է փոքր չափի հաղորդագրությունները և կուտակում է այդ հաղորդագրությունները ավելի մեծ TCP փաթեթներում, նախքան տվյալներ ուղարկելը լարով: Այս գործընթացը խուսափում է անհարկի մեծ քանակությամբ փոքր փաթեթների առաջացումից:

Նագլի ալգորիթմի տեխնիկական բնութագրերը հրապարակվել են 1984 թվականին որպես RFC 896: Որոշումները, թե որքան տվյալներ պետք է կուտակվեն և որքան ժամանակ սպասեն ուղարկումների միջև, կարևոր են դրա ընդհանուր կատարողականի համար:

Նագլինգի օգուտները

Nagling-ը կարող է արդյունավետորեն օգտագործել ցանցային կապի թողունակությունը՝ հաշվի առնելով ուշացումները կամ ուշացումները: RFC 896-ում նկարագրված օրինակը ցույց է տալիս թողունակության պոտենցիալ առավելությունները և դրա ստեղծման պատճառը:

  • Եթե ստեղնաշարի ստեղնաշարերը ընդհատող TCP հավելվածը ցանկանում է մուտքագրվող յուրաքանչյուր նիշը փոխանցել ստացողին, այն կարող է ստեղծել մի շարք հաղորդագրություններ, որոնցից յուրաքանչյուրը պարունակում է 1 բայթ տվյալ:
  • Նախքան այս հաղորդագրությունները ցանցով ուղարկելը, յուրաքանչյուրը պետք է փաթեթավորված լինի TCP վերնագրի տեղեկատվությամբ, ինչպես պահանջվում է TCP/IP-ի կողմից: Յուրաքանչյուր վերնագրի չափը տատանվում է 20-ից 60 բայթ:
  • Առանց շփոթվելու, այս օրինակ հավելվածը կստեղծի ցանցային հաղորդագրություններ, որոնք բաղկացած են 95 տոկոս կամ ավելի վերնագրի տեղեկատվությունից (առնվազն 20-ը 21 բայթից) և 5 տոկոս կամ ավելի քիչ իրական տվյալներ ուղարկողի ստեղնաշարից:Օգտագործելով Nagle ալգորիթմը, նույն տվյալները կարող են փոխանցվել ավելի քիչ հաղորդագրությունների միջոցով, ինչը հանգեցնում է թողունակության մեծ խնայողության:

Հավելվածները վերահսկում են Nagle ալգորիթմի օգտագործումը TCP_NODELA վարդակից ծրագրավորման տարբերակով: Windows, Linux և Java համակարգերը սովորաբար միացնում են Nagle-ը լռելյայն: Հետևաբար, այդ միջավայրերի համար գրված հավելվածները պետք է նշեն TCP_NODELAY՝ ալգորիթմն անջատելու համար:

Image
Image

սահմանափակումներ

Հավելվածները, որոնք պահանջում են արագ ցանցային արձագանք, օրինակ՝ տեսազանգերը և առցանց խաղերը, կարող են լավ չաշխատել, երբ Nagle-ը միացված է: Այն ձգձգումները, որոնք առաջանում են, մինչ ալգորիթմը լրացուցիչ ժամանակ է պահանջում տվյալների ավելի փոքր կտորներ հավաքելու համար, կարող են նկատելի ուշացում առաջացնել էկրանին կամ թվային աուդիո հոսքում: Նման հավելվածները սովորաբար անջատում են Nagle-ը։

Այս ալգորիթմն ի սկզբանե մշակվել է այն ժամանակ, երբ համակարգչային ցանցերն աջակցում էին ավելի քիչ թողունակություն, քան այսօր:Վերևում նկարագրված օրինակը հիմնված էր Ջոն Նագլի փորձառությունների վրա 1980-ականների սկզբին Ford Aerospace-ում, որտեղ անհասկանալի փոխզիջումները Ford-ի դանդաղ, ծանր բեռնված, միջքաղաքային ցանցի վրա լավ իմաստալից էին: Այսօր ավելի ու ավելի քիչ իրավիճակներ են լինում, երբ ցանցային հավելվածները կարող են օգտվել նրա ալգորիթմից:

Նագլի ալգորիթմը կարող է օգտագործվել միայն TCP-ով: Այլ արձանագրություններ, ինչպիսիք են UDP-ն, չեն աջակցում այն:

Խորհուրդ ենք տալիս: