Skip to content
LIVE FEED

BlogMô hình SS7

Bố cục bài viết

Mô hình SS7 (Signaling System No. 7) — Giải thích chi tiết 1. SS7 là gì? 2. Ba thành phần mạng chính trong SS7 3. Kiến trúc phân lớp của SS7 (Protocol Stack) 3.1. MTP (Message Transfer Part) — “Xương sống” vận chuyển 3.2. SCCP (Signalling Connection Control Part) 3.2.1. Point Code (PC) — “Địa chỉ vật lý” của một nút mạng 3.2.2. Global Title (GT) — “Địa chỉ logic” không cần biết Point Code 3.2.3. Subsystem Number (SSN) — “Cổng dịch vụ” tại một nút mạng 3.2.4. CdPA và CgPA — Địa chỉ trong bản tin SCCP 3.3. TCAP (Transaction Capabilities Application Part) 3.3.1. Cấu trúc một giao dịch TCAP 3.4. Các giao thức ứng dụng (Application Layer) 3.4.1. CIC (Circuit Identification Code) trong ISUP 3.4.2. Một số thao tác MAP tiêu biểu 3.5. Cấu trúc bản tin MSU (Message Signal Unit) 4. Hai “biến thể” chính của SS7: ITU-T và ANSI 5. Các loại liên kết báo hiệu (A, B, C, D, E, F-link) 6. SIGTRAN và M3UA — Truyền tải SS7 qua mạng IP 6.1. SIGTRAN là gì? 6.2. M3UA (MTP3 User Adaptation Layer) 6.3. Kiến trúc dùng M3UA: SG, MGC, SCP 6.4. Các giao thức khác trong họ SIGTRAN (tham khảo nhanh) 7. Ví dụ minh họa: Luồng thiết lập một cuộc gọi qua SS7 8. Ví dụ minh họa: Gửi tin nhắn SMS qua SS7 (dùng MAP) 9. Một số lưu ý về bảo mật (ở mức khái niệm) 10. Dùng Wireshark để phân tích bản tin SS7 10.1. Hai kiểu bắt gói tin (capture) tùy theo hạ tầng 10.2. Các display filter cơ bản theo từng lớp giao thức 10.3. Chiến lược lọc theo luồng (theo một cuộc gọi hoặc một giao dịch cụ thể) 10.4. Ví dụ: tách một luồng cuộc gọi hoàn chỉnh (IAM → ACM → ANM → REL) 10.5. Ví dụ: tách một giao dịch MAP/TCAP (ví dụ tra cứu vị trí thuê bao) 11. Tóm tắt nhanh

Trang này

Sunex 25/08/2026 · 29 phút đọc

Ngày tạo

25/08/2026

Cập nhật

Lượt xem

7

Đọc

29m

Mô hình SS7 (Signaling System No. 7) — Giải thích chi tiết

1. SS7 là gì?

SS7 (Signaling System No. 7) là một tập hợp các giao thức báo hiệu (signaling protocols) được các mạng viễn thông trên toàn thế giới sử dụng để trao đổi thông tin điều khiển giữa các tổng đài, chứ không phải để truyền tải âm thanh hay dữ liệu của người dùng.

Nói cách khác:

  • Khi bạn nói chuyện điện thoại, giọng nói của bạn đi qua một đường truyền gọi là kênh thoại (voice channel / bearer channel).
  • Nhưng để tổng đài biết bạn đang gọi ai, số máy đó có đang rảnh không, cuộc gọi cần định tuyến qua đâu, khi nào thì đổ chuông, khi nào thì cúp máy… thì cần một kênh riêng biệt để các tổng đài “nói chuyện” với nhau — đó chính là kênh báo hiệu, và SS7 là ngôn ngữ dùng trên kênh đó.

Ví dụ dễ hình dung: SS7 giống như hệ thống “loa nội bộ” giữa các nhân viên bưu điện để họ trao đổi “gói hàng này gửi cho ai, gửi đi đâu, đã nhận được chưa” — còn “gói hàng” thực sự (giọng nói, tin nhắn) thì đi theo đường riêng.

SS7 ra đời từ những năm 1975–1980, thay thế cho phương pháp báo hiệu cũ (báo hiệu trong băng - in-band signaling, dùng chung đường truyền với thoại). Ưu điểm lớn nhất của SS7 là báo hiệu ngoài băng (out-of-band signaling) — kênh điều khiển tách biệt hoàn toàn khỏi kênh thoại, giúp:

  • Thiết lập cuộc gọi nhanh hơn
  • Chống gian lận (vì người dùng không thể “giả” tín hiệu điều khiển qua đường thoại)
  • Hỗ trợ các dịch vụ nâng cao: chuyển cuộc gọi, chờ cuộc gọi, hiện số gọi đến, SMS, chuyển vùng (roaming)…

2. Ba thành phần mạng chính trong SS7

Mạng SS7 gồm ba loại “nút mạng” (network node), mỗi loại đóng một vai trò riêng:

