UIP (software)
યુ. આઇ. પી. એ ટી. સી. પી./આઇ. પી. નેટવર્ક પ્રોટોકોલ સ્ટેકનું ઓપન સોર્સ અમલીકરણ છે જેનો હેતુ નાના 8-અને 16-બીટ માઇક્રોકન્ટ્રોલર્સ સાથે ઉપયોગ કરવાનો છે. તે શરૂઆતમાં સ્વીડિશ ઇન્સ્ટિટ્યૂટ ઓફ કમ્પ્યુટર સાયન્સ ખાતે નેટવર્ક એમ્બેડેડ સિસ્ટમ્સ જૂથના એડમ ડંકલ્સ દ્વારા વિકસાવવામાં આવ્યું હતું, જે બીએસડી સ્ટાઇલ લાઇસન્સ હેઠળ લાઇસન્સ ધરાવે છે, અને વિકાસકર્તાઓના વિશાળ જૂથ દ્વારા વધુ વિકસાવવામાં આવ્યું હતું. યુઆઇપી એમ્બેડેડ સિસ્ટમોમાં ખૂબ જ ઉપયોગી થઈ શકે છે કારણ કે તેમાં ખૂબ જ ઓછી માત્રામાં કોડ અને રેમની જરૂર પડે છે. તેને ડી. એસ. પી. પ્લેટફોર્મ સહિત અનેક પ્લેટફોર્મ પર મૂકવામાં આવ્યું છે. ઓક્ટોબર 2008માં, સિસ્કો, એટમેલ અને એસ. આઇ. સી. એસ. એ યુ. આઇ. પી. માટે સંપૂર્ણ સુસંગત આઇ. પી. વી. 6 વિસ્તરણની જાહેરાત કરી હતી, જેને યુ. આઇ. પી. વી. 6 કહેવાય છે. અમલીકરણ યુઆઇપી તેના માટે જરૂરી સંસાધનોને ઘટાડવા માટે ઘણી અસામાન્ય ડિઝાઇન પસંદગીઓ કરે છે. યુ. આઇ. પી. નું મૂળ સોફ્ટવેર ઇન્ટરફેસ ઓપરેટિંગ સિસ્ટમ વિનાની નાની કમ્પ્યુટર સિસ્ટમો માટે રચાયેલ છે. તેને ટાઈમ્ડ લૂપમાં કોલ કરી શકાય છે, અને કોલ તમામ રીટ્રીઝ અને અન્ય નેટવર્ક વર્તણૂકનું સંચાલન કરે છે. યુઆઇપી બોલાવ્યા પછી હાર્ડવેર ડ્રાઇવરને બોલાવવામાં આવે છે. યુઆઇપી પેકેટ બનાવે છે, અને પછી ડ્રાઈવર તેને મોકલે છે, અને વૈકલ્પિક રીતે પ્રતિસાદ મેળવે છે. આઇપી પ્રોટોકોલ સ્ટેક સોફ્ટવેર માટે ટ્રાન્સમિશન, રિસેપ્શન માટે વિવિધ આઇપી પેકેટોની ઘણી નકલો રાખવી અને જો તેમને રિસન્ટ કરવાની જરૂર હોય તો નકલો રાખવી સામાન્ય બાબત છે. યુઆઇપી તેના મેમરીના ઉપયોગમાં કિફાયતી છે કારણ કે તે માત્ર એક જ પેકેટ બફરનો ઉપયોગ કરે છે. પ્રથમ, તે પેકેટ બફરનો ઉપયોગ અર્ધ-ડુપ્લેક્સ રીતે કરે છે, જેનો ઉપયોગ ટ્રાન્સમિશન અને રિસેપ્શન માટે થાય છે. ઉપરાંત, જ્યારે યુ. આઇ. પી. ને પેકેટને ફરીથી પ્રસારિત કરવાની જરૂર હોય, ત્યારે તે એપ્લિકેશન કોડને એવી રીતે કૉલ કરે છે કે જે અગાઉના ડેટાને પુનઃઉત્પાદિત કરવાની વિનંતી કરે છે. અન્ય વિચિત્રતા એ છે કે યુ. આઇ. પી. જોડાણોનું સંચાલન કેવી રીતે કરે છે. મોટાભાગના આઇપી અમલીકરણમાં જોડાણ દીઠ એક કાર્ય હોય છે, અને કાર્ય જોડાણના બીજા છેડે દૂરના કમ્પ્યુટરમાં કાર્ય સાથે વાતચીત કરે છે. યુઆઇપીમાં, કોઈ મલ્ટીટાસ્કીંગ ઓપરેટિંગ સિસ્ટમ ધારવામાં આવતી નથી. જોડાણો એરેમાં રાખવામાં આવે છે. દરેક કોલ પર, યુઆઇપી જોડાણ પ્રદાન કરવાનો પ્રયાસ કરે છે, એપ્લિકેશન કોડ પર સબરૂટિન કૉલ કરે છે જે જવાબ આપે છે અથવા ડેટા મોકલે છે. જોડાણ એરેનું કદ એ એક સંખ્યા છે જે જ્યારે યુ. આઇ. પી. ફરીથી સંકલિત કરવામાં આવે ત્યારે ગોઠવી શકાય છે. યુઆઇપી આરએફસી સાથે સંપૂર્ણપણે સુસંગત છે જે ટીસીપી, યુડીપી અને આઈપીને વ્યાખ્યાયિત કરે છે. તે ફરજિયાત જાળવણી પ્રોટોકોલ ICMP નો પણ અમલ કરે છે. આવૃત્તિઓ યુઆઇપી 0.9 એ ઓપરેટિંગ સિસ્ટમ્સ પર ઓછામાં ઓછી નિર્ભરતા ધરાવતું સંસ્કરણ છે, સૌથી નાનો સંસાધન ઉપયોગ અને એકમાત્ર સંસ્કરણ છે જે શુદ્ધ ઇવેન્ટ લૂપ એપીઆઈ રજૂ કરે છે, પરંતુ તેના મૂળ સ્વરૂપમાં આઇપી સંસ્કરણ 6 ને સમર્થન આપતું નથી, ફક્ત જૂના, વધુ સામાન્ય આઇપીવી 4. તેનો ઉપયોગ એમ્બેડેડ સિસ્ટમોમાં ખૂબ જ ઓછી માત્રામાં સંસાધનો સાથે થઈ શકે છે. તે ઉચ્ચ-સ્તરના પ્રોટોકોલના ઉદાહરણોના સમૂહ સાથે વિતરિત કરવામાં આવ્યું હતું જે ઇવેન્ટ લૂપ સિસ્ટમ પર પણ ચાલે છે, જેમાં એચટીટીપી (એક સરળ વેબ સર્વર), એસએમટીપી (સરળ મેઇલ ટ્રાન્સમિશન પ્રોટોકોલ), એફટીપી (ફાઇલ ટ્રાન્સફર પ્રોટોકોલ), ટેલનેટ (ટર્મિનલ ઇમ્યુલેશન) અને અન્યનો સમાવેશ થાય છે. ઉદાહરણો અને તેના નાના કદ હોવા છતાં, યુઆઇપી 0.9 લાગુ કરવું મુશ્કેલ હોઈ શકે છે કારણ કે તે કોઈપણ પ્રકારના સોકેટ એપીઆઈનો ઉપયોગ કરતું નથી. યુઆઇપી એ જાણીતી નબળાઈઓ સાથે વ્યાપકપણે ઉપયોગમાં લેવાતો કોડ છે. ડિઝાઇન 32-બીટ અંકગણિતને ઘટાડે છે અને અલગ કરે છે જેથી તેને 8 અને 16-બીટ સીપીયુ માટે એડજસ્ટ અથવા ઑપ્ટિમાઇઝ કરી શકાય. ઉપરાંત, 16-બીટ સોફ્ટવેર ટાઈમર (નાના માઇક્રોકન્ટ્રોલર્સ પર સામાન્ય) ઓવરફ્લો થઈ શકે છે અને ખામીયુક્ત કામગીરીનું કારણ બની શકે છે. આને ટાઈમર સિસ્ટમ સાથે સુધારી શકાય છે જે ઓવરફ્લો થતી નથી (દા. ત. ટાઈમરો ગણતરી કરે છે અથવા મોડ્યુલર અંકગણિતનો ઉપયોગ કરે છે). બીજો મુદ્દો એ છે કે તેના સિંગલ પેકેટ બફરમાં નોંધપાત્ર થ્રુપુટ સમસ્યાઓ હોઈ શકે છે કારણ કે પીસી હોસ્ટ સામાન્ય રીતે "એસીકે" પેકેટમાં વિલંબ કરે છે, વધુ પેકેટોની રાહ જુએ છે. ધીમા, સીરીયલ પોર્ટ અમલીકરણમાં, દરેક પેકેટને બે અર્ધ-પેકેટ ટુકડાઓ તરીકે મોકલવા માટે યુઆઇપીમાં ફેરફાર કરીને એક-થ્રુપુટને સુધારી શકાય છે. ઝડપી ઇથરનેટ અથવા વાઇફાઇ સાથેની યુઆઇપી સિસ્ટમો દરેક પેકેટને બે વાર મોકલવા માટે હાર્ડવેર ડ્રાઇવરમાં ફેરફાર કરી શકે છે. કેટલાક પીસી સ્થાનિક ઇથરનેટ પર ઝડપી યુઆઇપી સિસ્ટમને યોગ્ય રીતે પ્રતિસાદ આપતા નથી, કારણ કે યુઆઇપી સિસ્ટમ પીસી તેને પ્રાપ્ત કરવા માટે તૈયાર થાય તે પહેલાં પ્રતિસાદ પેકેટ શરૂ કરી શકે છે. ઉકેલ એ છે કે મુખ્ય લૂપમાં યુઆઇપી સિસ્ટમને ઓછી વાર કૉલ કરવો (વિન્ડોઝ પીસી લગભગ 1 મિલિસેકન્ડના પ્રતિસાદ સમય માટે રચાયેલ છે). યુ. આઇ. પી. ના લાક્ષણિક અમલીકરણમાં નિશ્ચિત આઇ. પી. સરનામું હોય છે, જે તેમને વાસ્તવિક નેટવર્કમાં અવ્યવહારુ બનાવી શકે છે, જોકે કેટલાક લોકોએ ડી. એચ. સી. પી. નો અમલ કર્યો છે. યુ. આઇ. પી. વી. 6 ના સંદર્ભ સંસ્કરણ સહિત યુ. આઇ. પી. ના પછીના સંસ્કરણો, કોન્ટીકી સાથે સંકલિત છે, જે એક ઓપરેટિંગ સિસ્ટમ છે જે સહકારી મલ્ટીટાસ્કીંગ માટે કોરોટીન્સનો ઉપયોગ કરે છે. કોન્ટિકી સરળ સોકેટ એપીઆઈ દ્વારા જરૂરી મલ્ટીટાસ્કીંગ પ્રદાન કરે છે, જે યુઆઇપીના ઉપયોગને સરળ બનાવે છે. જોકે આ આવૃત્તિઓ 0.9 કરતાં ઓછી લોકપ્રિય હોઈ શકે છે. એમ્બેડેડ કોડના ઘણા ઉદાહરણો તેનો ઉપયોગ કરતા નથી. ઈન્ટરનેટ એન્જિનિયરિંગ ટાસ્ક ફોર્સ ટીસીપી અને યુડીપી પોર્ટ નંબરોની સૂચિ પણ જુઓ-અન્ય ટીસીપી/આઈપી સ્ટેક પ્રોજેક્ટ (જે ડંકેલ્સ દ્વારા પણ બનાવવામાં આવ્યો છે), પરંતુ વધુ સંપૂર્ણ સુવિધાયુક્ત અને વધુ સક્ષમ હાર્ડવેર સંદર્ભોને ધ્યાનમાં રાખીને બાહ્ય લિંક્સ એ. વી. આર. માઇક્રોકન્ટ્રોલર્સ માટે યુઆઇપી સ્રોત યુઆઇપી પોર્ટ યુઆઇપી-આધારિત વેબ સર્વર ઓપનઆરઆઇએસસી-એમ્બેડેડ એસઓસી એમ્બેડેડ સિસ્ટમ્સનો ઉપયોગ કરીને બીએસડી લાઇસન્સનો ઉપયોગ કરીને મફત નેટવર્ક-સંબંધિત સોફ્ટવેર સોફ્ટવેર