వ్యాసం యొక్క పదార్థం నా నుండి తీసుకోబడింది
RTP ప్యాకెట్ నిర్మాణం
గతం లో
అదే ప్యాకేజీని చూద్దాం, కానీ రంగు అంచులు మరియు వివరణాత్మక లేబుల్లతో:
జాబితా దిగువన, RTP ప్యాకెట్ను రూపొందించే బైట్లు లేతరంగుతో ఉంటాయి మరియు ఇది UDP ప్యాకెట్ యొక్క పేలోడ్ (దాని హెడర్ నలుపు రంగులో ఉంటుంది). రంగుల నేపథ్యాలు RTP హెడర్ యొక్క బైట్లను సూచిస్తాయి మరియు RTP ప్యాకెట్ యొక్క పేలోడ్ను కలిగి ఉన్న డేటా బ్లాక్ ఆకుపచ్చ రంగులో హైలైట్ చేయబడింది. డేటా హెక్సాడెసిమల్ ఫార్మాట్లో ప్రదర్శించబడుతుంది. మా విషయంలో, ఇది u-law (mu-law) ప్రకారం కంప్రెస్ చేయబడిన ఆడియో సిగ్నల్, అనగా. ఒక నమూనా 1 బైట్ పరిమాణాన్ని కలిగి ఉంది. మేము డిఫాల్ట్ నమూనా రేటు (8000 Hz)ని ఉపయోగించినందున, 50 Hz ప్యాకెట్ రేటుతో, ప్రతి RTP ప్యాకెట్లో 160 బైట్ల పేలోడ్ ఉండాలి. ఆకుపచ్చ ప్రాంతంలో బైట్లను లెక్కించడం ద్వారా మేము దీనిని చూస్తాము, వాటిలో 10 పంక్తులు ఉండాలి.
ప్రమాణం ప్రకారం, పేలోడ్లోని డేటా మొత్తం తప్పనిసరిగా నాలుగు యొక్క గుణకారం అయి ఉండాలి లేదా మరో మాటలో చెప్పాలంటే, అది తప్పనిసరిగా నాలుగు-బైట్ పదాల పూర్ణాంక సంఖ్యను కలిగి ఉండాలి. ఒకవేళ మీ పేలోడ్ ఈ నియమానికి సరిపోలనట్లయితే, మీరు పేలోడ్ చివర సున్నా-విలువ గల బైట్లను జోడించి, పాడింగ్ బిట్ను సెట్ చేయాలి. ఈ బిట్ RTP హెడర్ యొక్క మొదటి బైట్లో ఉంది మరియు మణి రంగులో ఉంటుంది. అన్ని పేలోడ్ బైట్లు 0xFF అని గమనించండి, అంటే u-law నిశ్శబ్దం ఎలా ఉంటుందో.
RTP ప్యాకెట్ హెడర్ 12 తప్పనిసరి బైట్లను కలిగి ఉంటుంది, కానీ రెండు సందర్భాల్లో ఇది పొడవుగా ఉండవచ్చు:
-
ఒక ప్యాకెట్ అనేక మూలాధారాల (RTP స్ట్రీమ్లు) నుండి సిగ్నల్లను కలపడం ద్వారా పొందిన ఆడియో సిగ్నల్ను కలిగి ఉన్నప్పుడు, హెడర్లోని మొదటి 12 బైట్ల తర్వాత ఈ ప్యాకెట్ యొక్క పేలోడ్ను రూపొందించడానికి పేలోడ్లను ఉపయోగించిన మూలాధార ఐడెంటిఫైయర్ల జాబితాతో పట్టిక ఉంటుంది. ఈ సందర్భంలో, హెడర్ యొక్క మొదటి బైట్ యొక్క దిగువ నాలుగు బిట్లలో (ఫీల్డ్ సహకరిస్తున్న సోర్స్ ఐడెంటిఫైయర్ల సంఖ్య) మూలాల సంఖ్యను సూచిస్తుంది. ఫీల్డ్ పరిమాణం 4 బిట్లు, కాబట్టి టేబుల్ గరిష్టంగా 15 సోర్స్ ఐడెంటిఫైయర్లను కలిగి ఉంటుంది. ప్రతి ఒక్కటి 4 బైట్లను ఆక్రమిస్తుంది. కాన్ఫరెన్స్ కాల్ని సెటప్ చేసేటప్పుడు ఈ టేబుల్ ఉపయోగించబడుతుంది.
-
టైటిల్ పొడిగింపు ఉన్నప్పుడు . ఈ సందర్భంలో, బిట్ హెడర్ యొక్క మొదటి బైట్లో సెట్ చేయబడింది X. పొడిగించిన హెడర్లో, పాల్గొనేవారి పట్టిక తర్వాత (ఏదైనా ఉంటే), ఒక పదం పొడిగింపు హెడర్, దాని తర్వాత పొడిగింపు పదాలు ఉన్నాయి. పొడిగింపు అనేది మీరు అదనపు డేటాను బదిలీ చేయడానికి ఉపయోగించే బైట్ల సమాహారం. ప్రమాణం ఈ డేటా యొక్క ఆకృతిని నిర్దేశించదు - ఇది ఏదైనా కావచ్చు. ఉదాహరణకు, ఇది RTP ప్యాకెట్లను స్వీకరించే పరికరం కోసం కొన్ని అదనపు సెట్టింగ్లు కావచ్చు. అయితే కొన్ని అనువర్తనాల కోసం, పొడిగించిన హెడర్ ప్రమాణాలు అభివృద్ధి చేయబడ్డాయి. ఇది జరుగుతుంది, ఉదాహరణకు, ప్రమాణంలో కమ్యూనికేషన్ల కోసం ED-137 (VoIP ATM భాగాల కోసం ఇంటర్ఆపరబిలిటీ ప్రమాణాలు).
ఇప్పుడు హెడర్ ఫీల్డ్లను మరింత వివరంగా చూద్దాం. క్రింద RTP హెడర్ యొక్క నిర్మాణంతో ఒక నియమానుగుణ చిత్రం ఉంది, నేను కూడా అడ్డుకోలేకపోయాను మరియు అదే రంగులలో పెయింట్ చేసాను.
VER — ప్రోటోకాల్ వెర్షన్ నంబర్ (ప్రస్తుత వెర్షన్ 2);
P - RTP ప్యాకెట్ చివరిలో ఖాళీ బైట్లతో అనుబంధంగా ఉన్న సందర్భాలలో సెట్ చేయబడిన ఫ్లాగ్;
X - హెడర్ పొడిగించబడిందని ఫ్లాగ్ చేయండి;
CC - స్థిరమైన హెడర్ను అనుసరించే CSRC ఐడెంటిఫైయర్ల సంఖ్యను కలిగి ఉంటుంది (పదాలు 1..3 తర్వాత), పట్టిక చిత్రంలో చూపబడదు;
M - ఫ్రేమ్ ప్రారంభం యొక్క మార్కర్ లేదా ఛానెల్లో ప్రసంగం ఉనికి (స్పీచ్ పాజ్ డిటెక్టర్ ఉపయోగించినట్లయితే). రిసీవర్లో స్పీచ్ పాజ్ డిటెక్టర్ లేకపోతే, ఈ బిట్ శాశ్వతంగా సెట్ చేయబడుతుంది;
PTYPE - పేలోడ్ యొక్క ఆకృతిని నిర్దేశిస్తుంది;
సీక్వెన్స్ నంబర్ - ప్యాకెట్ నంబర్, ప్యాకెట్లు ప్లే చేయబడిన క్రమాన్ని పునరుద్ధరించడానికి ఉపయోగించబడుతుంది, ఎందుకంటే ప్యాకెట్లు పంపబడిన తప్పు క్రమంలో రిసీవర్కు చేరుకోవడం వాస్తవ పరిస్థితి. ప్రారంభ విలువ తప్పనిసరిగా యాదృచ్ఛికంగా ఉండాలి, ఇది చేయబడుతుంది కాబట్టి RTP స్ట్రీమ్ ఎన్క్రిప్ట్ చేయబడితే, దానిని హ్యాక్ చేయడం కష్టం అవుతుంది. అలాగే, ఈ ఫీల్డ్ తప్పిన ప్యాకెట్లను గుర్తించడానికి మిమ్మల్ని అనుమతిస్తుంది;
స్టాంప్ - సమయముద్ర. సమయం సిగ్నల్ నమూనాలలో కొలుస్తారు, అనగా. ఒక బరస్ట్లో 160 నమూనాలు ఉంటే, తదుపరి బర్స్ట్ టైమ్స్టాంప్ 160 ఎక్కువగా ఉంటుంది. టైమ్స్టాంప్ యొక్క ప్రారంభ విలువ తప్పనిసరిగా యాదృచ్ఛికంగా ఉండాలి;
SSRC — ప్యాకేజీ మూలం యొక్క ఐడెంటిఫైయర్, ఇది తప్పనిసరిగా ప్రత్యేకంగా ఉండాలి. RTP స్ట్రీమ్ను ప్రారంభించే ముందు యాదృచ్ఛికంగా దీన్ని రూపొందించడం మంచిది.
మీరు మీ స్వంత RTP ప్యాకెట్ ట్రాన్స్మిటర్ లేదా రిసీవర్ని అభివృద్ధి చేస్తే, ఉత్పాదకతను పెంచడానికి మీరు మీ ప్యాకెట్లను ఒకటి కంటే ఎక్కువసార్లు చూడవలసి ఉంటుంది, TSharkలో ప్యాకెట్ ఫిల్టరింగ్ని ఎలా ఉపయోగించాలో నేర్చుకోవాలని నేను మీకు సిఫార్సు చేస్తున్నాను, ఇది ఆ ప్యాకెట్లను మాత్రమే సంగ్రహించడానికి మిమ్మల్ని అనుమతిస్తుంది. మీకు ఆసక్తిగా ఉన్నాయి. నెట్వర్క్లో డజన్ల కొద్దీ RTP పరికరాలు పనిచేసే వాతావరణంలో, ఇది చాలా విలువైనది. TShark కమాండ్ లైన్లో, వడపోత ఎంపికలు "-f" ఎంపికతో పేర్కొనబడ్డాయి. మేము పోర్ట్ 8010 నుండి ప్యాకెట్లను క్యాప్చర్ చేయాలనుకున్నప్పుడు ఈ ఎంపికను ఉపయోగించాము:
-f "udp port 8010"
ఫిల్టరింగ్ పారామితులు తప్పనిసరిగా "క్యాచ్" ప్యాకెట్ తప్పనిసరిగా పాటించాల్సిన ప్రమాణాల సమితి. పరిస్థితి ప్యాకెట్లోని నిర్దిష్ట బైట్ యొక్క చిరునామా, పోర్ట్, విలువను తనిఖీ చేయవచ్చు. "AND", "OR" మొదలైన తార్కిక కార్యకలాపాలతో షరతులు కలపవచ్చు. చాలా శక్తివంతమైన సాధనం.
మీరు బ్యాచ్లలో ఫీల్డ్ మార్పుల డైనమిక్లను చూడాలనుకుంటే, మీరు అవుట్పుట్ను నకిలీ చేయాలి TShark అవుట్పుట్ను పాస్ చేయడం ద్వారా చివరి కథనంలో చూపిన విధంగా ఫైల్కి TShark ప్రవేశద్వారం వద్ద టీ. తరువాత, దీనితో లాగ్ ఫైల్ను తెరవండి తక్కువ, విమ్ లేదా భారీ టెక్స్ట్ ఫైల్లతో త్వరగా పని చేయగల మరియు స్ట్రింగ్ల కోసం శోధించగల మరొక సాధనం, మీరు RTP స్ట్రీమ్లో ప్యాకెట్ ఫీల్డ్ల ప్రవర్తన యొక్క అన్ని సూక్ష్మ నైపుణ్యాలను కనుగొనవచ్చు.
మీరు RTP స్ట్రీమ్ ద్వారా ప్రసారం చేయబడిన సిగ్నల్ను వినవలసి వస్తే, మీరు సంస్కరణను ఉపయోగించాలి TShark విజువల్ ఇంటర్ఫేస్తో Wireshark. సాధారణ మౌస్ మానిప్యులేషన్లతో, మీరు సిగ్నల్ యొక్క తరంగ రూపాన్ని వినవచ్చు మరియు చూడవచ్చు. కానీ ఒక షరతుపై - అది u-law లేదా a-low ఆకృతిలో ఎన్కోడ్ చేయబడితే.
తరువాత
మూలం: www.habr.com