2.29.2559

CODEC

CODEC : Coders/Decoders


ความรู้ทั่วไปเกี่ยวกับเทคโนโลยี    Voice over IP

            Voice  over  IP   หรือ  Voice  over  internet   Protocol   มักจะถูกเรียกสั้น ๆ ว่า VoIP เป็นเทคโนโลยีการสื่อสารแบบใหม่ที่ทำให้เราสามารถรับ ส่ง สัญญาณเสียงผ่านทางเครือข่ายอินเตอร์เน็ตหรืออินทราเน็ตได้ โดยจะต้องอาศัยอุปกรณ์ (Hardware)  หรือ โปรแกรมคอมพิวเตอร์ (Software) ทำงานร่วมกัน เทคโนโลยี VoIP  นี้ถูกคิดค้นขึ้นโดยองค์กร Advanced Research Projects Agency  Network (ARPANER) เมื่อปี ค.. 1973 เพื่อเป็นการคิดค้นเทคโนโลยีและมีประสิทธิภาพมากขึ้น ซึ่งการทำงานของ VoIP นั้นจะมีการแปลงสัญญาณเสียงจากต้นทางให้อยู่ในรูปแบบของ Packet เล็ก ๆ แล้วส่งไปยังผู้รับปลายทาง โดยอาศัยโปรโตคอลที่เรียกว่า (Internet Protocol) ในการส่งผ่านสัญญาณเสียงให้ผู้รับได้ฟังสัญญาณเสียงที่ส่งมาได้ หากมีการนำเอาเทคโนโลยี VoIP นี้ มาใช้งานในองค์กรต่าง ๆ จะพบว่าช่วยลดค่าใช้จ่ายการใช้งานโทรศัพท์แบบปกติได้เป็นจำนวนมาก อาทิเช่น  การใช้โทรศัพท์ทางไกลในประเทศและต่างประเทศ เป็นต้น
            VoIP  เป็นเทคโนโลยีสื่อสารด้วยเสียงผ่านระบบเครือข่ายอินเทอร์เน็ต โดยจะแปลงเสียงจากผู้ส่งที่เป็นสัญญาณอนาล็อกให้เป็นสัญญาณดิจิตอลผ่านอุปกรณ์เครือข่ายแล้วส่งต่อผ่านทางเครือข่ายอินเตอร์เน็ตไปยังผู้รับ จากนั้นจะทำการแปลงสัญญาณกลับจากสัญญาณดิจิตอลให้เป็นสัญญาณอนาล็อกผ่านทางอุปกรณ์เครือข่าย เพื่อให้ผู้รับได้ยินเสียงที่ส่งไป อีกทั้งยังเป็นเทคโนโลยีที่สามารถช่วยลดค่าใช้จ่ายในการใช้งานโทรศัพท์ได้อีกช่องทางหนึ่ง

มาตรฐานการเข้ารหัส CODEC

             CODECS (Coders/Decoders) หรือ โคเดก เป็นขั้นตอนวิธี (Algorithm)  ที่ใช้ในการเข้ารหัสและถอดรหัสสัญญาณเสียงที่รับส่งกันระหว่างการสนทนาเพื่อให้มีความถูกต้อง และเป็นมาตรฐานเดียวกันให้สามารถส่งผ่านบนระบบเครือข่ายอินเทอร์เน็ตหรืออินทราเน็ตได้ ปัจจุบันองค์กร ITU-T เป็นผู้กำหนดมาตรฐาน CODECS ที่มีการใช้งานกันบนเครือข่ายของ VoIP โดยจะมีการเขียนตัวอักษร “G” นำหน้า เช่น G.711  G.723   G.729  เป็นต้น  ซึ่งแต่ละมาตรฐานก็จะมีขั้นตอนวิธีการที่แตกต่างกันไปบางมาตรฐานจะให้คุณภาพเสียงที่ดีเยี่ยม  บางมาตรฐานใช้แบนวิดท์ (Bandwidth) มาก เช่น G.711 ซึ่งเหมาะสำหรับเครือข่ายในหรือ LAN  บางมาตรฐานก็ให้คุณภาพเสียงที่ดีแต่ใช้แบนด์วิดท์น้อย เช่น G.729 เหมาะสำหรับการสื่อสารผ่านเครือข่ายอินเทอร์เน็ตระหว่างประเทศหรือองค์กร แต่มาตรฐาน G.729 นั้น อาจะต้องมีการซื้อลิขสิทธิ์ก่อนจึงจะสามารถใช้งานได้ ทั้งนี้ขึ้นอยู่กับระบบที่เลือกใช้งานด้วย นอกจากมาตรฐานที่ขึ้นต้นด้วยตัวอักษร G แล้วยังมีอีกหลาย ๆ CODECS ที่ได้รับความนิยม เช่น  GSM , iLBC , Speex ซึ่งจะนำเสนอต่อไป

            G.711 เป็นโคเดกที่ใช้การรหัสและถอดรหัสสัญญาณเสียงที่มีขนาด 64 kbps โดยจะไม่มีการบีบอัดสัญญาณเสียง และมีการใช้งานซีพียูในการเข้าและถอดรหัสน้อยมากจึงทำให้คุณภาพที่ได้มานั้นคุณภาพดีแต่จะใช้งานช่องสัญญาณ (Bandwidth) ที่มากว่าโคเดก (Codec) ชนิดอื่น ๆ โดยปกติแล้วมาตรฐาน G.711 นั้นจะแบ่งออกเป็นอีก 2 มาตรฐานย่อยคือ  alaw หรือ ulaw โดยที่ G.711 alaw นั้นจะใช้ในยุโรป (Europe) ส่วน G.711  ulaw นั้นจะใช้ในสหรัฐอเมริกา ซึ่งทั้งสองมาตรฐานก็ต้องการช่องสัญญาณ (Bandwidth) ที่ 64 kbps โดยทั่วไปแล้วอุปกรณ์ที่ใช้งานในระบบ VoIP นั้นจะตรองรับทั้งสองมาตรฐานนี้เป็นหลักไม่ว่าจะใช้อุปกรณ์ที่เป็นโทรศัพท์แบบ IP Phone ทั้งฮาร์ดแวร์และซอฟต์แวร์ รวมถึงอุปกรณ์แปลงสัญญาณเสียงอย่าง ATA ก็รองรับด้วยเช่นกัน หากมีการนำโคเดกนี้ไปใช้งานกับการสื่อสารผ่านทาง Dial up ที่มีช่องสัญญาณเพียง 56 kbps อาจจะทำให้คุณภาพเสียงออกมาไม่ดีนัก เสียงจะขาด ๆ หาย ๆ ได้ เนื่องจากช่องสัญญาณที่ใช้ในการสื่อสารมีขนาดเล็กกว่าความต้องการของมาตรฐานนี้
            G.721 , G723, G726, G.728 และ G.729A
