TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ-VIỄN THÔNG
***********
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI: PHẦN MỀM TRUYỀN ĐIỆN VĂN SỬ DỤNG TRONG
HÀNG KHÔNG.
Thầy giáo hướng dẫn: TS.Đỗ Trọng Tuấn
Thực hiện : Nguyễn Thành Đạt
Nguyễn Thanh TuấnHà Nội, 07/07/2013
1
I. Tổng quan về mạng thông tin hàng không (ATN)
1. Khái niệm về mạng ATN
Mạng ATN được xem là cơ sở hạ tầng liên mạng cho mạng thông tin
hàng không.ATN sử dụng một tập các giao thức truyền dữ liệu dựa trên
mô hình OSI của tổ chức định chuẩn quốc tế ISO để liên kết các hệ thống
liên lạc air-ground và ground-ground với nhau.
Mạng ATN bao gồm các ứng dụng và các dịch vụ truyền tin mà cho
phép các mạng con ground-ground , air-ground của hàng không hoạt động
được với nhau dựa trên các dịch vụ giao thức thông thường nhưng dựa
trên mô hình OSI của ISO.
Hình 1: Mô hình mạng ATN
2.Chức năng của ATN
2
Mạng ATN và các tiến trình ứng dụng tương ứng được thiết lập nhằm
hỗ trợ cho hệ thống CNS/STM. Mạng ATN có những chức năng sau:
• Mạng chuyên dụng và dành riêng để cung cấp các dịch vụ truyền dữ
liệu cho các tổ chức cung cấp dịch vụ không lưu (ATM) và hàng
không theo hình thức sau:
1. Giao thức TCP/IP
Bộ giao thức TCP/IP, ngắn gọn là TCP/IP ( Internet protocol
suite hoặc IP suite hoặc TCP/IP protocol suite - bộ giao thức liên mạng),
là một bộ các giao thức truyền thông cài đặt chồng giao
thức mà Internet và hầu hết các mạng máy tính thương mại đang chạy trên
đó. Bộ giao thức này được đặt tên theo hai giao thức chính của nó là TCP
(Giao thức Điều khiển Giao vận) và IP (Giao thức Liên mạng).
Hình 2: Mô hình TCP/IP
Giao thức TCP gồm có 4 tầng :
• Application:
4
Tầng ứng dụng là nơi các chương trình mạng thường dùng nhất làm việc nhằm
liên lạc giữa các nút trong một mạng.
Giao tiếp xảy ra trong tầng này là tùy theo các ứng dụng cụ thể và dữ liệu được
truyền từ chương trình, trong định dạng được sử dụng nội bộ bởi ứng dụng này,
và được đóng gói theo một giao thức tầng giao vận.
Do chồng TCP/IP không có tầng nào nằm giữa ứng dụng và các tầng giao vận,
tầng ứng dụng trong bộ TCP/IP phải bao gồm các giao thức hoạt động như các
giao thức tại tầng trình diễn và tầng phiên của mô hình OSI. Việc này thường
được thực hiện qua các thư viện lập trình.
Dữ liệu thực để gửi qua mạng được truyền cho tầng ứng dụng, nơi nó được đóng
gói theo giao thức tầng ứng dụng. Từ đó, dữ liệu được truyền xuống giao thức
tầng thấp tại tầng giao vận.
Hai giao thức tầng thấp thông dụng nhất là TCP và UDP. Mỗi ứng dụng sử dụng
dịch vụ của một trong hai giao thức trên đều cần có cổng.
• Transport
Trách nhiệm của tầng giao vận là kết hợp các khả năng truyền thông điệp trực
tiếp (end-to-end) không phụ thuộc vào mạng bên dưới, kèm theo kiểm soát
lỗi (error control), phân mảnh (fragmentation) và điều khiển lưu lượng. Việc
truyền thông điệp trực tiếp hay kết nối các ứng dụng tại tầng giao vận có thể
6
+dữ liệu
Data offset:Trường có độ dài 4 bít qui định độ dài của phần header
Reserved:dự phòng.
Flags gồm 6 cờ:
URG:Cờ cho trường Urgent pointer
ACK:Cờ cho trường Acknowledgement
PSH:Hàm Push
RST:Thiết lập lại đường truyền
SYN:Đồng bộ lại số thứ tự
FIN:Không gửi thêm số liệu
Window:Số byte có thể nhận bắt đầu từ giá trị của trường báo nhận (ACK)
Checksum:16 bít kiểm tra cho cả phần header và dữ liệu.
7
2.2. Cấu trúc gói tin IP
III. Bản tin điện văn trong hàng không.
Trong phạm vi bài tập nhóm em tìm hiểu về bản tin NOTAM
1. Tìm hiểu về bản tin NOTAM
• Khái niệm NOTAM:
NOTAM ( Notice to Airmen ) là 1 thông báo của các cơ quan hàng
không cảnh báo các phi công lái máy bay về mối nguy hiểm tiềm
năng cùng 1 tuyến đường bay hoặc tại 1 vị trí mà có thể ảnh hưởng
đến sự an toàn của chuyến bay.
• Cấu trúc bản tin
8
Số loại NOTAM
A : số loại Series ( A or B or C )
1234/06: số thứ tự phát hành NOTAM đi kèm số loại
1234: số thứ tự
06 : năm phát hành
A - sân bay
E - đường bay
W - cảnh báo nguy hiểm.
K – NOTAM checklist
Các giá trị và liên kết có thể sử dụng: A, E, W, AE, AW.
Lower/Upper - Giới hạn thấp và giới hạn cao
Giới hạn thấp và giới hạn cao chỉ được biểu hiện bằng mực bay (FL), gồm
3 chữ số cho từng giới hạn.
Coordinates và Radius (NM)
Mục A:
Code 4 chữ chỉ địa danh sân bay hoặc FIR nơi tin tức phát sinh. Nếu ảnh
hưởng đến nhiều FIR thì phải liệt kê hết các chỉ danh địa chỉ của chúng
trong mục A, nhưng không được quá 7 chỉ danh địa chỉ.
Nếu ảnh hưởng đến nhiều sân bay thì mỗi một sân bay sẽ phát hành một
NOTAM.
VD: VVNB: mã sân bay Nội Bài.
Mục B: Thời gian bắt đầu có hiệu lực (nhóm 10 ký tự chỉ năm tháng ngày
giờ và phút) giờ UTC.
Mục C: Thời gian hết hiệu lực (nhóm 10 ký tự chỉ năm tháng ngày giờ và
phút) giờ UTC.
Mục D: Lịch trình bay
Mục E : Nội dung chính của bản tin
11
2. Phân tích một vài bản tin NOTAM mẫu
IV. Thiết kế Phần Mềm
- LẬP TRÌNH C#
3.1. Socket
Socket là một giao diện lập trình ứng dụng mạng. Thông qua giao diện này
chúng ta có thể lập trình điều khiển việc truyền thông giữa hai máy tính sử dụng giao
thức mức thấp là TCP, UDP… Có thể hình dung socket như là thiết bị truyền thông hai
Ta chỉ quan tâm đến lớp IPAdress, IPEndPoint, DNS,…
Lớp IPAdress
Một số Field cần chú ý:
Any: Cung cấp một địa chỉ IP để chỉ ra rằng Server phải lắng nghe trên tất cả
các Card mạng.
Broadcast: Cung cấp một địa chỉ IP quảng bá.
Loopback: trả về một địa chỉ IP lặp.
AddressFamily: trả về một họ IP hiện hành.
Một số phương thức cần chú ý:
Phương thức khởi tạo
IPAddress(Byte[])
IPAddress(Int64)
IsLoopback: Cho biết địa chỉ có phải địa chỉ lặp không.
Parse: Chuyển IP dạng xâu về IP chuẩn.
ToString: Trả địa chỉ IP về dạng xâu.
TryParse: Kiểm tra IP ở dạng xâu có hợp lệ không.
Lớp IPEndPoint
Một số phương thức cần chú ý
Phương thức khởi tạo
IPEndPoint (Int64, Int32)
IPEndPoint (IPAddress,Int32)
Create: Tạo một EndPoint từ một địa chỉ Socket
ToString: Trả về địa chỉ IP và số hiệu cổng theo khuôn dạng Địa Chỉ: Cổng,
ví dụ: 192.168.1.1:8080
Lớp DNS
13
Một số thành phần của lớp
HostName: Cho biết tên của máy được phân giải.
GetHostAddress: Trả về tất cả IP của một trạm.
GetHostEntry: Giải đáp tên hoặc địa chỉ truyền vào và trả về đối tượng
Một số phương thức thường dùng
Tên phương thức Mô tả
Abort() Kết thúc Thread
Join() Buộc chương trình phải chờ cho Thread
kết thúc (Block) thì mới thực hiện tiếp
(Các câu lệnh đứng sau Join)
Resume() Tiếp tục chạy Thread đã bị tạm ngưng -
suspended
Sleep() Tạm dừng Thread trong một khoảng thời
gian.
Start() Bắt đầu chạy (khởi động) một Thread.
Sau khi gọi phương thức này, trạng thái
của thread chuyển từ trạng thái hiện
hành sang Running
Suspend() Tạm ngưng (nghỉ) thread. VS 2005
không dung phương thức này.
Bảng 3. : Các phương thức dùng trong Thread
Một số thuộc tính thường dung
Tên thuộc tính Mô tả
CurrentThread Trả về thread hiện hành đang chạy
IsAlive Trả về giá trị cho biết trạng thái thực thi
của thread hiện hành.
IsBackground Sets hay gets giá trị cho biết thread là
background hay foreground thread
ThreadState Lấy về trạng thái của Thread (đag dừng
hay đang chạy…)
Bảng 3. : Các thuộc tính dùng trong Thread
Tạo một tuyến trong C#
…
15
thực thi ứng dụng rất mạnh mẽ và hiệu quả.
1. Server trung tâm
a) Chức năng
+Chức năng:
- Luôn luôn lắng nghe kết nối từ client
- Theo dõi và cập nhật các trạng thái của client
- Tạo ra các bản tin NOTAM, MATAR
- Cho phép gửi và nhận các bản tin text
+Thực hiện:
- Server lắng nghe kết nối
- Một client (máy bay) muốn liên lạc với Server(trạm điều khiển)
phải kết nối tới IP tĩnh của server và qua 1 port cố định đã được mở
17
- Khi có nhiều kết nối , để xử lý được thì server phải cung cấp cho
mỗi kết nối đó 1 thread – luồng để truyền nhận dữ liệu
- Khi client mất kết nối hoặc ngắt kết nối thì luồng đó sẽ được giải
phóng để dành cho client khác.
b) Kết quả đạt được
- Lắng nghe kết nối
18
- Kết nối thành công và bắt đầu gửi nhận dữ liệu
c) Hạn chế
- Chưa xử lý được quá trình ngắt kết nối hoặc mất kết nối
- Do khả năng sử lý của server nên số lượng thread tạo được là có
hạn vì vậy cần tối ưu hóa các thread tạo ra.
- Giải pháp:
+khi đang gửi dữ liệu mà client tự đóng form thì đường kết nối sẽ
bị đứt và socket sẽ đưa ra báo lỗi cho bên server để server sử lý.
19
Lỗi: socketException {"An existing connection was forcibly closed