Thành phầnTên đầy đủVai trò
SSPService Switching PointTổng đài chuyển mạch — nơi cuộc gọi thực sự bắt đầu/kết thúc (ví dụ tổng đài nội hạt)
STPSignal Transfer Point“Bưu điện trung chuyển” — định tuyến các bản tin báo hiệu giữa các nút, giống như router trong mạng IP
SCPService Control Point“Bộ não” chứa cơ sở dữ liệu và logic dịch vụ (ví dụ: tra cứu số điện thoại 1800, kiểm tra thuê bao có được roaming không)
   [Điện thoại A]                                   [Điện thoại B]
        |                                                  |
     [SSP 1] <----- kênh thoại (không qua STP) --------> [SSP 2]
        |                                                  |
        |  (báo hiệu SS7)                (báo hiệu SS7)   |
        v                                                  v
     [STP] <===========================================> [STP]
        |
        v
     [SCP] (tra cứu dữ liệu: số này có tồn tại? thuê bao đang ở đâu?...)

Ví dụ: Khi bạn gọi đến số tổng đài chăm sóc khách hàng miễn phí (1800-xxxx), SSP không biết số đó thực sự nằm ở đâu. Nó gửi truy vấn đến SCP qua STP để hỏi “số 1800-xxxx này thực chất nối tới số vật lý nào?”, SCP trả lời, rồi SSP mới định tuyến cuộc gọi.


3. Kiến trúc phân lớp của SS7 (Protocol Stack)

SS7 được tổ chức theo mô hình phân lớp, tương tự OSI nhưng có 4 lớp chính, thường được vẽ so sánh như sau:

   Mô hình OSI (7 lớp)          Mô hình SS7
 -----------------------    ------------------------
 7. Application         ->   TCAP, MAP, INAP, ISUP
 6. Presentation        ->        |
 5. Session             ->        |
 4. Transport           ->   SCCP (một phần)
 3. Network             ->   MTP Level 3 + SCCP
 2. Data Link           ->   MTP Level 2
 1. Physical            ->   MTP Level 1

3.1. MTP (Message Transfer Part) — “Xương sống” vận chuyển

MTP chia làm 3 lớp con:

  • MTP Level 1 (Physical): Định nghĩa đường truyền vật lý (dây, tốc độ, điện áp…) — giống lớp Vật lý trong OSI.
  • MTP Level 2 (Data Link): Đảm bảo bản tin truyền giữa hai điểm liền kề không bị lỗi, mất gói, sai thứ tự — giống lớp Liên kết dữ liệu.
  • MTP Level 3 (Network): Định tuyến bản tin đi đúng nút mạng SS7 tiếp theo, xử lý khi một tuyến bị lỗi thì chuyển sang tuyến dự phòng — giống lớp Mạng (routing).

Ví dụ: MTP Level 3 giống như hệ thống định tuyến bưu kiện: nếu tuyến đường A bị tắc, nó tự động chuyển gói hàng sang tuyến đường B mà không cần người gửi biết.

3.2. SCCP (Signalling Connection Control Part)

SCCP mở rộng khả năng của MTP, cho phép:

  • Định tuyến bản tin dựa trên địa chỉ logic (Global Title) thay vì chỉ dựa vào điểm mạng vật lý — giống DNS trong Internet, dịch “tên” thành “địa chỉ”.
  • Hỗ trợ cả hai chế độ: có kết nối (connection-oriented) và không kết nối (connectionless).

Ví dụ: Khi bạn roaming sang một quốc gia khác, mạng khách (visited network) cần hỏi mạng gốc (home network) của bạn thông tin thuê bao. SCCP giúp định tuyến truy vấn đó đến đúng SCP của mạng gốc dù không biết trước địa chỉ vật lý chính xác.

Để làm được việc “định tuyến logic” này, SCCP dùng một bộ khái niệm địa chỉ riêng — đây là phần hay bị nhắc đến khi nói về SS7 nhưng dễ bị lướt qua:

3.2.1. Point Code (PC) — “Địa chỉ vật lý” của một nút mạng

Mỗi nút mạng SS7 (SSP, STP, SCP) đều có một Point Code — giống như địa chỉ IP trong mạng Internet, dùng để MTP3 định tuyến bản tin. Trong một bản tin, luôn có hai Point Code:

  • OPC (Originating Point Code): điểm mạng gửi đi.
  • DPC (Destination Point Code): điểm mạng nhận.

Ví dụ: SSP-1 có Point Code 1-1-1, muốn gửi bản tin tới SCP có Point Code 2-2-2. Bản tin MTP3 sẽ mang OPC = 1-1-1, DPC = 2-2-2 để STP biết đường đi tiếp theo.

3.2.2. Global Title (GT) — “Địa chỉ logic” không cần biết Point Code

Vấn đề: đôi khi nút gửi không biết trước Point Code vật lý của nút cần đến — ví dụ tổng đài không thể biết trước Point Code của SCP thuộc mạng đối tác ở nước ngoài. Giải pháp là dùng Global Title (GT) — một địa chỉ mang tính “tên gọi” hơn là vị trí vật lý, thường chính là số điện thoại hoặc một mã dịch vụ (ví dụ số MSISDN, số IMSI, hoặc số dịch vụ 1800).

  • Global Title Translation (GTT) là quá trình STP (hoặc SCCP tại SSP/SCP) “dịch” GT đó thành một cặp Point Code + Subsystem Number cụ thể — tương tự như DNS dịch tên miền google.com thành địa chỉ IP.
   Bản tin cần gửi tới "GT = 84987654321" (một số điện thoại)
              |
              v
       [STP thực hiện GTT]
              |
              v
   Point Code = 3-3-3 , SSN = 8 (HLR)