มาตรฐานเหล่านี้จะมีการปรับปรุงเปลี่ยนตามความเหมาะสมของสภาพเครือข่ายที่ใช้งานอยู่ โดยระบบจะมีการเลือกโคเดกที่มีความเหมาะสมให้กับอุปกรณ์ทั้งต้นทางและปลายทาง โดยจะคำนึงถึงความพอเพียงของช่องสัญญาณ (Bandwidth) ที่ใช้งานอยู่ ณ ขณะนั้น ซึ่งความต้องการของโคเดกเหล่านี้ก็จะอยู่ระหว่าง 8 ถึง 32 kbps นอกจากอุปกรณ์โทรศัพท์ต้นทาง และ ปลายทางจะรองรับมาตรฐานโคเดกเหล่านี้แล้วตัวเซิร์ฟเวอร์เองก็ต้องมีตัวแปลงเพื่อเข้ารหัสและถอดรหัสตามมาตรฐานนั้น ๆ ด้วยโดยส่วนมากแล้วมาตรฐานในกลุ่มนี้จะต้องเสียค่าลิขสิทธิ์ในการใช้งาน เช่น G.729A  นั้นเสียค่า License จำนวน 10 ดอลล่าร์ หากต้องการใช้งานมาตรฐานนี้กับระบบโทรศัพท์ Asterisk เป็นต้น
            GMS  หรือ  Global System for  Mobile communications เป็นมาตรฐาน Codec ที่ใช้งานสำหรับการสื่อสารของโทรศัพท์มือถือ ที่มีการใช้ช่องสัญญาณที่ 13 kbps ในการรับส่สัญญาณเสียง เป้นมารตรฐานที่มีขนาดเล็กและให้คุณค่าเสียงในระดับที่ดีและยังมีการใช้หน่วยประมาลผลต่ำอีกด้วย
            ILBC หรือ Internet low – bitrate code เป็นอีกมาตรฐานหนึ่งที่มีการใช้ช่องสัญญาณขนาดเล็กมาก โดยใช้ที่ 15 kbps ซึ่งสามารถใช้งานมาตรฐานนี้ได้ฟรี โดยที่อุปกรณ์โทรศัพท์ทั้งต้นทางและปลายทางต้องรองรับมาตรฐานนี้ด้วยเช่นกันจึงสามรถใช้งานได้ สามารถดูรายละเอียดของมาตรฐานโคเดกนี้ได้จาก www.ilbcfreeware.org
            Speex เป็นมาตรฐานโคเดกที่ใช้ช่องสัญญาณ (Bandwidth) ที่อยู่ระหว่าง 8 ถึง 32 kbps ตัว Speex เองสามารถที่จะปรับการใช้ช่องสัญญาณให้อยู่ในระดับกลางได้โดยไม่ต้องการการเรียกสายใหม่ เป็นโคเดกที่มีการนำมาใช้งานในการสื่อสารผ่านอินเทอร์เน็ตมาก เนื่องจากเป็นโคเดกที่ใช้งานได้ฟรี และมีความน่าเชื่อถือสูงแต่อย่างไรก็ตามอุปกรณ์ต้นทาง และ ปลายทางจะต้องรองรับมาตรฐานนี้ด้วยเช่นกัน

ตารางเปรียบเทียบการใช้งานมาตรฐาน Codec แต่ละประเภท
            ตารางนี้จะแสดงให้เห็นถึงความแตกต่างของการใช้งานมาตรฐานของ Codec แต่ละประเภทเพื่อเป็นข้อมูลในการพิจารณาเลือกใช้งาน Codec ให้มีความเหมาะสมกับสภาพเครือข่ายที่ใช้งานอยู่เพื่อให้เครื่องโทรศัพท์ที่อยู่ต้นทาง และปลายทางสามารถสื่อสารกันได้โดยการใช้งาน Codec ที่เหมือนกันทั้งนี้ต้องตรวจสอบดูด้วยว่า เครื่องโทรศัพท์ต้นทาง ปลายทาง และระบบโทรศัพท์ IP-PBX ที่นำมาใช้งานนั้น รองรับมาตรฐานดังกล่าวด้วย

ตารางการเปรียบเทียบ Codec แต่ละประเภท

Codec
Bandwidth
Packet
Interval
Ethernet Overhead bandwidth
Processing Intensity
Total Bandwidth
G.711
64 kbps
20 ms
31.2 kbps
Low
95.2 kbps
G.726
32 kbps
20 ms
31.2 kbps
Medium
63.2 kbps
G.728
16 kbps
10 ms
31.2 kbps
High
78.2 kbps
G.729A
8 kbps
10 ms
31.2 kbps
High
39.2 kbps
GSM
13 kbps
20 ms
31.2 kbps
Medium
44.2 kbps
iLBC
15 kbps
10 ms
31.2 kbps
High
46.2 kbps
Speex
8.32 kbps
10 ms
31.2 kbps
High
39.2 kbps

2.12.2559

VMS

VMS : Voice Mail Service


เป็นบริการฝากข้อความเสียง ที่เพิ่มความสะดวกสบาย ทำให้ไม่พลาดการติดต่อ โดยนำบริการ Miss Call Alert (MCA) มาร่วมเข้าไว้ด้วยกันซึ่งมีรายละเอียดต่าง ๆ ดังนี้

การตั้งค่าโอนสายทุกกรณี
การตั้งค่าโอนสายกรณีสายไม่ว่าง
การตั้งค่าโอนสายกรณีไม่รับสาย
การตั้งค่าโอนสายกรณีไม่สามารถติดต่อได้ / อยู่นอกพื้นที่ให้บริการ

Credit : http://truemoveh.truecorp.co.th/3g/vas/sms-mms/entry/3759

2.10.2559

AV

AV : Authentication Vectors


     คือค่าการยืนยันตรวจสอบเอกลักษณ์ของผู้ใช้ Ue/User เพื่อรักษาความปลอดภัยในการเข้ามาใช้งานในเครือข่าย ตรวจสอบจาก username และ password ว่าถูกต้องไหม โดยจะร้องขอข้อมูลจาก HLR / AuC / HSS 

รูปแบบใช้ชุดห้ากลุ่มในการคำนวณเข้ารหัสที่ถูกสร้างมาจาก HSS/AuC 

Quintet = (RAND, AUTN, XRES, CK, IK)

