final phone_protocol-eh2018 slides

This commit is contained in:
Harald Welte 2018-04-11 21:02:30 +02:00
parent 4166a5589d
commit ff8614e6a9
18 changed files with 9985 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -0,0 +1,315 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
width="1800px" height="745px"
viewBox="0 0 1800 745"
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
stroke-width="1" text-rendering="geometricPrecision">
<polygon fill="white" points="214,7 234,7 234,16 214,16"/>
<text x="225" y="16" textLength="18" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
MS
</text>
<polygon fill="white" points="616,7 732,7 732,16 616,16"/>
<text x="675" y="16" textLength="115" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
BSS (BTS,BSC,PCU)
</text>
<polygon fill="white" points="1106,7 1142,7 1142,16 1106,16"/>
<text x="1125" y="16" textLength="34" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
SGSN
</text>
<polygon fill="white" points="1561,7 1587,7 1587,16 1561,16"/>
<text x="1575" y="16" textLength="24" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
HLR
</text>
<line x1="225" y1="22" x2="225" y2="39" stroke="black"/>
<line x1="675" y1="22" x2="675" y2="39" stroke="black"/>
<line x1="1125" y1="22" x2="1125" y2="39" stroke="black"/>
<line x1="1575" y1="22" x2="1575" y2="39" stroke="black"/>
<line x1="225" y1="39" x2="225" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="675" y1="39" x2="675" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="1125" y1="39" x2="1125" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="1575" y1="39" x2="1575" y2="56" stroke="black" stroke-dasharray="2,2"/>
<polygon fill="white" points="833,40 965,40 965,49 833,49"/>
<text x="834" y="49" textLength="130" font-family="Helvetica" font-size="12" fill="black">
GPRS Attach Procedure
</text>
<line x1="225" y1="56" x2="225" y2="73" stroke="black"/>
<line x1="675" y1="56" x2="675" y2="73" stroke="black"/>
<line x1="1125" y1="56" x2="1125" y2="73" stroke="black"/>
<line x1="1575" y1="56" x2="1575" y2="73" stroke="black"/>
<line x1="225" y1="73" x2="225" y2="101" stroke="black"/>
<line x1="675" y1="73" x2="675" y2="101" stroke="black"/>
<line x1="1125" y1="73" x2="1125" y2="101" stroke="black"/>
<line x1="1575" y1="73" x2="1575" y2="101" stroke="black"/>
<polygon fill="white" points="8,73 442,73 442,95 8,95"/>
<line x1="8" y1="73" x2="442" y2="73" stroke="black"/>
<line x1="8" y1="95" x2="442" y2="95" stroke="black"/>
<line x1="8" y1="73" x2="8" y2="95" stroke="black"/>
<line x1="442" y1="73" x2="442" y2="95" stroke="black"/>
<polygon fill="white" points="187,80 262,80 262,89 187,89"/>
<text x="188" y="89" textLength="73" font-family="Helvetica" font-size="12" fill="black">
Cell Selection
</text>
<line x1="225" y1="101" x2="225" y2="129" stroke="black"/>
<line x1="675" y1="101" x2="675" y2="129" stroke="black"/>
<line x1="1125" y1="101" x2="1125" y2="129" stroke="black"/>
<line x1="1575" y1="101" x2="1575" y2="129" stroke="black"/>
<line x1="225" y1="112" x2="675" y2="112" stroke="black"/>
<polygon fill="black" points="675,112 665,118 665,106"/>
<polygon fill="white" points="371,102 527,102 527,111 371,111"/>
<text x="372" y="111" textLength="154" font-family="Helvetica" font-size="12" fill="black">
L1 RACH burst (cause=TBF)
</text>
<line x1="225" y1="129" x2="225" y2="157" stroke="black"/>
<line x1="675" y1="129" x2="675" y2="157" stroke="black"/>
<line x1="1125" y1="129" x2="1125" y2="157" stroke="black"/>
<line x1="1575" y1="129" x2="1575" y2="157" stroke="black"/>
<line x1="675" y1="140" x2="225" y2="140" stroke="black"/>
<polygon fill="black" points="225,140 235,146 235,134"/>
<polygon fill="white" points="359,130 540,130 540,139 359,139"/>
<text x="360" y="139" textLength="179" font-family="Helvetica" font-size="12" fill="black">
AGCH: RR IMMEDIAGE ASSIGN
</text>
<line x1="225" y1="157" x2="225" y2="185" stroke="black"/>
<line x1="675" y1="157" x2="675" y2="185" stroke="black"/>
<line x1="1125" y1="157" x2="1125" y2="185" stroke="black"/>
<line x1="1575" y1="157" x2="1575" y2="185" stroke="black"/>
<polygon fill="white" points="8,157 442,157 442,179 8,179"/>
<line x1="8" y1="157" x2="442" y2="157" stroke="black"/>
<line x1="8" y1="179" x2="442" y2="179" stroke="black"/>
<line x1="8" y1="157" x2="8" y2="179" stroke="black"/>
<line x1="442" y1="157" x2="442" y2="179" stroke="black"/>
<polygon fill="white" points="103,164 345,164 345,173 103,173"/>
<text x="104" y="173" textLength="240" font-family="Helvetica" font-size="12" fill="black">
Switch from BCCH/CCCH to dedicated mode
</text>
<line x1="225" y1="185" x2="225" y2="213" stroke="black"/>
<line x1="675" y1="185" x2="675" y2="213" stroke="black"/>
<line x1="1125" y1="185" x2="1125" y2="213" stroke="black"/>
<line x1="1575" y1="185" x2="1575" y2="213" stroke="black"/>
<line x1="225" y1="196" x2="675" y2="196" stroke="black"/>
<polygon fill="black" points="675,196 665,202 665,190"/>
<polygon fill="black" points="225,196 235,202 235,190"/>
<polygon fill="white" points="389,186 510,186 510,195 389,195"/>
<text x="390" y="195" textLength="119" font-family="Helvetica" font-size="12" fill="black">
UL TBF establishment
</text>
<polygon fill="white" points="405,197 494,197 494,206 405,206"/>
<text x="406" y="206" textLength="87" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC Layer
</text>
<line x1="225" y1="213" x2="225" y2="241" stroke="black"/>
<line x1="675" y1="213" x2="675" y2="241" stroke="black"/>
<line x1="1125" y1="213" x2="1125" y2="241" stroke="black"/>
<line x1="1575" y1="213" x2="1575" y2="241" stroke="black"/>
<line x1="225" y1="224" x2="675" y2="224" stroke="black"/>
<polygon fill="black" points="675,224 665,230 665,218"/>
<polygon fill="white" points="328,214 571,214 571,223 328,223"/>
<text x="329" y="223" textLength="241" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (GMM ATTACH REQUEST))
</text>
<line x1="225" y1="241" x2="225" y2="269" stroke="black"/>
<line x1="675" y1="241" x2="675" y2="269" stroke="black"/>
<line x1="1125" y1="241" x2="1125" y2="269" stroke="black"/>
<line x1="1575" y1="241" x2="1575" y2="269" stroke="black"/>
<line x1="675" y1="252" x2="1125" y2="252" stroke="black"/>
<polygon fill="black" points="1125,252 1115,258 1115,246"/>
<polygon fill="white" points="764,242 1034,242 1034,251 764,251"/>
<text x="765" y="251" textLength="268" font-family="Helvetica" font-size="12" fill="black">
BSSGP UL-UD (LLC (GMM ATTACH REQUEST))
</text>
<line x1="225" y1="269" x2="225" y2="297" stroke="black"/>
<line x1="675" y1="269" x2="675" y2="297" stroke="black"/>
<line x1="1125" y1="269" x2="1125" y2="297" stroke="black"/>
<line x1="1575" y1="269" x2="1575" y2="297" stroke="black"/>
<polygon fill="white" points="14,269 1336,269 1336,291 14,291"/>
<polygon fill="white" points="8,275 1342,275 1342,285 8,285"/>
<circle fill="white" cx="14" cy="275" r="6"/>
<circle fill="white" cx="1336" cy="275" r="6"/>
<circle fill="white" cx="14" cy="285" r="6"/>
<circle fill="white" cx="1336" cy="285" r="6"/>
<line x1="14" y1="269" x2="1336" y2="269" stroke="black"/>
<line x1="14" y1="291" x2="1336" y2="291" stroke="black"/>
<line x1="8" y1="275" x2="8" y2="285" stroke="black"/>
<line x1="1342" y1="275" x2="1342" y2="285" stroke="black"/>
<path d="M 8 275 A6,6 0 0,1 14,269" stroke="black" fill="none"/><path d="M 1336 269 A6,6 0 0,1 1342,275" stroke="black" fill="none"/><path d="M 1342 285 A6,6 0 0,1 1336,291" stroke="black" fill="none"/><path d="M 14 291 A6,6 0 0,1 8,285" stroke="black" fill="none"/><polygon fill="white" points="473,276 875,276 875,285 473,285"/>
<text x="474" y="285" textLength="400" font-family="Helvetica" font-size="12" fill="black">
optional: GMM IDENTITY REQ + RESP (IMSI) if SGSN doesn't know TMSI
</text>
<line x1="225" y1="297" x2="225" y2="325" stroke="black"/>
<line x1="675" y1="297" x2="675" y2="325" stroke="black"/>
<line x1="1125" y1="297" x2="1125" y2="325" stroke="black"/>
<line x1="1575" y1="297" x2="1575" y2="325" stroke="black"/>
<line x1="1125" y1="308" x2="1575" y2="308" stroke="black"/>
<polygon fill="black" points="1575,308 1565,314 1565,302"/>
<polygon fill="white" points="1273,298 1426,298 1426,307 1273,307"/>
<text x="1274" y="307" textLength="151" font-family="Helvetica" font-size="12" fill="black">
MAP SEND AUTH INFO req
</text>
<line x1="225" y1="325" x2="225" y2="353" stroke="black"/>
<line x1="675" y1="325" x2="675" y2="353" stroke="black"/>
<line x1="1125" y1="325" x2="1125" y2="353" stroke="black"/>
<line x1="1575" y1="325" x2="1575" y2="353" stroke="black"/>
<line x1="1575" y1="336" x2="1125" y2="336" stroke="black"/>
<polygon fill="black" points="1125,336 1135,342 1135,330"/>
<polygon fill="white" points="1270,326 1429,326 1429,335 1270,335"/>
<text x="1271" y="335" textLength="157" font-family="Helvetica" font-size="12" fill="black">
MAP SEND AUTH INFO resp
</text>
<line x1="225" y1="353" x2="225" y2="381" stroke="black"/>
<line x1="675" y1="353" x2="675" y2="381" stroke="black"/>
<line x1="1125" y1="353" x2="1125" y2="381" stroke="black"/>
<line x1="1575" y1="353" x2="1575" y2="381" stroke="black"/>
<line x1="1125" y1="364" x2="675" y2="364" stroke="black"/>
<polygon fill="black" points="675,364 685,370 685,358"/>
<polygon fill="white" points="788,354 1011,354 1011,363 788,363"/>
<text x="789" y="363" textLength="221" font-family="Helvetica" font-size="12" fill="black">
BSSGP DL-UD (LLC (GMM AUTH REQ))
</text>
<line x1="225" y1="381" x2="225" y2="409" stroke="black"/>
<line x1="675" y1="381" x2="675" y2="409" stroke="black"/>
<line x1="1125" y1="381" x2="1125" y2="409" stroke="black"/>
<line x1="1575" y1="381" x2="1575" y2="409" stroke="black"/>
<line x1="225" y1="392" x2="675" y2="392" stroke="black"/>
<polygon fill="black" points="675,392 665,398 665,386"/>
<polygon fill="black" points="225,392 235,398 235,386"/>
<polygon fill="white" points="389,382 510,382 510,391 389,391"/>
<text x="390" y="391" textLength="119" font-family="Helvetica" font-size="12" fill="black">
DL TBF establishment
</text>
<polygon fill="white" points="405,393 494,393 494,402 405,402"/>
<text x="406" y="402" textLength="87" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC Layer
</text>
<line x1="225" y1="409" x2="225" y2="437" stroke="black"/>
<line x1="675" y1="409" x2="675" y2="437" stroke="black"/>
<line x1="1125" y1="409" x2="1125" y2="437" stroke="black"/>
<line x1="1575" y1="409" x2="1575" y2="437" stroke="black"/>
<line x1="675" y1="420" x2="225" y2="420" stroke="black"/>
<polygon fill="black" points="225,420 235,426 235,414"/>
<polygon fill="white" points="352,410 547,410 547,419 352,419"/>
<text x="353" y="419" textLength="193" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (GMM AUTH REQ))
</text>
<line x1="225" y1="437" x2="225" y2="465" stroke="black"/>
<line x1="675" y1="437" x2="675" y2="465" stroke="black"/>
<line x1="1125" y1="437" x2="1125" y2="465" stroke="black"/>
<line x1="1575" y1="437" x2="1575" y2="465" stroke="black"/>
<line x1="225" y1="448" x2="675" y2="448" stroke="black"/>
<polygon fill="black" points="675,448 665,454 665,442"/>
<polygon fill="white" points="348,438 550,438 550,447 348,447"/>
<text x="349" y="447" textLength="200" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (GMM AUTH RESP))
</text>
<line x1="225" y1="465" x2="225" y2="493" stroke="black"/>
<line x1="675" y1="465" x2="675" y2="493" stroke="black"/>
<line x1="1125" y1="465" x2="1125" y2="493" stroke="black"/>
<line x1="1575" y1="465" x2="1575" y2="493" stroke="black"/>
<line x1="675" y1="476" x2="1125" y2="476" stroke="black"/>
<polygon fill="black" points="1125,476 1115,482 1115,470"/>
<polygon fill="white" points="785,466 1014,466 1014,475 785,475"/>
<text x="786" y="475" textLength="227" font-family="Helvetica" font-size="12" fill="black">
BSSGP UL-UD (LLC (GMM AUTH RESP))
</text>
<line x1="225" y1="493" x2="225" y2="521" stroke="black"/>
<line x1="675" y1="493" x2="675" y2="521" stroke="black"/>
<line x1="1125" y1="493" x2="1125" y2="521" stroke="black"/>
<line x1="1575" y1="493" x2="1575" y2="521" stroke="black"/>
<polygon fill="white" points="908,493 1342,493 1342,515 908,515"/>
<line x1="908" y1="493" x2="1342" y2="493" stroke="black"/>
<line x1="908" y1="515" x2="1342" y2="515" stroke="black"/>
<line x1="908" y1="493" x2="908" y2="515" stroke="black"/>
<line x1="1342" y1="493" x2="1342" y2="515" stroke="black"/>
<polygon fill="white" points="1046,500 1202,500 1202,509 1046,509"/>
<text x="1047" y="509" textLength="154" font-family="Helvetica" font-size="12" fill="black">
SRES(MS) == SRES(HLR) ?
</text>
<line x1="225" y1="521" x2="225" y2="549" stroke="black"/>
<line x1="675" y1="521" x2="675" y2="549" stroke="black"/>
<line x1="1125" y1="521" x2="1125" y2="549" stroke="black"/>
<line x1="1575" y1="521" x2="1575" y2="549" stroke="black"/>
<line x1="1125" y1="532" x2="1575" y2="532" stroke="black"/>
<polygon fill="black" points="1575,532 1565,538 1565,526"/>
<polygon fill="white" points="1260,522 1439,522 1439,531 1260,531"/>
<text x="1261" y="531" textLength="177" font-family="Helvetica" font-size="12" fill="black">
MAP UPD GPRS LOC AREA req
</text>
<line x1="225" y1="549" x2="225" y2="577" stroke="black"/>
<line x1="675" y1="549" x2="675" y2="577" stroke="black"/>
<line x1="1125" y1="549" x2="1125" y2="577" stroke="black"/>
<line x1="1575" y1="549" x2="1575" y2="577" stroke="black"/>
<line x1="1575" y1="560" x2="1125" y2="560" stroke="black"/>
<polygon fill="black" points="1125,560 1135,566 1135,554"/>
<polygon fill="white" points="1257,550 1442,550 1442,559 1257,559"/>
<text x="1258" y="559" textLength="183" font-family="Helvetica" font-size="12" fill="black">
MAP INSERT SUBSCR DATA req
</text>
<line x1="225" y1="577" x2="225" y2="605" stroke="black"/>
<line x1="675" y1="577" x2="675" y2="605" stroke="black"/>
<line x1="1125" y1="577" x2="1125" y2="605" stroke="black"/>
<line x1="1575" y1="577" x2="1575" y2="605" stroke="black"/>
<line x1="1125" y1="588" x2="1575" y2="588" stroke="black"/>
<polygon fill="black" points="1575,588 1565,594 1565,582"/>
<polygon fill="white" points="1254,578 1445,578 1445,587 1254,587"/>
<text x="1255" y="587" textLength="189" font-family="Helvetica" font-size="12" fill="black">
MAP INSERT SUBSCR DATA resp
</text>
<line x1="225" y1="605" x2="225" y2="633" stroke="black"/>
<line x1="675" y1="605" x2="675" y2="633" stroke="black"/>
<line x1="1125" y1="605" x2="1125" y2="633" stroke="black"/>
<line x1="1575" y1="605" x2="1575" y2="633" stroke="black"/>
<line x1="1575" y1="616" x2="1125" y2="616" stroke="black"/>
<polygon fill="black" points="1125,616 1135,622 1135,610"/>
<polygon fill="white" points="1257,606 1442,606 1442,615 1257,615"/>
<text x="1258" y="615" textLength="183" font-family="Helvetica" font-size="12" fill="black">
MAP UPD GPRS LOC AREA resp
</text>
<line x1="225" y1="633" x2="225" y2="661" stroke="black"/>
<line x1="675" y1="633" x2="675" y2="661" stroke="black"/>
<line x1="1125" y1="633" x2="1125" y2="661" stroke="black"/>
<line x1="1575" y1="633" x2="1575" y2="661" stroke="black"/>
<line x1="1125" y1="644" x2="675" y2="644" stroke="black"/>
<polygon fill="black" points="675,644 685,650 685,638"/>
<polygon fill="white" points="769,634 1030,634 1030,643 769,643"/>
<text x="770" y="643" textLength="259" font-family="Helvetica" font-size="12" fill="black">
BSSGP DL-UD (LLC (GMM ATTACH ACCEPT))
</text>
<line x1="225" y1="661" x2="225" y2="689" stroke="black"/>
<line x1="675" y1="661" x2="675" y2="689" stroke="black"/>
<line x1="1125" y1="661" x2="1125" y2="689" stroke="black"/>
<line x1="1575" y1="661" x2="1575" y2="689" stroke="black"/>
<line x1="675" y1="672" x2="225" y2="672" stroke="black"/>
<polygon fill="black" points="225,672 235,678 235,666"/>
<polygon fill="white" points="333,662 566,662 566,671 333,671"/>
<text x="334" y="671" textLength="231" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (GMM ATTACH ACCEPT))
</text>
<line x1="225" y1="689" x2="225" y2="717" stroke="black"/>
<line x1="675" y1="689" x2="675" y2="717" stroke="black"/>
<line x1="1125" y1="689" x2="1125" y2="717" stroke="black"/>
<line x1="1575" y1="689" x2="1575" y2="717" stroke="black"/>
<line x1="225" y1="700" x2="675" y2="700" stroke="black"/>
<polygon fill="black" points="675,700 665,706 665,694"/>
<polygon fill="white" points="312,690 587,690 587,699 312,699"/>
<text x="313" y="699" textLength="273" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (GMM P-TMSI REALLOC COMPL)
</text>
<line x1="225" y1="717" x2="225" y2="745" stroke="black"/>
<line x1="675" y1="717" x2="675" y2="745" stroke="black"/>
<line x1="1125" y1="717" x2="1125" y2="745" stroke="black"/>
<line x1="1575" y1="717" x2="1575" y2="745" stroke="black"/>
<line x1="675" y1="728" x2="1125" y2="728" stroke="black"/>
<polygon fill="black" points="1125,728 1115,734 1115,722"/>
<polygon fill="white" points="768,718 1031,718 1031,727 768,727"/>
<text x="769" y="727" textLength="261" font-family="Helvetica" font-size="12" fill="black">
BSSGP (LLC (GMM P-TMSI REALLOC COMPL)
</text>
<line x1="225" y1="739" x2="225" y2="745" stroke="black"/>
<line x1="675" y1="739" x2="675" y2="745" stroke="black"/>
<line x1="1125" y1="739" x2="1125" y2="745" stroke="black"/>
<line x1="1575" y1="739" x2="1575" y2="745" stroke="black"/>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@ -0,0 +1,338 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
width="1800px" height="644px"
viewBox="0 0 1800 644"
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
stroke-width="1" text-rendering="geometricPrecision">
<polygon fill="white" points="139,7 159,7 159,16 139,16"/>
<text x="150" y="16" textLength="18" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
MS
</text>
<polygon fill="white" points="408,7 490,7 490,16 408,16"/>
<text x="450" y="16" textLength="80" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
BTS/BSC/PCU
</text>
<polygon fill="white" points="731,7 767,7 767,16 731,16"/>
<text x="750" y="16" textLength="34" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
SGSN
</text>
<polygon fill="white" points="1021,7 1077,7 1077,16 1021,16"/>
<text x="1050" y="16" textLength="55" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
GRX DNS
</text>
<polygon fill="white" points="1331,7 1367,7 1367,16 1331,16"/>
<text x="1350" y="16" textLength="35" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
GGSN
</text>
<polygon fill="white" points="1628,7 1670,7 1670,16 1628,16"/>
<text x="1650" y="16" textLength="41" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
Internet
</text>
<line x1="150" y1="22" x2="150" y2="50" stroke="black"/>
<line x1="450" y1="22" x2="450" y2="50" stroke="black"/>
<line x1="750" y1="22" x2="750" y2="50" stroke="black"/>
<line x1="1050" y1="22" x2="1050" y2="50" stroke="black"/>
<line x1="1350" y1="22" x2="1350" y2="50" stroke="black"/>
<line x1="1650" y1="22" x2="1650" y2="50" stroke="black"/>
<line x1="150" y1="33" x2="450" y2="33" stroke="black"/>
<polygon fill="black" points="450,33 440,39 440,27"/>
<polygon fill="white" points="258,23 341,23 341,32 258,32"/>
<text x="259" y="32" textLength="81" font-family="Helvetica" font-size="12" fill="black">
L1 RACH burst
</text>
<line x1="150" y1="50" x2="150" y2="78" stroke="black"/>
<line x1="450" y1="50" x2="450" y2="78" stroke="black"/>
<line x1="750" y1="50" x2="750" y2="78" stroke="black"/>
<line x1="1050" y1="50" x2="1050" y2="78" stroke="black"/>
<line x1="1350" y1="50" x2="1350" y2="78" stroke="black"/>
<line x1="1650" y1="50" x2="1650" y2="78" stroke="black"/>
<line x1="150" y1="61" x2="450" y2="61" stroke="black"/>
<polygon fill="black" points="450,61 440,67 440,55"/>
<polygon fill="black" points="150,61 160,67 160,55"/>
<polygon fill="white" points="220,51 379,51 379,60 220,60"/>
<text x="221" y="60" textLength="157" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC TBF establishment
</text>
<line x1="150" y1="78" x2="150" y2="106" stroke="black"/>
<line x1="450" y1="78" x2="450" y2="106" stroke="black"/>
<line x1="750" y1="78" x2="750" y2="106" stroke="black"/>
<line x1="1050" y1="78" x2="1050" y2="106" stroke="black"/>
<line x1="1350" y1="78" x2="1350" y2="106" stroke="black"/>
<line x1="1650" y1="78" x2="1650" y2="106" stroke="black"/>
<line x1="150" y1="89" x2="450" y2="89" stroke="black"/>
<polygon fill="black" points="450,89 440,95 440,83"/>
<polygon fill="white" points="167,79 431,79 431,88 167,88"/>
<text x="168" y="88" textLength="262" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (SM PDP CONTEXT ACT REQ))
</text>
<polygon fill="white" points="242,90 356,90 356,99 242,99"/>
<text x="243" y="99" textLength="112" font-family="Helvetica" font-size="12" fill="black">
APN=internet.foo.bar
</text>
<line x1="150" y1="106" x2="150" y2="134" stroke="black"/>
<line x1="450" y1="106" x2="450" y2="134" stroke="black"/>
<line x1="750" y1="106" x2="750" y2="134" stroke="black"/>
<line x1="1050" y1="106" x2="1050" y2="134" stroke="black"/>
<line x1="1350" y1="106" x2="1350" y2="134" stroke="black"/>
<line x1="1650" y1="106" x2="1650" y2="134" stroke="black"/>
<line x1="450" y1="117" x2="750" y2="117" stroke="black"/>
<polygon fill="black" points="750,117 740,123 740,111"/>
<polygon fill="white" points="454,107 745,107 745,116 454,116"/>
<text x="455" y="116" textLength="289" font-family="Helvetica" font-size="12" fill="black">
BSSGP UL-UD (LLC (SM PDP CONTEXT ACT REQ))
</text>
<polygon fill="white" points="542,118 656,118 656,127 542,127"/>
<text x="543" y="127" textLength="112" font-family="Helvetica" font-size="12" fill="black">
APN=internet.foo.bar
</text>
<line x1="150" y1="134" x2="150" y2="162" stroke="black"/>
<line x1="450" y1="134" x2="450" y2="162" stroke="black"/>
<line x1="750" y1="134" x2="750" y2="162" stroke="black"/>
<line x1="1050" y1="134" x2="1050" y2="162" stroke="black"/>
<line x1="1350" y1="134" x2="1350" y2="162" stroke="black"/>
<line x1="1650" y1="134" x2="1650" y2="162" stroke="black"/>
<line x1="750" y1="145" x2="1050" y2="145" stroke="black"/>
<polygon fill="black" points="1050,145 1040,151 1040,139"/>
<polygon fill="white" points="817,135 981,135 981,144 817,144"/>
<text x="818" y="144" textLength="162" font-family="Helvetica" font-size="12" fill="black">
DNS Lookup A record for APN
</text>
<polygon fill="white" points="795,146 1004,146 1004,155 795,155"/>
<text x="796" y="155" textLength="207" font-family="Helvetica" font-size="12" fill="black">
internet.foo.bar.mncXXX.mccYYY.gprs
</text>
<line x1="150" y1="162" x2="150" y2="190" stroke="black"/>
<line x1="450" y1="162" x2="450" y2="190" stroke="black"/>
<line x1="750" y1="162" x2="750" y2="190" stroke="black"/>
<line x1="1050" y1="162" x2="1050" y2="190" stroke="black"/>
<line x1="1350" y1="162" x2="1350" y2="190" stroke="black"/>
<line x1="1650" y1="162" x2="1650" y2="190" stroke="black"/>
<line x1="1050" y1="173" x2="750" y2="173" stroke="black"/>
<polygon fill="black" points="750,173 760,179 760,167"/>
<polygon fill="white" points="810,163 989,163 989,172 810,172"/>
<text x="811" y="172" textLength="177" font-family="Helvetica" font-size="12" fill="black">
DNS Response A record for APN
</text>
<polygon fill="white" points="795,174 1004,174 1004,183 795,183"/>
<text x="796" y="183" textLength="207" font-family="Helvetica" font-size="12" fill="black">
internet.foo.bar.mncXXX.mccYYY.gprs
</text>
<line x1="150" y1="190" x2="150" y2="218" stroke="black"/>
<line x1="450" y1="190" x2="450" y2="218" stroke="black"/>
<line x1="750" y1="190" x2="750" y2="218" stroke="black"/>
<line x1="1050" y1="190" x2="1050" y2="218" stroke="black"/>
<line x1="1350" y1="190" x2="1350" y2="218" stroke="black"/>
<line x1="1650" y1="190" x2="1650" y2="218" stroke="black"/>
<polygon fill="white" points="608,190 892,190 892,212 608,212"/>
<line x1="608" y1="190" x2="892" y2="190" stroke="black"/>
<line x1="608" y1="212" x2="892" y2="212" stroke="black"/>
<line x1="608" y1="190" x2="608" y2="212" stroke="black"/>
<line x1="892" y1="190" x2="892" y2="212" stroke="black"/>
<polygon fill="white" points="621,197 878,197 878,206 621,206"/>
<text x="622" y="206" textLength="255" font-family="Helvetica" font-size="12" fill="black">
SGSN now knows IP address of GGSN for APN
</text>
<line x1="150" y1="218" x2="150" y2="246" stroke="black"/>
<line x1="450" y1="218" x2="450" y2="246" stroke="black"/>
<line x1="750" y1="218" x2="750" y2="246" stroke="black"/>
<line x1="1050" y1="218" x2="1050" y2="246" stroke="black"/>
<line x1="1350" y1="218" x2="1350" y2="246" stroke="black"/>
<line x1="1650" y1="218" x2="1650" y2="246" stroke="black"/>
<line x1="750" y1="229" x2="1350" y2="229" stroke="black"/>
<polygon fill="black" points="1350,229 1340,235 1340,223"/>
<polygon fill="white" points="953,219 1146,219 1146,228 953,228"/>
<text x="954" y="228" textLength="191" font-family="Helvetica" font-size="12" fill="black">
GTP-C (PDP CONTEXT ACT REQ)
</text>
<line x1="150" y1="246" x2="150" y2="274" stroke="black"/>
<line x1="450" y1="246" x2="450" y2="274" stroke="black"/>
<line x1="750" y1="246" x2="750" y2="274" stroke="black"/>
<line x1="1050" y1="246" x2="1050" y2="274" stroke="black"/>
<line x1="1350" y1="246" x2="1350" y2="274" stroke="black"/>
<line x1="1650" y1="246" x2="1650" y2="274" stroke="black"/>
<polygon fill="white" points="1208,246 1492,246 1492,268 1208,268"/>
<line x1="1208" y1="246" x2="1492" y2="246" stroke="black"/>
<line x1="1208" y1="268" x2="1492" y2="268" stroke="black"/>
<line x1="1208" y1="246" x2="1208" y2="268" stroke="black"/>
<line x1="1492" y1="246" x2="1492" y2="268" stroke="black"/>
<polygon fill="white" points="1290,253 1408,253 1408,262 1290,262"/>
<text x="1291" y="262" textLength="116" font-family="Helvetica" font-size="12" fill="black">
Allocate IPv4 address
</text>
<line x1="150" y1="274" x2="150" y2="302" stroke="black"/>
<line x1="450" y1="274" x2="450" y2="302" stroke="black"/>
<line x1="750" y1="274" x2="750" y2="302" stroke="black"/>
<line x1="1050" y1="274" x2="1050" y2="302" stroke="black"/>
<line x1="1350" y1="274" x2="1350" y2="302" stroke="black"/>
<line x1="1650" y1="274" x2="1650" y2="302" stroke="black"/>
<line x1="1350" y1="285" x2="750" y2="285" stroke="black"/>
<polygon fill="black" points="750,285 760,291 760,279"/>
<polygon fill="white" points="950,275 1149,275 1149,284 950,284"/>
<text x="951" y="284" textLength="197" font-family="Helvetica" font-size="12" fill="black">
GTP-C (PDP CONTEXT ACT RESP)
</text>
<polygon fill="white" points="1009,286 1089,286 1089,295 1009,295"/>
<text x="1010" y="295" textLength="78" font-family="Helvetica" font-size="12" fill="black">
IP addr + DNS
</text>
<line x1="150" y1="302" x2="150" y2="330" stroke="black"/>
<line x1="450" y1="302" x2="450" y2="330" stroke="black"/>
<line x1="750" y1="302" x2="750" y2="330" stroke="black"/>
<line x1="1050" y1="302" x2="1050" y2="330" stroke="black"/>
<line x1="1350" y1="302" x2="1350" y2="330" stroke="black"/>
<line x1="1650" y1="302" x2="1650" y2="330" stroke="black"/>
<line x1="750" y1="313" x2="450" y2="313" stroke="black"/>
<polygon fill="black" points="450,313 460,319 460,307"/>
<polygon fill="white" points="454,303 744,303 744,312 454,312"/>
<text x="455" y="312" textLength="288" font-family="Helvetica" font-size="12" fill="black">
BSSGP UL-UD (LLC (SM PDP CONTEXT ACT ACK))
</text>
<line x1="150" y1="330" x2="150" y2="358" stroke="black"/>
<line x1="450" y1="330" x2="450" y2="358" stroke="black"/>
<line x1="750" y1="330" x2="750" y2="358" stroke="black"/>
<line x1="1050" y1="330" x2="1050" y2="358" stroke="black"/>
<line x1="1350" y1="330" x2="1350" y2="358" stroke="black"/>
<line x1="1650" y1="330" x2="1650" y2="358" stroke="black"/>
<line x1="450" y1="341" x2="150" y2="341" stroke="black"/>
<polygon fill="black" points="150,341 160,347 160,335"/>
<polygon fill="white" points="168,331 431,331 431,340 168,340"/>
<text x="169" y="340" textLength="261" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (SM PDP CONTEXT ACT ACK))
</text>
<line x1="150" y1="358" x2="150" y2="386" stroke="black"/>
<line x1="450" y1="358" x2="450" y2="386" stroke="black"/>
<line x1="750" y1="358" x2="750" y2="386" stroke="black"/>
<line x1="1050" y1="358" x2="1050" y2="386" stroke="black"/>
<line x1="1350" y1="358" x2="1350" y2="386" stroke="black"/>
<line x1="1650" y1="358" x2="1650" y2="386" stroke="black"/>
<polygon fill="white" points="8,358 292,358 292,380 8,380"/>
<line x1="8" y1="358" x2="292" y2="358" stroke="black"/>
<line x1="8" y1="380" x2="292" y2="380" stroke="black"/>
<line x1="8" y1="358" x2="8" y2="380" stroke="black"/>
<line x1="292" y1="358" x2="292" y2="380" stroke="black"/>
<polygon fill="white" points="49,365 249,365 249,374 49,374"/>
<text x="50" y="374" textLength="198" font-family="Helvetica" font-size="12" fill="black">
MS now has IP addr + DNS server IP
</text>
<line x1="150" y1="386" x2="150" y2="403" stroke="black" stroke-dasharray="2,2"/>
<line x1="450" y1="386" x2="450" y2="403" stroke="black" stroke-dasharray="2,2"/>
<line x1="750" y1="386" x2="750" y2="403" stroke="black" stroke-dasharray="2,2"/>
<line x1="1050" y1="386" x2="1050" y2="403" stroke="black" stroke-dasharray="2,2"/>
<line x1="1350" y1="386" x2="1350" y2="403" stroke="black" stroke-dasharray="2,2"/>
<line x1="1650" y1="386" x2="1650" y2="403" stroke="black" stroke-dasharray="2,2"/>
<line x1="150" y1="403" x2="150" y2="431" stroke="black"/>
<line x1="450" y1="403" x2="450" y2="431" stroke="black"/>
<line x1="750" y1="403" x2="750" y2="431" stroke="black"/>
<line x1="1050" y1="403" x2="1050" y2="431" stroke="black"/>
<line x1="1350" y1="403" x2="1350" y2="431" stroke="black"/>
<line x1="1650" y1="403" x2="1650" y2="431" stroke="black"/>
<line x1="150" y1="414" x2="450" y2="414" stroke="black"/>
<polygon fill="black" points="450,414 440,420 440,408"/>
<polygon fill="white" points="197,404 401,404 401,413 197,413"/>
<text x="198" y="413" textLength="202" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (SNDCP (IP packet)))
</text>
<line x1="150" y1="431" x2="150" y2="459" stroke="black"/>
<line x1="450" y1="431" x2="450" y2="459" stroke="black"/>
<line x1="750" y1="431" x2="750" y2="459" stroke="black"/>
<line x1="1050" y1="431" x2="1050" y2="459" stroke="black"/>
<line x1="1350" y1="431" x2="1350" y2="459" stroke="black"/>
<line x1="1650" y1="431" x2="1650" y2="459" stroke="black"/>
<line x1="450" y1="442" x2="750" y2="442" stroke="black"/>
<polygon fill="black" points="750,442 740,448 740,436"/>
<polygon fill="white" points="484,432 715,432 715,441 484,441"/>
<text x="485" y="441" textLength="229" font-family="Helvetica" font-size="12" fill="black">
BSSGP UL-UD (LLC (SNDCP (IP packet)))
</text>
<line x1="150" y1="459" x2="150" y2="487" stroke="black"/>
<line x1="450" y1="459" x2="450" y2="487" stroke="black"/>
<line x1="750" y1="459" x2="750" y2="487" stroke="black"/>
<line x1="1050" y1="459" x2="1050" y2="487" stroke="black"/>
<line x1="1350" y1="459" x2="1350" y2="487" stroke="black"/>
<line x1="1650" y1="459" x2="1650" y2="487" stroke="black"/>
<line x1="750" y1="470" x2="1350" y2="470" stroke="black"/>
<polygon fill="black" points="1350,470 1340,476 1340,464"/>
<polygon fill="white" points="999,460 1100,460 1100,469 999,469"/>
<text x="1000" y="469" textLength="99" font-family="Helvetica" font-size="12" fill="black">
GTP-U (IP packet)
</text>
<line x1="150" y1="487" x2="150" y2="515" stroke="black"/>
<line x1="450" y1="487" x2="450" y2="515" stroke="black"/>
<line x1="750" y1="487" x2="750" y2="515" stroke="black"/>
<line x1="1050" y1="487" x2="1050" y2="515" stroke="black"/>
<line x1="1350" y1="487" x2="1350" y2="515" stroke="black"/>
<line x1="1650" y1="487" x2="1650" y2="515" stroke="black"/>
<line x1="1350" y1="498" x2="1650" y2="498" stroke="black"/>
<polygon fill="black" points="1650,498 1640,504 1640,492"/>
<polygon fill="white" points="1409,488 1589,488 1589,497 1409,497"/>
<text x="1410" y="497" textLength="178" font-family="Helvetica" font-size="12" fill="black">
IP packet (e.g. ICMP ECHO REQ
</text>
<line x1="150" y1="515" x2="150" y2="532" stroke="black" stroke-dasharray="2,2"/>
<line x1="450" y1="515" x2="450" y2="532" stroke="black" stroke-dasharray="2,2"/>
<line x1="750" y1="515" x2="750" y2="532" stroke="black" stroke-dasharray="2,2"/>
<line x1="1050" y1="515" x2="1050" y2="532" stroke="black" stroke-dasharray="2,2"/>
<line x1="1350" y1="515" x2="1350" y2="532" stroke="black" stroke-dasharray="2,2"/>
<line x1="1650" y1="515" x2="1650" y2="532" stroke="black" stroke-dasharray="2,2"/>
<line x1="150" y1="532" x2="150" y2="560" stroke="black"/>
<line x1="450" y1="532" x2="450" y2="560" stroke="black"/>
<line x1="750" y1="532" x2="750" y2="560" stroke="black"/>
<line x1="1050" y1="532" x2="1050" y2="560" stroke="black"/>
<line x1="1350" y1="532" x2="1350" y2="560" stroke="black"/>
<line x1="1650" y1="532" x2="1650" y2="560" stroke="black"/>
<line x1="1650" y1="543" x2="1350" y2="543" stroke="black"/>
<polygon fill="black" points="1350,543 1360,549 1360,537"/>
<polygon fill="white" points="1406,533 1593,533 1593,542 1406,542"/>
<text x="1407" y="542" textLength="185" font-family="Helvetica" font-size="12" fill="black">
IP packet (e.g. ICMP ECHO RESP
</text>
<line x1="150" y1="560" x2="150" y2="588" stroke="black"/>
<line x1="450" y1="560" x2="450" y2="588" stroke="black"/>
<line x1="750" y1="560" x2="750" y2="588" stroke="black"/>
<line x1="1050" y1="560" x2="1050" y2="588" stroke="black"/>
<line x1="1350" y1="560" x2="1350" y2="588" stroke="black"/>
<line x1="1650" y1="560" x2="1650" y2="588" stroke="black"/>
<line x1="1350" y1="571" x2="750" y2="571" stroke="black"/>
<polygon fill="black" points="750,571 760,577 760,565"/>
<polygon fill="white" points="999,561 1100,561 1100,570 999,570"/>
<text x="1000" y="570" textLength="99" font-family="Helvetica" font-size="12" fill="black">
GTP-U (IP packet)
</text>
<line x1="150" y1="588" x2="150" y2="616" stroke="black"/>
<line x1="450" y1="588" x2="450" y2="616" stroke="black"/>
<line x1="750" y1="588" x2="750" y2="616" stroke="black"/>
<line x1="1050" y1="588" x2="1050" y2="616" stroke="black"/>
<line x1="1350" y1="588" x2="1350" y2="616" stroke="black"/>
<line x1="1650" y1="588" x2="1650" y2="616" stroke="black"/>
<line x1="750" y1="599" x2="450" y2="599" stroke="black"/>
<polygon fill="black" points="450,599 460,605 460,593"/>
<polygon fill="white" points="484,589 715,589 715,598 484,598"/>
<text x="485" y="598" textLength="229" font-family="Helvetica" font-size="12" fill="black">
BSSGP DL-UD (LLC (SNDCP (IP packet)))
</text>
<line x1="150" y1="616" x2="150" y2="644" stroke="black"/>
<line x1="450" y1="616" x2="450" y2="644" stroke="black"/>
<line x1="750" y1="616" x2="750" y2="644" stroke="black"/>
<line x1="1050" y1="616" x2="1050" y2="644" stroke="black"/>
<line x1="1350" y1="616" x2="1350" y2="644" stroke="black"/>
<line x1="1650" y1="616" x2="1650" y2="644" stroke="black"/>
<line x1="450" y1="627" x2="150" y2="627" stroke="black"/>
<polygon fill="black" points="150,627 160,633 160,621"/>
<polygon fill="white" points="197,617 401,617 401,626 197,626"/>
<text x="198" y="626" textLength="202" font-family="Helvetica" font-size="12" fill="black">
RLC/MAC (LLC (SNDCP (IP packet)))
</text>
<line x1="150" y1="638" x2="150" y2="644" stroke="black"/>
<line x1="450" y1="638" x2="450" y2="644" stroke="black"/>
<line x1="750" y1="638" x2="750" y2="644" stroke="black"/>
<line x1="1050" y1="638" x2="1050" y2="644" stroke="black"/>
<line x1="1350" y1="638" x2="1350" y2="644" stroke="black"/>
<line x1="1650" y1="638" x2="1650" y2="644" stroke="black"/>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@ -0,0 +1,505 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
width="1800px" height="1137px"
viewBox="0 0 1800 1137"
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
stroke-width="1" text-rendering="geometricPrecision">
<polygon fill="white" points="165,7 193,7 193,16 165,16"/>
<text x="180" y="16" textLength="27" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
MSC
</text>
<polygon fill="white" points="527,7 551,7 551,16 527,16"/>
<text x="540" y="16" textLength="23" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
BTS
</text>
<polygon fill="white" points="886,7 912,7 912,16 886,16"/>
<text x="900" y="16" textLength="25" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
BSC
</text>
<polygon fill="white" points="1232,7 1286,7 1286,16 1232,16"/>
<text x="1260" y="16" textLength="53" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
MSC/VLR
</text>
<polygon fill="white" points="1606,7 1632,7 1632,16 1606,16"/>
<text x="1620" y="16" textLength="24" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
HLR
</text>
<line x1="180" y1="22" x2="180" y2="39" stroke="black"/>
<line x1="540" y1="22" x2="540" y2="39" stroke="black"/>
<line x1="900" y1="22" x2="900" y2="39" stroke="black"/>
<line x1="1260" y1="22" x2="1260" y2="39" stroke="black"/>
<line x1="1620" y1="22" x2="1620" y2="39" stroke="black"/>
<line x1="180" y1="39" x2="180" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="540" y1="39" x2="540" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="900" y1="39" x2="900" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="1260" y1="39" x2="1260" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="1620" y1="39" x2="1620" y2="56" stroke="black" stroke-dasharray="2,2"/>
<polygon fill="white" points="839,40 959,40 959,49 839,49"/>
<text x="840" y="49" textLength="118" font-family="Helvetica" font-size="12" fill="black">
GSM Location Update
</text>
<line x1="180" y1="56" x2="180" y2="73" stroke="black"/>
<line x1="540" y1="56" x2="540" y2="73" stroke="black"/>
<line x1="900" y1="56" x2="900" y2="73" stroke="black"/>
<line x1="1260" y1="56" x2="1260" y2="73" stroke="black"/>
<line x1="1620" y1="56" x2="1620" y2="73" stroke="black"/>
<line x1="180" y1="73" x2="180" y2="101" stroke="black"/>
<line x1="540" y1="73" x2="540" y2="101" stroke="black"/>
<line x1="900" y1="73" x2="900" y2="101" stroke="black"/>
<line x1="1260" y1="73" x2="1260" y2="101" stroke="black"/>
<line x1="1620" y1="73" x2="1620" y2="101" stroke="black"/>
<line x1="180" y1="84" x2="540" y2="84" stroke="black"/>
<polygon fill="black" points="540,84 530,90 530,78"/>
<polygon fill="white" points="318,74 401,74 401,83 318,83"/>
<text x="319" y="83" textLength="81" font-family="Helvetica" font-size="12" fill="black">
L1 RACH burst
</text>
<line x1="180" y1="101" x2="180" y2="129" stroke="black"/>
<line x1="540" y1="101" x2="540" y2="129" stroke="black"/>
<line x1="900" y1="101" x2="900" y2="129" stroke="black"/>
<line x1="1260" y1="101" x2="1260" y2="129" stroke="black"/>
<line x1="1620" y1="101" x2="1620" y2="129" stroke="black"/>
<line x1="540" y1="112" x2="900" y2="112" stroke="black"/>
<polygon fill="black" points="900,112 890,118 890,106"/>
<polygon fill="white" points="673,102 766,102 766,111 673,111"/>
<text x="674" y="111" textLength="91" font-family="Helvetica" font-size="12" fill="black">
RSL CHAN RQD
</text>
<line x1="180" y1="129" x2="180" y2="157" stroke="black"/>
<line x1="540" y1="129" x2="540" y2="157" stroke="black"/>
<line x1="900" y1="129" x2="900" y2="157" stroke="black"/>
<line x1="1260" y1="129" x2="1260" y2="157" stroke="black"/>
<line x1="1620" y1="129" x2="1620" y2="157" stroke="black"/>
<polygon fill="white" points="728,129 1072,129 1072,151 728,151"/>
<line x1="728" y1="129" x2="1072" y2="129" stroke="black"/>
<line x1="728" y1="151" x2="1072" y2="151" stroke="black"/>
<line x1="728" y1="129" x2="728" y2="151" stroke="black"/>
<line x1="1072" y1="129" x2="1072" y2="151" stroke="black"/>
<polygon fill="white" points="815,136 983,136 983,145 815,145"/>
<text x="816" y="145" textLength="166" font-family="Helvetica" font-size="12" fill="black">
Allocation of dedicated channel
</text>
<line x1="180" y1="157" x2="180" y2="185" stroke="black"/>
<line x1="540" y1="157" x2="540" y2="185" stroke="black"/>
<line x1="900" y1="157" x2="900" y2="185" stroke="black"/>
<line x1="1260" y1="157" x2="1260" y2="185" stroke="black"/>
<line x1="1620" y1="157" x2="1620" y2="185" stroke="black"/>
<line x1="900" y1="168" x2="540" y2="168" stroke="black"/>
<polygon fill="black" points="540,168 550,174 550,162"/>
<polygon fill="white" points="674,158 764,158 764,167 674,167"/>
<text x="675" y="167" textLength="88" font-family="Helvetica" font-size="12" fill="black">
RSL CHAN ACT
</text>
<line x1="180" y1="185" x2="180" y2="213" stroke="black"/>
<line x1="540" y1="185" x2="540" y2="213" stroke="black"/>
<line x1="900" y1="185" x2="900" y2="213" stroke="black"/>
<line x1="1260" y1="185" x2="1260" y2="213" stroke="black"/>
<line x1="1620" y1="185" x2="1620" y2="213" stroke="black"/>
<line x1="540" y1="196" x2="900" y2="196" stroke="black"/>
<polygon fill="black" points="900,196 890,202 890,190"/>
<polygon fill="white" points="660,186 778,186 778,195 660,195"/>
<text x="661" y="195" textLength="116" font-family="Helvetica" font-size="12" fill="black">
RSL CHAN ACT ACK
</text>
<line x1="180" y1="213" x2="180" y2="241" stroke="black"/>
<line x1="540" y1="213" x2="540" y2="241" stroke="black"/>
<line x1="900" y1="213" x2="900" y2="241" stroke="black"/>
<line x1="1260" y1="213" x2="1260" y2="241" stroke="black"/>
<line x1="1620" y1="213" x2="1620" y2="241" stroke="black"/>
<line x1="900" y1="224" x2="540" y2="224" stroke="black"/>
<polygon fill="black" points="540,224 550,230 550,218"/>
<polygon fill="white" points="623,214 816,214 816,223 623,223"/>
<text x="624" y="223" textLength="191" font-family="Helvetica" font-size="12" fill="black">
RSL IMM ASS CMD (RR IMM ASS)
</text>
<line x1="180" y1="241" x2="180" y2="269" stroke="black"/>
<line x1="540" y1="241" x2="540" y2="269" stroke="black"/>
<line x1="900" y1="241" x2="900" y2="269" stroke="black"/>
<line x1="1260" y1="241" x2="1260" y2="269" stroke="black"/>
<line x1="1620" y1="241" x2="1620" y2="269" stroke="black"/>
<line x1="540" y1="252" x2="180" y2="252" stroke="black"/>
<polygon fill="black" points="180,252 190,258 190,246"/>
<polygon fill="white" points="270,242 449,242 449,251 270,251"/>
<text x="271" y="251" textLength="177" font-family="Helvetica" font-size="12" fill="black">
AGCH: RR IMMEDIATE ASSIGN
</text>
<line x1="180" y1="269" x2="180" y2="297" stroke="black"/>
<line x1="540" y1="269" x2="540" y2="297" stroke="black"/>
<line x1="900" y1="269" x2="900" y2="297" stroke="black"/>
<line x1="1260" y1="269" x2="1260" y2="297" stroke="black"/>
<line x1="1620" y1="269" x2="1620" y2="297" stroke="black"/>
<polygon fill="white" points="8,269 352,269 352,291 8,291"/>
<line x1="8" y1="269" x2="352" y2="269" stroke="black"/>
<line x1="8" y1="291" x2="352" y2="291" stroke="black"/>
<line x1="8" y1="269" x2="8" y2="291" stroke="black"/>
<line x1="352" y1="269" x2="352" y2="291" stroke="black"/>
<polygon fill="white" points="109,270 249,270 249,279 109,279"/>
<text x="110" y="279" textLength="138" font-family="Helvetica" font-size="12" fill="black">
Switch form BCCH/CCCH
</text>
<polygon fill="white" points="123,281 236,281 236,290 123,290"/>
<text x="124" y="290" textLength="111" font-family="Helvetica" font-size="12" fill="black">
to dedicated channel
</text>
<line x1="180" y1="297" x2="180" y2="325" stroke="black"/>
<line x1="540" y1="297" x2="540" y2="325" stroke="black"/>
<line x1="900" y1="297" x2="900" y2="325" stroke="black"/>
<line x1="1260" y1="297" x2="1260" y2="325" stroke="black"/>
<line x1="1620" y1="297" x2="1620" y2="325" stroke="black"/>
<line x1="180" y1="308" x2="540" y2="308" stroke="black"/>
<polygon fill="black" points="540,308 530,314 530,302"/>
<polygon fill="white" points="260,298 458,298 458,307 260,307"/>
<text x="261" y="307" textLength="196" font-family="Helvetica" font-size="12" fill="black">
LAPDm SABM (MM LOC UPD REQ)
</text>
<line x1="180" y1="325" x2="180" y2="353" stroke="black"/>
<line x1="540" y1="325" x2="540" y2="353" stroke="black"/>
<line x1="900" y1="325" x2="900" y2="353" stroke="black"/>
<line x1="1260" y1="325" x2="1260" y2="353" stroke="black"/>
<line x1="1620" y1="325" x2="1620" y2="353" stroke="black"/>
<line x1="540" y1="336" x2="900" y2="336" stroke="black"/>
<polygon fill="black" points="900,336 890,342 890,330"/>
<polygon fill="white" points="620,326 818,326 818,335 620,335"/>
<text x="621" y="335" textLength="196" font-family="Helvetica" font-size="12" fill="black">
RSL DATA IND (MM LOC UPD REQ
</text>
<line x1="180" y1="353" x2="180" y2="381" stroke="black"/>
<line x1="540" y1="353" x2="540" y2="381" stroke="black"/>
<line x1="900" y1="353" x2="900" y2="381" stroke="black"/>
<line x1="1260" y1="353" x2="1260" y2="381" stroke="black"/>
<line x1="1620" y1="353" x2="1620" y2="381" stroke="black"/>
<line x1="900" y1="364" x2="1260" y2="364" stroke="black"/>
<polygon fill="black" points="1260,364 1250,370 1250,358"/>
<polygon fill="white" points="970,354 1188,354 1188,363 970,363"/>
<text x="971" y="363" textLength="216" font-family="Helvetica" font-size="12" fill="black">
BSSAP COMPL L3 (MM LOC UPD REQ
</text>
<line x1="180" y1="381" x2="180" y2="409" stroke="black"/>
<line x1="540" y1="381" x2="540" y2="409" stroke="black"/>
<line x1="900" y1="381" x2="900" y2="409" stroke="black"/>
<line x1="1260" y1="381" x2="1260" y2="409" stroke="black"/>
<line x1="1620" y1="381" x2="1620" y2="409" stroke="black"/>
<polygon fill="white" points="14,381 1426,381 1426,403 14,403"/>
<polygon fill="white" points="8,387 1432,387 1432,397 8,397"/>
<circle fill="white" cx="14" cy="387" r="6"/>
<circle fill="white" cx="1426" cy="387" r="6"/>
<circle fill="white" cx="14" cy="397" r="6"/>
<circle fill="white" cx="1426" cy="397" r="6"/>
<line x1="14" y1="381" x2="1426" y2="381" stroke="black"/>
<line x1="14" y1="403" x2="1426" y2="403" stroke="black"/>
<line x1="8" y1="387" x2="8" y2="397" stroke="black"/>
<line x1="1432" y1="387" x2="1432" y2="397" stroke="black"/>
<path d="M 8 387 A6,6 0 0,1 14,381" stroke="black" fill="none"/><path d="M 1426 381 A6,6 0 0,1 1432,387" stroke="black" fill="none"/><path d="M 1432 397 A6,6 0 0,1 1426,403" stroke="black" fill="none"/><path d="M 14 403 A6,6 0 0,1 8,397" stroke="black" fill="none"/><polygon fill="white" points="527,388 912,388 912,397 527,397"/>
<text x="528" y="397" textLength="383" font-family="Helvetica" font-size="12" fill="black">
optional: MM IDENTITY REQ + RESP (IMSI) if MSC doesn't know TMSI
</text>
<line x1="180" y1="409" x2="180" y2="437" stroke="black"/>
<line x1="540" y1="409" x2="540" y2="437" stroke="black"/>
<line x1="900" y1="409" x2="900" y2="437" stroke="black"/>
<line x1="1260" y1="409" x2="1260" y2="437" stroke="black"/>
<line x1="1620" y1="409" x2="1620" y2="437" stroke="black"/>
<line x1="1260" y1="420" x2="1620" y2="420" stroke="black"/>
<polygon fill="black" points="1620,420 1610,426 1610,414"/>
<polygon fill="white" points="1363,410 1516,410 1516,419 1363,419"/>
<text x="1364" y="419" textLength="151" font-family="Helvetica" font-size="12" fill="black">
MAP SEND AUTH INFO req
</text>
<line x1="180" y1="437" x2="180" y2="465" stroke="black"/>
<line x1="540" y1="437" x2="540" y2="465" stroke="black"/>
<line x1="900" y1="437" x2="900" y2="465" stroke="black"/>
<line x1="1260" y1="437" x2="1260" y2="465" stroke="black"/>
<line x1="1620" y1="437" x2="1620" y2="465" stroke="black"/>
<polygon fill="white" points="1448,437 1792,437 1792,459 1448,459"/>
<line x1="1448" y1="437" x2="1792" y2="437" stroke="black"/>
<line x1="1448" y1="459" x2="1792" y2="459" stroke="black"/>
<line x1="1448" y1="437" x2="1448" y2="459" stroke="black"/>
<line x1="1792" y1="437" x2="1792" y2="459" stroke="black"/>
<polygon fill="white" points="1560,444 1679,444 1679,453 1560,453"/>
<text x="1561" y="453" textLength="117" font-family="Helvetica" font-size="12" fill="black">
Generate Auth Tuples
</text>
<line x1="180" y1="465" x2="180" y2="493" stroke="black"/>
<line x1="540" y1="465" x2="540" y2="493" stroke="black"/>
<line x1="900" y1="465" x2="900" y2="493" stroke="black"/>
<line x1="1260" y1="465" x2="1260" y2="493" stroke="black"/>
<line x1="1620" y1="465" x2="1620" y2="493" stroke="black"/>
<line x1="1620" y1="476" x2="1260" y2="476" stroke="black"/>
<polygon fill="black" points="1260,476 1270,482 1270,470"/>
<polygon fill="white" points="1360,466 1519,466 1519,475 1360,475"/>
<text x="1361" y="475" textLength="157" font-family="Helvetica" font-size="12" fill="black">
MAP SEND AUTH INFO resp
</text>
<line x1="180" y1="493" x2="180" y2="521" stroke="black"/>
<line x1="540" y1="493" x2="540" y2="521" stroke="black"/>
<line x1="900" y1="493" x2="900" y2="521" stroke="black"/>
<line x1="1260" y1="493" x2="1260" y2="521" stroke="black"/>
<line x1="1620" y1="493" x2="1620" y2="521" stroke="black"/>
<line x1="1260" y1="504" x2="180" y2="504" stroke="black"/>
<polygon fill="black" points="180,504 190,510 190,498"/>
<polygon fill="white" points="676,494 763,494 763,503 676,503"/>
<text x="677" y="503" textLength="85" font-family="Helvetica" font-size="12" fill="black">
MM AUTH REQ
</text>
<line x1="180" y1="521" x2="180" y2="549" stroke="black"/>
<line x1="540" y1="521" x2="540" y2="549" stroke="black"/>
<line x1="900" y1="521" x2="900" y2="549" stroke="black"/>
<line x1="1260" y1="521" x2="1260" y2="549" stroke="black"/>
<line x1="1620" y1="521" x2="1620" y2="549" stroke="black"/>
<line x1="180" y1="532" x2="1260" y2="532" stroke="black"/>
<polygon fill="black" points="1260,532 1250,538 1250,526"/>
<polygon fill="white" points="672,522 766,522 766,531 672,531"/>
<text x="673" y="531" textLength="92" font-family="Helvetica" font-size="12" fill="black">
MM AUTH RESP
</text>
<line x1="180" y1="549" x2="180" y2="577" stroke="black"/>
<line x1="540" y1="549" x2="540" y2="577" stroke="black"/>
<line x1="900" y1="549" x2="900" y2="577" stroke="black"/>
<line x1="1260" y1="549" x2="1260" y2="577" stroke="black"/>
<line x1="1620" y1="549" x2="1620" y2="577" stroke="black"/>
<polygon fill="white" points="1088,549 1432,549 1432,571 1088,571"/>
<line x1="1088" y1="549" x2="1432" y2="549" stroke="black"/>
<line x1="1088" y1="571" x2="1432" y2="571" stroke="black"/>
<line x1="1088" y1="549" x2="1088" y2="571" stroke="black"/>
<line x1="1432" y1="549" x2="1432" y2="571" stroke="black"/>
<polygon fill="white" points="1181,556 1337,556 1337,565 1181,565"/>
<text x="1182" y="565" textLength="154" font-family="Helvetica" font-size="12" fill="black">
SRES (MS) == SRES(HLR)?
</text>
<line x1="180" y1="577" x2="180" y2="605" stroke="black"/>
<line x1="540" y1="577" x2="540" y2="605" stroke="black"/>
<line x1="900" y1="577" x2="900" y2="605" stroke="black"/>
<line x1="1260" y1="577" x2="1260" y2="605" stroke="black"/>
<line x1="1620" y1="577" x2="1620" y2="605" stroke="black"/>
<line x1="1260" y1="588" x2="1620" y2="588" stroke="black"/>
<polygon fill="black" points="1620,588 1610,594 1610,582"/>
<polygon fill="white" points="1369,578 1510,578 1510,587 1369,587"/>
<text x="1370" y="587" textLength="139" font-family="Helvetica" font-size="12" fill="black">
MAP UPD LOC AREA req
</text>
<line x1="180" y1="605" x2="180" y2="633" stroke="black"/>
<line x1="540" y1="605" x2="540" y2="633" stroke="black"/>
<line x1="900" y1="605" x2="900" y2="633" stroke="black"/>
<line x1="1260" y1="605" x2="1260" y2="633" stroke="black"/>
<line x1="1620" y1="605" x2="1620" y2="633" stroke="black"/>
<line x1="1620" y1="616" x2="1260" y2="616" stroke="black"/>
<polygon fill="black" points="1260,616 1270,622 1270,610"/>
<polygon fill="white" points="1347,606 1532,606 1532,615 1347,615"/>
<text x="1348" y="615" textLength="183" font-family="Helvetica" font-size="12" fill="black">
MAP INSERT SUBSCR DATA req
</text>
<line x1="180" y1="633" x2="180" y2="661" stroke="black"/>
<line x1="540" y1="633" x2="540" y2="661" stroke="black"/>
<line x1="900" y1="633" x2="900" y2="661" stroke="black"/>
<line x1="1260" y1="633" x2="1260" y2="661" stroke="black"/>
<line x1="1620" y1="633" x2="1620" y2="661" stroke="black"/>
<line x1="1260" y1="644" x2="1620" y2="644" stroke="black"/>
<polygon fill="black" points="1620,644 1610,650 1610,638"/>
<polygon fill="white" points="1344,634 1535,634 1535,643 1344,643"/>
<text x="1345" y="643" textLength="189" font-family="Helvetica" font-size="12" fill="black">
MAP INSERT SUBSCR DATA resp
</text>
<line x1="180" y1="661" x2="180" y2="689" stroke="black"/>
<line x1="540" y1="661" x2="540" y2="689" stroke="black"/>
<line x1="900" y1="661" x2="900" y2="689" stroke="black"/>
<line x1="1260" y1="661" x2="1260" y2="689" stroke="black"/>
<line x1="1620" y1="661" x2="1620" y2="689" stroke="black"/>
<line x1="1620" y1="672" x2="1260" y2="672" stroke="black"/>
<polygon fill="black" points="1260,672 1270,678 1270,666"/>
<polygon fill="white" points="1366,662 1513,662 1513,671 1366,671"/>
<text x="1367" y="671" textLength="145" font-family="Helvetica" font-size="12" fill="black">
MAP UPD LOC AREA resp
</text>
<line x1="180" y1="689" x2="180" y2="717" stroke="black"/>
<line x1="540" y1="689" x2="540" y2="717" stroke="black"/>
<line x1="900" y1="689" x2="900" y2="717" stroke="black"/>
<line x1="1260" y1="689" x2="1260" y2="717" stroke="black"/>
<line x1="1620" y1="689" x2="1620" y2="717" stroke="black"/>
<line x1="1260" y1="700" x2="900" y2="700" stroke="black"/>
<polygon fill="black" points="900,700 910,706 910,694"/>
<polygon fill="white" points="1002,690 1156,690 1156,699 1002,699"/>
<text x="1003" y="699" textLength="152" font-family="Helvetica" font-size="12" fill="black">
BSSMAP CIPH MODE CMD
</text>
<line x1="180" y1="717" x2="180" y2="745" stroke="black"/>
<line x1="540" y1="717" x2="540" y2="745" stroke="black"/>
<line x1="900" y1="717" x2="900" y2="745" stroke="black"/>
<line x1="1260" y1="717" x2="1260" y2="745" stroke="black"/>
<line x1="1620" y1="717" x2="1620" y2="745" stroke="black"/>
<line x1="900" y1="728" x2="540" y2="728" stroke="black"/>
<polygon fill="black" points="540,728 550,734 550,722"/>
<polygon fill="white" points="611,718 827,718 827,727 611,727"/>
<text x="612" y="727" textLength="214" font-family="Helvetica" font-size="12" fill="black">
RSL ENCR CMD (RR CIPH MOD CMD)
</text>
<line x1="180" y1="745" x2="180" y2="773" stroke="black"/>
<line x1="540" y1="745" x2="540" y2="773" stroke="black"/>
<line x1="900" y1="745" x2="900" y2="773" stroke="black"/>
<line x1="1260" y1="745" x2="1260" y2="773" stroke="black"/>
<line x1="1620" y1="745" x2="1620" y2="773" stroke="black"/>
<line x1="540" y1="756" x2="180" y2="756" stroke="black"/>
<polygon fill="black" points="180,756 190,762 190,750"/>
<polygon fill="white" points="303,746 416,746 416,755 303,755"/>
<text x="304" y="755" textLength="111" font-family="Helvetica" font-size="12" fill="black">
RR CIPH MOD CMD
</text>
<line x1="180" y1="773" x2="180" y2="801" stroke="black"/>
<line x1="540" y1="773" x2="540" y2="801" stroke="black"/>
<line x1="900" y1="773" x2="900" y2="801" stroke="black"/>
<line x1="1260" y1="773" x2="1260" y2="801" stroke="black"/>
<line x1="1620" y1="773" x2="1620" y2="801" stroke="black"/>
<line x1="180" y1="784" x2="540" y2="784" stroke="black"/>
<polygon fill="black" points="540,784 530,790 530,778"/>
<polygon fill="white" points="295,774 424,774 424,783 295,783"/>
<text x="296" y="783" textLength="127" font-family="Helvetica" font-size="12" fill="black">
RR CIPH MOD COMPL
</text>
<line x1="180" y1="801" x2="180" y2="829" stroke="black"/>
<line x1="540" y1="801" x2="540" y2="829" stroke="black"/>
<line x1="900" y1="801" x2="900" y2="829" stroke="black"/>
<line x1="1260" y1="801" x2="1260" y2="829" stroke="black"/>
<line x1="1620" y1="801" x2="1620" y2="829" stroke="black"/>
<line x1="540" y1="812" x2="900" y2="812" stroke="black"/>
<polygon fill="black" points="900,812 890,818 890,806"/>
<polygon fill="white" points="608,802 831,802 831,811 608,811"/>
<text x="609" y="811" textLength="221" font-family="Helvetica" font-size="12" fill="black">
RSL DATA IND (RR CIPH MOD COMPL)
</text>
<line x1="180" y1="829" x2="180" y2="857" stroke="black"/>
<line x1="540" y1="829" x2="540" y2="857" stroke="black"/>
<line x1="900" y1="829" x2="900" y2="857" stroke="black"/>
<line x1="1260" y1="829" x2="1260" y2="857" stroke="black"/>
<line x1="1620" y1="829" x2="1620" y2="857" stroke="black"/>
<line x1="900" y1="840" x2="1260" y2="840" stroke="black"/>
<polygon fill="black" points="1260,840 1250,846 1250,834"/>
<polygon fill="white" points="995,830 1164,830 1164,839 995,839"/>
<text x="996" y="839" textLength="167" font-family="Helvetica" font-size="12" fill="black">
BSSMAP CIPH MODE COMPL
</text>
<line x1="180" y1="857" x2="180" y2="885" stroke="black"/>
<line x1="540" y1="857" x2="540" y2="885" stroke="black"/>
<line x1="900" y1="857" x2="900" y2="885" stroke="black"/>
<line x1="1260" y1="857" x2="1260" y2="885" stroke="black"/>
<line x1="1620" y1="857" x2="1620" y2="885" stroke="black"/>
<line x1="1260" y1="868" x2="180" y2="868" stroke="black"/>
<polygon fill="black" points="180,868 190,874 190,862"/>
<polygon fill="white" points="662,858 777,858 777,867 662,867"/>
<text x="663" y="867" textLength="113" font-family="Helvetica" font-size="12" fill="black">
MM LOC UPD RESP
</text>
<line x1="180" y1="885" x2="180" y2="913" stroke="black"/>
<line x1="540" y1="885" x2="540" y2="913" stroke="black"/>
<line x1="900" y1="885" x2="900" y2="913" stroke="black"/>
<line x1="1260" y1="885" x2="1260" y2="913" stroke="black"/>
<line x1="1620" y1="885" x2="1620" y2="913" stroke="black"/>
<line x1="180" y1="896" x2="1260" y2="896" stroke="black"/>
<polygon fill="black" points="1260,896 1250,902 1250,890"/>
<polygon fill="white" points="640,886 799,886 799,895 640,895"/>
<text x="641" y="895" textLength="157" font-family="Helvetica" font-size="12" fill="black">
MM TMSI REALLOC COMPL
</text>
<line x1="180" y1="913" x2="180" y2="941" stroke="black"/>
<line x1="540" y1="913" x2="540" y2="941" stroke="black"/>
<line x1="900" y1="913" x2="900" y2="941" stroke="black"/>
<line x1="1260" y1="913" x2="1260" y2="941" stroke="black"/>
<line x1="1620" y1="913" x2="1620" y2="941" stroke="black"/>
<line x1="1260" y1="924" x2="900" y2="924" stroke="black"/>
<polygon fill="black" points="900,924 910,930 910,918"/>
<polygon fill="white" points="1016,914 1142,914 1142,923 1016,923"/>
<text x="1017" y="923" textLength="124" font-family="Helvetica" font-size="12" fill="black">
BSSMAP CLEAR CMD
</text>
<line x1="180" y1="941" x2="180" y2="969" stroke="black"/>
<line x1="540" y1="941" x2="540" y2="969" stroke="black"/>
<line x1="900" y1="941" x2="900" y2="969" stroke="black"/>
<line x1="1260" y1="941" x2="1260" y2="969" stroke="black"/>
<line x1="1620" y1="941" x2="1620" y2="969" stroke="black"/>
<line x1="900" y1="952" x2="540" y2="952" stroke="black"/>
<polygon fill="black" points="540,952 550,958 550,946"/>
<polygon fill="white" points="662,942 777,942 777,951 662,951"/>
<text x="663" y="951" textLength="113" font-family="Helvetica" font-size="12" fill="black">
RSL SACCH DEACT
</text>
<line x1="180" y1="969" x2="180" y2="997" stroke="black"/>
<line x1="540" y1="969" x2="540" y2="997" stroke="black"/>
<line x1="900" y1="969" x2="900" y2="997" stroke="black"/>
<line x1="1260" y1="969" x2="1260" y2="997" stroke="black"/>
<line x1="1620" y1="969" x2="1620" y2="997" stroke="black"/>
<line x1="900" y1="980" x2="540" y2="980" stroke="black"/>
<polygon fill="black" points="540,980 550,986 550,974"/>
<polygon fill="white" points="675,970 764,970 764,979 675,979"/>
<text x="676" y="979" textLength="87" font-family="Helvetica" font-size="12" fill="black">
RSL CHAN REL
</text>
<line x1="180" y1="997" x2="180" y2="1025" stroke="black"/>
<line x1="540" y1="997" x2="540" y2="1025" stroke="black"/>
<line x1="900" y1="997" x2="900" y2="1025" stroke="black"/>
<line x1="1260" y1="997" x2="1260" y2="1025" stroke="black"/>
<line x1="1620" y1="997" x2="1620" y2="1025" stroke="black"/>
<line x1="540" y1="1008" x2="180" y2="1008" stroke="black"/>
<polygon fill="black" points="180,1008 190,1014 190,1002"/>
<polygon fill="white" points="322,998 397,998 397,1007 322,1007"/>
<text x="323" y="1007" textLength="73" font-family="Helvetica" font-size="12" fill="black">
LAPDm DISC
</text>
<line x1="180" y1="1025" x2="180" y2="1053" stroke="black"/>
<line x1="540" y1="1025" x2="540" y2="1053" stroke="black"/>
<line x1="900" y1="1025" x2="900" y2="1053" stroke="black"/>
<line x1="1260" y1="1025" x2="1260" y2="1053" stroke="black"/>
<line x1="1620" y1="1025" x2="1620" y2="1053" stroke="black"/>
<polygon fill="white" points="8,1025 352,1025 352,1047 8,1047"/>
<line x1="8" y1="1025" x2="352" y2="1025" stroke="black"/>
<line x1="8" y1="1047" x2="352" y2="1047" stroke="black"/>
<line x1="8" y1="1025" x2="8" y2="1047" stroke="black"/>
<line x1="352" y1="1025" x2="352" y2="1047" stroke="black"/>
<polygon fill="white" points="108,1032 251,1032 251,1041 108,1041"/>
<text x="109" y="1041" textLength="141" font-family="Helvetica" font-size="12" fill="black">
Deactivate dedicated chan
</text>
<line x1="180" y1="1053" x2="180" y2="1081" stroke="black"/>
<line x1="540" y1="1053" x2="540" y2="1081" stroke="black"/>
<line x1="900" y1="1053" x2="900" y2="1081" stroke="black"/>
<line x1="1260" y1="1053" x2="1260" y2="1081" stroke="black"/>
<line x1="1620" y1="1053" x2="1620" y2="1081" stroke="black"/>
<line x1="540" y1="1064" x2="900" y2="1064" stroke="black"/>
<polygon fill="black" points="900,1064 890,1070 890,1058"/>
<polygon fill="white" points="661,1054 778,1054 778,1063 661,1063"/>
<text x="662" y="1063" textLength="115" font-family="Helvetica" font-size="12" fill="black">
RSL CHAN REL ACK
</text>
<line x1="180" y1="1081" x2="180" y2="1109" stroke="black"/>
<line x1="540" y1="1081" x2="540" y2="1109" stroke="black"/>
<line x1="900" y1="1081" x2="900" y2="1109" stroke="black"/>
<line x1="1260" y1="1081" x2="1260" y2="1109" stroke="black"/>
<line x1="1620" y1="1081" x2="1620" y2="1109" stroke="black"/>
<polygon fill="white" points="728,1081 1072,1081 1072,1103 728,1103"/>
<line x1="728" y1="1081" x2="1072" y2="1081" stroke="black"/>
<line x1="728" y1="1103" x2="1072" y2="1103" stroke="black"/>
<line x1="728" y1="1081" x2="728" y2="1103" stroke="black"/>
<line x1="1072" y1="1081" x2="1072" y2="1103" stroke="black"/>
<polygon fill="white" points="810,1088 989,1088 989,1097 810,1097"/>
<text x="811" y="1097" textLength="177" font-family="Helvetica" font-size="12" fill="black">
Mark dedicated channel released
</text>
<line x1="180" y1="1109" x2="180" y2="1137" stroke="black"/>
<line x1="540" y1="1109" x2="540" y2="1137" stroke="black"/>
<line x1="900" y1="1109" x2="900" y2="1137" stroke="black"/>
<line x1="1260" y1="1109" x2="1260" y2="1137" stroke="black"/>
<line x1="1620" y1="1109" x2="1620" y2="1137" stroke="black"/>
<line x1="900" y1="1120" x2="1260" y2="1120" stroke="black"/>
<polygon fill="black" points="1260,1120 1250,1126 1250,1114"/>
<polygon fill="white" points="1009,1110 1150,1110 1150,1119 1009,1119"/>
<text x="1010" y="1119" textLength="139" font-family="Helvetica" font-size="12" fill="black">
BSSMAP CLEAR COMPL
</text>
<line x1="180" y1="1131" x2="180" y2="1137" stroke="black"/>
<line x1="540" y1="1131" x2="540" y2="1137" stroke="black"/>
<line x1="900" y1="1131" x2="900" y2="1137" stroke="black"/>
<line x1="1260" y1="1131" x2="1260" y2="1137" stroke="black"/>
<line x1="1620" y1="1131" x2="1620" y2="1137" stroke="black"/>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -0,0 +1,215 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
width="1200px" height="577px"
viewBox="0 0 1200 577"
xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges"
stroke-width="1" text-rendering="geometricPrecision">
<polygon fill="white" points="185,7 213,7 213,16 185,16"/>
<text x="200" y="16" textLength="27" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
MSC
</text>
<polygon fill="white" points="572,7 626,7 626,16 572,16"/>
<text x="600" y="16" textLength="53" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
MSC/VLR
</text>
<polygon fill="white" points="986,7 1012,7 1012,16 986,16"/>
<text x="1000" y="16" textLength="24" font-family="Helvetica" font-size="12" fill="black" text-anchor="middle">
HLR
</text>
<line x1="200" y1="22" x2="200" y2="39" stroke="black"/>
<line x1="600" y1="22" x2="600" y2="39" stroke="black"/>
<line x1="1000" y1="22" x2="1000" y2="39" stroke="black"/>
<line x1="200" y1="39" x2="200" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="600" y1="39" x2="600" y2="56" stroke="black" stroke-dasharray="2,2"/>
<line x1="1000" y1="39" x2="1000" y2="56" stroke="black" stroke-dasharray="2,2"/>
<polygon fill="white" points="514,40 684,40 684,49 514,49"/>
<text x="515" y="49" textLength="168" font-family="Helvetica" font-size="12" fill="black">
GSM Location Update (L3 only)
</text>
<line x1="200" y1="56" x2="200" y2="73" stroke="black"/>
<line x1="600" y1="56" x2="600" y2="73" stroke="black"/>
<line x1="1000" y1="56" x2="1000" y2="73" stroke="black"/>
<line x1="200" y1="73" x2="200" y2="101" stroke="black"/>
<line x1="600" y1="73" x2="600" y2="101" stroke="black"/>
<line x1="1000" y1="73" x2="1000" y2="101" stroke="black"/>
<line x1="200" y1="84" x2="600" y2="84" stroke="black"/>
<polygon fill="black" points="600,84 590,90 590,78"/>
<polygon fill="white" points="345,74 453,74 453,83 345,83"/>
<text x="346" y="83" textLength="106" font-family="Helvetica" font-size="12" fill="black">
MM LOC UPD REQ
</text>
<line x1="200" y1="101" x2="200" y2="129" stroke="black"/>
<line x1="600" y1="101" x2="600" y2="129" stroke="black"/>
<line x1="1000" y1="101" x2="1000" y2="129" stroke="black"/>
<polygon fill="white" points="14,101 786,101 786,123 14,123"/>
<polygon fill="white" points="8,107 792,107 792,117 8,117"/>
<circle fill="white" cx="14" cy="107" r="6"/>
<circle fill="white" cx="786" cy="107" r="6"/>
<circle fill="white" cx="14" cy="117" r="6"/>
<circle fill="white" cx="786" cy="117" r="6"/>
<line x1="14" y1="101" x2="786" y2="101" stroke="black"/>
<line x1="14" y1="123" x2="786" y2="123" stroke="black"/>
<line x1="8" y1="107" x2="8" y2="117" stroke="black"/>
<line x1="792" y1="107" x2="792" y2="117" stroke="black"/>
<path d="M 8 107 A6,6 0 0,1 14,101" stroke="black" fill="none"/><path d="M 786 101 A6,6 0 0,1 792,107" stroke="black" fill="none"/><path d="M 792 117 A6,6 0 0,1 786,123" stroke="black" fill="none"/><path d="M 14 123 A6,6 0 0,1 8,117" stroke="black" fill="none"/><polygon fill="white" points="207,108 592,108 592,117 207,117"/>
<text x="208" y="117" textLength="383" font-family="Helvetica" font-size="12" fill="black">
optional: MM IDENTITY REQ + RESP (IMSI) if MSC doesn't know TMSI
</text>
<line x1="200" y1="129" x2="200" y2="157" stroke="black"/>
<line x1="600" y1="129" x2="600" y2="157" stroke="black"/>
<line x1="1000" y1="129" x2="1000" y2="157" stroke="black"/>
<line x1="600" y1="140" x2="1000" y2="140" stroke="black"/>
<polygon fill="black" points="1000,140 990,146 990,134"/>
<polygon fill="white" points="723,130 876,130 876,139 723,139"/>
<text x="724" y="139" textLength="151" font-family="Helvetica" font-size="12" fill="black">
MAP SEND AUTH INFO req
</text>
<line x1="200" y1="157" x2="200" y2="185" stroke="black"/>
<line x1="600" y1="157" x2="600" y2="185" stroke="black"/>
<line x1="1000" y1="157" x2="1000" y2="185" stroke="black"/>
<polygon fill="white" points="808,157 1192,157 1192,179 808,179"/>
<line x1="808" y1="157" x2="1192" y2="157" stroke="black"/>
<line x1="808" y1="179" x2="1192" y2="179" stroke="black"/>
<line x1="808" y1="157" x2="808" y2="179" stroke="black"/>
<line x1="1192" y1="157" x2="1192" y2="179" stroke="black"/>
<polygon fill="white" points="940,164 1059,164 1059,173 940,173"/>
<text x="941" y="173" textLength="117" font-family="Helvetica" font-size="12" fill="black">
Generate Auth Tuples
</text>
<line x1="200" y1="185" x2="200" y2="213" stroke="black"/>
<line x1="600" y1="185" x2="600" y2="213" stroke="black"/>
<line x1="1000" y1="185" x2="1000" y2="213" stroke="black"/>
<line x1="1000" y1="196" x2="600" y2="196" stroke="black"/>
<polygon fill="black" points="600,196 610,202 610,190"/>
<polygon fill="white" points="720,186 879,186 879,195 720,195"/>
<text x="721" y="195" textLength="157" font-family="Helvetica" font-size="12" fill="black">
MAP SEND AUTH INFO resp
</text>
<line x1="200" y1="213" x2="200" y2="241" stroke="black"/>
<line x1="600" y1="213" x2="600" y2="241" stroke="black"/>
<line x1="1000" y1="213" x2="1000" y2="241" stroke="black"/>
<line x1="600" y1="224" x2="200" y2="224" stroke="black"/>
<polygon fill="black" points="200,224 210,230 210,218"/>
<polygon fill="white" points="333,214 466,214 466,223 333,223"/>
<text x="334" y="223" textLength="131" font-family="Helvetica" font-size="12" fill="black">
MM AUTH REQ (RAND)
</text>
<line x1="200" y1="241" x2="200" y2="269" stroke="black"/>
<line x1="600" y1="241" x2="600" y2="269" stroke="black"/>
<line x1="1000" y1="241" x2="1000" y2="269" stroke="black"/>
<line x1="200" y1="252" x2="600" y2="252" stroke="black"/>
<polygon fill="black" points="600,252 590,258 590,246"/>
<polygon fill="white" points="330,242 468,242 468,251 330,251"/>
<text x="331" y="251" textLength="136" font-family="Helvetica" font-size="12" fill="black">
MM AUTH RESP (SRES)
</text>
<line x1="200" y1="269" x2="200" y2="297" stroke="black"/>
<line x1="600" y1="269" x2="600" y2="297" stroke="black"/>
<line x1="1000" y1="269" x2="1000" y2="297" stroke="black"/>
<polygon fill="white" points="408,269 792,269 792,291 408,291"/>
<line x1="408" y1="269" x2="792" y2="269" stroke="black"/>
<line x1="408" y1="291" x2="792" y2="291" stroke="black"/>
<line x1="408" y1="269" x2="408" y2="291" stroke="black"/>
<line x1="792" y1="269" x2="792" y2="291" stroke="black"/>
<polygon fill="white" points="521,276 677,276 677,285 521,285"/>
<text x="522" y="285" textLength="154" font-family="Helvetica" font-size="12" fill="black">
SRES(MS) == SRES(HLR) ?
</text>
<line x1="200" y1="297" x2="200" y2="325" stroke="black"/>
<line x1="600" y1="297" x2="600" y2="325" stroke="black"/>
<line x1="1000" y1="297" x2="1000" y2="325" stroke="black"/>
<line x1="600" y1="308" x2="1000" y2="308" stroke="black"/>
<polygon fill="black" points="1000,308 990,314 990,302"/>
<polygon fill="white" points="729,298 870,298 870,307 729,307"/>
<text x="730" y="307" textLength="139" font-family="Helvetica" font-size="12" fill="black">
MAP UPD LOC AREA req
</text>
<line x1="200" y1="325" x2="200" y2="353" stroke="black"/>
<line x1="600" y1="325" x2="600" y2="353" stroke="black"/>
<line x1="1000" y1="325" x2="1000" y2="353" stroke="black"/>
<line x1="1000" y1="336" x2="600" y2="336" stroke="black"/>
<polygon fill="black" points="600,336 610,342 610,330"/>
<polygon fill="white" points="707,326 892,326 892,335 707,335"/>
<text x="708" y="335" textLength="183" font-family="Helvetica" font-size="12" fill="black">
MAP INSERT SUBSCR DATA req
</text>
<line x1="200" y1="353" x2="200" y2="381" stroke="black"/>
<line x1="600" y1="353" x2="600" y2="381" stroke="black"/>
<line x1="1000" y1="353" x2="1000" y2="381" stroke="black"/>
<line x1="600" y1="364" x2="1000" y2="364" stroke="black"/>
<polygon fill="black" points="1000,364 990,370 990,358"/>
<polygon fill="white" points="704,354 895,354 895,363 704,363"/>
<text x="705" y="363" textLength="189" font-family="Helvetica" font-size="12" fill="black">
MAP INSERT SUBSCR DATA resp
</text>
<line x1="200" y1="381" x2="200" y2="409" stroke="black"/>
<line x1="600" y1="381" x2="600" y2="409" stroke="black"/>
<line x1="1000" y1="381" x2="1000" y2="409" stroke="black"/>
<line x1="1000" y1="392" x2="600" y2="392" stroke="black"/>
<polygon fill="black" points="600,392 610,398 610,386"/>
<polygon fill="white" points="726,382 873,382 873,391 726,391"/>
<text x="727" y="391" textLength="145" font-family="Helvetica" font-size="12" fill="black">
MAP UPD LOC AREA resp
</text>
<line x1="200" y1="409" x2="200" y2="437" stroke="black"/>
<line x1="600" y1="409" x2="600" y2="437" stroke="black"/>
<line x1="1000" y1="409" x2="1000" y2="437" stroke="black"/>
<line x1="600" y1="420" x2="200" y2="420" stroke="black"/>
<polygon fill="black" points="200,420 210,426 210,414"/>
<polygon fill="white" points="353,410 446,410 446,419 353,419"/>
<text x="354" y="419" textLength="91" font-family="Helvetica" font-size="12" fill="black">
CIPH MOD CMD
</text>
<line x1="200" y1="437" x2="200" y2="465" stroke="black"/>
<line x1="600" y1="437" x2="600" y2="465" stroke="black"/>
<line x1="1000" y1="437" x2="1000" y2="465" stroke="black"/>
<line x1="200" y1="448" x2="600" y2="448" stroke="black"/>
<polygon fill="black" points="600,448 590,454 590,442"/>
<polygon fill="white" points="345,438 453,438 453,447 345,447"/>
<text x="346" y="447" textLength="106" font-family="Helvetica" font-size="12" fill="black">
CIPH MOD COMPL
</text>
<line x1="200" y1="465" x2="200" y2="493" stroke="black"/>
<line x1="600" y1="465" x2="600" y2="493" stroke="black"/>
<line x1="1000" y1="465" x2="1000" y2="493" stroke="black"/>
<line x1="600" y1="476" x2="200" y2="476" stroke="black"/>
<polygon fill="black" points="200,476 210,482 210,470"/>
<polygon fill="white" points="342,466 457,466 457,475 342,475"/>
<text x="343" y="475" textLength="113" font-family="Helvetica" font-size="12" fill="black">
MM LOC UPD RESP
</text>
<line x1="200" y1="493" x2="200" y2="521" stroke="black"/>
<line x1="600" y1="493" x2="600" y2="521" stroke="black"/>
<line x1="1000" y1="493" x2="1000" y2="521" stroke="black"/>
<line x1="200" y1="504" x2="600" y2="504" stroke="black"/>
<polygon fill="black" points="600,504 590,510 590,498"/>
<polygon fill="white" points="320,494 479,494 479,503 320,503"/>
<text x="321" y="503" textLength="157" font-family="Helvetica" font-size="12" fill="black">
MM TMSI REALLOC COMPL
</text>
<line x1="200" y1="521" x2="200" y2="549" stroke="black"/>
<line x1="600" y1="521" x2="600" y2="549" stroke="black"/>
<line x1="1000" y1="521" x2="1000" y2="549" stroke="black"/>
<line x1="600" y1="532" x2="200" y2="532" stroke="black"/>
<polygon fill="black" points="200,532 210,538 210,526"/>
<polygon fill="white" points="363,522 436,522 436,531 363,531"/>
<text x="364" y="531" textLength="71" font-family="Helvetica" font-size="12" fill="black">
CLEAR CMD
</text>
<line x1="200" y1="549" x2="200" y2="577" stroke="black"/>
<line x1="600" y1="549" x2="600" y2="577" stroke="black"/>
<line x1="1000" y1="549" x2="1000" y2="577" stroke="black"/>
<line x1="200" y1="560" x2="600" y2="560" stroke="black"/>
<polygon fill="black" points="600,560 590,566 590,554"/>
<polygon fill="white" points="355,550 443,550 443,559 355,559"/>
<text x="356" y="559" textLength="86" font-family="Helvetica" font-size="12" fill="black">
CLEAR COMPL
</text>
<line x1="200" y1="571" x2="200" y2="577" stroke="black"/>
<line x1="600" y1="571" x2="600" y2="577" stroke="black"/>
<line x1="1000" y1="571" x2="1000" y2="577" stroke="black"/>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,256 @@
What happens on a protocol level when switching on a phone
==========================================================
:author: Harald Welte <laforge@gnumonks.org>
:copyright: 2018 by Harald Welte (License: CC-BY-SA)
:backend: slidy
:max-width: 45em
== Introduction
* Everybody uses cellphones and mobile internet these days
* Still very few people know what's going on, even those with deep TCP/IP understanding
* Let's try to shed some light on the inner workings on a protocol level
NOTE:: this talk is about 2G (GSM/GPRS/EDGE) and 3G (UMTS/HS*PA) only
== Classic GSM (2G) network as digraph
[graphviz]
----
digraph G {
rankdir=LR;
MS0 [label="MS\n(Phone)"]
MS1 [label="MS\n(Phone)"]
MS2 [label="MS\n(Phone)"]
MS3 [label="MS\n(Phone)"]
BTS0 [label="BTS\n(Cell)"]
BTS1 [label="BTS\n(Cell)"]
MSC [label="MSC/VLR"]
HLR [label="HLR/AUC"]
MS0->BTS0 [label="Um"]
MS1->BTS0 [label="Um"]
MS2->BTS1 [label="Um"]
MS3->BTS1 [label="Um"]
BTS0->BSC [label="Abis"]
BTS1->BSC [label="Abis"]
BSC->MSC [label="A"]
MSC->HLR [label="C"]
}
----
== Powering up the phone
* Your various processors / cores boot up
* Hardware gets initialized
* We will look at the cellular related activity only here
* Registering to a Cellular network can take *ages* at times. Why is that?
== Network Selection (2G): RF Power Scan
* GSM has many narrow-band channels/frequencies (ARFCN = Absolute Radio Frequency Channel Number):
** 123 ARFCN in 850 MHz
** 173 ARFCN in 900 MHz
** 373 ARFCN in 1800 MHz
** 298 ARFCN in 1900 MHz
** total of 967 ARFCN in a quad-band phone
* The phone performs a (quick) RF power scan over all ARFCN to determine which channels contain how much energy (RxLev, RSSI)
== Network Selection (2G): Freq + Sync burst detection
* the phone picks the channels with highest amount of energy
* it tries to decode the FCCH (Frequency Correction Channel) to slave its own internal clock (VCTCXO) to the frequency information contained in the FCCH
* it then moves to the SCH (Synchronization Channel) to determine the current GSM frame number + training sequence code
* finally, it is aligned with both the *carrier frequency*, and knows where in the *time division multiplex* frame/multiframe the BTS (Cell) currently transmits
== Network Selection (2G): BCCH decode
* After Frequency and Sync burst detection, the phone moves to BCCH (Broadcast Common Control Channel)
* The BCCH contains a loop of repeated broadcasts of so-called *SYSTEM INFORMATION* messages
* There are many different *SYSTEM INFORMATION TYPEs* which are repeatedly iterated over
* SYSTEM INFORMATION (SI) 3 and 4 contain, among other things MCC + MNC information
** MCC: Mobile Country Code (262 for Germany)
** MNC: Mobile Network Code (01 for T-Mobile, 02 for Vodafone, 03 for E-Plus, ...)
* Now the phone knows to which operator the cell broadcasting on this ARFCN
* The process of FCCH + SCH alignment with successive BCCH decoding is repeated for a number of strong signal ARFCNs to create a list of "available networks"
** this is the output of what you see when you do a *manual network search* on your phone
*** the numeric MCC/MNC is typically translated in a string name based on a mapping table in the phone firmware, possibly extended by information on the SIM (EF.PNN, EF.OPL)
== Network Selection: Which Network to register
* Assuming we have a list of ARFCN <-> MCC+MNC, which network do we choose?
** if manual network selection: use whatever the user has chosen
** we assume automatic network selection below
* If the cell-advertised MCC+MNC matches the IMSI prefix, it is the home network
** home network trumps everything else
* SIM / USIM contains various lists which operators use to control selection policy in roaming
** EF.PLMNsel (PLMN Selector)
** EF.PLMNwAcT (User-controlled PLMN Selector with Access Technology)
** EF.HPPLMN (Higher Priority PLMN)
** EF.FPLMN (Forbidden PLMNs)
** EF.OPLMNwACT (Operator-controlled LMN Selector with Access Technology)
** EF.HPLMNwAcT (Home PLMN Selector with Access Technology)
** EF.EHPLMN (Equivalent HPLMN)
* finally, MS will select a (first) cell to attempt registration.
== Cell Selection State Machine
image::gsm_cell_selection.png[]
== Registering to a network: LOCATION UPDATE
* *LOCATION UPDATE* is a key transaction on the MM-sublayer of the Layer3 of the 2G/3G protocol stack
* it is used to update the location/presence information of the network
* there are variants:
** IMSI ATTACH is used for initial registration at power-up (our case here)
** NORMAL is an update triggered by a change of location (arae code) as the user moves around the coverage
** PERIODIC is used when a timer expires, similar to a 'keep alive' in many protocols
* the *MM LOCATION UPDATE* on the Um/Abis/A interface up to the MSC is translated into a *MAP UpdateLocation* towards the HLR (central subscriber database)
* authentication procedure may (should!) follow to cryptographically verify identity of subscriber
* finally, the network either sends a *MM LOCATION UPDATE ACCEPT* or *MM LOCATION UPDATE REJECT*
== GSM Control Plane Protocol Stack
image::gsm_control_stack.svg[width="100%"]
== LOCATION UPDATE: Layer 3 Only
image::location_update_l3only.png[]
== LOCATION UPDATE: Ladder Diagram
image::location_update.png[]
== GPRS for packet switched servics
[graphviz]
----
digraph G {
rankdir=LR;
MS0 [label="MS\n(Phone)"]
MS1 [label="MS\n(Phone)"]
MS2 [label="MS\n(Phone)"]
MS3 [label="MS\n(Phone)"]
BTS0 [label="BTS\n(Cell)"]
BTS1 [label="BTS\n(Cell)"]
MSC [label="MSC/VLR"]
HLR [label="HLR/AUC"]
MS0->BTS0 [label="Um"]
MS1->BTS0 [label="Um"]
MS2->BTS1 [label="Um"]
MS3->BTS1 [label="Um"]
BTS0->BSC [label="Abis"]
BTS1->BSC [label="Abis"]
BSC->MSC [label="A"]
MSC->HLR [label="C"]
BTS0->PCU [color="red"]
BTS1->PCU [color="red"]
//subgraph cluster_PS {
PCU [color="red"];
SGSN [color="red"];
GGSN [color="red"];
Internet [color="red"];
PCU->SGSN [label="Gb",color="red"]
SGSN->GGSN [label="Gp",color="red"]
GGSN->Internet [label="Gi",color="red"]
// }
}
----
== Registering for packet switched services: GPRS ATTACH
* packet-switched services were added about a decade after circuit-switched
** hence, packet-switched attach is traditionally independent of circuit-switched attach
* GPRS ATTACH is performed from MS to SGSN
** it's called GPRS ATTACH even for EDGE or even UMTS
== GPRS Control Plane Protocol Stack
image::gprs_control_stack.svg[width="100%"]
== GPRS ATTACH: Ladder Diagram
image::gprs_attach.png[width="100%"]
== Establishing a PDP Context
* in order to exchange user-IP data with the public Internet, a tunnel must be established over the entire GSM/GPRS/UMTS infrastructure
** one Tunnel end is inside the phone
** other end is in the GGSN (Gateway GPRS Support Node)
** it's a true point-to-point link, no netmask/broadcast/arp/link-layer
** if PPP is involved, this is only between the phone/modem baseband processor and the external computer
* IP address allocation + DNS server addresses exchanged via *protocol control options (PCO)* inside PDP
context activation
* phone sends *PDP CONTEXT ACTIVATE* to network (SGSN)
* network (SGSN) responds with *PDP CONTEXT ACTIVATE ACK* in succesful case
* user IP data may now be exchanged
== PDP CONTEXT ACT: Ladder Diagram
image::gprs_pdp_ctx_act.png[width="100%"]
== Classic UMTS (3G) network as digraph
[graphviz]
----
digraph G {
rankdir=LR;
MS0 [label="UE\n(Phone)"]
MS1 [label="UE\n(Phone)"]
MS2 [label="UE\n(Phone)"]
MS3 [label="UE\n(Phone)"]
BTS0 [label="NodeB\n(Cell)"]
BTS1 [label="NodeB\n(Cell)"]
BSC [label="RNC"];
MSC [label="MSC/VLR"]
HLR [label="HLR/AUC"]
MS0->BTS0 [label="Uu"]
MS1->BTS0 [label="Uu"]
MS2->BTS1 [label="Uu"]
MS3->BTS1 [label="Uu"]
BTS0->BSC [label="Iub"]
BTS1->BSC [label="Iub"]
BSC->MSC [label="Iu-CS"]
SGSN [color="red"]
GGSN [color="red"]
Internet [color="red"]
BSC->SGSN [label="Iu-PS",color="red"]
SGSN->GGSN [label="Gp",color="red"]
SGSN->HLR [color="red"]
GGSN->Internet [label="Gi",color="red"]
MSC->HLR [label="C"]
}
----
== UMTS (3G) Cell Selection
* differences primarily at physical layer
** WCDMA instead of TDMA (GSM)
** RF Channels are 5MHz wide, so many less RF channels to scan
** however, MS (now called UE) has to search in code-space, as many cells on same frequency channel
== UMTS (3G) Cell Selection
image::umts_cell_selection.png[]
== UMTS (3G) Cell Selection
* Layer 3 is almost identical to GSM
* *MM LOCATION UPDATE (Type: IMSI ATTACH)* between MS(UE) and MSC
* *PS ATTACH* between MS(UE) and SGSN
* *PDP CONTEXT ACTIVATION* between MS(UE) and SGSN
== Further Reading
* Die GSM Dm-Kanaele im Dialog, Prf. Dr. Joachim Goeller, http://www.informatik.hu-berlin.de/~goeller/isdn/DieGSMDmKanaele.pdf
* The GSM Dm-Channels (english version), http://www.informatik.hu-berlin.de/~goeller/isdn/GSMDmChannels.pdf
* 3GPP TS 43.022: "Functions related to Mobile Station in idle mode and
group receive mode" http://www.3gpp.org/DynaReport/43022.htm (GSM/GPRS)
* 3GPP TS 25.304 "User Equipment (UE) procedures in idle mode and
procedures for cell reselection in connected mode"
http://www.3gpp.org/DynaReport/25304.htm (UMTS_
== EOF
End of File

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB