BÁO CÁO THỰC TẬP, TẠI công ty TMA Solutions
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
-Proxy CSCF Trong Mạng IMS
BÁO CÁO THỰC TẬP DOANH NGHIỆP
SV thực hiện: Lê Minh Thuận
MSSV: 14520893 Lớp: CE501.J11 GVHD: Trần Đại Dương
Thành Phố Hồ Chí Minh - Năm 2018
Trang 2LỜI CẢM ƠN
Để hoàn thành chuyên đề báo cáo thực tập này trước hết em xin gửi đến quý thầy, cô giáo trong khoa Kỹ thuật Máy tính trường Đại học Công nghệ Thông tin lời cảm ơn chân thành Đặc biệt, em xin gởi đến thầy Trần Đại Dương, người đã tận tình hướng dẫn, giúp
đỡ em hoàn thành chuyên đề báo cáo thực tập này lời cảm ơn sâu sắc nhất
Đồng thời nhà trường đã tạo cho em có cơ hội được thưc tập nơi mà em yêu thích, cho em bước ra đời sống thực tế để áp dụng những kiến thức mà các thầy cô giáo đã giảng dạy Qua công việc thực tập này em nhận ra nhiều điều mới mẻ và bổ ích để giúp ích cho công việc sau này của bản thân
Em xin chân thành cảm ơn Ban Lãnh Đạo, các phòng ban của công ty TMA Solutions, đã tạo điều kiện thuận lợi cho em được tìm hiểu thực tiễn trong suốt quá trình thực tập tại công ty Cuối cùng em xin cảm ơn các anh chị phòng Nghiên cứu, phát triển của công ty TMA Solutions đã giúp đỡ em hoàn thành tốt chuyên đề thực tập này
Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, em không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy cũng như quý công ty
TP Hồ Chí Minh, ngày 10 tháng 11 năm 2018
Sinh viên thực hiện
Lê Minh Thuận
Trang 3
MỤC LỤC
1 GIỚI THIỆU VỀ CÔNG TY TMA SOLUTIONS 5
1.1 Quá trình hình thành và phát triển của công ty 5
1.2 Chức năng hoạt động và kinh doanh của TMA 6
2 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP 6
3 NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO 7
3.1 Giới thiệu SIP và mạng IMS 7
3.2 Nội dung công việc 11
4 KẾT QUẢ ĐẠT ĐƯỢC QUA KỲ THỰC TẬP 16
4.1 Những kiến thức lý thuyết đã được củng cố 16
4.2 Những kỹ năng thực hành đã được học thêm và những kinh nghiệm thực tiễn đã tích lũy được 16
5 NHẬN XÉT GÓP Ý VỀ CHƯƠNG TRÌNH ĐẠO TẠO CỦA KHOA 16
6 TÀI LIỆU THAO KHẢO 17
Trang 4Danh mục hình ảnh
Hình 1: Kiến trúc IMS 3GPP 9 Hình 3: SIP đăng ký P-CSCF 12
Trang 51 GIỚI THIỆU VỀ CÔNG TY TMA SOLUTIONS
1.1 Quá trình hình thành và phát triển của công ty
TMA Solutions (tên tiếng Việt: Công ty TNHH Giải Pháp Phần Mềm Tường Minh), được thành lập năm 1997 trong phòng khách nhà Bà Bùi Ngọc Anh với 6 Kỹ sư mới tốt nghiệp
Năm 1998 Khách hàng đầu tiên đến từ Mỹ và Canada Đến năm
1999, tăng số lượng nhân sự lên 54 kỹ sư, dời đến trụ sở mới tại quận Phú Nhuận (cũng là trụ sở chính của Công ty) 2000, có thêm khách hàng từ Úc, Singapore, Ấn Độ và Nhật Bản Năm 2003, thành lập trung tâm nghiên cứu và phát triển R&D Số lượng nhân viên lúc này cũng đạt được 200 người
Năm 2006-2008, TMA thành lập thêm 3 chi nhánh mới ở Nhật bản,
Mỹ và ở châu Âu Vào lúc này, TMA bước đầu thâm nhập thị trường châu Âu với các khách hàng từ Đức, Pháp, Đan Mạch Trong khoảng năm 2009-2010, TMA hoàn thành thêm trụ sở thứ sáu của mình tại công viên phần mềm Quang Trung Đồng thời cho ra đời Trung tâm Giải pháp Di Động TMA (TMA Mobile Solutions)
Năm 2011, TMA thành lập Tech Lab và Trung tâm Thực tập Sinh viên (SDC) nhằm đào tạo và nâng cao trình độ các thế hệ sinh viên, đặc biệt là sinh viên CNTT Năm 2017, kỉ niệm 20 năm thành lập và phát triển vững mạnh, số lượng kỹ sư CNTT đang làm việc tại TMA đạt hơn 2000 người Năm 2018, Khởi công xây dựng công viên sáng tạo TMA tại thành phố Quy Nhơn, tỉnh Bình Định Số lượng nhân viên tại TMA là 2400 kỹ sư
Đội ngũ kỹ thuật của TMA đã được lựa chọn từ một hồ bơi lớn của nguồn lực CNTT Việt Nam và khả năng của nó đã được chứng minh trong nhiều dự án thành công TMA cung cấp đầy đủ các dịch vụ phần mềm, từ kiểm tra và bảo dưỡng để phát triển chu kỳ đầy đủ và giải pháp kết thúc
Trang 61.2 Chức năng hoạt động và kinh doanh của TMA
Phát triển phần mềm
o Phát triển dịch vụ phần mềm các ngôn ngữ chủ yếu: NET, Java, C/C++, php, Python, Ruby, iOS, Android, …
o Gia công phần mềm cho các công ty hàng đầu trên thế giới
về các lĩnh vực như: network, tài chính, e-commerce, …
Kiểm thử phần mềm
o Kiểm tra toàn bộ hệ thống
o Kiểm soát chất lượng
o Giải pháp kiểm thử phần mềm
o Tự động hóa testing
Thiết kế giao diện (visual design)
o Thiết kế apps đa nền tảng (web, mobile, desktop)
Dịch vụ quản trị hệ thống IT:
o TMA cung cấp dịch vụ như: Cloud and server, IT security, Application packaging
o
2 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP
Thứ 2, thứ 3, thứ 4, thứ 5, thứ 6
(từ 01/08/2018 đến
07/11/2018)
9h00 – 12h00
13h30 – 17h30
Trang 73 NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO
3.1 Giới thiệu SIP và mạng IMS
3.1.1 Giới thiệu SIP (Session Initiation Protocol)
SIP là một giao thức tầng ứng dụng có thể thiết lập, sửa đổi và chấm dứt các phiên đa phương tiện (đàm luận) qua Internet Một phiên đa phương tiện là một tập hợp người gửi và người nhận và các luồng dữ liệu chảy từ người gửi đến người nhận
Ví dụ: phiên có thể là cuộc gọi điện thoại giữa hai bên hoặc cuộc gọi hội nghị giữa nhiều bên SIP cũng có thể được sử dụng để mời người tham gia phiên họp đang diễn ra, chẳng hạn như hội nghị Tin nhắn SIP có thể chứa các mô tả phiên để người tham gia có thể thương lượng với các loại phương tiện và các thông số khác của phiên SIP cung cấp các cơ chế riêng để truyền tin cậy và có thể chạy trên một số giao thức truyền tải khác nhau như TCP, UDP và SCTP (Stream Control Transmission Protocol) SIP cũng tương thích với cả IPv4 và IPv6
o SIP cung cấp các khả năng chính sau đây để quản lý đa phương tiện thông tin liên lạc:
o Xác định người dùng đích Vị trí hiện tại
o Xác định xem người dùng có sẵn sàng tham gia vào một phiên hay không
o Xác định khả năng của một thiết bị đầu cuối người dùng
o Thiết lập một phiên
o Quản lý một phiên Điều này bao gồm sửa đổi các tham số của phiên, gọi các chức năng dịch vụ để cung cấp dịch vụ cho phiên và chấm dứt phiên
Mã trạng thái trả về của P-CSCF:
o 1xx: Tạm thời - cho biết yêu cầu đã được nhận và đang được
xử lý
o 2xx: Thành công - cho biết phương thức được yêu cầu được chấp nhận thành công
o 3xx: Chuyển hướng - cần thực hiện thêm hành động của người gửi của người gửi tương ứng để hoàn thành yêu cầu
o 4xx: Lỗi máy khách - yêu cầu chứa lỗi cú pháp hoặc không thể thực hiện tại máy chủ này
o 5xx: Lỗi máy chủ - máy chủ không thực hiện được yêu cầu rõ ràng hợp lệ
o 6xx: Lỗi toàn cầu - yêu cầu không thể được thực hiện tại bất
kỳ máy chủ nào
Trang 8Cấu trúc của SIP message: gồm 2 phần header field và body Ví dụ:
Header
Field(s) INVITE sip:bob@biloxi.example.com SIP/2.0Via: SIP/2.0/TCP
client.atlanta.example.com:5060;branch=z9hG4b K74b43
Max-Forwards: 70 Route: <sip:ss1.atlanta.example.com;lr>
<sip:alice@atlanta.example.com>;tag=9fxced76 sl
To: Bob <sip:bob@biloxi.example.com>
Call-ID:
3848276298220188511@atlanta.example.com CSeq: 1 INVITE
Contact:
<sip:alice@client.atlanta.example.com;transport
=tcp>
Content-Type: application/sdp Content-Length: 151
Message
Body v=0o=alice 2890844526 2890844526 IN IP4
client.atlanta.example.com c=IN IP4 192.0.2.101
t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
3.1.2 Giới thiệu hệ thống IMS (IP Multimedia Subsystem)
IMS cung cấp tất cả các đối tượng và quy trình mạng để hỗ trợ các ứng dụng IP đa phương tiện và thoại trong thời gian thực Nó sử dụng SIP để hỗ trợ báo hiệu và điều khiển phiên cho các dịch vụ thời gian thực Hình 1 minh họa kiến trúc chức năng IMS Thực thể chức năng chính trong IMS là Chức năng điều khiển trạng thái cuộc gọi (CSCF) CSCF là một máy chủ SIP Tùy thuộc vào các nhiệm vụ cụ thể được thực hiện bởi CSCF, CSCF có thể được chia thành ba loại khác nhau:
o Serving CSCF (S-CSCF),
o Proxy CSCF (P-CSCF),
Trang 9o Interrogating CSCF (I-CSCF).
S-CSCF cung cấp dịch vụ kiểm soát phiên cho người dùng Nó duy trì trạng thái phiên cho người dùng đã đăng ký Phiên diễn ra và thực hiện các tác vụ chính sau:
o Đăng ký: S-CSCF có thể đóng vai trò là Nhà đăng ký SIP để chấp nhận người dùng Yêu cầu đăng ký SIP SIP và cung cấp cho người dùng Đăng ký và thông tin vị trí có sẵn cho các máy chủ định vị như HSS (Máy chủ thuê bao gia đình)
o Kiểm soát phiên: S-CSCF có thể thực hiện các chức năng kiểm soát phiên SIP cho người dùng đã đăng ký Chuyển tiếp yêu cầu
và phản hồi SIP giữa các bên gọi và bên được gọi
o Máy chủ proxy: S-CSCF có thể hoạt động như một Máy chủ proxy SIP chuyển tiếp tin nhắn SIP giữa người dùng và các máy chủ CSCF hoặc SIP khác
o Tương tác với Máy chủ ứng dụng: S-CSCF hoạt động như giao diện với các máy chủ ứng dụng và các nền tảng dịch vụ IP hoặc
di sản khác
Hình 1: Kiến trúc IMS 3GPP
Trang 10o Các chức năng khác: S-CSCF thực hiện một loạt các chức năng khác không được đề cập ở trên Ví dụ: nó cung cấp thông báo
sự kiện liên quan đến dịch vụ cho người dùng và tạo Bản ghi chi tiết cuộc gọi (CDR) cần thiết cho kế toán và thanh toán
P-CSCF là điểm liên lạc đầu tiên với thiết bị di động bên trong IMS cục bộ (hoặc đã truy cập) Nó hoạt động như một máy chủ proxy SIP Nói cách khác, P-CSCF xử lí các yêu cầu SIP từ điện thoại di động và sau đó phục vụ các yêu cầu này trong nội bộ hoặc chuyển tiếp chúng đến các máy chủ khác P-CSCF bao gồm Chức năng kiểm soát chính sách (PCF) kiểm soát chính sách liên quan đến cách sử dụng các phần tử trong GGSN P-CSCF thực hiện các chức năng cụ thể sau:
o Chuyển tiếp yêu cầu ĐĂNG KÝ SIP từ điện thoại di động sang mạng gia đình di động Nếu một I-CSCF được sử dụng trong mạng gia đình di động, P-CSCF sẽ chuyển tiếp yêu cầu ĐĂNG
KÝ SIP tới I-CSCF Mặt khác, P-CSCF sẽ chuyển tiếp yêu cầu ĐĂNG KÝ SIP tới S-CSCF trong mạng gia đình di động P-CSCF xác định nơi yêu cầu SIP REGISTER nên được chuyển tiếp dựa trên tên miền nhà trong Yêu cầu ĐĂNG KÝ SIP nhận được từ điện thoại di động
o Chuyển tiếp các tin nhắn SIP khác từ điện thoại di động sang máy chủ SIP (ví dụ: S-CSCF di động trong mạng gia đình di động) P-CSCF xác định máy chủ SIP mà các tin nhắn sẽ được chuyển tiếp dựa trên kết quả của quá trình đăng ký SIP
o Chuyển tiếp tin nhắn SIP từ mạng đến điện thoại di động
o Thực hiện các sửa đổi cần thiết cho các yêu cầu SIP trước khi chuyển tiếp chúng đến các thực thể mạng khác
o Duy trì một hiệp hội bảo mật với điện thoại di động
o Phát hiện phiên khẩn cấp
o Tạo CDR
I-CSCF là một chức năng tùy chọn có thể được sử dụng để ẩn cấu trúc bên trong mạng của nhà khai thác khỏi mạng bên ngoài khi sử dụng I-CSCF Nó hoạt động như một điểm liên lạc trung tâm trong mạng của nhà điều hành mạng cho tất cả các phiên dành cho thuê bao của mạng đó hoặc người dùng chuyển vùng hiện đang truy cập mạng đó Chức năng chính của nó là chọn S-CSCF cho phiên người dùng, định tuyến các yêu cầu SIP đến S-CSCF đã chọn và tạo CDR I-CSCF chọn S-I-CSCF chủ yếu dựa trên các thông tin sau: khả năng mà người dùng yêu cầu, khả năng và tính khả dụng của S-CSCF và thông tin tô pô, như vị trí của một S-CSCF và vị trí của P-CSCF của người dùng nếu họ ở trong cùng mạng của nhà khai thác với S-CSCF
Trang 11Chức năng điều khiển cổng đa phương tiện (MGCF) và IM Media Gateway (IM-MGW) chịu trách nhiệm truyền tín hiệu và tương tác phương tiện, tương ứng, giữa miền PS và mạng chuyển mạch kênh (ví dụ: PSTN) Bộ xử lý chức năng tài nguyên đa phương tiện (MRFP) điều khiển người mang trên giao diện Mb, 138 IP MULTIMEDIA ĐĂNG
KÝ VÀ TÍN HIỆU CẤP ỨNG DỤNG bao gồm xử lý các luồng phương tiện (ví dụ: chuyển mã âm thanh) Bộ điều khiển chức năng tài nguyên đa phương tiện (MRFC) diễn giải thông tin báo hiệu từ S-CSCF hoặc Máy chủ ứng dụng dựa trên SIP và điều khiển các tài nguyên luồng phương tiện trong MRFP tương ứng MRFC cũng chịu trách nhiệm tạo CDR Chức năng điều khiển cổng đột phá (BGCF) chọn mạng PSTN
mà phiên sẽ được chuyển tiếp Sau đó, nó sẽ chịu trách nhiệm chuyển tiếp tín hiệu phiên tới MGCF và BGCF thích hợp trong mạng PSTN đích
3.2 Nội dung công việc
o Netbeans, notepad++
o WinSCP
o Xshell
01/08 - 31/08/2018 Ôn lại c, c++ và linux
03/09 - 07/09/2018 Ôn lại kiến thức mạng
căn bản 10/09 - 14/09/2018 Học SIP
17/09 - 21/09/2018 Tìm hiểu CSCF trong hệ
thống IMS
24/09 - 28/09/2018 Tìm hiểu CSCF trong hệ
thống của công ty 01/10 - 05/10/2018 Đọc source code
08/10 - 19/10/2018 Viết báo cáo cho P-CSCF
22/10 - 09/11/2018 Sữa lỗi đăng ký cho
P-CSCF
Trang 133.2.2 Sữa lỗi đăng ký cho P-CSCF
3.2.2.1 Chức năng đăng ký P-CSCF:
Trước khi thực hiện cuộc gọi hoặc bắt đầu giao dịch, UE (User Equipment) phải kết nối với P-CSCF trước Để kết nối với P-CSCF, UE phải đăng ký theo các bước trong hình sau:
o Bước 1: UE gửi tin nhắn register đến P-CSCF, P-CSCF chuyển tin nhắn đến IMS core, IMS core bắt đầu phân tích và xử lý gói tin
o Bước 2: Nếu gói tin hợp lệ sẽ đổi trạng thái từ đăng ký sang xác thực: trả về 401 Unauthorized kèm phần thông tin xác thực, nếu lỗi xử lý trả về 500 Internal server error cho UE
o Bước 3: P-CSCF chờ tin nhắn đăng ký của UE đó
Hình 2:SIP Đăng ký P-CSCF
Trang 14o Bước 4: Nếu tin nhắn đăng ký đến có thông tin giống như tin nhắn đầu tiên và kèm phần thông tin xác thực, P-CSCF sẽ phản hồi 200 OK
o Bước 5: P-CSCF gửi tin nhắn subscribe cho IMS Core để lấy thông tin dịch vụ của UE và chờ tin nhắn notify của IMS core
o Bước 7: IMS core gửi tin nhắn Notify cho P-CSCF và P-CSCF chuyển gói tin Notify cho UE
o Bước 8: UE gửi tin nhắn 200 ok cho IMS core thông qua P-CSCF
3.2.2.2 Lỗi hiện tại và giải pháp
Lỗi hệ thống: khi P-CSCF nhận SIP message Notify có Content-Length > 2048, P-CSCF trả về 500 Server Internal Error
Nguyên nhân: độ dài buffer của SIP body trong P-CSCF ngắn dẫn đến việc phân tích gói tin bị lỗi
Giải pháp là: tăng độ dài buffer
Cách kiểm tra hệ thống: dung phần mềm mã nguồn mở SIPp
mô phỏng đăng ký cho P-CSCF Đứng ở 2 đầu P-CSCF gửi và nhận tin nhắn từ P-CSCF
Ví dụ sip đăng ký ngầm trong mạng IMS: (P-CSCF đăng ký với IMS nên bỏ qua phần xác thực)
REGISTER sip:example.net SIP/2.0
From: <sip:user_aor_1@example.net>;tag=5ab4
To: <sip:user_aor_1@example.net>
Call-ID: faif9a@ua.example.com
CSeq: 23001 REGISTER
Contact:
<sip:ua.example.com>;expires=3600;+sip.instance="<urn:uuid:f8 1d4fae-7dec-11d0-a765-00a0c91e6bf6>"Supported: path, gruu
Content-Length: 0
SIP/2.0 200 OK
From: <sip:user_aor_1@example.net>;tag=5ab4
To: <sip:user_aor_1@example.net>;tag=373392
Call-ID: faif9a@ua.example.com
CSeq: 23001 REGISTER
Path: <sip:proxy.example.net;lr>
Service-Route: <sip:proxy.example.net;lr>
Contact:
<sip:ua.example.com>;expires=3600;+sip.instance="<urn:uuid:f8
1d4fae-7dec-11d0-a765-00a0c91e6bf6>";pub-
gruu="sip:user_aor_1@example.net;gr=hha9s8d-999a";temp-gruu="sip:8ffkas08af7fasklzi9@example.net;gr" P-Associated-URI:
<sip:user_aor_2@example.net>, <sip:
+358504821437@example.net;user=phone>
Content-Length: 0