RAND = Random Number สุ่มหมายเลข
AUTN = Authentication Token ตรวจสอบเอกลักษณะเฉพาะ
XRES = Expected Result ผลที่คาดหวัง ผลสรุป
CK = Cipher Key สำคัญของทำเป็นรหัสตัวเลข
IK = Integrity Key สำคัญถูกต้องสมบูรณ์



และอีกรูปแบบที่คล้ายกันโดยใช้ AV

AKA : Authentication and Key Agreement
คือกระบวนการยืนยันผู้ใช้ 



AV = (AUTN, XRES, RAND, Kasme)






2.08.2559

UDP

UDP : User Datagram Protocol


  ก่อนที่จะกล่าวถึงรายละเอียดเกี่ยวกับโปรโตคอล UDP จะขอกล่าวถึงข้อมูลพื้นฐานซักเล็กน้อยเกี่ยวกับโปรโตคอล TCP/P อันที่จริงแล้วโปรโตคอล TCP/IP ทำงานแบบหลายชั้นเลเยอร์ โดยที่ชั้นเลเยอร์ที่ใช้หรืออ้างอิงหมายเลข IP คือชั้นเลเยอร์ที่ 3 หรือชั้นที่มีชื่อว่าอินเทอร์เน็ต (Internet Layer) เมื่อเทียบกับโมเดลของ OSI (Open System Interconnection) ก็คือชั้นเน็ตเวิร์ก (Network) นั่นเอง ชั้นที่ 3 นี้มีหน้าที่หลักในการนำพาแพ็กเก็ต (Packet) ของโปรโตคอลต่าง ๆ ระดับบนให้สามารถข้ามระบบเครือข่ายขนาดใหญ่ได้โดยใช้โปรโตคอลที่มีชื่อว่า อินเทอร์เน็ตโปรโตคอล (Internet Protocol: IP)
ซึ่งโปรโตคอลตัวนี้มีหน้าที่นำพาแพ็กแก็ตจากอุปกรณ์ตัวหนึ่งไปยังอีกอุปกรณ์อีกตัวหนึ่งโดยไม่รู้และไม่สนใจว่าแพ็กเก็ตภายในจะเป็นของโปรโตคอลหรือโปรแกรมประยุกต์ (Application) ตัวใดที่ทำงานบนตัวอุปกรณ์นั้น ๆ หรือคอมพิวเตอร์ตัวนั้น ๆ เช่น แพ็กเก็ตภายในนั้นอาจจะเป็นของโปรแกรมประเภทเกมแบบออนไลน์ หรือเป็นของเว็บบราวเซอร์ (Web Browser) เช่น IE (Internet Explorer) ก็ได้
ดังนั้นเมื่อโปรโตคอล IP ไม่รับทำหน้าที่ดังกล่าว หน้าที่ในการแยกแยะจุดหมายปลายทางในระดับบนจึงเป็นของชุดโปรโตคอลในชั้นเอนด์ทูเอนด์ (End-to-End/Host-to-Host ) หรือตั้งแต่ชั้นทรานสปอร์ต ( Transport ) ขึ้นไปถ้าอ้างอิงกับโมเดล OSI
           ในชั้น Transport สำหรับโปรโตคอลชุด TCP/IP ได้เตรียมไว้สองโปรโตคอลหลัก นั่นคือโปรโตคอล TCP (Transmission Control Protocol) และ UDP (User Datagram Protocol) ซึ่งโปรโตคอล UDP เป็นโปรโตคอลมาตรฐานหมายเลขที่ STD number 6 ตามมาตรฐาน RFC 768
รูปที่ 1 UDP กับ TCP/IP
           โปรโตคอล UDP นั้นไม่ซับซ้อนและเข้าใจได้ง่าย โดยคุณสมบัติของโปรโตคอล UDP มีดังต่อไปนี้
           * เป็นการสื่อสารแบบ End-to-End โปรโตคอล UDP สามารถระบุถึงโปรเซส (Process) ที่ทำงานบนเครื่องปลายทางได้ โปรเซสหมายถึงโปรแกรมที่กำลังทำงานอยู่ เช่น การเปิด IE สามตัว ก็จะมีสามโปรเซส แต่จริงแล้ว ๆ เปิดแค่หนึ่งโปรแกรมอาจจะมีหลายโปรเซสเรียกว่าเทรด (Thread) ส่วนใหญ่มักจะเป็นโปรแกรมประเภทเซิร์ฟเวอร์ (Server) ที่รับการร้องขอจากไคลเอนต์ (Client) หลาย ๆ ตัวพร้อมกัน
           * เป็นการเชื่อมต่อแบบคอนเน็กชันเลส (Connectionless) ซึ่งจะกล่าวรายละเอียดในส่วนถัดไป
           * ใช้การส่งข้อมูลแบบเมสเซจโอเรียนเต็ด (Message-oriented) โปรเซสที่ใช้โปรโตคอล  UDP โดยทั่วไปจะรับและส่งบนเมสเซจแบบเดี่ยวโดยศัพท์ทางเทคนิคเรียกว่า เซกเมนต์ (Segment) คำว่าเมจเซจแบบเดี่ยวคือไม่มีการต่อหรือแบ่งเมจเซจโดยโปรโตคอล UDP
รูปแบบการเชื่อมต่อแบบ Connectionless            โปรโตคอล UDP ใช้การเชื่อมต่อแบบ Connectionless โปรเซสที่ใช้โปรโตคอล UDP ไม่จำเป็นต้องสร้างการเชื่อมต่อ (Connection) กับปลายทางก่อนที่จะส่งข้อมูล ยกตัวอย่างง่าย ๆ คือไม่ต้องต่อสายโทรศัพท์ก่อน และเมื่อโปรเซสต้องการหยุดการสื่อสารก็สามารถจะหยุดได้ทันทีโดยไม่จำเป็นต้องทำการแฮนด์แชคกิ้ง (Handshacking) ใด ๆ การสื่อสารจะประกอบด้วยเซกเมนต์ส่วนของข้อมูลเท่านั้น ไม่มีส่วนควบคุมการสื่อสาร
อินเตอร์เฟซ Message-oriented            โปรโตคอล UDP ใช้อินเตอร์เฟสแบบเมสเซจ (Message-oriented Interface) แต่ละเมสเซจจะถูกส่งโดยใช้หนึ่งแพ็กเก็ต หรือหนึ่งดาต้าแกรม ของ UDP เท่านั้น นั้นหมายความว่าผู้ออกแบบโปรแกรมประยุกต์ต้องรู้ขอบเขตของข้อมูลที่จะส่ง
อย่างไรก็ตามขนาดสูงสุดของดาต้าแกรมของ UDP ที่ดีนั้นขึ้นอยู่กับขนาดสูงสุดของดาต้าแกรมของ IP การทำให้ดาต้าแกรมของ UDP มีขนาดใหญ่นั้นอาจจะทำให้เกิดปัญหาในการสื่อสาร อันเนื่องจากดาต้าแกรมขนาดใหญ่สามารถทำให้เกิดการแตกเป็นดาต้าแกรมย่อย ๆ ในชั้นเลเยอร์ของ IP (Fragmentation) โดยปกติมักจะเกิดกับเครื่องคอมพิวเตอร์ ส่วนระบบงานอุตสาหกรรม เช่น PLC มักไม่เกิดปัญหาดังกล่าวเนื่องจากมักส่งข้อมูลในจำนวนที่ไม่มากเน้นความเร็วเป็นหลัก
           โปรโตคอล UDP ให้ระดับประสิทธิภาพเทียบเท่ากับโปรโตคอล IP นั้นหมายว่าดาต้าแกรมสามารถหายได้ สามารถซ้ำได้ และเสียหายได้ในการติดต่อสื่อสาร ฉะนั้นโปรโตคอล UDP จึงเหมาะสมมากกับระบบงานประยุกต์ทางด้าน เสียง หรือ วิดีโอ ที่สามารถทนต่อความผิดพลาดในการส่งข้อมูลได้สูง 