Ví dụ: Khi mạng A cần kiểm tra thuê bao roaming, nó chỉ biết số điện thoại (GT) của thuê bao đó, chứ không biết SCP/HLR vật lý nào đang quản lý số này. STP của mạng B (mạng gốc) sẽ thực hiện GTT để “dịch” số điện thoại thành đúng Point Code + SSN của HLR đang giữ dữ liệu thuê bao đó, rồi định tuyến tiếp.

3.2.3. Subsystem Number (SSN) — “Cổng dịch vụ” tại một nút mạng

Một nút mạng (ví dụ SCP) có thể chạy nhiều dịch vụ khác nhau (HLR, VLR, SMSC, gsmSCF…). SSN giống như số cổng (port) trong TCP/IP — giúp phân biệt bản tin cần đi vào dịch vụ nào tại cùng một Point Code. Một số SSN phổ biến: SSN = 6 (HLR), SSN = 7 (VLR), SSN = 8 (MSC), SSN = 9 (EIR)…

3.2.4. CdPA và CgPA — Địa chỉ trong bản tin SCCP

Mỗi bản tin SCCP mang hai địa chỉ (mỗi địa chỉ có thể là Point Code, GT, và/hoặc SSN):

  • CdPA (Called Party Address): địa chỉ nơi nhận.
  • CgPA (Calling Party Address): địa chỉ nơi gửi, để bên nhận biết trả lời về đâu.

Đây chính là hai trường thường bị lợi dụng trong các phân tích về an ninh mạng SS7 (do CgPA có thể bị khai báo sai lệch), nhưng ở mức khái niệm, bạn chỉ cần hiểu: CdPA/CgPA đóng vai trò như “địa chỉ người nhận / người gửi” của một lá thư, còn Point Code + GT + SSN là các thành phần cấu tạo nên một địa chỉ đó.

3.3. TCAP (Transaction Capabilities Application Part)

TCAP là lớp cho phép hai nút mạng ở xa nhau thực hiện các giao dịch hỏi–đáp (query/response) không phụ thuộc vào một cuộc gọi cụ thể. Đây là nền tảng cho các dịch vụ như:

  • Tra cứu số điện thoại miễn phí
  • Kiểm tra thuê bao có hợp lệ để roaming không
  • Dịch vụ trả trước (prepaid): kiểm tra số dư trước khi cho gọi

3.3.1. Cấu trúc một giao dịch TCAP

Một giao dịch TCAP gồm hai phần lồng nhau:

  • Transaction Portion (phần giao dịch): quản lý “vòng đời” của cuộc trao đổi, gồm các kiểu bản tin:
    • Begin: mở một giao dịch mới, sinh ra một Transaction ID (giống như mở một “phiên làm việc”).
    • Continue: tiếp tục trao đổi trong cùng giao dịch đã mở.
    • End: kết thúc giao dịch, giải phóng Transaction ID.
    • Abort: hủy giao dịch giữa chừng khi có lỗi.
  • Component Portion (phần nội dung): chứa các “hành động” thực sự cần thực hiện, gồm:
    • Invoke: yêu cầu bên kia thực hiện một thao tác cụ thể (ví dụ “cho tôi biết vị trí thuê bao này”).
    • Return Result: trả kết quả thành công.
    • Return Error: trả về lỗi nghiệp vụ (ví dụ “thuê bao không tồn tại”).
    • Reject: từ chối vì lý do giao thức (ví dụ cú pháp bản tin sai).

Ví dụ: Khi MSC hỏi HLR “thuê bao 0987xxxxxx đang ở vùng nào?”, luồng TCAP điển hình là:

MSC                                   HLR
 |--- Begin { Invoke: SendRoutingInfo } ------->|
 |<-- End { ReturnResult: địa chỉ MSC hiện tại }-|

Ở đây, Begin mở giao dịch và mang theo Invoke (thao tác MAP SendRoutingInfoForSM chẳng hạn), còn End vừa đóng giao dịch vừa mang ReturnResult chứa kết quả — chỉ cần 2 bản tin cho một truy vấn đơn giản.

3.4. Các giao thức ứng dụng (Application Layer)

Đây là lớp trên cùng, chứa “nội dung nghiệp vụ” thực sự:

Giao thứcDùng để làm gì
ISUP (ISDN User Part)Thiết lập, duy trì, kết thúc cuộc gọi thoại giữa các tổng đài
MAP (Mobile Application Part)Dùng trong mạng di động: quản lý vị trí thuê bao, roaming, gửi/nhận SMS
INAP (Intelligent Network Application Part)Dùng cho dịch vụ mạng thông minh: số 1800, gọi trả trước, chuyển cuộc gọi có điều kiện
CAP (CAMEL Application Part)Phiên bản MAP mở rộng cho dịch vụ CAMEL trong mạng di động

3.4.1. CIC (Circuit Identification Code) trong ISUP

Khi hai tổng đài nối với nhau, giữa chúng thường có rất nhiều kênh thoại vật lý song song (ví dụ hàng trăm khe thời gian trên các luồng E1). Bản tin báo hiệu (IAM, ACM, ANM…) cần cho biết kênh thoại cụ thể nào sẽ được dùng cho cuộc gọi đó — đó là vai trò của CIC.

