Các ứng dụng truyền thông dựa trên Internet đang được phát triểnrất mạnh.VoIP Voice over Internet Protocol là công nghệ truyền tải các cuộc liênlạc thoại trên giao thức Internet hay còn
Trang 1Sinh Viên Thực Hiện : Nguyễn Đức Chiến 18it3
Nguyễn Tấn Lượng 18it3 Giáo viên : Ths.Phan Trọng Thanh
Đà Nẵng,23 tháng 12 năm 2020
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Em xin chân thành cảm ơn
Trang 3Nhu cầu trao đổi thông tin của con người đang bùng nổ Các mạngInternet tốc độ cao làm cho việc trao đổi các đa phương tiện ngày càng dễ dànghơn đã tác động và làm thay đổi nhiều đến các cách truyền thông tin truyền thốngcủa con người Các ứng dụng truyền thông dựa trên Internet đang được phát triểnrất mạnh.
VoIP (Voice over Internet Protocol) là công nghệ truyền tải các cuộc liênlạc thoại trên giao thức Internet hay còn gọi là giao thức IP VoIP đang trở thànhmột trong những công nghệ hấp dẫn nhất hiện nay không chỉ đối với các doanhnghiệp mà còn cả với những người sử dụng dịch vụ VoIP có thể thực hiện tất cảcác dịch vụ như trên PSTN (public switched telephone network) ví dụ như:truyền thoại, truyền fax, truyền dữ liệu trên cơ sở mạng dữ liệu có sẵn với tham
số chất lượng dịch vụ (QoS) chấp nhận được Điều này tạo thuận lợi cho nhữngngười sử dụng có thể tiết kiệm chi phí bao gồm chi phí cho cơ sở hạ tầng mạng
và chi phí liên lạc, nhất là liên lạc đường dài Đối với các nhà cung cấp dịch vụ,VoIP được xem như một mô hình hấp dẫn có thể mang lại lợi nhuận nhờ khảnăng mở rộng và phát triển các loại hình dịch vụ với chi phí thấp VoIP cho phéptạo cuộc gọi đường dài qua mạng dữ liệu IP có sẵn thay vì phải được truyền quamạng PSTN Ngày nay nhiều công ty đã thực hiện giải pháp VoIP của họ để giảmchi phí cho những cuộc gọi đường dài giữa nhiều chi nhánh xa nhau Nguyên tắcVoIP gồm việc số hoá tín hiệu giọng nói, nén tín hiệu đã số hoá, chia tín hiệuthành các gói và truyền những gói số liệu này trên nền IP Đến nơi nhận, các gói
số liệu được ghép lại, giải mã ra tín hiệu analog để phục hồi âm thanh
Chính vì vậy, chúng em chọn đề tài “Xây dựng ứng dụng Voice Chat”nhằm tìm hiểu, nghiên cứu giao thức SIP từ đó xây dựng một hệ thống trao đổithông tin giữa các người sử dụng với nhau thông qua việc trao đổi âm thanh, hìnhảnh và gởi file dữ liệu dựa trên giao thức này
Trang 4MỤC LỤC
Trang
Chương 1 Cơ sở lý thuyết
1
1.1 – Tổng quan về kỹ thuật VoIP 1
1.1.1 VoIP là gì? 1
1.1.2 Các lợi ích của VoIP 2
1.1.3 Phương thức hoạt động 2
1.1.4 Các ứng dụng của VoIP 3
1.1.5 Ưu nhược điểm của voice IP 5
1.2 – Sơ lược về ngôn ngữ lập trình 8
1.2.1 Giới thiệu chung 8
1.2.2 Lập trình bằng ngôn ngữ Java 9
Chương 2 PHÂN TÍCH BÀI TOÁN 1
2.1 Giới thiệu bài toán 1
2.2 Mô hình 2
2.3 Giao thức 4
2.3.1 Giao thức Internet(Internet Protocol – IP) 4
2.3.2 Giao thức TCP(Transmission Control Protocol) 7
2.4 Thuật toán 12
Chương 3 Demo chương trình 15
3.1 Kết quả đạt được 15
3.2 Demo chương trình 15
3.3 Hạn chế và phương hướng phát triển 18
3.3.1 Hạn chế 18
3.3.2 Hướng phát triển 18
Trang 5Danh mục hình ảnh
Hình 1 Mô hình dạng VoIP tổng quát 1
Hình 2 Địa chỉ lớp IP 3
Hình 3 Subnet trong lớp B 3
Hình 4 Cấu trúc IP Header 4
Hình 5 Cấu trúc một TCP Header 6
Hình 6 Quy trình thiết lập kết nối TCP 8
Hình 7 Giải toả kết nối TCP 9
Hình 8 Giao diện khi khởi động server 11
Hình 9 Kết quả khi khởi động Server 12
Hình 10 Giao diện khi khởi động Client 12
Hình 11 Giao diện khi kết nối đến Server 13
Trang 6Chương 1 Cơ sở lý thuyết
1.1 – Tổng quan về kỹ thuật VoIP
Voice IP viết tắt bởi Voice Over Internet Protocol là dịch vụ ứng dụng cho phép truyềntải các cuộc đàm thoại sử dụng hạ tầng mạng IP
Nguyên tắc Voice IP gồm việc số hoá tín hiệu giọng nói, nén tín hiệu đã số hoá, chia tínhiệu thành các gói và truyền những gói số liệu này trên nền IP Đến nơi nhận, các gói số liệuđược ghép lại, giải mã ra tín hiệu analog để phục hồi âm thanh ban đầu
Voice IP có thể vừa thực hiện mọi loại cuộc gọi như trên mạng điện thoại kênh truyểnthống (PSTN) đồng thời truyền dữ liệu trên cơ sở mạng truyền dữ liệu Do các ưu điểm vềgiá thành dịch vụ và sự tích hợp nhiều loại hình dịch vụ nên Voice IP hiện nay được triểnkhai một các rộng rãi
Các cuộc gọi trong Voice IP dựa trên cơ sở sử dụng kết hợp cả chuyển mạch kênh vàchuyển mạch gói Trong mỗi loại chuyển mạch trên đều có ưu, nhược điểm riêng của nó.Trong kỹ thuật chuyển mạch kênh giành riêng cho hai thiết bị đầu cuối thông qua các nodechuyển mạch trung gian Trong chuyển mạch kênh tốc độ truyền dẫn luôn luôn cố định(nghĩa là băng thông không đổi), với mạng điện thoại PSTN tốc độ này là 64kbps, truyềndẫn trong chuyển mạch kênh có độ trễ nhỏ
Trong chuyển mạch gói các bản tin được chia thành các gói nhỏ gọi là các gói, nguyêntắc hoạt động của nó là sử dụng hệ thống lưu trữ và chuyển tiếp các gói tin trong nút mạng.Đối với chuyển mạch gói không tồn tại khái niệm kênh riêng, băng thông không cố định cónghĩa là có thể thay đổi tốc độ truyền, kỹ thuật chuyển mạch gói phải chịu độ trễ lớn vìtrong chuyển mạch gói không quy định thời gian cho mỗi gói dữ liệu tới đích, mỗi gói cóthể đi bằng nhiều con đường khác nhau để tới đích, chuyển mạch gói thích hợp cho việctruyền dữ liệu vì trong mạng truyền dữ liệu không đòi hỏi về thời gian thực như thoại, để sửdụng ưu điểm của mỗi loại chuyển mạch trên thì trong Voice IP kết hợp sử dụng cả hai loạichuyển mạch kênh và chuyển mạch gói
1.1.1 VoIP là gì?
VoIP là từ viết tắt của Voice Over Internet Protocol Đúng như tên gọi củachúng, phương thức truyền âm thanh này sử dụng phương pháp truyền tín hiệu âm
Trang 7sửdụng tốc độ của phần cứng để hoàn thành mục đích và có thể hữu dụng trên môitrường PC.
Giảm chi phí: Một giá cước chung sẽ thực hiện được với mạng Internet và do
đó tiết kiệm đáng kể các dịch vụ thoại và fax Người ta ước tính có khoảng 70% cáccuộc gọi đến Châu Á là để gửi fax, phần lớn trong sốđó có thểđược thay thế bởi FoIP(Fax over IP) Sự chia sẻ chi phí thiết bị và thao tác giữa những người sử dụng thoại
và dữ liệu cũng tăng cường hiệu quả sử dụng mạng bởi lẽ dư thừa băng tần trênmạng của người này có thểđược sử dụng cho một người khác
Đơn giản hoá: Một cơ sở hạ tầng tích hợp hỗ trợ tất cả các hình thức thông tincho phép chuẩn hoá tốt hơn và giảm tổng số thiết bị Cơ sở hạ tầng kết hợp này cóthểhỗ trợ việc tối ưu hoá băng tần động
Thống nhất: Vì con người là nhân tố quan trọng nhưng cũng dễ sai lầm nhấttrong một mạng viễn thông, mọi cơ hội để hợp nhất các thao tác, loại bỏ các điểm saisót và thống nhất các điểm thanh toán sẽ rất có ích
Trong các tổ chức kinh doanh, sự quản lý trên cơ sở giao thức quản lý mạngđơn giản SNMP (Simple Network Management Protocol) có thểđược cung cấp chocảdịch vụ thoại và dữ liệu sử dụng VoIP Việc sử dụng thống nhất giao thức IP chotất cả các ứng dụng hứa hẹn giảm bớt phức tạp và tăng cường tính mềm dẻo Các ứngdụng liên quan như dịch vụ danh bạ và dịch vụ an ninh mạng có thể được chia sẻ dễdàng hơn
Nâng cao ứng dụng: Thoại và fax chỉ là các ứng dụng khởi đầu cho VoIP, cáclợi ích trong thời gian dài hơn được mong đợi từ các ứng dụng đa phương tiện và đadịch vụ Chẳng hạn các giải pháp thương mại Internet có thể kết hợp truy cập Webvới việc truy nhập trực tiếp đến một nhân viên hỗ trợ khách hàng
VoIP chuyển đổi tín hiệu giọng nói thông qua môi trường mạng (IP based network)
Do vậy, trước hết giọng nói (voice) sẽ phải được chuyển đổi thành các dãy bit kĩ thuật số
Trang 8( digital bits) và được đóng gói thành các packet để sau đó được truyền tải qua mạng IPnetwork và cuối cùng sẽ được chuyển lại thành tín hiệu âm thanh đến người nghe.
Tiến trình hoạt động của VoIP thông qua 2 bước:
Call Setup: trong quá trình này , người gọi sẽ phải xác định vị trí ( thông qua địa chỉcủa người nhận) và yêu cầu 1 kết nối để liên lạc với người nhận.Khi địa chỉ người nhậnđược xác định là tồn tại trên các proxy server thì các proxy server giữa 2 người sẽ thiết lập 1cuộc kết nối cho quá trình trao đổi dữ liệu voice
Voice data processing: Tín hiệu giọng nói (analog) sẽ được chuyển đổi sang tín hiệu
số ( digital) rồi được nén lại nhằm tiết kiệm đường truyền (bandwidth) sau đó sẽ được mãhóa (tính năng bổ sung nhằm tránh các bộ phân tích mạng _sniffer ) Các voice samples sau
đó sẽ được chèn vào các gói dữ liệu để được vận chuyển trên mạng Giao thức dùng cho cácgói voice này là RTP (Real-Time Transport Protocol).1 gói tin RTP có các field đầu chứa
dữ liệu cần thiết cho việc biên dịch lại các gói tin sang tín hiệu voice ở thiết bị người nghe.Các gói tin voice được truyền đi bởi giao thức UDP Ở thiết bị cuối, tiến trình được thựchiện ngược lại
Giao tiếp thoại sẽ vẫn là dạng giao tiếp cơ bản của con người.Mạng điện thoạicông cộng không thể bịđơn giản thay thế, thậm chí thay đổi trong thời gian tới Mụcđích tức thời của các nhà cung cấp dịch vụđiện thoại IP là tái tạo lại khả năng củađiện thoại với một chi phí vận hành thấp hơn nhiều và đưa ra các giải pháp kỹ thuậtbổsung cho mạng điện thoại chuyển mạch công cộng PSTN (Public SwitchedTelephone Network)
Điện thoại có thể được áp dụng cho gần như mọi yêu cầu của giao tiếp thoại,từmột cuộc đàm thoại đơn giản cho đến một cuộc gọi hội nghị nhiều người phức tạp.Chất lượng âm thanh được truyền cũng có thể biến đổi tuỳ theo ứng dụng Ngoài ra,
Trang 9với khả năng của Internet, dịch vụđiện thoại IP sẽ cung cấp thêm nhiều tính năngmới
Điện thoại thông minh: Hệ thống điện thoại ngày càng trở nên hữu hiệu: rẻ,phổ biến, dễ sử dụng, cơ động Nhưng nó hoàn toàn “ngớ ngẩn”, chỉ có một số phímđểđiều khiển Trong những năm gần đây, người ta đã cố gắng để tạo ra thoại thôngminh, đầu tiên là các thoại để bàn, sau là đến các server Nhưng mọi cố gắng đều thấtbại do sự tồn tại của các hệ thống có sẵn
Internet sẽ thay đổi điều này Kể từ khi Internet được triển khai, nó đã đượcsửdụng để tăng thêm tính thông minh cho mạng điện thoại toàn cầu Giữa mạng máytính và mạng điện thoại tồn tại một mối liên hệ Internet cung cấp cách giám sát vàđiều khiển các cuộc thoại một cách tiện lợi hơn Chúng ta có thể thấy được khả năngkiểm soát và điều khiển các cuộc thoại thông qua mạng Internet
Dịch vụđiện thoại web:"World Wide Web" đã làm cuộc cách mạng trong cáchgiao dịch với khách hàng của các doanh nghiệp Điện thoại Web hay " bấm số" (click
to dial) cho phép các nhà doanh nghiệp có thểđưa thêm các phím bấm lên trang web
để kết nối tới hệ thống điện thoại của họ Dịch vụ bấm số là cách dễ nhất và an toànnhất đểđưa thêm các kênh trực tiếp từ trang Web của chúng ta vào hệ thống điệnthoại Truy cập các trung tâm trả lời điện thoại Truy nhập đến các trung tâm phục vụkhách hành qua mạng Internet sẽ thúc đẩy mạnh mẽ thương mại điện tử Dịch vụ này
sẽ cho phép một khách hàng có câu hỏi vềmột sản phẩm được chào hàng qua Internetđược các nhân viên của công ty trả lời trực tuyến
Dịch vụ fax qua IP:Nếu chúng ta gửi nhiều fax từ PC, đặc biệt là gửi ra nướcngoài thì việc sử dụng dịch vụ Internet faxing sẽ giúp chúng ta tiết kiệm được tiền và
cả kênh thoại Dịch vụ này sẽ chuyển trực tiếp từ PC của chúng ta qua kết nốiInternet Hàng năm, thế giới tốn hơn 30 tỷ USD cho việc gửi fax đường dài Nhưng
Trang 10ngày nay Internet fax đã làm thay đổi điều này Việc sử dụng Internet không nhữngđược mởrộng cho thoại mà còn cho cả dịch vụ fax.
Khi sử dụng dịch vụ thoại và fax qua Internet, có hai vấn đề cơ bản : Nhữngngười sử dụng dịch vụ thoại qua Internet cần có chương trình phần mềm được cungcấp bởi các công ty dịch vụ
Cấu hình này cung cấp cho người sửdụng khả năng sử dụng thoại qua Internetthay cho sử dụng điện thoại để bàn truyền thống Kết nối một gateway thoại quaInternet với hệ thống điện thoại hiện hành Cấu hình này cung cấp dịch vụ thoại quaInternet giống như việc mở rộng hệ thống điện thoại hiện hành của chúng ta
1.1.5.1 Ưu điểm
Mặc dù chất lượng của mạng Voice IP chưa đáp ứng được yêu cầu theo đúng các tiêuchuẩn cho mạng thoại truyền thống PSTN do ảnh hưởng của một số các thông số đã nêu ởtrên Tuy nhiên Voice IP cũng thể hiện được những ưu điểm vượt trội của nó:
Ưu điểm vượt trội của Voice IP so với mạng PSTN là giá thành dịch vụ của chúng, đặcbiệt là chi phí cho các cuộc gọi đường dài Trước đây các cuộc gọi đường dài đòi hỏi cấpphát cấp phát riêng một kênh kết nối, nên chi phí chi phí cho việc sử dụng tài nguyên mạngcủa các cuộc gọi là rất lớn Với việc sử dụng Voice IP, các cuộc gọi đường dài chia sẽ băngthông với các dịch vụ khác trên đường kết nối IP Cuộc gọi chỉ sử dụng tài nguyên mạng khithật sự có thông tin thoại cần truyền đi giữa các thêu bao Quá trình tách dò tín hiệu thoạiđược thực hiện nhờ vào các bộ tách dò tín hiệu thoại (VAD – Voice Activity Detector) được
Trang 11trang bị trên các bộ mã hoá Chi phí của các cuộc gọi đường dài qua đường IP có thể chỉđược tính cho các kết nối từ thuê bao đến các điểm cung cấp dịch vụ.
Với việc sử dụng mô hình truyền thoại Voice IP, cho phép quá trình truyền thoại và dữliệu trên cùng một mạng Do vậy mà giảm được các chi phí cho việc lắp đặt thiết bị cũngnhư vận hành hai mạng riêng biệt Thêm vào đó nhờ sử dụng một cấu hình mạng duy nhấtcho việc cung cấp tất cả các loại hình dịch vụ nên làm đơn giản hoá cấu hình mạng, giảm sốlượng thiết bị trên mạng
Độ tin cậy của mạng phản ảnh khả năng đáp ứng của mạng trong các trường hợp có hưhỏng xảy ra đối với các đường truyền hay thiết bị trên mạng Sử dụng các giao thức địnhtuyến có khả năng dò các sai hỏng trên đường truyến và việc tìm kiếm một đường truyềnkhác thay thế cho các đường truyền có sự cố cũng là một phương pháp đảm bảo tính tin cậycủa mạng Đối với mạng Voice IP với việc sử dụng các thành phần quản lý mạng có khảnăng kiểm tra trạng thái của thiết bị kết nối trực tiếp đến nó, cho phép mạng Voice IP có khảnăng phát hiện hư hỏng tức thời và có cách xử lý thích hợp
Bên cạnh việc đảm bảo độ tin cậy cho mạng Voice IP thì việc đảm bảo tính an toàn vàbảo mật cho các cuộc đàm thoại cũng hết sức quan trọng Để đảm bảo được tính an toàn vàbảo mật cho các gọi qua mạng, hệ thống Voice IP sử dụng các giao thức bảo mật nhưRADIUS hay SSH Bên cạnh đó việc sử dụng cơ chế đánh địa chỉ riêng hay các phươngthức lọc gói cũng cho phép đảm bảo được tính bảo mật của mạng thoại Voice IP
1.1.5.2 Nhược điểm
Trang 12Các mạng số liệu vốn dĩ không phải xây dựng với mục đích truyền thoại thời gian thực,
vì vậy khi truyền thoại qua mạng số liệu cho chất lượng cuộc gọi không được đảm bảo trongtrường hợp mạng xảy ra tắc nghẽn hoặc có độ trễ lớn Tính thời gian thực của tín hiệu thoạiđòi hỏi chất lượng truyền dữ liệu cao và ổn định Một yếu tố làm giảm chất lượng thoại nữa
là kỹ thuật nén để tiết kiệm đường truyền Nếu nén xuống dung lượng càng thấp thì kỹ thuậtnén càng phức tạp, cho chất lượng không cao và đặc biệt là thời gian xử lý sẽ lâu, gây trễ
kỹ thuật nén tín hiệu đạt được những yêu cầu khắt khe: tỉ số nén lớn (để giảm được tốc độbit xuống), có khả năng suy đoán và tạo lại thông tin của các gói bị thất lạc… Tốc độ xử lýcủa các bộ Codec (Coder and Decoder) phải đủ nhanh để không làm cuộc đàm thoại bị giánđoạn Đồng thời cơ sở hạ tầng của mạng cũng cần được nâng cấp để có tốc độ cao hơn hoặcphải có một cơ chế thực hiện chức năng QoS (Quality of Service) Tất cả các điều này làmcho kỹ thuật thực hiện điện thoại IP trở nên phức tạp
Trang 131.2 – Sơ lược về ngôn ngữ lập trình
Nói chung tất cả các ngôn ngữ lập trình đều có thể sử dụng để lập trình Nhưng mỗingôn ngữ có những ưu, nhược điểm khác nhau và được hỗ trợ thư viện API ở cácmức độ khác nhau Tuỳ từng ứng dụng mạng cụ thể, hệ điều hành mạng cụ thể vàthói quen lập trình mà người lập trình có thể chọn ngôn ngữ phù hợp để phát triểncác ứng dụng mạng Các ngôn ngữ lập trình phổ biến hiện nay gồm những ngôn ngữsau:
Trang 14 Lập trình giao diện đồ hoạ người sử dụng(GUI) và applet
I/O theo luồng và thao tác tệp
Lập trình kết nối với cơ sở dữ liệu
Kỹ thuật lập trình đa luồng
Ngoại lệ và xử lý ngoại lệ
Lập trình an toàn bảo mật trong Java
Ngoài ra sinh viên còn phải hiểu về máy ảo java dành cho các ứng dụng java khácnhau(JVM, KVM, máy ảo cho dòng SPOT )
Trang 15Chương 2 PHÂN TÍCH BÀI TOÁN
2.1 Giới thiệu bài toán
VoIP (viết tắt của Voice over Internet Protocol, nghĩa là Truyền giọng nói trên giaothức IP) là công nghệ truyền tiếng nói của con người (thoại) qua mạng máy tính sử dụng bộgiao thức TCP/IP Nó sử dụng các gói dữ liệu IP (trên mạng LAN, WAN, Internet) với thôngtin được truyền tải là mã hoá của âm thanh
Công nghệ này bản chất là dựa trên chuyển mạch gói, nhằm thay thế công nghệ truyềnthoại cũ dùng chuyển mạch kênh Nó nén (ghép) nhiều kênh thoại trên một đường truyền tínhiệu, và những tín hiệu này được truyền qua mạng Internet, vì thế có thể giảm giá thành
VoIP cho phép tạo cuộc gọi dùng kết nối băng thông rộng thay vì dùng đường dây điệnthoại tương tự (analog) Nhiều dịch vụ VoIP có thể chỉ cho phép bạn gọi người khác dùngcùng loại dịch vụ, tuy nhiên cũng có những dịch vụ cho phép gọi những người khác dùng sốđiện thoại như số nội bộ, đường dài, di động, quốc tế Trong khi cũng có những dịch vụ chỉlàm việc qua máy tính, cũng có vài dịch vụ dùng điện thoại truyền thống qua một bộ điềuhợp (adaptor) Nguyên tắc hoạt động của VoIP bao gồm việc số hoá tín hiệu tiếng nói, thựchiện việc nén tín hiệu số, chia nhỏ các gói nếu cần và truyền gói tin này qua mạng, tới nơinhận các gói tin này được ráp lại theo đúng thứ tự của bản tin, giải mã tín hiệu tương tự phụchồi lại tiếng nói ban đầu
Trang 162.2 Mô hình
Hình 1 Mô hình dạng VoIP tổng quát
Hình trên cho ta mô hình tổng quát với những yếu tố phổ biến nhất trong
mạng VoIP, cụ thể về các thiết bị như sau:
Telephone: Telephone có thể là các điện thoại IP (IP phone), các phần
mềm hỗ trợ hoạt động như một điện thoại được cài trên PC hoặc là
những điện thoại truyền thống (tương tự hay ISDN)
Gateway: Gateway liên kết mạng VoIP với mạng điện thoại truyền
thống Thường sử dụng các router hỗ trợ voice Gateway cung cấp một
số chức năng sau:
- Trên một giao diện Gateway được cắm đường dây điện thoại
Gateway kết nối tới PSTN và thông tin với bất kỳ điện thoại nào
trên thế giới
- Trên một giao diện khác, Gateway kết nối tới mạng IP và thông