การกำหนดจุดหมายปลายทาง           โปรแกรมประยุกต์ที่ส่งดาต้าแกรมไปยังเซิร์ฟเวอร์จำเป็นต้องระบุจุดหมายปลายทางที่มากกว่าหมายเลข IP ดำเนินการ ก็เพราะว่าดาต้าแกรมนั้นปกติจะส่งตรงไปยังโปรเซสปลายทางที่แน่นอน ดังนั้นโปรโตคอล UDP ต้องจัดการงานเหล่านี้โดยใช้หมายเลขพอร์ต (Port)
           พอร์ตมีขนาด 16 บิตที่มีไว้สำหรับระบุว่าโปรเซสบนเครื่องเซิร์ฟเวอร์ที่เกี่ยวข้องกับดาต้าแกรมนั้น ๆ โดยทั่วไปแล้วจะมีพอร์ตอยู่ 2 ประเภท ดังต่อไปนี้
           1. พอร์ตเวลล์โนว์ (Well-known Port)            พอร์ต Well-known จะเป็นพอร์ตมาตรฐานที่รู้จักกันดีอยู่แล้วบนตัวเซิร์ฟเวอร์ ตัวอย่าง โปรแกรม TELNET ใช้พอร์ตหมายเลข 23
           พอร์ต Well-known จะมีค่าระหว่าง 1 ถึง 1023 (ก่อนหน้าปี 1992 มีช่วงอยู่ระหว่าง 256 ถึง 1023 ซึ่งถูกใช้ในระบบเซิร์ฟเวอร์ประเภท UNIX) โดยทั่วไปแล้วพอร์ต Well-known จะเป็นหมายเลขคี่ เหตุผลก็เพราะว่าในสมัยก่อนนั้นหลักการของพอร์ตจะใช้เป็นคู่ของพอร์ตหมายเลขคี่และหมายเลขคู่สำหรับการสื่อสารแบบดูเพล็กซ์ แต่โดยส่วนใหญ่แล้วโปรแกรมฝั่งเซิร์ฟเวอร์ต้องการแค่เพียงหนึ่งพอร์ตเท่านั้น ยกเว้นเพียงโปรแกรมเซิร์ฟเวอร์ BOOTP ที่ต้องใช้สองพอร์ตคือพอร์ตหมายเลข 67 และ 68

           จุดประสงค์ของพอร์ต Well-known คือทำให้ไคลเอนต์สามารถหาโปรเซสประเภทเซิร์ฟเวอร์ที่ต้องการแบบปริยายโดยไม่ต้องทำการคอนฟิกกูเรชันโดยผู้ใช้
           อีกอย่างพอร์ต Well-known ที่จองไว้แบบถาวรจะต้องลงทะเบียนที่หน่วยงาน Internet Corporation for Assigned Names and Numbers (ICANN) โดยปัจจุบันมีการจองไว้จำนวน 1024 (0-1023) หมายเลข สำหรับโปรแกรมฝั่งเซิร์ฟเวอร์มาตรฐาน ดังตัวอย่างบางส่วนที่ใช้โปรโตคอล UDP ดังตารางที่ 1
    
ตารางที่ 1 UDP Server Port Numbers
     
2. พอร์ตอีเฟมเมรอล (Ephemeral Port)            ฝั่งไคลเอนต์ไม่ได้จำเป็นต้องใช้พอร์ต Well-known ก็เพราะว่าไคลเอนต์สามารถเข้าติดต่อสื่อสารกับเซิร์ฟเวอร์เมื่อใดก็ได้ และใช้หมายเลขพอร์ตใดก็ได้ที่ไม่ซ้ำกับโปรเซสแบบไคลเอนต์ตัวอื่นในการส่งดาต้าแกรมไปยังเซิร์ฟเวอร์ แต่ละโปรเซสฝั่งไคลเอนต์จะถูกจัดสรรหมายเลขพอร์ตจากระบบปฏิบัติการที่มันทำงานอยู่ โดยระบบพูลลิ่ง (Pooling) พอร์ต Ephemeral จะมีค่ามากกว่า 1023 โดยปกติจะอยู่ในช่วง 1024 ถึง 5000 หลักการมีอยู่ว่าไคลเอนต์สามารถใช้หมายเลขพอร์ตใดก็ได้ตราบที่องค์ประกอบดังต่อไปนี้เป็นเอกลักษณ์ <ประเภทโปรโตคอลระดับทรานสพอร์ต, หมายเลข IP, หมายเลขพอร์ต >
           ดังนั้นการชี้ขาดว่าคู่โปรเซสไหนกำลังติดต่อสื่อสารกันต้องใช้หมายเลขพอร์ตทั้งสองฝั่งเป็นตัวตัดสิน ในทางเทคนิคหมายเลขพอร์ตจะระบุถึงโปรเซสของโปรแกรมประยุกต์ในเครื่องนั้น ๆ แต่ซ็อกเก็ต (Socket) ซึ่งประกอบด้วยหมายเลข IP และหมายเลขพอร์ต ตัวอย่างเช่น 193.61.29.127:53 (ซ็อกเก็ต สำหรับ DNS Server) จะเป็นตัวบ่งชี้การเชื่อมต่อแบบ End Point เสมือนเป็นวงจรสื่อสารแบบเสมือน (Virtual Circuit) ของการติดต่อสื่อสารของคู่โปรเซส ณ ขณะนั้น
           โดยพื้นฐานแล้วโปรโตคอล UDP ทำงานระดับแบบเดียวกับโปรโตคอล IP ยกเว้นการเราติ้ง แต่ที่เป็นพิเศษแตกต่างกับโปรโตคอล IP คือสามารถทำตัวเป็น Multiplexer/Demultiplexer สำหรับการส่งและรับดาต้าแกรมโดยใช้หมายเลขพอร์ตเสมือนเป็นสล๊อตข้อมูล (Data Slot) ดังแสดงในรูปที่ 2