Ví dụ: Bản tin IAM mà SSP-1 gửi cho SSP-2 không chỉ chứa số bị gọi, mà còn chứa CIC = 45, nghĩa là “hãy dùng kênh thoại số 45 trong bó trung kế giữa chúng ta cho cuộc gọi này”. Nếu kênh 45 đang bận, tổng đài sẽ chọn một CIC khác còn rảnh trước khi gửi IAM.

3.4.2. Một số thao tác MAP tiêu biểu

MAP không phải một khối duy nhất mà là tập hợp nhiều “thao tác” (operations), mỗi thao tác phục vụ một mục đích cụ thể trong mạng di động:

Thao tác MAPMục đích
Update LocationKhi thuê bao di chuyển sang vùng phủ sóng mới, VLR mới báo cho HLR biết vị trí hiện tại
Send Authentication InfoVLR/MSC yêu cầu HLR/AuC cung cấp bộ tham số xác thực (để kiểm tra SIM hợp lệ)
Send Routing InfoDùng khi có cuộc gọi đến thuê bao di động, để tìm ra MSC nào đang phục vụ họ
Send Routing Info for SMTương tự nhưng dành riêng cho định tuyến tin nhắn SMS
Insert Subscriber DataHLR gửi thông tin dịch vụ/gói cước của thuê bao xuống VLR mới
Cancel LocationHLR báo cho VLR cũ biết “thuê bao đã chuyển đi, xóa thông tin cũ”

Mỗi thao tác này thực chất được truyền tải bên trong một Invoke của TCAP như đã mô tả ở mục 3.3.1 — MAP quy định “nội dung và ý nghĩa” của Invoke đó, còn TCAP lo phần “đóng gói giao dịch”.

3.5. Cấu trúc bản tin MSU (Message Signal Unit)

Ở tầng thấp nhất (MTP2/MTP3), mọi bản tin SS7 đều được đóng gói trong một khung gọi là MSU (Message Signal Unit). Hiểu sơ lược cấu trúc này giúp việc đọc bản tin trên các công cụ phân tích (như Wireshark) dễ dàng hơn nhiều:

 |  Flag  |  BSN/BIB  |  FSN/FIB  |  LI  |  SIO  |        SIF        | CRC | Flag |
 |--------|-----------|-----------|------|-------|--------------------|-----|------|
   (MTP2: đóng khung, kiểm soát lỗi)     |         (MTP3 + phần trên)       |
  • LI (Length Indicator): cho biết độ dài phần dữ liệu phía sau, đồng thời phân biệt loại bản tin (bản tin đầy đủ (MSU), bản tin trạng thái liên kết (LSSU), hay bản tin “im lặng” giữ liên kết (FISU)).
  • SIO (Service Information Octet): cho biết bản tin thuộc user part nào — ví dụ SIO báo đây là bản tin ISUP, hay SCCP, hay bản tin quản lý mạng MTP3 (network management).
  • SIF (Signaling Information Field): phần thân thực sự, chứa Routing Label (gồm OPC, DPC, SLS) ở đầu, và tiếp theo là nội dung của lớp trên (ISUP/SCCP…).

Ví dụ: Khi mở một bản tin ISUP IAM trên Wireshark, bạn sẽ thấy các lớp lồng nhau đúng theo thứ tự này: MTP2 → MTP3 (Routing Label: OPC/DPC/SLS) → ISUP (CIC, số bị gọi...). Việc biết trước cấu trúc này giúp bạn tra đúng trường cần tìm thay vì dò từng byte.


4. Hai “biến thể” chính của SS7: ITU-T và ANSI

SS7 không phải một chuẩn duy nhất áp dụng giống hệt nhau trên toàn cầu — có hai họ chuẩn chính, khác nhau ở vài chi tiết kỹ thuật quan trọng:

Tiêu chíITU-T SS7 (quốc tế, dùng ở châu Âu, châu Á, VN…)ANSI SS7 (Bắc Mỹ)
Độ dài Point Code14 bit (dạng x-x-x, ví dụ vùng-cụm-điểm)24 bit (dài hơn, cho phép nhiều điểm mạng hơn)
Cấu trúc SIF/Routing LabelTheo khuyến nghị ITU-T Q.700 seriesTheo chuẩn Telcordia (trước là Bellcore)
MTP3, SCCP, ISUPCó phiên bản riêng (ví dụ ISUP theo ITU-T Q.76x)Có phiên bản riêng (ANSI T1.113 cho ISUP)
Numbering planTheo khuyến nghị E.164 quốc tếTương thích NANP (North American Numbering Plan)

Ví dụ: Khi một cuộc gọi quốc tế đi từ mạng dùng chuẩn ANSI (Mỹ) sang mạng dùng chuẩn ITU-T (Việt Nam), phải đi qua một gateway quốc tế thực hiện chuyển đổi định dạng bản tin (ví dụ chuyển đổi độ dài Point Code, một số tham số ISUP) trước khi báo hiệu có thể được hai bên hiểu đúng.

