Reasons
ThelinklayerhasthefeatureofmaximumtransmissionunitMTU,whichlimitsthemaximumlengthofdataframes,anddifferentnetworktypeshaveanupperlimit.TheMTUofEthernetis1500,youcanusethenetstat-icommandtocheckthisvalue.IfthereisadatapackettobetransmittedattheIPlayerandthelengthofthedatapacketexceedstheMTU,theIPlayerwillfragmentthedatapacketsothatthelengthofeachfragmentislessthanorequaltotheMTU.WeassumethataUDPdatapacketistobetransmitted,theMTUofEthernetis1500bytes,thegeneralIPheaderis20bytes,theUDPheaderis8bytes,andthepayloadpartofthedataisreservedfor1500-20-8=1472bytes.Ifthedatapartislargerthan1472bytes,fragmentationwilloccur.
Подробно въведение
Шардингът е тип разделяне на база данни, което разделя големи бази данни на по-малки, по-бързи и по-лесни за управление части. Тези части се наричат фрагменти от данни. Думата фрагмент означава малка част от цялото.
JasonTeesaid:"Inshort,ashardingdatabaseneedstodividethedatabaseintomultiplesmalldatabasesthathavenocommonground,andtheycanbespreadacrossmultipleservers."
p>Technicallyspeaking,shardingissynonymouswithhorizontalpartitioning.Inpractice,thistermisoftenusedtorefertoalldatabasepartitionsthatmakealargedatabaseeasiertomanage.
Thecoreconceptofshardingisbasedonanidea:thesizeofthedatabaseandthenumberoftransactionsperunittimeonthedatabaseincreaselinearly,andtheresponsetimeofqueryingthedatabaseincreasesexponentially.
Inaddition,thecostofcreatingandmaintainingalargedatabaseinoneplacewillincreaseexponentially,becausethedatabasewillrequirehigh-endcomputers.Conversely,datafragmentscanbedistributedtoalargenumberofmuchcheapercommercialservers.Intermsofhardwareandsoftwarerequirements,datafragmentationisrelativelyunrestricted.
Insomecases,databaseshardingcanbedonesimply.Splittingtheuserdatabasebygeographiclocationisacommonexample.Usersontheeastcoastareassignedtooneserver,andusersonthewestcoastareassignedtoanotherserver.Assumingthatnouserhasmultiplegeographiclocations,thistypeofpartitioniseasytomaintainandcreaterules.
Butdatashardingcanbeamorecomplicatedprocessinsomecases.Forexample,ifadatabaseholdsverylittlestructureddata,shardingmaybeverycomplicated,andtheresultingfragmentationmaybedifficulttomaintain.
Fragmentationprocess
ForeachIPdatagramsentbythesender,itsidentificationfieldcontainsavalue.Thisvalueiscopiedtoeachfragmentwhenthedatagramisfragmented.Theflagfieldusesonebittoindicate"moreslices".Exceptforthelastslice,everyotherslicethatcomposesthedatagrammustsetthisbitto1.Thefragmentoffsetfieldreferstothepositionofthefragmentoffsetfromthebeginningoftheoriginaldatagram.Inaddition,whenthedatagramisfragmented,thetotallengthofeachfragmentshouldbechangedtothelengthofthefragment.
И накрая, има бит в полето за флаг, наречено "нефрагментиран" бит. Ако този бит е на 1, IP няма да фрагментира дейтаграмата. Вместо това дейтаграмата се отхвърля и ICMP съобщение за грешка се изпраща до инициатора.
AftertheIPdatagramisfragmented,eachfragmentbecomesapacketwithitsownIPheader,andisindependentofotherpacketswhenselectingaroute.Inthisway,thesepiecesofdatagrammaybeoutofsequencewhentheyarriveatthedestination,butthereisenoughinformationintheIPheaderforthereceivingendtoassemblethesepiecesofdatagramcorrectly.
Техническа информация
IP заглавката съдържа информацията, необходима за фрагментиране и реорганизация:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+
|Идентификация|R|DF|MF|FragmentOffset|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+
||||
Identification:TheidentificationfieldoftheIPdatapacketsentbythesenderisasinglevalue,whichiscopiedtoeachsliceduringfragmentation.
R: Keepunused.
DF: Не фрагментирайте, "Не фрагментирайте" бит. Ако това е на 1, IP плейърът няма да фрагментира дейтаграмата.
MF:MoreFragment, "още фрагменти", с изключение на последния фрагмент, този бит трябва да бъде зададен на 1 за всеки друг фрагмент, който съставя дейтаграмата.
FragmentOffset:Thepositionofthefragmentoffsetfromthebeginningoftheoriginaldatapacket.Thenumberofbytesoftheoffsetisthisvaluemultipliedby8.
Inaddition,whenthedatagramisfragmented,thetotallengthofeachfragmentshouldbechangedtothelengthofthefragment.