รูปที่ 2 UDP Multiplexer/Demultiplexer
รูปแบบดาต้าแกรมของ UDP (Datagram Format)           แต่ละดาต้าแกรมของ UDP จะถูกส่งโดยหนึ่งดาต้าแกรมของ IP ถึงแม้ดาต้าแกรมของ IP อาจจะถูกแบ่งย่อยเป็นหลายดาต้าแกรมย่อยระหว่างการส่งซึ่งขึ้นอยู่กับอุปกรณ์เครือข่ายที่มันวิ่งผ่าน แต่อย่างไรก็ตามที่ฝั่งรับจะประกอบรวมดาต้าแกรมย่อยของ IP กลับตามสภาพเดิมก่อนที่จะส่งให้โปรโตคอล UDP สำหรับโปรโตคอล IP ทุกระบบจะยอมรับขนาดดาต้าแกรมที่ 576 ไบต์ นั้นหมายความว่าถ้าใช้ขนาดส่วนหัวของ IP ใหญ่สุดที่ 60 ไบต์ จะมีพื้นที่ให้ดาต้าแกรมของ UDP จำนวน 516 ไบต์ซึ่งเป็นขนาดที่ผู้ออกแบบไม่ควรใช้เกิน แต่ตามหลักการขนาดดาต้าแกรมของ UDP สามารถใหญ่กว่า 516 ไบต์ได้ แต่ก็ไม่รับประกันประสิทธิภาพการสื่อสาร
           โปรโตคอล UDP เป็นทางเลือกหนึ่งสำหรับโปรแกรมประยุกต์ที่จะส่งข้อมูลโดยใช้เครือข่าย TCP/IP ข้อดีคือไม่จำเป็นต้องต้องสร้างการเชื่อมต่อก่อน โปรโตคอล UDP จะส่งข้อมูลเป็นเซกเมนต์หรือดาต้าแกรมที่ประกอบด้วยส่วนหัว (Header) ขนาด 8 ไบต์ตามด้วยข้อมูลจริง (Data) ที่ต้องการส่ง หรือในทางเทคนิคเรียกว่าเปย์โหลด (Payload) รูปแบบฟอร์แมตของดาต้าแกรมแสดงดังรูปที่ 3
     
รูปที่ 3 UDP Format
           * ฟิลด์พอร์ตต้นทาง (Source Port) เป็นฟิลด์ (Field) ที่ใช้ระบุถึงโปรเซสที่ส่งดาต้าแกรมนั้น ๆ
           * ฟิลด์พอร์ตปลายทาง (Destination Port) เป็นฟิลด์ ที่ใช้ระบุถึงโปรเซสที่ต้องนำข้อมูลในดาต้าแกรมนั้น ๆ ไปประมวลผลต่อ
           * ฟิลด์ความยาวเมสเซจ (Message Length) เป็นฟิลด์ที่ใช้บอกความยาวของดาต้าแกรมนั้นโดยคิดจากส่วนหัวรวมทั้งข้อมูลโดยมีหน่วยเป็นไบต์ หรือออกเต็ต (Octet)
           * ฟิลด์เช็คซัม (Checksum) เป็นฟิลด์ตรวจสอบความผิดพลาดแบบทางเลือก (Optional) ถ้าไม่ใช้ให้ใส่ค่าทุกบิตเท่ากับหนึ่ง
           จดจำไว้ว่า โปรโตคอล UDP ไม่ให้สนับสนุนการควบคุมการไหลของข้อมูล (Flow Control), การควบคุมความผิดพลาด (Error Control) หรือ แม้แต่การส่งซ้ำ ถ้าการได้รับดาต้าแกรมที่มีความเสียหาย สิ่งที่โปรโตคอล UDP จัดการแค่ส่งข้อมูลไปยังโปรเซสปลายทางให้ถูกต้องโดยใช้หมายเลขพอร์ตเท่านั้น