Đa số tài liệu, thiết bị và các ví dụ trong bài viết này (Point Code dạng 1-1-1, ISUP theo Q.76x…) mặc định theo chuẩn ITU-T, vì đây là chuẩn phổ biến ở phần lớn thế giới, bao gồm Việt Nam.


Trong mạng SS7, các nút mạng (SSP, STP, SCP) không nối với nhau tùy tiện — mỗi loại kết nối giữa hai loại nút có một tên và vai trò riêng, gọi là link type. Đây là phần bạn thường thấy trong sơ đồ mạng SS7 nhưng dễ bị bỏ sót khi giải thích khái quát.

Loại linkNối giữaVai trò
A-link (Access)SSP/SCP ↔ STPKết nối “truy nhập” — đưa báo hiệu từ tổng đài/cơ sở dữ liệu vào mạng lõi STP
B-link (Bridge)STP ↔ STP (khác cặp dự phòng)Nối các cặp STP ở các cấp/miền mạng khác nhau lại với nhau
C-link (Cross)STP ↔ STP (cùng một cặp dự phòng, mate pair)Chỉ dùng khi một STP trong cặp bị lỗi, để chuyển tải sang STP còn lại
D-link (Diagonal)STP ↔ STP (giữa hai cặp STP ở hai cấp mạng khác nhau)Tương tự B-link nhưng thường dùng khi mạng phân theo nhiều cấp phân cấp (regional/national STP)
E-link (Extended)SSP ↔ STP (STP dự phòng, không phải STP “nhà”)Đường dự phòng thêm để tăng độ tin cậy khi A-link chính bị lỗi
F-link (Fully associated)SSP ↔ SSP (hoặc SCP ↔ SCP) trực tiếpBỏ qua STP, hai tổng đài nói chuyện thẳng với nhau — thường dùng khi lưu lượng giữa hai điểm rất lớn
        (B-link)
   STP-A1 ======== STP-B1
     ||   \      /   ||
  (C-link) \    /  (C-link)
     ||      \/       ||
   STP-A2 ======== STP-B2
        (B-link)
     /  |            |  \
 (A)  (A)          (A)  (A)
  |     |            |    |
 SSP1  SSP2   ...   SCP1  SSP3
        \___________________/
              (F-link, nối tắt SSP2–SSP3 nếu lưu lượng lớn)

Ví dụ dễ hình dung: Hãy tưởng tượng STP như các trạm trung chuyển bưu điện lớn.

  • A-link giống như con đường từ bưu cục địa phương (SSP) đến trạm trung chuyển khu vực (STP).
  • C-link giống như đường nối tắt giữa hai trạm trung chuyển sinh đôi trong cùng khu vực — chỉ dùng khi một trạm bị sự cố.
  • B/D-link giống như đường cao tốc nối các khu vực trung chuyển khác nhau lại với nhau.
  • F-link giống như khi hai bưu cục có quá nhiều hàng trao đổi với nhau nên họ mở hẳn một tuyến xe riêng, không qua trạm trung chuyển nữa.

Việc có nhiều loại link dự phòng (A, C, E…) chính là để đảm bảo mạng SS7 luôn có đường thay thế khi một tuyến hoặc một STP gặp sự cố — đây là một trong những lý do SS7 nổi tiếng về độ tin cậy cao.


6. SIGTRAN và M3UA — Truyền tải SS7 qua mạng IP

Nguyên bản, SS7 chạy trên các đường truyền chuyên dụng tốc độ thấp (thường là các kênh 56/64 kbps). Khi ngành viễn thông chuyển dần sang hạ tầng IP, người ta cần một cách để “đóng gói” các bản tin SS7 (đặc biệt là các lớp phía trên MTP3) để truyền qua mạng IP mà không cần viết lại toàn bộ logic ứng dụng (ISUP, MAP, TCAP…) vốn đã hoạt động ổn định hàng chục năm. Giải pháp đó gọi là SIGTRAN (Signaling Transport).

6.1. SIGTRAN là gì?

SIGTRAN là một họ giao thức (chuẩn hóa bởi IETF) cho phép truyền báo hiệu viễn thông (SS7, ISDN…) qua mạng chuyển mạch gói IP, dùng SCTP (Stream Control Transmission Protocol) thay cho TCP/UDP làm nền tảng vận chuyển, vì SCTP có các đặc tính phù hợp hơn với báo hiệu thoại: hỗ trợ đa luồng (multi-streaming), chống tấn công kiểu SYN-flood tốt hơn, và có cơ chế multi-homing (dùng nhiều đường IP song song để dự phòng).

6.2. M3UA (MTP3 User Adaptation Layer)

M3UA là giao thức thích ứng (adaptation layer) quan trọng nhất trong họ SIGTRAN. Vai trò của nó là:

Cho phép các lớp phía trên MTP3 (tức là SCCP, TCAP, ISUP, MAP…) hoạt động y như thể chúng vẫn đang chạy trên MTP3 truyền thống, trong khi thực chất bản tin được đóng gói và truyền qua SCTP/IP.

Nói cách khác, M3UA “giả lập” MTP3 ở phía trên, nhưng phía dưới lại chạy trên IP:

Ngăn xếp SS7 truyền thống:        Ngăn xếp SIGTRAN (M3UA):

  ISUP / SCCP / TCAP                ISUP / SCCP / TCAP
        |                                  |
      MTP3                               M3UA        <-- thay thế MTP3
        |                                  |
      MTP2                               SCTP         <-- thay thế MTP2
        |                                  |
      MTP1                                 IP          <-- thay thế MTP1

