Trong những năm gần đây, mạng máy tính ngày càng trở nên phổ biến. Việc liên kết các máy tính trên môi trường mạng cũng như liên kết các mạng lại với nhau đem lại cho chúng ta nhiều lợi ích trong công việc cũng như trong việc học tập nghiên cứu, giải trí. Chúng ta có thể sử dụng các tài nguyên sẵn có được chia xẻ như file server, printer, máy fax, . môi trường mạng còn là một môi trường thông tin nhanh chóng và tiện lợi nhờ vào các cơ chế truyền thông trên mạng như : e-mail, www .
Bên cạnh đó, tốc độ phát triển của máy tính PC cũng rất nhanh chóng. Các kỹ thuật hiện đại đã giúp tạo ra các máy PC với tốc độ tính toán nhanh hơn, bộ nhớ lớn hơn và khả năng xử lý của nó cũng ngày càng đa dạng hơn trong khi giá thành ngày càng rẻ hơn. Một trong những khả năng ưu việt của máy PC hiện nay là hỗ trợ multimedia. Các máy PC ngày nay giao tiếp với con người không chỉ bằng text mà còn kết hợp tất cả các phương tiện khác như tiếng nói, hình ảnh.
Việc đưa kỹ thuật multimedia vào các ứng dụng truyền thông trên mạng giúp chúng ta tạo ra nhiều ứng dụng phong phú hơn. Chẳng hạn hộp thư điện tử ngày nay có thể không chỉ là văn bản mà còn bao gồm tiếng nói, hình ảnh. Các trang web trở nên sinh động hơn hẳn khi kèm theo kỹ thuật multimedia. Bên cạnh đó, chúng ta có thể thiết kế các ứng dụng tiện ích như Video conference, voice mail.
Thông qua chương trình này, người sử dụng có thể trao đổi thông tin với nhau bằng tiếng nói. Chương trình này đã được hiện thực rất nhiều trong các lĩnh vực thông tin như điện thoại, viễn thông, máy tính . . . Tuy nhiên nó chưa được áp dụng và phát triển rọng rãi như trên các lĩnh vực thông tin khác do sự hạn chế của thiết bị. Ngày nay, khi công nghệ thông tin đã phát triển thì việc hiện thực chương trình này là hoàn toàn có thể. Ứng dụng trong nhiều lĩnh vực khác nhau như :
Việc dạy học từ xa.
Việc chẩn đoán, chữa bệnh từ xa.
Hội thảo, thảo luận theo nhóm.
Công cụ trao đổi thông tin bằng hình ảnh và âm thanh.
Mục tiêu của đồ án tốt nghiệp là tìm hiểu các mô hình và công nghệ truyền âm thanh trên mạng máy tính, trên cơ sở đó xây dựng ứng dụng truyền thông âm thanh thoại trên mạng cục bộ. Đồ án sẽ xây dựng thử nghiệm một hệ thống cho phép trao đổi thông tin bằng tiếng nói thoại, tương tác điểm – điểm trên mạng LAN. Đồ án được trình bày gồm 5 chương với bố cục như sau :
Chương I : Tìm hiểu các mô hình điện thoại qua mạng, Từ đó đưa ra mô hình sẽ thực thi trong đồ án này.
Chương II: Giới thiệu chung về các giao thức truyền thông trên mạng Internet và vào khảo sát cụ thể các giao thức này.
Chương III : Giới thiệu các chuẩn mã hoá và nén âm thanh.
Chương IV : Tìm hiều môi trường lập trình SDK Windows và ứng dụng trên mạng.
68 trang |
Chia sẻ: zimbreakhd07 | Lượt xem: 2066 | Lượt tải: 2
Bạn đang xem trước 20 trang nội dung tài liệu Đồ án Xây dựng ứng dụng truyền thông
âm thanh trên mạng cục bộ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LÔØI NOÙI ÑAÀU
Trong nhöõng naêm gaàn ñaây, maïng maùy tính ngaøy caøng trôû neân phoå bieán. Vieäc lieân keát caùc maùy tính treân moâi tröôøng maïng cuõng nhö lieân keát caùc maïng laïi vôùi nhau ñem laïi cho chuùng ta nhieàu lôïi ích trong coâng vieäc cuõng nhö trong vieäc hoïc taäp nghieân cöùu, giaûi trí. Chuùng ta coù theå söû duïng caùc taøi nguyeân saün coù ñöôïc chia xeû nhö file server, printer, maùy fax, ... moâi tröôøng maïng coøn laø moät moâi tröôøng thoâng tin nhanh choùng vaø tieän lôïi nhôø vaøo caùc cô cheá truyeàn thoâng treân maïng nhö : e-mail, www ...
Beân caïnh ñoù, toác ñoä phaùt trieån cuûa maùy tính PC cuõng raát nhanh choùng. Caùc kyõ thuaät hieän ñaïi ñaõ giuùp taïo ra caùc maùy PC vôùi toác ñoä tính toaùn nhanh hôn, boä nhôù lôùn hôn vaø khaû naêng xöû lyù cuûa noù cuõng ngaøy caøng ña daïng hôn trong khi giaù thaønh ngaøy caøng reû hôn. Moät trong nhöõng khaû naêng öu vieät cuûa maùy PC hieän nay laø hoã trôï multimedia. Caùc maùy PC ngaøy nay giao tieáp vôùi con ngöôøi khoâng chæ baèng text maø coøn keát hôïp taát caû caùc phöông tieän khaùc nhö tieáng noùi, hình aûnh.
Vieäc ñöa kyõ thuaät multimedia vaøo caùc öùng duïng truyeàn thoâng treân maïng giuùp chuùng ta taïo ra nhieàu öùng duïng phong phuù hôn. Chaúng haïn hoäp thö ñieän töû ngaøy nay coù theå khoâng chæ laø vaên baûn maø coøn bao goàm tieáng noùi, hình aûnh. Caùc trang web trôû neân sinh ñoäng hôn haún khi keøm theo kyõ thuaät multimedia. Beân caïnh ñoù, chuùng ta coù theå thieát keá caùc öùng duïng tieän ích nhö Video conference, voice mail...
Thoâng qua chöông trình naøy, ngöôøi söû duïng coù theå trao ñoåi thoâng tin vôùi nhau baèng tieáng noùi. Chöông trình naøy ñaõ ñöôïc hieän thöïc raát nhieàu trong caùc lónh vöïc thoâng tin nhö ñieän thoaïi, vieãn thoâng, maùy tính . . . Tuy nhieân noù chöa ñöôïc aùp duïng vaø phaùt trieån roïâng raõi nhö treân caùc lónh vöïc thoâng tin khaùc do söï haïn cheá cuûa thieát bò. Ngaøy nay, khi coâng ngheä thoâng tin ñaõ phaùt trieån thì vieäc hieän thöïc chöông trình naøy laø hoaøn toaøn coù theå. ÖÙng duïng trong nhieàu lónh vöïc khaùc nhau nhö :
•Vieäc daïy hoïc töø xa.
•Vieäc chaån ñoaùn, chöõa beänh töø xa.
•Hoäi thaûo, thaûo luaän theo nhoùm.
•Coâng cuï trao ñoåi thoâng tin baèng hình aûnh vaø aâm thanh.
Muïc tieâu cuûa ñoà aùn toát nghieäp laø tìm hieåu caùc moâ hình vaø coâng ngheä truyeàn aâm thanh treân maïng maùy tính, treân cô sôû ñoù xaây döïng öùng duïng truyeàn thoâng aâm thanh thoaïi treân maïng cuïc boä. Ñoà aùn seõ xaây döïng thöû nghieäm moät heä thoáng cho pheùp trao ñoåi thoâng tin baèng tieáng noùi thoaïi, töông taùc ñieåm – ñieåm treân maïng LAN. Ñoà aùn ñöôïc trình baøy goàm 5 chöông vôùi boá cuïc nhö sau :
Chöông I : Tìm hieåu caùc moâ hình ñieän thoaïi qua maïng, Töø ñoù ñöa ra moâ hình seõ thöïc thi trong ñoà aùn naøy.
Chöông II: Giôùi thieäu chung veà caùc giao thöùc truyeàn thoâng treân maïng Internet vaø vaøo khaûo saùt cuï theå caùc giao thöùc naøy.
Chöông III : Giôùi thieäu caùc chuaån maõ hoaù vaø neùn aâm thanh.
Chöông IV : Tìm hieàu moâi tröôøng laäp trình SDK Windows vaø öùng duïng treân maïng.
Chöông V : Thieát keá chöông trình truyeàn tieáng noùi qua maïng LAN thoâng qua söï trôï giuùp cuûa coâng cuï SDK. Ñaùnh giaù vaø caùc keát quaû thöû nghieäm.
Phaàn keát luaän : Neâu nhöõng keát quaû cuûa ñeà taøi vaø höôùng nghieân cöùu höôùng phaùt trieån tieáp theo.
Vieäc nghieân cöùu lyù thuyeát moät caùch heä thoáng vaø xaây döïng chöông trình phaàn meàm ñoøi hoûi phaûi ñaàu tö nhieàu thôøi gian. Vôùi thôøi gian coù haïn cho neân baøi luaän vaên naøy cuûa em khoâng traùnh khoûi nhöõng thieáu soùt, em raát mong ñöôïc söï chæ daãn theâm cuûa thaày coâ vaø caùc baïn.
Nhaân ñaây, em xin chaân thaønh caùm ôn ñeán PGS - TS Nguyeãn Thò Hoaøng Lan, ngöôøi tröïc tieáp höôùng daãn em hoaøn thaønh cuoán luaän vaên naøy. Em xin chaân thaønh caùm ôn caùc thaày coâ trong khoa Coâng ngheä thoâng tin Tröôøng ÑH Baùch Khoa HN, Tröôøng ÑH Thuûy Saûn vaø toaøn theå caùc baïn ñaõ giuùp ñôõ em hoaøn thaønh cuoán luaän vaên naøy.
CHÖÔNG I
TÌM HIEÅU MOÂ HÌNH ÑIEÄN THOAÏI QUA MAÏNG
I.1 CAÙC MOÂ HÌNH ÑIEÄN THOAÏI
I.1.1 MAÙY TÍNH ÑEÁN MAÙY TÍNH
Trong moâ hình naøy caû hai thueâ bao ñeàu söû duïng maùy tính ñöôïc noái vaøo maïng IP nhö moät thieát bò ñaàu cuoái. Tieáng noùi ñöôïc maõ hoaù sau ñoù laø neùn vaø quaù trình nhaän döõ lieäu hoaøn toaùn gioáng nhöng vôùi quy trình ngöôïc laïi laø giaûi neùn, giaûi maõ baèng phaàn meàm. Trong moâ hình naøy ñoøi hoûi caû hai thueâ bao caàn phaûi coù soundcard, microphone, loa vaø phaàn meàm gioáng nhau.[1]
Hình I.1 : Moâ hình PC - PC
I.1.2 MAÙY TÍNH ÑEÁN ÑIEÄN THOAÏI HOAËC ÑIEÄN THOAÏI ÑEÁN MAÙY TÍNH
Trong moâ hình naøy, moät thueâ bao söû duïng maùy tính noái maïng vôùi maïng coøn thueâ bao kia söû duïng ñieän thoaïi trong maïng PSTN/ISDN/GSM/TDM. Söû duïng moät gateway ñeå chuyeån tieáng noùi treân maïng IP thaønh tieáng noùi treân maïng PSTN vaø trao ñoåi thoâng tin giöõa hai maïng treân. Nhö vaäy, ôû ñaây maùy tính phaûi ñaày ñuû caùc thieát bò nhö Soundcard, loa, microphone vaø phaàn meàm thoâng qua server cuûa maïng IP ñeå coù theå keát noái vôùi maïng PSTN thoâng qua Geteway.
Hình I.2 : Moâ hình Maùy tính – Ñieän thoaïi
I.1.3 ÑIEÄN THOAÏI ÑEÁN ÑIEÄN THOAÏI
Trong moâ hình naøy, caû hai thueâ bao ñeàu söû duïng ñieän thoaïi bình thöôøng vaø maïng IP ñöôïc söû duïng trong tröôøng hôïp cuoäc goïi ñöôøng daøi. Gateway ñöôïc söû duïng ôû caû hai ñaàu ñeå chuyeån ñoåi döõ lieäu giöõa caùc maïng vôùi nhau.[1]
Hình I.3 : Moâ hình Ñieän thoaïi – Ñieän thoaïi
I.2 YEÂU CAÀU ÖÙNG DUÏNG TRUYEÀN AÂM THANH TREÂN MAÏNG LAN
Trong phaàn naøy seõ phaân tích caùc yeâu caàu xaây döïng öùng duïng truyeàn aâm thanh treân maïng LAN : Töø ba moâ hình treân em nhaän thaáy moâ hình 2 vaø 3 ñoøi hoûi quaù trình nghieân cöùu vaø thieát bò phöùc taïp, ñoøi hoûi phaûi ñaàu tö coâng ngheä môùi coù theå thöïc hieän ñöôïc. Neân trong ñoà aùn naøy chæ coù theå thöùc hieän theo moâ hình 1 laø PC – PC, noù ñôn giaûn hôn vaø khoâng caàn ñaàu tö thieát bò môùi, coù theå taän duïng caùc thieát bò coù saün vaø ñieàu quan troïng coù theå thöû nghieäm hoaøn chænh trong phaïm vi ñoà aùn.
Vaán ñeà ñaët ra laø vôùi moät heä thoáng maïng LAN, WAN cuøng vôùi taøi nguyeân saün coù cuûa noù xaây döïng moät chöông trình truyeàn tieáng noùi vôùi thôøi gian thöïc cho pheùp töø maùy naøy sang maùy khaùc (point to point) vôùi moät soá caùc yeâu caàu thích hôïp gioáng nhö vieäc xöû lyù vaø truyeàn tieáng noùi trong thoâng tin lieân laïc (ñieän thoaïi höõu tuyeán). Chöông trình söû duïng giao thöùc TCP/IP laø moät giao thöùc phoå bieán vaø tin caäy hieän nay ñeå keát noái vaø truyeàn tieáng noùi. Do söû duïng giao thöùc TCP laø giao thöùc coù lieân keát neân daãn ñeán ñoä treã raát lôùn nhöng vôùi öùng duïng trong maïng LAN thì vaãn coù theå chaáp nhaän ñöôïc. Ngay khi tieáng noùi ñöôïc thu vaø coù theå qua moät soá caùc xöû lyù nhö maõ hoaù tieáng noùi hoaëc neùn treân moät maùy, tieáng noùi ñöôïc truyeàn tôùi maùy caàn keát noái vaø qua caùc xöû lyù ngöôïc so vôùi luùc thu nhö giaûi neùn vaø giaûi maõ ñeå ñöôïc phaùt ra loa. Chöông trình cho pheùp keát noái hai maùy vaø taïo moät moâ hình ñieän thoaïi treân maùy tính nhö ñieän thoaïi höõu tuyeán thoâng thöôøng. Baát kyø maùy naøo trong maïng cuõng coù theå ôû cheá ñoä chôø hay cheá ñoä chaïy neàn (background) goïi maùy laø P-SERVER; maùy ôû cheá ñoä goïi (active) goïi laø P-CLIENT. Nhö vaäy moät maùy trong maïng coù theå laø P-SERVER hoaëc P-CLIENT. Treân moâi tröôøng maïng, khi chuùng ta muoán noùi chuyeän moät ngöôøi treân moät maùy naøo ñoù, chuùng ta seõ tieán haønh vieäc goïi lieân keát. Vieäc goïi lieân keát ñöôïc tieán haønh baèng vieäc xaùc ñònh ñòa chæ IP cuûa maùy maø chuùng ta caàn lieân keát. Sau ñoù chuùng ta seõ chôø vieäc xaùc laäp lieân keát. ÔÛ maùy ñöôïc goïi seõ coù thoâng baùo cho ngöôøi söû duïng bieát raèng coù moät ngöôøi khaùc muoán noùi chuyeän. Tuøy theo ngöôøi ñoù quyeát ñònh coù chaáp nhaän hay khoâng. Neáu chaáp nhaän thì lieân keát seõ ñöôïc xaùc laäp vaø hai beân seõ coù theå tieán haønh trao ñoåi thoâng tin vôùi nhau.
Trong quaù trình trao ñoåi thoâng tin, caùc maùy seõ truyeàn tieáng noùi cuûa ngöôøi söû duïng ñoàng thôøi nhaän döõ lieäu aâm thanh cuûa maùy lieân keát. Khi noùi chuyeän xong, lieân keát seõ bò huûy boû vaø chöông trình keát thuùc. Neáu maùy ñöôïc goïi khoâng coù ngöôøi traû lôøi thì sau thôøi gian chôø vöôït quaù giôùi haïn thì lieân keát cuõng seõ bò huyû boû. Vì döõ lieäu truyeàn nhaän trong chöông trình laø döõ lieäu daïng lieân tuïc cuûa aâm thanh cho neân coù caùc yeâu caàu ñaët ra nhö sau: Baûo ñaûm tính maïch laïc cuûa döõ lieäu. Tieáng noùi trong quaù trình thoâng tin phaûi roõ raøng, lieàn laïc, khoâng bò ngaét quaõng.
Caùc yeâu caàu treân ñaët ra caùc nhieäm vuï maø chuùng ta phaûi giaûi quyeát trong vieäc xaây döïng chöông trình. Ñoái vôùi döõ lieäu laø aâm thanh, chuùng ta phaûi xem xeùt caùc thoâng soá trong quaù trình laáy maãu ôû ñaàu vaøo. Caùc thoâng soá ñaëc tröng nhö : taàn soá laáy maãu, soá bit bieåu dieãn cho moät ñieåm laáy maãu, keânh laáy maãu ñöôïc söû duïng 1 keânh (mono) hay hai keânh (stereo). Do ñoù chuùng ta phaûi toå chöùc kích thöôùc buffer aâm thanh sao cho phuø hôïp vôùi vieäc truyeàn nhaän ñaït toác ñoä cao. Moät vaán ñeà khaùc ñöôïc ñaët ra vôùi döõ lieäu aâm thanh laø vieäc nhaän vaø phaùt ôû ñaàu ra, chuùng ta phaûi quan taâm ñeán vieäc xöû lyù vaø loaïi boû caùc tín hieäu nhieãu giuùp cho aâm thanh ñöôïc roõ raøng, trung thöïc. Do vieäc truyeàn nhaän döõ lieäu laø treân moâi tröôøng maïng neân chuùng ta phaûi quan taâm ñeán toác ñoä, löu löôïng trao ñoåi döõ lieäu, thôøi gian truyeàn nhaän ñeå ñöa ra caùch giaûi quyeát cho phuø hôïp. Ngoaøi caùc vaán ñeà chính ôû treân, moät soá yeâu caàu khaùc ñaët ra cho öùng duïng nhö : cô cheá taïo laäp lieân keát, vieäc choïn löïa caùc daïng format döõ lieäu, ñònh caùc thoâng soá thôøi gian. Taát caû caùc nhieäm vuï thöïc thi ñeàu phaûi ñöôïc thöïc hieän thoâng qua giao dieän deã daøng cho ngöôøi söû duïng.[3]
Tröôøng hôïp môû roäng heä thoáng cho maïng Internet caàn moät keát noái giöõa server maïng vôùi toång ñaøi maïng PABX, yeâu caàu naøy ñoøi hoûi phöùc taïp hôn vaø caàn coù caùc trang thieát bò ñeå thöû nghieäm. Bôûi vaäy trong ñoà aùn naøy em chæ nghieân cöùu caùch thöùc truyeàn tieáng noùi treân maïng noäi boä.
CHÖÔNG II
KHAÛO SAÙT CAÙC GIAO THÖÙC TRUYEÀN THOÂNG
II.1 KHAÙI NIEÄM CÔ BAÛN GIAO THÖÙC TCP/IP
Trong heä thoáng maïng Internet, moãi maùy coù moät teân vaø moät ñòa chæ IP (Internet Protocol). Teân hay ñòa chæ IP ñeàu xaùc ñònh duy nhaát moät maùy trong heä thoáng maïng Internet. Giöõa teân maùy vaø ñòa chæ IP ñeàu coù theå chuyeån ñoåi thoâng qua caùc haøm. Ñòa chæ IP ñeàu ñöôïc bieåu dieãn baèng moät soá 32 bits. Moãi giao dieän maïng trong moät nuùt neáu coù hoã trôï moät ngaên xeáp IP ñeàu ñöôïc gaùn moät ñòa chæ IP. Ñòa chæ IP goàm 2 phaàn : chæ soá maïng(netid) vaø chæ soá cuûa maùy chuû (hostid). Nhöõng bits quan troïng nhaát ñöôïc duøng ñeå xaùc ñònh soá löôïng bits duøng cho netid vaø hostid. Coù 5 lôùp ñòa chæ ñöôïc xaùc ñònh laø A,B,C,D vaø E. Trong ñoù, lôùp A,B,C chöùa ñòa chæ coù theå giaùn ñöôïc. Lôùp D daønh rieâng cho kyõ thuaät Multicasting vaø ñöôïc söû duïng trong caùc giao thöùc ñaëc bieät ñeå truyeàn thoâng ñieäp ñeán moät nhoùm nuùt ñöôïc choïn loïc. Lôùp E daønh rieâng cho nhöõng öùng duïng trong töông lai.[5]
Hình II.1 Caùc lôùp ñaïi chæ IP
Hình II.2 TCI/IP vaø moâ hình OSI
Netid nhaän daïng cho töøng maïng rieâng bieät. Caùc kieåu lôùp ñòa chæ IP cho thaáy soá löôïng maïng vaø soá löôïng nuùt cuûa moãi lôùp khaùc nhau. Baûng döôùi cho thaáy soá löôïng maïng vaø soá löôïng nuùt coù theå cuûa moãi lôùp ñòa chæ :
Lôùp ñòa chæ
Soá löôïng maïng
Soá löôïng nuùt
A
127
16.777.241
B
16.383
65.534
C
2.097.151
254
Maïng lôùp A duøng cho maïng dieän roäng. Tröôøng netid coù 7 bits neân coù theå coù 127 maïng. Maïng lôùp B laø maïng coù kích thöôùc trung bình vaø thích hôïp cho caùc toå chöùc coù quy moâ lôùp vaø vöøa. Maïng lôùp C duøng trong cô quan nhoû, trong ñoù moãi maïng chæ coù khoâng hôn 254 nuùt.
Con soá 32 bits bieåu thò 4 chöõ soá thaäp phaân töông öùng giaù trò 4 byte taïo thaønh ñòa chæ IP. Nhöõng soá thaäp phaân caùch nhau bôûi daáu chaám (.). Moät ví duï veà teân maùy vaø ñòa chæ IP cuûa maùy :
Hostname : viethung
IP Address : 192.168.0.55
II.1.1 KHAÙI NIEÄM SOCKET
Socket laø moät ñôn vò caáu truùc truyeàn thoâng 2 chieàu. Chuùng coù theå ñoïc hay ghi leân noù. Tuy nhieân moãi socket laø moät thaønh phaàn cuûa moät moái naøo ñoù giöõa caùc maùy treân maïng maùy tính vaø caùc thao taùc ñoïc ghi chính laø caùc thao taùc trao ñoåi döõ lieäu giöõa caùc öùng duïng treân nhieàu maùy khaùc nhau. Socket laø ñieåm keát noái cuoái cuøng cho pheùp nhöõng öùng duïng gaén vaøo maïng. Khaùi nieäm socket ñöôïc cung caáp bôûi moät thö vieän chöùa taát caû caùc haøm yeâu caàu cho baát kyø chöông trình maïng naøo. Khi moät öùng duïng yeâu caàu caùc dòch vuï maïng, noù goïi quaù trình töï taäp hôïp caùc thö vieän ñeå quaûn lyù hoaït ñoäng maïng. Hai loaïi socket coù saün stream vaø datagram.[5]
Nhöõng socket stream duøng cho TCP (Transmission Control Protocol), nhöõng socket datagram duøng UDP (User Datagram Protocol).
Hình II.3 Caùc socket vaø port trong moái noái TCP/IP
Soá hieäu coång
Moâ taû
0
Reserved
2
Management Entry
5
Remote Job Entry
7
Echo
9
Discard
11
Systat
13
Daytime
15
Netstat
17
Quoted(quote of the day)
20
FTP data
21
FTP control
23
Telnet
25
SMTP
37
Time
42
Host name server
49
Login host protocol
53
Domain name server
80
World wide web HTTP
102
ISO-TSAP
103
x.4000
104
X.4000 sending server
111
Sun RPC
139
NetBIOS session source
160-223
Reserved
Ghi chuù :
Trò soá cuûa coång trong caùc öùng duïng :
Caùc öùng duïng chuaån : 0 – 999
Caùc öùng duïng khoâng chuaån : 1000 – 64000
II.1.2 GIAO THÖÙC IP
Internet protocol (IP) laø moät daïng giao thöùc truyeàn tin ñöôïc thieát keá cho maïng chuyeån maïng goùi. Vai troø cuûa IP töông ñöông vôùi vai troø cuûa taàng maïng trong moâ hình OSI. Giao thöùc IP ñaûm nhieäm vieäc chuyeån nhöõng goùi maïch döõ lieäu (datagram) töø ñòa chæ nguoàn ñeán ñòa chæ ñích. Ñòa chæ IP coù ñòa chæ coá ñònh (4 byte) duøng ñeå xaùc ñònh duy nhaát caùc traïm laøm vieäc ñang tham gia vaøo vieäc truyeàn, nhaän döõ lieäu. Trong tröôøng hôïp maïng truyeàn tin chæ coù theå truyeàn nhöõng goùi döõ lieäu coù kích thöùc nhoû, giao thöùc IP cuõng ñaûm nhieäm chöùc naêng chia nhoû caùc goùi döõ lieäu coù kích thöôùc lôùn tröôùc khi truyeàn vaø goäp chuùng laïi chuùng sau khi nhaän ñöôïc.[5]
Giao thöùc IP ñöôïc thieát keá vôùi chöùc naêng chuyeån 1 goùi caùc bit, goïi laø internet datagram töø ñòa chæ nguoàn ñeán ñòa chæ ñích. Ñaây laø moät giao thöùc theo kieåu khoâng lieân keát, nghóa laø khoâng coù giai ñoaïn thieát laäp lieân keát tröôùc khi truyeàn döõ lieäu, noù cuõng khoâng coù caùc cô cheá baûo ñaûm thoâng tin tôùi ñích an toaøn, khoâng coù cô cheá ñieàu khieån luoàng döõ lieäu. Treân thöïc teá vieäc thoâng baùo veà loãi ñöôøng truyeàn coù theå ñöôïc thöïc hieän nhôø moät giao thöùc khaùc coù teân ICMP( Internet Control Message Protocol).
Ñòa chæ IP nhö ñaõ noùi ôû treân, laø moät chuoãi bit coù ñoä daøi 4 byte, ñöôïc phaân chia laøm 5 lôùp vaø caùc bit ñaàu tieân ñöôïc duøng laøm ñònh danh lôùp ñòa chæ.
II.2 GIAO THÖÙC TCP
Giao thöùc TCP laø giao thöùc duøng cho taàng ngay treân taàng IP. Ñoái vôùi moâ hình OSI, ta coù theå thaáy taàng TCP coù vai troø töông öùng vôùi caùc taàng giao vaän vaø taàng phieân .
Khaùc vôùi IP, TCP laø giao thöùc coù lieân keát (connection oriented), nghóa laø nhaát thieát phaûi coù giai ñoaïn thieát laäp lieân keát giöõ caùc caëp thöïc theå TCP tröôùc khi chuùng coù trao ñoåi döõ lieäu vôùi nhau. Giao thöùc TCP cung caáp moät khaû naêng truyeàn döõ lieäu moät caùch an toaøn giöõa caùc thöïc theå treân maïng. Noù cung caáp caùc chöùc naêng nhaèm kieåm tra tính chính xaùc cuûa döõ lieäu khi göûi ñeán vaø göûi laïi döõ lieäu khi coù loãi xaûy ra.[5]
Ñôn vò döõ lieäu cô baûn cuûa TCP goïi laø segment. Trong segment coù moät caëp tham soá laø soá hieäu coång cuûa traïm nguoàn vaø soá hieäu coång cuûa traïm ñích. Moãi moät tieán trình öùng duïng taïi moät traïm seõ truy caäp caùc dòch vuï TCP thoâng qua moät coång. Moät coång nhö vaäy keát hôïp vôùi moät ñòa chæ IP seõ taïo thaønh moät socket duy nhaát trong maïng. Dòch vuï TCP ñöôïc cung caáp nhôø lieân keát logic giöõa moät caëp socket, moãi socket coù theå tham gia lieân keát vôùi nhieàu socket ôû xa khaùc nhau. Tröôùc khi truyeàn döõ lieäu chuùng thieát laäp lieân keát vaø khi khoâng coù nhu caàu truyeàn döõ lieäu nöõa thì lieân keát seõ ñöôïc giaûi phoøng.
Moãi öùng duïng TCP goàm hai phaàn laø client vaø server.
Löu ñoà sau minh hoïa caùc böôùc caàn thieát ñeå caùc öùng duïng client vaø server giao tieáp vôùi nhau :
Hình II.4 Taïo keát noái giöõa client vaø server theo giao thöùc TCP
II.2.1 CAÙCH THÖÙC CAØI ÑAËT ÖÙNG DUÏNG TCP SERVER
ÖÙng duïng TCP server laøm vieäc theo qui trình sau:
Goïi haøm socket ñeå taïo moät socket.
Goïi haøm bind ñeå keát buoäc socket vôùi moät port, ñoái vôùi moãi giao thöùc öùng duïng chuaån thì seõ coù moät haèng soá ñöôïc ñònh nghóa saün trong winsock cho port cuûa giao thöùc ñoù.
Goïi haøm listen ñeå chôø ñeán khi coù moät client noái vaøo port.
Khi coù moät client noái vaøo thì haøm listen traû ñieàu khieån veà, öùng duïng server goïi haøm accept ñeå xaùc nhaän moái noái cuûa client.
Goïi caùc haøm göûi hay nhaän döõ lieäu ñeå trao ñoåi thoâng tin vôùi client, ví duï send, recv.
Sau khi ñaõ hoaøn taát quaù trình trao ñoåi döõ lieäu, öùng duïng server goïi haøm closesocket ñeå ñoùng socket ñaõ taïo.
Hình II.5 Sô ñoà giao tieáp giöõa server vôùi client
II.2.2 CAÙCH THÖÙC CAØI ÑAËT ÖÙNG DUÏNG CLIENT TCP ÖÙng duïng client TCP laøm vieäc theo qui trình sau :
Goïi haøm socket ñeå taïo moät socket .
Goïi haøm connect ñeå noái vaøo server.
Goïi haøm göûi hay nhaän döõ lieäu ñeå trao ñoåi thoâng tin vôùi server, ví duï nhö haøm send, recv.
Sau khi ñaõ hoaøn taát quaù trình trao ñoåi döõ lieäu, öùng duïng client goïi haøm closesocket ñeå ñoùng socket ñaõ taïo.
Hình II.6 Sô ñoà giao tieáp cuûa client vôùi server
Ghi chuùù:
Caùc böôùc treân cô baûn laø gioáng nhau cho caùc öùng duïng client vaø server vieát treân Windows NT vaø UNIX. Tuy nhieân, vôùi öùng duïng vieát treân UNIX thì khoâng caàn goïi caùc haøm WSAStartup, WSACleanup ñeå khôûi taïo thö vieän quaûn lyù socket vaø ñoùng boä phaän naøy. Lyù do, vôùi UNIX thì boä phaän quaûn lyù socket ñaõ ñöôïc heä ñieàu haønh naïp saün.
II.3 GIAO THÖÙC UDP
Giao thöùc UDP cung caáp khaû naêng broadcast treân heä thoáng maïng TCP/IP . Chuùng ta cuõng caàn caøi ñaët öùng duïng client vaø server. ÖÙng duïng client coù nhieäm vuï göûi thoâng baùo ñeán taát caû caùc instance cuûa öùng duïng server ñang chaïy treân heä thoáng maïng.[5]
II.3.1 CAÙCH CAØI ÑAËT ÖÙNG DUÏNG SERVER UDP
ÖÙng duïng server UDP ñöôïc caøi ñaët ñôn giaûn hôn öùng duïng TCP. Chuùng ta caàn caùc böôùc chính sau ñaây :
Goïi haøm socket ñeå taïo moät socket .
Goïi haøm bind ñeå keát buoäc socket vôùi moät port, ñoái vôùi moãi giao thöùc öùng duïng chuaån thì seõ coù moät haèng soá ñöôïc ñònh nghóa saün trong winsock cho port cuûa giao thöùc ñoù.
Goïi caùc haøm göûi hay nhaän döõ lieäu ñeå trao ñoåi thoâng tin vôùi client, ví nhö haøm sendto, recvfrom.
Sau khi ñaõ hoaøn taát quaù trình trao ñoåi döõ lieäu, öùng duïng server goïi haøm closesocket ñeå ñoùng socket ñaõ taïo.
II.3.2 CAÙCH CAØI ÑAËT ÖÙNG DUÏNG CLIENT UDP
ÖÙng duïng client UDP thöïc hieän caùc böôùc sau :
Goïi haøm socket ñeå taïo moät socket.
Goïi haøm setsockopt ñeå laøm cho socket coù khaû naêng broadcoast .
Goïi caùc haøm göûi hay nhaän döõ lieäu ñeå trao ñoåi thoâng tin vôùi server, ví duï haøm sendto, recvfrom.
Sau khi ñaõ hoaøn taát quaù trình trao ñoåi döõ lieäu, öùng duïng client goïi haøm closesocket ñeå ñoùng socket ñaõ taïo.
Ghi chuù:
Ngoaøi caùc böôùc treân, caùc öùng duïng vieát treân Windows NT (keå caû client vaø server) phaûi goïi haøm WSAStartup ñeå khôûi taïo thö vieän lieân keát ñoäng Windows Socket DLL vaø haøm WSACleanup ñeå ñoùng thö vieän naøy. Tuy nhieân, ñoái vôùi öùng duïng vieát treân UNIX thì boä phaän quaûn lyù socket ñaõ ñöôïc heä ñieàu haønh naïp saün vaø do ñoù khoâng caàn goïi caùc haøm nhö WSAStartup, WSACleanup cuûa Windows NT.
CHÖÔNG III
PHÖÔNG PHAÙP MAÕ HOAÙ VAØ NEÙN AÂM THANH
III.1 CAÙC PHÖÔNG PHAÙP MAÕ HOAÙ
III.1.1 GIÔÙI THIEÄU CHUNG
Trong heä thoáng xöû lyù aâm thanh, aâm thanh ñöôïc maõ hoaù PCM. Caùc maõ hoaù naøy cho pheùp khoâi phuïc moät caùch töông ñoái trung thöïc tín hieäu aâm thanh trong daûi taàn nghe ñöôïc. Tuy nhieân trong moät öùng duïng ñaëc bieät nhö truyeàn döõ lieäu aâm thanh treân maïng, aâm thanh ñöôïc truyeàn vôùi toác ñoä thaáp hôn nhieàu. Töø ñoù xuaát hieän moät soá kyõ thuaät maõ hoaù vaø neùn tín hieäu aâm thanh nhö ADPCM, LPC, GSM….
Caùc loaïi phaàn meàm vaø phaàn cöùng thöïc hieän maõ hoaù vaø neùn aâm thanh sang caùc loaïi döõ lieäu soá thöôøng ñöôïc goïi laø codec(Coder-Decoder). Coù theå phaân loaïi caùc phöông phaùp maõ hoaù aâm thanh thaønh 3 loaïi :
Maõ hoaù daïng soùng(waveform codec) : Giöõ nguyeân hình daïng nguyeân thuyû cuûa soùng aâm. Phöông phaùp maõ hoaù naøy ñoøi hoûi toác ñoä döõ lieäu raát cao nhöng laïi cho chaát löôïng aâm thanh raát toát. Öu ñieåm cuûa boä maõ hoaù naøy laø ñoä phöùc taïp, giaù thaønh thieát keá, ñoä treã vaø coâng suaát tieâu thuï thaáp. Boä maõ hoaù soùng ñôn giaûn nhaát laø ñieàu bieân xung maõ (PCM)…Tuy nhieân nhöôïc ñieåm cuûa boä maõ hoaù laø khoâng taïo ñöôïc aâm thanh chaát löôïng cao taïi toác ñoä döôùi 16 kbps, boä maõ nguoàn khaéc phuïc ñöôïc nhöôïc ñieåm naøy.[4]
Maõ hoaù nguoàn (Source codec) : Cho pheùp ñaït ñöôïc toác ñoä truyeàn döõ lieäu thaáp, coù theå thöïc hieän taïi toác ñoä bit > 2kbps, nhöng chaát löôïng aâm thanh khoâng cao.
Maõ hoaù hoãn hôïp (hybrid codec) : Söû duïng caû hai phöông phaùp treân ñeå taïo ra tín hieäu aâm thanh coù chaát löôïng toát ôû toác ñoä döõ lieäu trung bình.
Hình III.1 Bieåu ñoà so saùnh caùc phöông phaùp maõ hoaù
Maõ hoaù daïng soùng
Ñoøi hoûi toác ñoä bit raát cao nhöng taïo ra chaát löôïng aâm thanh hoaøn haûo vaø thôøi gian xöû lyù raát ít, bôûi vì phöông phaùp naøy chæ ñôn giaûn laáy maãu tín hieäu ôû toác ñoä naøo ñoù vaø löôïng töû hoaù töøng maãu duøng löôïng töû hoaù tuyeán tính. Caùch tieáp caän naøy goïi laø ñieàu bieán xung maõ(PCM). Aâm thanh maõ hoaù theo phöông phaùp PCM, laáy maãu toác ñoä 8KHz, löôïng töû 8bit/maãu, cho toác ñoä bit ra laø 64 kbps.
Phöông phaùp ñieàu bieân xung maõ vi phaân (DPCM) döï ñoaùn giaù trò hieän taïi döïa vaøo caùc giaù trò tröôùc cuûa caùc maãu quaù khöù, chæ löu tröõ giaù trò sai soá löôïng töû. Giaù trò sai soá naøy seõ nhoû hôn giaù trò thöïc cuûa maãu, do ñoù cho pheùp löu tröõ giaûm ñi moät phaàn.
Moät caûi tieán cuûa DPCM laø ñieàu bieán xung maõ vi phaân thích nghi(ADPCM). Boä tieán ñoaùn vaø löôïng töû hoaù trong phöông phaùp naøy coù khaû naêng thích nghi vôùi tín hieäu caàn maõ hoaù. ADPCM hoaït ñoäng toác ñoä 32 kbps cho chaát löôïng töông ñoái vôùi PCM 64 kbps.
Maõ hoaù döï ñoaùn tuyeán tính LPC
Moät vaán ñeà ñaùng quan taâm laø phöông phaùp maõ hoaù daïng soùng laø khi laáy maãu tín hieäu töông ñöông seõ cho ra doøng döõ lieäu khaù lôùn. Caùc phöông phaùp maõ hoaù nguoàn ñi theo moät caùch tieáp caän khaùc, ngöôøi ta phaûi qua taâm ñeán vieäc aâm thanh ñöôïc taïo ra nhö theá naøo, neáu coù theå moâ hình hoaù caùch taïo ra aâm thanh thì khoâng phaûi truyeàn ñi caùc maãu cuûa tín hieäu aâm thanh maø chæ caàn göûi ñi caùch thöùc taïo ra aâm ñoù treân ñeán boä maõ. Nhö vaäy theo phöông phaùp naøy thay vì maõ hoaù vaø truyeàn tröïc tieáp aâm thanh thì ngöôøi ta chæ maõ hoaù caùc tham soá taïo ra aâm thanh taïi nôi nhaän, töø caùc tham soá naøy boä toång hôïp tieáng noùi seõ toång hôïp neân tieáng noùi nhaân taïo. Nhöõng phöông phaùp ñi theo caùch tieáp caän naøy goïi laø Vocoder. Moâ taû ñôn giaûn nhaát cuûa moâ hình naøy laø maõ hoaù döï ñoaùn tuyeán tính (LPC). Phöông phaùp maõ hoaù Vocoder cho toác ñoä bit raát thaáp (>2 kbps) nhöng ñoä phöùc taïp cao hôn vôùi phöông phaùp maõ hoaù daïng soùng vaø chaát löôïng aâm thanh khoâng trung thöïc .