เช็คซัมของ UDP (Checksum)           เช็คซัมมีขนาด 16 บิต ฝั่งส่งสามารถเลือกว่าจะคำนวณค่าเช็คซัม หรือไม่คำนวณโดยการกำหนดให้ค่าเท่ากับศูนย์ ดังนั้นทางด้านฝั่งรับจะทำหน้าที่ตรวจสอบค่าเช็คซัมว่ามีค่าเท่ากับศูนย์หรือไม่ก่อน ถ้าไม่เท่ากับศูนย์ก็จะคำนวณว่าค่าเช็คซัมนั้นมีค่าถูกต้องหรือไม่ ถ้าไม่ถูกต้องแสดงว่าดาต้าแกรมนั้นมีปัญหา จดจำไว้ว่าโปรโตคอล UDP ใช้การคำนวณแบบ Ones-complement Arithmetic ดังนั้นค่าศูนย์จะคำนวณได้ผลทุกบิตในฟิลด์เช็คซัมเท่ากับหนึ่ง ยิ่งกว่านั้นการคำนวณหาค่าเช็คซัมไม่ใช่เฉพาะคิดจากผลรวมของฟิลด์ในดาต้าแกรมของ UDP เท่านั้น แต่จะนำค่าจากส่วนหัวจำลอง IP  (Pseudo-IP Header) มาคิดด้วยดังรูปที่ 4
รูปที่ 4 Pseudo-IP Header
UDP Encapsulation           รูปที่ 5 แสดงตัวอย่าง การบรรจุดาต้าแกรมของ UDP ลงในดาต้าแกรมของ IP และสุดท้ายทั้งหมดถูกบรรจุลงโปรโตคอลระดับดาต้าลิงค์ (Data Link)
รูปที่ 5 UDP Encapsulation
การปฏิสัมพันธ์ระดับโปรเซส           โปรโตคอล UDP ไม่ได้ถูกจำกัดให้ปฏิสัมพันธ์แบบ 1-1 เท่านั้น การปฏิสัมพันธ์แบบ 1-many ก็สามารถทำได้โดยใช้หมายเลข IP แบบบรอดคาสต์ (Broadcast) หรือ มัลติคาสต์ (Multicast) ดังนั้นการปฏิสัมพันธ์แบบ many-1 ก็สามารถทำได้เช่นกันเสมือนกับการมีหลายไคลเอนต์ติดต่อสื่อสารกับหนึ่งเซิร์ฟเวอร์ สำหรับส่วนการปฏิสัมพันธ์แบบ many-to-many ก็สามารถทำได้เช่นกันตามการประยุกต์ใช้หลักการ
โปรโตคอลที่ใช้ UDP           โปรโตคอล UDP มีประโยชน์อย่างมากสำหรับการติดต่อสื่อสารแบบไคลเอนต์-เซิร์ฟเวอร์ โดยที่ไคลเอนต์ต้องการส่งการร้องขอแบบสั้น ๆ และต้องการการตอบกลับจากเซิร์ฟเวอร์แบบสั้น ๆ เช่นกัน ถ้าไม่มีการตอบกลับ หรือการร้องขอได้เสียหาย โปรโตคอลระดับบนต้องใช้ตัวจับเวลา (Timer) รอการตอบกลับ ถ้าหมดเวลา (Time Out) ก่อนรับการตอบกลับ ไคลเอนต์ต้องทำการร้องขอใหม่อีกครั้งด้วยตัวเอง สังเกตได้ว่าถ้าทุกอย่างเป็นไปอย่างถูกต้องจะใช้เพียงแค่สองแพ็กเก็ตเท่านั้น  จึงถือได้ว่าเหมาะสมสำหรับการใช้เป็นโปรโตคอลสื่อสารบน MCU (Microcontroller Unit) เนื่องจากมีทรัพยากรจำกัด
ปัญหาของ UDP            เนื่องจากโปรโตคอล UDP สนับสนุนเพียงการจัดส่งข้อมูลแบบพื้นฐาน ปัญหาเกี่ยวกับโปรโตคอล UDP มักจะเกี่ยวข้องกับการจัดส่งข้อมูล โปรแกรมประยุกต์ที่ใช้โปรโตคอล UDP อาจจะต้องทำงานหนักในระบบเครือข่ายที่มีความคับคั่งของข้อมูลสูง การหายไปของดาต้าแกรมของ UDP จำเป็นต้องถูกจัดการที่ระดับโปรแกรมประยุกต์ ดังนั้นผู้พัฒนาโปรแกรมประยุกต์ต้องทราบว่าส่วนงานใดที่โปรโตคอล UDP ไม่ดำเนินการ โดยมีรายละเอียดที่ต้องทราบดังต่อไปนี้
           * โปรโตคอล UDP ไม่สร้างการเชื่อมต่อก่อนส่งข้อมูล ส่งทันทีถ้าเตรียมข้อมูลเสร็จเรียบร้อย เปรียบเทียบได้กับการส่งจดหมาย ซึ่งไม่ทราบว่าผู้รับอยู่ที่ปลายทางหรือไม่
           * โปรโตคอล UDP ไม่ต้องการการยืนยันว่าได้รับข้อมูลที่ส่งไปหรือไม่ เปรียบเสมือนการส่งจดหมายไม่ลงทะเบียน
           * โปรโตคอล UDP ไม่รับประกันว่าข้อมูลไปถึงปลายทางทุกครั้ง
           * โปรโตคอล UDP ไม่ตรวจสอบการสูญหายของดาต้าแกรม และไม่มีการส่งซ้ำ
           * โปรโตคอล UDP ไม่รับประกันว่าดาต้าแกรมที่ส่งออกไปจะไปถึงปลายทางตามลำดับก่อนหลัง
           * โปรโตคอล UDP ไม่มีกลไกเกี่ยวกับการควบคุมการไหลของข้อมูลในกรณีที่มีความคับคั่งของข้อมูลสูง
การใช้งานโปรโตคอล  UDP           ผู้ออกแบบหรือผู้พัฒนาสามารถใช้โปรโตคอล UDP ส่งข้อมูลที่ไม่ต้องการความเชื่อถือได้สูงมาก เช่นการขอหมายเลข IP จาก ISP (Internet Service Provider) กระบวนการดังกล่าว ดาต้าแกรมของ UDP จะถูกบรรจุในดาต้าแกรมของ IP และหลังจากนั้น จะถูกบรรจุในแพ็กเก็ตหรือเฟรมของ  PPP (Point to Point Protocol) ซึ่งเป็นโปรโตคอลที่ใช้ส่งข้อมูลประเภท IP ผ่านระบบโทรศัพท์
จะเห็นว่าทั้งโปรโตคอล UDP และโปรโตคอล IP มีส่วนเช็คซัมในการตรวจข้อผิดพลาด และส่วนของโปรโตคอล PPP ก็มี FCS (Frame Check Sequence) ตรวจสอบข้อผิดพลาด นั้นหมายความว่ามีส่วนที่สามารถหาข้อผิดพลาดตั้งสามส่วน ดังนั้นสามารถที่จะรับประกันได้ว่าข้อมูลไปถึงปลายทางได้อย่างถูกต้อง
อย่างไรก็ตามก็ยังมีโอกาสที่ข้อมูลที่ส่งไม่ไปถึงปลายทางตามลำดับ ถ้าต้องการความสามารถส่วนนี้ก็ต้องใช้โปรโตคอล TCP หรือต้องไปจัดการที่ระดับโปรแกรมประยุกต์ การใช้โปรโตคอล UDP ค่อนข้างจะพัฒนาง่ายเพราะว่าโปรโตคอล UDP ไม่ต้องติดตามผลลัพธ์ในการส่งและรับทุกทุกแพ็กเก็ต รวมทั้งไม่ต้องสร้างการเชื่อมต่อและจบการเชื่อมต่อ เสมือนการรอการรับสายโทรศัพท์ และการขอจบการสนทนา
           ก็เพราะว่าโปรโตคอล UDP ถูกออกแบบอย่างง่าย ๆ เมสเซจที่ส่งด้วยโปรโตคอล UDP จะส่งได้เร็วกว่าโปรโตคอล TCP ดังนั้นโปรโตคอล UDP จึงถูกใช้ในโปรแกรมแชต หรือการคุยโทรศัพท์ผ่านอินเทอร์เน็ต รวมทั้งการขอหมายเลข IP ผ่านชื่อ URL (Uniform Resource Locator) เป็นต้น
          * ตัวอย่างโปรโตคอล UDP สำหรับโปรแกรม DNS           04 89 00 35 00 2C AB B4 00 01 01 00 00 01 00 00 00 00 00 00 04 70 6F 70 64 02 69 78 06 6E 65 74 63 6F 6D 03 63 6F 6D 00 00 01 00 01                   