6.3. Kiến trúc dùng M3UA: SG, MGC, SCP

M3UA thường xuất hiện trong kiến trúc có 3 loại phần tử:

Thành phầnVai trò
SG (Signaling Gateway)“Cổng phiên dịch” — nhận báo hiệu SS7 truyền thống (qua MTP) từ mạng cũ, đóng gói thành M3UA/SCTP để gửi tiếp qua mạng IP, và ngược lại
MGC (Media Gateway Controller) / ASP (Application Server Process)Ứng dụng chạy trên nền IP, xử lý logic báo hiệu (ví dụ điều khiển cuộc gọi) mà không cần “biết” phần cứng SS7 vật lý
SCP qua IPCác máy chủ cơ sở dữ liệu dịch vụ nay có thể đặt ở trung tâm dữ liệu, kết nối bằng M3UA thay vì đường SS7 chuyên dụng

Ví dụ thực tế: Một nhà mạng di động có hạ tầng lõi (core) đã chuyển sang toàn IP (Softswitch, IMS), nhưng vẫn cần kết nối với các nhà mạng đối tác còn dùng SS7 truyền thống qua đường E1/T1. Họ đặt một Signaling Gateway (SG) ở biên mạng: phía ngoài nói chuyện bằng MTP1/2/3 với đối tác, phía trong đóng gói thành M3UA over SCTP/IP để gửi vào các server ứng dụng (ASP) đặt trong trung tâm dữ liệu — giúp tiết kiệm chi phí đường truyền chuyên dụng và dễ mở rộng.

6.4. Các giao thức khác trong họ SIGTRAN (tham khảo nhanh)

Giao thứcThay thế cho
M2UAMTP2 (khi muốn giữ MTP3 chạy trên IP nhưng chuyển tầng liên kết dữ liệu)
M2PAMTP2, nhưng dùng khi hai STP nói chuyện ngang hàng qua IP (peer-to-peer)
M3UAMTP3 (phổ biến nhất — dùng khi muốn toàn bộ tầng vận chuyển SS7 chạy trên IP)
SUA (SCCP User Adaptation)SCCP — dùng khi muốn TCAP/MAP chạy trực tiếp trên IP mà không cần lớp MTP3/M3UA ở giữa

7. Ví dụ minh họa: Luồng thiết lập một cuộc gọi qua SS7

Giả sử thuê bao A (thuộc tổng đài SSP-1) gọi cho thuê bao B (thuộc tổng đài SSP-2):

  1. A nhấc máy, quay số B. SSP-1 nhận biết số đích và kiểm tra xem B thuộc tổng đài nào.
  2. SSP-1 gửi bản tin IAM (Initial Address Message) — thuộc giao thức ISUP — chứa số bị gọi, số gọi đến, qua mạng SS7 (đi qua STP nếu cần) tới SSP-2.
  3. SSP-2 kiểm tra B có rảnh không. Nếu rảnh, SSP-2 gửi ngược lại bản tin ACM (Address Complete Message) báo “đã nhận đủ địa chỉ, đang đổ chuông”.
  4. Điện thoại B đổ chuông. Khi B nhấc máy, SSP-2 gửi bản tin ANM (Answer Message) về SSP-1.
  5. SSP-1 nhận ANM, kết nối kênh thoại thực sự (bearer channel) giữa A và B — lúc này giọng nói mới thực sự được truyền, hoàn toàn tách biệt với các bản tin báo hiệu ở trên.
  6. Khi một trong hai bên cúp máy, bản tin REL (Release) và RLC (Release Complete) được gửi qua lại để giải phóng kênh thoại.
 SSP-1 (A)                         SSP-2 (B)
   |------ IAM (số B) ------------->|
   |<----- ACM (đang đổ chuông) ----|
   |<----- ANM (B đã nhấc máy) -----|
   |======= Kênh thoại thực sự =====|   <-- A và B nói chuyện
   |------ REL (A cúp máy) -------->|
   |<----- RLC (đã giải phóng) -----|

Toàn bộ 5 bước trên (trừ bước nói chuyện) đều là các bản tin báo hiệu, đi rất nhanh (thường dưới 1 giây), hoàn toàn không có giọng nói — đây chính là bản chất “ngoài băng” của SS7.


8. Ví dụ minh họa: Gửi tin nhắn SMS qua SS7 (dùng MAP)

  1. Điện thoại của bạn soạn tin nhắn, gửi đến MSC (Mobile Switching Center) của mạng bạn.
  2. MSC dùng giao thức MAP để gửi truy vấn đến HLR (Home Location Register — cơ sở dữ liệu thuê bao) hỏi: “Số điện thoại người nhận hiện đang ở vùng phủ sóng nào?”
  3. HLR trả lời địa chỉ MSC hiện tại đang phục vụ người nhận (có thể là mạng khác, thậm chí ở nước khác nếu đang roaming).
  4. Bản tin SMS được đóng gói trong TCAP, định tuyến qua SCCP/STP tới đúng MSC đó.
  5. MSC đích đẩy tin nhắn xuống điện thoại người nhận.