UDP Header: 04 89 00 35 00 2C AB B4
Data  00 01 01 00 00 01 00 00 00 00 00 00 04 70 6F 70 64 02 69 78 06 6E 65 74 63 6F 6D 03 63 6F 6D 00 00 01 00 01
Source Port 04 89
Destination Port 00 35
Length00 2C
ChecksumAB B4
DataDNS Message
          * การคำนวณเช็คซัมของโปรโตคอล UDP           ในการคำนวณเช็คซัมของโปรโตคอล  UDP จะรวมส่วน Pseudo IP Header เข้าไปด้วยดังต่อไปนี้
           IP Source Address           4 bytes
           IP Destination Address   4 bytes
           Protocol                              2 bytes
           UDP Length                      2 bytes
          การคำนวณจะคำนวณผลรวมของ  Pseudo IP Header, UDP Header และ ข้อมูล Payload ถ้าจำนวนไบต์ของข้อมูลเป็นเลขคี่จะต้องเพิ่มไบต์ที่เป็นซีโร่แพดเข้าไปให้เป็นเลขคู่เพื่อการการคำนวณให้เป็น 16 บิต โดยที่ Pseudo IP header และ ซีโร่แพด จะไม่ถูกส่งออกไปในระบบเครือข่าย ส่วนค่า Protocol ใน Pseudo IP header ของโปรโตคอล UDP มีค่าเท่ากับ 17

2.05.2559

Diameter

Diameter Protocol


     โปรโตคอลที่อยู่ในกลุ่มนี้จะเน้นไปที่งาน Authorization, Authentication and Accounting (AAA) ตามชื่อเรียก สำหรับโปรโตคอลกลุ่มนี้ IMS เลือกใช้งานโปรโตคอลที่ชื่อว่า Diameter ที่พัฒนามาจากโปรโตคอล Radius เพื่อใช้ในการตรวจสอบผู้ใช้งานว่าเป็นยูสเซอร์จริงหรือไม่อย่างไร มีสิทธิ์ในการใช้งานอย่างไรบ้าง ซึ่งจะเป็นการติดต่อกับ HSS และ SLF เป็นส่วนใหญ่

ยังใช้เป็นการสื่อของเทคนิคต่างๆ เช่น
Diameter Signaling Controller (DSC)
Diameter Interworking Function (IWF)
Diameter Edge Agent (DEA),
Diameter Routing Agent (DRA)

ลักษณะเฉพาะของ Diameter


ส่งแบบการควบคุมเต็มรูปแบบผ่านข้อความ ( Attribute-Value Pair : AVP )

รองรับความสามารถได้มาก
- มีการแจ้งข้อผิดพลาด
- สามารถขยายส่วน , หรือเพิ่มได้
- เป็นบริการพื้นฐานที่จำเป็นสำหรับการใช้งาน เช่น จัดการผู้ใช้ หรือ ระบบเก็บบัญชี


Packet Format Diameter message ประกอบด้วย 2 ส่วน





1.Diameter header


จากภาพ Diameter header มาไล่ดูส่วนประกอบกัน
- Version เวอชั่นของ Diameter
- Message Length บอกถึงความยาวของข้อความ รวมทั้งหมด Diameter header+Diameter AVP ด้วย
- Command Codes 
     R = Request  ร้องขอ ถ้ากำหนดค่าไว้จะเป็นการร้องขอ แต่ถ้าเว้นว่างไว้จะเป็นการตอบรับ
     P = Proxiable พร็อกซี่ ถ้ากำหนดค่าไว้จะเป็นการ พร็อกซี่, รีเล, เปลี่ยนเส้นทาง, แต่ถ้าเว้นว่างไว้จะเป็นการตอบรับ
     E = Error ข้อผิดพลาด
     T = Potentially re-transmitted message ที่อาจเกิดขึ้นในการส่งอีกครั้ง

- Commands แต่ละครั้งที่มีการ ร้องขอ/ตอบรับ แจกชุดรหัสตัวเลขมา แต่ละชุดรหัสตัวเลขจะขึ้นด้วย R เสมอ ,

การลำดับ 0-255 เป็นกันไว้ให้ RADIUS เดิม ส่วน Diameter เรียง 256-16777213 อย่างถาวร
Command-NameAbbr.CodeApplication
Capabilities-Exchange-AnswerCEA257Diameter base
Capabilities-Exchange-RequestCER257Diameter base
Re-Auth-AnswerRAA258Diameter base
Re-Auth-RequestRAR258Diameter base
AA-AnswerAAA265Diameter base
AA-RequestAAR265Diameter base
Diameter-EAP-AnswerDEA268Diameter base
Diameter-EAP-RequestDER268Diameter base
Accounting-AnswerACA271Diameter base
Accounting-RequestACR271Diameter base
Credit-Control-AnswerCCA272Diameter base
Credit-Control-RequestCCR272Diameter base
Abort-Session-AnswerASA274Diameter base
Abort-Session-RequestASR274Diameter base
Session-Termination-AnswerSTA275Diameter base
Session-Termination-RequestSTR275Diameter base
Device-Watchdog-AnswerDWA280Diameter base
Device-Watchdog-RequestDWR280Diameter base
Disconnect-Peer-AnswerDPA282Diameter base
Disconnect-Peer-RequestDPR282Diameter base
User-Authorization-AnswerUAA300Diameter base
User-Authorization-RequestUAR300Diameter base
Server-Assignment-AnswerSAA301Diameter base
Server-Assignment-RequestSAR301Diameter base
Location-Info-AnswerLIA302Diameter base
Location-Info-RequestLIR302Diameter base
Multimedia-Auth-AnswerMAA303Diameter base
Multimedia-Auth-RequestMAR303Diameter base
Registration-Termination-AnswerRTA304Diameter base
Registration-Termination-RequestRTR304Diameter base
Push-Profile-AnswerPPA305Diameter base
Push-Profile-RequestPPR305Diameter base
User-Data-AnswerUDA306Diameter base
User-Data-RequestUDR306Diameter base
Profile-Update-AnswerPUA307Diameter base
Profile-Update-RequestPUR307Diameter base
Subscribe-Notifications-AnswerSNA308Diameter base
Subscribe-Notifications-RequestSNR308Diameter base
Push-Notification-AnswerPNA309Diameter base
Push-Notification-RequestPNR309Diameter base
Bootstrapping-Info-AnswerBIA310Diameter base
Bootstrapping-Info-RequestBIR310Diameter base
Message-Process-AnswerMPA311Diameter base
Message-Process-RequestMPR311Diameter base
Update-Location-AnswerULA316Diameter base
Update-Location-RequestULR316Diameter base
Cancel-Location-ReqeustCLR317Diameter base
Cancel-Location-ResponseCLA317Diameter base
Authentication-Information-AnswerAIA318Diameter base
Authentication-Information-RequestAIR318Diameter base
Insert-Subscriber-Data-RequestISD319Diameter base
Insert-Subscriber-Data-ResponseISD319Diameter base
Delete-Subscriber-Data-RequestDSD320Diameter base
Delete-Subscriber-Data-ResponseDSD320Diameter base
Purge-UE-RequestPER321Diameter base
Purge-UE-ResponsePEA321Diameter base
Notify-AnswerNA323Diameter base
Notify-RequestNR323Diameter base
Provide-Location-AnswerPLA83886203GPP-LCS-SLg (Application-ID 16777255)
Provide-Location-RequestPLR83886203GPP-LCS-SLg (Application-ID 16777255)
Routing-Info-AnswerRIA83886223GPP-LCS-SLh (Application-ID 16777291)
Routing-Info-RequestRIR83886223GPP-LCS-SLh (Application-ID 16777291)
- Application-ID ใช้ระบุ ID เฉพาะคู่อุปกรณ์นั้นๆ หรือ Vendor เป็นผู้กำหนด
Application-IDAbbr.Full nameUsage
0BaseDiameter Common MessagesDiameter protocol association establishment/teardown/maintenance
16777217Sh3GPP ShVoIP/IMS SIP Application Server to HSS interface
16777251S6a/S6d3GPP S6a/S6dLTE Roaming signaling
16777255SLg3GPP LCS SLgLocation services
- Hop-by-Hop Identifier ใช้เพื่อให้ตรงกัน ระหว่างการร้องขอ และการตอบรับให้มาหาคู่เดิม เป็นคู่ๆไป
- End-to-End Identifier ที่ใช้ในการตรวจหาข้อความที่ซ้ำกันพร้อมกับการรวมกันของตำแหน่งเริ่มต้น
2.Diameter AVP



จากภาพ Diameter AVP มาไล่ดูส่วนประกอบกัน ก็คล้ายๆกับข้อ 1.
- Command Codes
     V = Vendor Specific เฉพาะผู้ขายอุปกรณ์
     M = Mandatory จำเป็น
     P = Protected มีการป้องกัน

- AVP code

Attribute-NameCodeData Type
Acct-Interim-Interval85Unsigned32
Accounting-Realtime-Required483Enumerated
Acct-Multi-Session-Id50UTF8String
Accounting-Record-Number485Unsigned32
Accounting-Record-Type480Enumerated
Accounting-Session-Id44OctetString
Accounting-Sub-Session-Id287Unsigned64
Acct-Application-Id259Unsigned32
Auth-Application-Id258Unsigned32
Auth-Request-Type274Enumerated
Authorization-Lifetime291Unsigned32
Auth-Grace-Period276Unsigned32
Auth-Session-State277Enumerated
Re-Auth-Request-Type285Enumerated
Class25OctetString
Destination-Host293DiamIdent
Destination-Realm283DiamIdent
Disconnect-Cause273Enumerated
E2E-Sequence300Grouped
Error-Message281UTF8String
Error-Reporting-Host294DiamIdent
Event-Timestamp55Time
Experimental-Result297Grouped
Experimental-Result-Code298Unsigned32
Failed-AVP279Grouped
Firmware-Revision267Unsigned32
Host-IP-Address257Address
Inband-Security-Id299Unsigned32
Multi-Round-Time-Out272Unsigned32
Origin-Host264DiamIdent
Origin-Realm296DiamIdent
Origin-State-Id278Unsigned32
Product-Name269UTF8String
Proxy-Host280DiamIdent
Proxy-Info284Grouped
Proxy-State33OctetString
Redirect-Host292DiamURI
Redirect-Host-Usage261Enumerated
Redirect-Max-Cache-Time262Unsigned32
Result-Code268Unsigned32
Route-Record282DiamIdent
Session-Id263UTF8String
Session-Timeout27Unsigned32
Session-Binding270Unsigned32
Session-Server-Failover271Enumerated
Supported-Vendor-Id265Unsigned32
Termination-Cause295Enumerated
User-Name1UTF8String
Vendor-Id266Unsigned32
Vendor-Specific-Application-Id260Grouped

มาดูตัวอย่าง Message flows




Credit : https://en.wikipedia.org/wiki/Diameter_(protocol)

==================================================

Diameter for SIP Application



Command code in SIP Application


Command-Name
Abbrev
Code
User-Authorization-Request ผู้ใช้งานขอทราบสิทธิ์การใช้งาน (I-CSCF - HSS) Cx
UAR
300
User-Authorization-Answer
UAA
300
Server-Assignment-Request แม่ข่ายมอบหมายงาน (S-CSCF - HSS) Cx
SAR
301
Server-Assignment-Answer
SAA
301
Location-Info-Request  ข้อมูลที่ตั้ง (I-CSCF - HSS) Cx
LIR
302
Location-Info-Answer
LIA
302
Multimedia-Auth-Request ตรวจสอบเอกลักษณ์ใช้งานมัลติมีเดีย (S-CSCF - HSS) Cx
MAR
303
Multimedia-Auth-Answer
MAA
303
Registration-Termination-Request สิ้นสุดการลงทะเบียน (S-CSCF - HSS) Cx
RTR
304
Registration-Termination-Answer
RTA
304
Push-Profile-Request ขอข้อมูลผู้ใช้งาน (S-CSCF - HSS) Cx
PPR
305
Push-Profile-Answer
PPA
305

AVP code in SIP application
Command-Name
Code
Visited-Network-Identifier
601
Public-Identity
602
Server-Name 
603
Server-Capabilities 
604
Mandatory-Capability  
605
Optional-Capability
606
User-Data  
607
SIP-Number-Auth-Items 
608
SIP-Authentication-Scheme 
609
SIP-Authenticate 
610
SIP-Authorization 
611
SIP-Authentication-Context
612
SIP-Auth-Data-Item
613
SIP-Item-Number 
614
Server-Assignment-Type 
615
Deregistration-Reason 
616
Reason-Code  
617
Reason-Info
618
Charging-Information
619
Primary-Event-Charging-Function-Name
620
Secondary-Event-Charging-Function-Name 
621
Primary-Charging-Collection-Function-Name
622
Secondary-Charging-Collection-Function-Name 
623
User-Authorization-Type 
624
User-Data-Already-Available
625
Confidentiality-Key 
626
Integrity-Key
627
Supported-Features
628
Feature-List-ID   
629
Feature-List 
630
Supported-Applications
631