Đây là lý do vì sao SMS vẫn có thể đến tay người nhận dù họ đang ở nước ngoài, roaming trên mạng khác — tất cả nhờ HLR và MAP phối hợp qua SS7.


9. Một số lưu ý về bảo mật (ở mức khái niệm)

SS7 được thiết kế từ thời các nhà mạng đều là những tổ chức lớn, đáng tin cậy, nên giao thức này vốn không có cơ chế xác thực mạnh giữa các nút mạng — nó giả định “ai đã kết nối vào mạng SS7 thì đều đáng tin”. Khi mạng SS7 dần được kết nối liên mạng rộng rãi hơn (interconnect quốc tế), giả định này trở thành điểm yếu về bảo mật đã được các tổ chức viễn thông và an ninh mạng công khai cảnh báo trong hơn một thập kỷ qua, dẫn tới việc ngành phải bổ sung các lớp giám sát, tường lửa báo hiệu (SS7 firewall) và dần chuyển dịch sang các giao thức thế hệ mới hơn như Diameter (4G) và HTTP/2-based SBI (5G) vốn có cơ chế xác thực chặt chẽ hơn.


10. Dùng Wireshark để phân tích bản tin SS7

Wireshark là công cụ phổ biến nhất để “nhìn thấy” các bản tin SS7 ở dạng dễ đọc, dù chúng chạy trên TDM (E1/T1 truyền thống) hay trên IP (SIGTRAN). Phần này trình bày cách tiếp cận và các bộ lọc (display filter) thường dùng để tách một luồng cụ thể ra khỏi hàng nghìn bản tin hỗn tạp trên một liên kết báo hiệu — vốn mang lưu lượng của rất nhiều cuộc gọi/giao dịch chạy xen kẽ nhau cùng lúc.

10.1. Hai kiểu bắt gói tin (capture) tùy theo hạ tầng

Hạ tầngCách bắt góiGhi chú
SS7 truyền thống trên TDM (E1/T1 chuyên dụng)Cần thiết bị chuyên dụng (bộ giám sát/probe E1 hỗ trợ xuất ra .pcap), vì đây không phải Ethernet nên card mạng thường không đọc trực tiếp đượcSau khi có file .pcap, mở bằng Wireshark như bình thường, chọn đúng “Decode As” hoặc encapsulation là MTP2 / Frame Relay tùy loại probe
SS7 qua IP (SIGTRAN: M3UA/SCTP)Bắt trực tiếp trên card mạng Ethernet như mọi lưu lượng IP khác (tcpdump, hoặc Wireshark capture trực tiếp)Đơn giản hơn nhiều vì đã là gói IP chuẩn; Wireshark tự nhận diện SCTP và giải mã tiếp M3UA → MTP3 User → SCCP/ISUP/TCAP

Lưu ý quan trọng: Việc bắt và phân tích lưu lượng báo hiệu của mạng viễn thông thật (không phải môi trường lab/thử nghiệm của bạn) thường bị ràng buộc bởi quy định pháp lý và chính sách nội bộ nhà mạng — chỉ nên thực hiện khi bạn có thẩm quyền/được phép rõ ràng (ví dụ đang làm việc vận hành, đảm bảo chất lượng, hoặc kiểm thử trong phòng lab của chính bạn).

10.2. Các display filter cơ bản theo từng lớp giao thức

Wireshark có bộ giải mã (dissector) sẵn cho hầu hết các lớp SS7. Một số filter khởi điểm hữu ích:

Lớp / mục đíchDisplay filter mẫu
Chỉ xem các bản tin MTP3mtp3
Chỉ xem các bản tin SCCPsccp
Chỉ xem các bản tin TCAPtcap
Chỉ xem các bản tin ISUPisup
Chỉ xem các thao tác MAP (di động)gsm_map
SS7 qua IP: chỉ xem M3UAm3ua
Xem tầng vận chuyển SCTP (dưới M3UA)sctp
Loại bỏ các bản tin “giữ liên kết” ồn ào (FISU/LSSU)mtp2.li > 0 (chỉ giữ lại MSU có nội dung thật)

10.3. Chiến lược lọc theo luồng (theo một cuộc gọi hoặc một giao dịch cụ thể)

Điểm khó khi phân tích SS7 là nhiều cuộc gọi/giao dịch chạy xen kẽ trên cùng một liên kết, không tách biệt như từng kết nối TCP riêng lẻ. Để “bám” đúng một luồng, cần lọc theo khóa nhận dạng (key) phù hợp với từng lớp:

Muốn theo dõiKhóa nhận dạng cần lọc theoVí dụ filter
Một cuộc gọi ISUP cụ thểCặp OPC/DPC + CIC (vì CIC chỉ có ý nghĩa duy nhất trong phạm vi một cặp tổng đài)mtp3.opc==1001 && mtp3.dpc==2002 && isup.cic==45
Một giao dịch TCAP/MAP cụ thểTransaction ID (OTID/DTID) — vì đây là “mã phiên” TCAP tự sinh cho mỗi giao dịchtcap.otid == 0x12345678 (lấy giá trị OTID từ bản tin Begin đầu tiên rồi lọc lại)
Một địa chỉ SCCP cụ thể (theo GT)Global Title trong CdPA/CgPAsccp.calling.digits == "84987654321" hoặc sccp.called.digits == "84987654321"
Một liên kết báo hiệu vật lýSLS (Signaling Link Selection) trong Routing Labelmtp3.sls == 3
Một luồng SIGTRAN cụ thể (khi nhiều cuộc gọi đi chung 1 kết nối SCTP)SCTP stream ID, hoặc kết hợp với OPC/DPC bên trong M3UAsctp.stream == 2 && m3ua

Cách làm thực tế được khuyên dùng: Bắt đầu bằng cách lọc thô theo lớp giao thức (ví dụ isup) để tìm bản tin IAM mở đầu cuộc gọi bạn quan tâm (nhận diện qua số bị gọi/CIC), sau đó click chuột phải vào trường CIC → “Apply as Filter” → “…and Selected”, rồi làm tương tự thêm điều kiện OPC/DPC. Wireshark sẽ tự sinh ra một filter kết hợp chính xác, tránh gõ tay dễ sai.

10.4. Ví dụ: tách một luồng cuộc gọi hoàn chỉnh (IAM → ACM → ANM → REL)

Giả sử bạn đã xác định cuộc gọi cần theo dõi có OPC = 1-1-1, DPC = 2-2-2, CIC = 45. Filter sau sẽ hiển thị chỉ đúng các bản tin thuộc cuộc gọi này, loại bỏ hàng trăm cuộc gọi khác đang chạy song song trên cùng liên kết:

(mtp3.opc == 1.1.1 && mtp3.dpc == 2.2.2 && isup.cic == 45) ||
(mtp3.opc == 2.2.2 && mtp3.dpc == 1.1.1 && isup.cic == 45)

Lý do cần viết cả hai chiều (OPC/DPC đảo ngược): vì IAM đi từ SSP-1 → SSP-2 nhưng ACM/ANM lại đi chiều ngược lại (SSP-2 → SSP-1), trong khi CIC vẫn giữ nguyên giá trị suốt cuộc gọi. Nếu chỉ lọc một chiều, bạn sẽ chỉ thấy được nửa luồng.

10.5. Ví dụ: tách một giao dịch MAP/TCAP (ví dụ tra cứu vị trí thuê bao)

  1. Lọc thô: tcap && gsm_map để tìm bản tin Begin chứa thao tác bạn quan tâm (ví dụ Send Routing Info For SM).
  2. Mở bản tin đó, tìm trường OTID (Originating Transaction ID) trong phần Transaction Portion.
  3. Áp filter: tcap.otid == <giá trị OTID> — Wireshark sẽ hiển thị đầy đủ chuỗi Begin → Continue (nếu có) → End thuộc đúng giao dịch đó, kể cả khi hàng chục giao dịch MAP khác đang chạy xen kẽ.

Mẹo: Nếu không chắc trường nào tương ứng với OTID trong phiên bản Wireshark bạn dùng, hãy dùng chức năng Edit → Find Packet → tìm theo tên trường trong khung chi tiết gói tin (packet details), rồi bôi đen giá trị và chọn “Apply as Filter” thay vì gõ tay tên trường.


11. Tóm tắt nhanh

  • SS7 = hệ thống báo hiệu ngoài băng dùng để điều khiển cuộc gọi, SMS, roaming… tách biệt với kênh truyền thoại/dữ liệu thực tế.
  • 3 loại nút mạng: SSP (chuyển mạch), STP (định tuyến báo hiệu), SCP (cơ sở dữ liệu & logic dịch vụ).
  • 4 lớp giao thức chính: MTP (vận chuyển vật lý → định tuyến, đóng gói trong khung MSU với LI/SIO/SIF), SCCP (định tuyến logic qua Point Code, Global Title/GTT, SSN, CdPA/CgPA), TCAP (giao dịch Begin/Continue/End với Component Invoke/ReturnResult), và các giao thức ứng dụng (ISUP với CIC xác định kênh thoại, MAP với các thao tác như Update Location/Send Routing Info, INAP).
  • Hai biến thể chuẩn: ITU-T (phổ biến quốc tế, Point Code 14-bit) và ANSI (Bắc Mỹ, Point Code 24-bit) — khác nhau ở vài chi tiết định dạng.
  • Các loại link (A/B/C/D/E/F-link): quy định cách các SSP/STP/SCP kết nối và dự phòng cho nhau để mạng luôn có đường thay thế khi sự cố xảy ra.
  • SIGTRAN/M3UA: cho phép “đóng gói” báo hiệu SS7 (từ tầng MTP3 trở lên) để truyền qua mạng IP bằng SCTP, giúp các mạng viễn thông hiện đại tích hợp SS7 truyền thống với hạ tầng IP/Softswitch mà không phải viết lại logic ứng dụng.
  • Phân tích bằng Wireshark: lọc theo lớp (mtp3, sccp, tcap, isup, gsm_map, m3ua, sctp), và để bám đúng một luồng cụ thể thì kết hợp OPC/DPC + CIC (cho ISUP) hoặc Transaction ID/OTID (cho TCAP/MAP).
  • Là nền tảng cho hầu hết các mạng điện thoại cố định và di động 2G/3G trên toàn cầu, dù đang dần được thay thế bởi Diameter/SBI trong 4G/5G.
Contact
Facebook
TOP