Giao diện chạy ở server bao gồm các thành phần
I.Chat
1.Host name (Tên máy chủ)
2.Serverlimit ( Số máy con tối đa có thể kết nối măc định là
16)
3.Host button ( Sau khi xác lập các thông số trên bấm vào host
button máy này sẽ trở thành máy chủ).
4.Phần còn lại dành cho chat .
54 trang |
Chia sẻ: lylyngoc | Lượt xem: 2567 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Phòng chống cháy qua mạng Intenet dựa trên giao thức TCP IP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ối tiếp.
Giống như các cổng song song, POST (Power on Self Test- chương trình
của BIOS tự kiểm tra cấu hình hệ thống khi bật máy) kiểm tra xem liệu một cổng
nối tiếp có được gắn vào hệ thống không, và ghi lại các địa chỉ I/O của các cổng
hoạt động trong vùng dữ liệu của BIOS. Tất cả các hệ thống đến 4 cổng nối tiếp,
BIOS không hỗ trợ các cổng bổ sung thêm khác.
Để truy suất phần cứng của một cổng nối tiếp, cần đọc một trong 4 từ (word)
trong vùng dữ liệu BIOS chứa địa chỉ I/O cơ sở đối với 4 cổng nối tiếp có thể có.
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 19
MSSV: 8D15001
Ví dụ: Để truy suất cổng nối tiếp số 2, trước tiên phải đọc địa chỉ cổng I/O
cơ sở từ vùng dữ liệu BIOS. Điều này có nghĩa là một cởng nối tiếp không có địa
chỉ cổng I/O cố định.
1. Lưạ chọn cổng COM:
Mỗi cổng nối tiếp sử dụng 8 byte của bộ nhớ máy PC và một ngắt phần cứng
đặc biệt. Việc sử dụng các địa chỉ bộ nhớ và ngăùt phần cứng này là điều quan
trọng đối với người lập các chương trình liên lạc và các chương trình điều khiển
thiết bị đối với các thiết bị nối tiếp.
Bảng sau mô tả các địa chỉ bộ nhớ và các ngắt phần cứng đối với 4 cổng nối
tiếp chuẩn cho các máy tính tương thích với máy tính PC. Thông tin quan trọng
nhất ở đây là địa chỉ cơ sở, là địa chỉ bộ nhớ đầu tiên trong mỗi cổng COM (vùng
đệm phát/thu – Transmit/ Receive Buffer) địa chỉ của đường yêu cầu ngắt (IRQ)
đối với mỗi cổng.
Một thiết bị nối tiếp chỉ có thể sử dụng một địa chỉ cổng COM. Khi cài đặt
một Modem nội trong máy PC, hay bất kỳ thiết bị nào khác sử dụng cổng nối tiếp
cho giao diện của nó, trước tiên phải đảm bảo rằng đã xác lập nó đối với một cổng
COM (bao gồm địa chỉ và số IRQ).
COM1 COM2 COM3 COM4 Mô tả
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 20
MSSV: 8D15001
IRQ4
3F8
3F9
3FA
3FB
3FC
3FD
3FE
IRQ3
2F8
2F9
2FA
2FB
2FC
2FD
2FE
IRQ4
3E8
3E9
3EA
3EB
3EC
3ED
3EE
IRQ3
2E8
2E9
2EA
2EB
2EC
2ED
2EE
Interrupt Request Line
Transmit/Receive Buffer và LSB of the
Divisor Latch
Interrupt Enable Register và MSB of the
Divisor Latch
Interrupt Identification Registers
Line Control Register
Modem Control Register
Line Status Register
Modem Status Register
2. Hoạt động của cổng nối tiếp:
Sự khởi động của BIOS.
Sau khi bật máy (hay Reset máy), chương trình POST kiểm tra xem liệu có
bất kỳ cổng nối tiếp nào được cài đặt hay không. POST khảo sát nhóm cổng I/O:
3F8 3FEh. Để phát hiện một cổng hoạt động, thanh ghi IIR (Interrupt
Identification Register) được đọc từ cổng 3FAh hay 2FAh. Nếu tất cả các bit từ
37 của thanh ghi IIR đều là 0, thì POST xem như cổng nối tiếp có hoạt động.
Một khi đã xác định được nhóm cổng I/O nối tiếp có hoạt động, địa chỉ cổng
I/O cơ sở được lưu trữ trong vị trí BIOS RAM cổng nối tiếp chưa sử dụng thấp
nhất. Có 4 từ được dành trong RAM bắt đầu tại địa chỉ 40:0h để chứa địa chỉ I/O
của cổng nối tiếp có hoạt động. Nhiều POST của các hãng cung cấp máy sẽ không
bao giờ kiểm tra các cổng COM3 và COM4, vì IPM không định nghĩa một địa chỉ
cổng chuẩn cho các cổng này.
Nói chung, hầu hết các hệ thống chỉ kiểm tra có 2 cổng. Tuy nhiên, các hệ
thống cùng họ mới hơn thường kiểm tra 4 địa chỉ cổng có thể có. Các hệ thống
MCA kiểm tra 8 địa chỉ cổng nối tiếp khác nhau có thể có trong một lần thử để tìm
ra 4 cổng nối tiếp có hoạt động.
Thứ tự kiểm tra Hầu hết hệ
thống
Một số hệ thống
AT và EISA
Các hệ thống
MCA
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 21
MSSV: 8D15001
Thứ 1
Thứ 2
Thứ 3
Thứ 4
Thứ 5
Thứ 6
Thứ 7
Thứ 8
3F8
2F8
Không
Không
Không
Không
Không
Không
3F8
2F8
Không
Không
Không
Không
Không
Không
3F8
2F8
3220h
3228h
4220h
4228h
5220h
5228h
Bảng trên mô tả thứ tự theo đó các BIOS sẽ tìm kiếm các cổng hoạt động.
Chỉ cổng I/O cơ sở đối với mỗi nhóm được hiển thị trong bảng này. Trên hệ thống
MCA, một khi 4 cổng đã được tìm thấy, các cổng khác không được kiểm tra nữa.
Khi hồn tất các công việc kiểm tra POST nối tiếp, các địa chỉ cổng nối tiếp
được cất giữ. Điều này thường tạo ra một trong 4 trường hợp được mô tả trong
bảng sau:
Địa chỉ
RAM
Cổng nối
tiếp
Trường hợp 1
Địa chỉ I/O
Trường hợp 2
Địa chỉ I/O
Trường hợp 3
Địa chỉ I/O
Trường hợp 4
Địa chỉ I/O
40:0h
40:2h
40:4h
40:6h
1
2
3
4
3F8
2F8
0
0
3F8
0
0
0
2F8
0
0
0
0
0
0
0
Các kết quả POST có thể có về việc phát hiện cổng nối tiếp.
- Trường hợp 1 : Mô tả POST phát hiện 2 cổng nối tiếp.
- Trường hợp 2 và 3 : Cho thấy chỉ có một cổng nối tiếp được phát hiện.
- Trường hợp 4 : Cho thấy không phát hiện được cổng nối tiếp nào.
Các phép thử này không khẳng định liệu có một thiết bị nối tiếp thực sự
được nối với cổng I/O hay không. Phép thử chỉ kiểm tra xem liệu phần cứng cổng
nối tiếp có tồn tại hay không tại một địa chỉ I/O cụ thể. Tổng số cổng nối tiếp hoạt
động được phát hiện thấy (0 4) được cất giữ trong byte thiết bị tại địa chỉ BIOS
RAM 40:10h từ các bit 9 11.
Quá trình phát nối tiếp
Để phát một byte trên đường dây kết nối nối tiếp, cổng được giả định là đã
được khởi sự với tốc độ baud và các phần chọn khung (Frame) nối tiếp thích hợp.
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 22
MSSV: 8D15001
Chúng ta cũng giả định rằng các byte sẽ được phát đi trên cổng nối tiếp số 1
(COM1).
1. Trước tiên, xác định địa chỉ cơ sở cổng I/O bằng cách đọc một từ (Word) từ
vùng dữ lệu BIOS tại 40:OH đối với cổng nối tiếp COM1. Nếu trị = 0: Không
có cổng nối tiếp hoạt động nào được gắn ở đây và dĩ nhiên không có dữ liệu nào
được gửi đi.
2. Hai đường điều khiển MODEM là DTR (DATA Terminal Ready) và RTS
(Request to Send) được xác lập lên mức cao (DTR = 1, RTS = 1).
- DTR thông báo cho thiết bị kết nối biết rằng máy tính đang hoạt động và sẵn
sàng để liên lạc.
- RTS báo cho thiết bị kết nối biết rằng máy tính muốn gửi dữ liệu.
- Hai đường này được kích khởi bằng cách ghi trị 3 thanh ghi MCR (MODEM
control Regester) của UART.
3. Kế đó, kiểm tra hai đường trạng thái CTS (Clear To Send). Những đường này
nằm trong các bit 4 và 5 của thanh ghi MSR (MODEM Status Regester).
- DSR báo cho máy tính biết thiết bị kết nối đã được bật lên và sẵn sàng.
- CTS báo cho máy tính biết rằng thiết bị kết nối đã sẵn sàng đối với dữ liệu.
- Các đường trạng thái này nên được kiểm tra trong 2ms hay cho đến khi cả
hai đều chuyển sang mức cao. Khi cả hai đường này đều ở mức cao, thiết bị
được kết nối với cổng nối tiếp đã báo hiệu cho biết nó đã sẵn sàng cho một
byte. Một lỗi đáo hạn (timeout error) được báo hiệu bởi phần mềm nếu một
trong hai đường dẫn còn ở mức thấp lâu hơn khoảng 2ms.
4. Đến đây thiết bị kết nối đã sẵn sàng tiếp nhận một byte, UART phải được kiểm
tra xem liệu thanh ghi chứa dữ liệu phát THR (Transmit Holding Regester) đã
sẵn sàng có một byte chưa. Thanh ghi LSR (Line Status Regester), bit 5, được
xác lập lên mức cao khi thanh ghi chứa dữ liệu này trống rỗng và sẵn sàng cho
một byte. Một lần nữa, giống ở bước 3 nếu thanh ghi THR không thể trở nên
hữu dụng trong 2ms, thì phần mềm sẽ báo một lỗi đáo hạn, và bỏ qua việc phát
đi.
5. Nếu cho đến bây giờ chưa xảy ra việc đáo hạn, byte có thể được gửi đến thanh
ghi chứa dữ liệu phát của UART.
6. Sau đó, UART phát byte từ thanh ghi chứa dữ liệu phát vào thanh ghi dịch TSR
(từ đây các bit dữ liệu được dịch ra và gửi đi), và tạo dạng khung nối tiếp.
Quá trình nhạân nối tiếp.
Để nhận 1 byte từ đường dây kết nối nối tiếp, cổng được giả định như trên (cho
cổng COM3):
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 23
MSSV: 8D15001
1. Trước tiên, xác định địa chỉ cơ sở cổng I/O bằng cách đọc một từ (Word) từ
vùng dữ liệu BIOS tại 40:4H đối với cổng nối tiếp COM3. Nếu trị = 0: Không
có cổng nối tiếp hoạt động nào được gắn ở đây và dĩ nhiên không có dữ liệu nào
được gửi đi.
2. Hai đường điều khiển MODEM là DTR (DATA Terminal Ready) và RTS
(Request to Send) được xác lập lên mức cao (DTR = 1, RTS = 1).
- Điều này thông báo cho thiết bị kết nối biết rằng máy tính đang hoạt động và
sẵn sàng liên lạc. Điều này được thực hiện bằng cách ghi trị 1 các thanh ghi
MMC của UART.
3. Kế đó kiểm tra tín hiệu trên đường trạng thái DSR. Tín hiệu này xuất hiện trong
bit 5 của thanh ghi MSR. DSR báo cho máy tính biết rằng thiết bị kết nối đã
được bật lên và sẵn sàng. DSR sẽ được kiểm tra cho đến khi nó lên mức cao
hay cho đến khi hết 2ms trước khi một lỗi đáo hạn được báo hiệu.
4. Kế đó, vùng đêïm nhận được kiểm tra để xem dữ liệu đã nhận được dữ liệu nào
chưa. Bit 0 của thanh ghi LSR chứa một cờ hiệu báo dữ liệu đã sẵn sàng. Nó
được xét lên 1 khi vùng đệm có dữ liệu. Nếu cờ báo dữ liệu sẵn sàng không
được xét sau 2ms, thì phần mềm sẽ khai báo một lỗi đáo hạn, và tác vụ bị bỏ
qua.
5. Nếu cho đến bây giờ chưa xảy ra việc đáo hạn, byte có thể được đọc từ vùng
đệm nhận của UART.
- Trong chế độ bất đồng bộ, 8251 A dịch số liệu trên dây RxD từ bit một. Sau
mỗi bit, thanh ghi thu được so sánh với thanh ghi chứa ký tự SYN. Nếu hai
thanh ghi chưa bằng nhau thì 8251 A dịch bit khác và tiếp tục so sánh cho
đến khi hai thanh ghi bằng nhau. 8251 A kết thúc chế độ bất đồng bộ và đưa
tín hiệu SYNDET (Synch Detect) để báo đồng bộ đã hồn tất.
- Nếu USART được nạp từ điều khiển để làm việc với hai ký tự SYNC, quá
trình bất đồng bộ cũng như trên. Nhưng hai ký tự kế tiếp nhau sẽ được so
sánh với hai ký tự SYNC trước khi đạt được sự đồng bộ. Ở chế độ bất đồng
bộ bit chẵn/lẻ sẽ không phải kiểm tra. USART ở chế độ đuổi bắt đồng bộ với
hai điều kiện:
- USART được khởi động ở chế độ đồng bộ.
- USART đã nhận lệnh ở chế độ bất đồng bộ.
Khối phát
Khối này nhận số liệu song song từ đơn vị trung tâm, chèn thêm các thông
tin rồi chuyển sang nối tiếp và gửi ra thân TxD (Transmiter DATA).
- Ở chế độ bất đồng bộ, khối phát chèn thêm bit START, bit kiểm tra chẵn lẻ
paraty và một hay hai bit STOP.
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 24
MSSV: 8D15001
- Trong chế độ đồng bộ, khối phát chèn thêm các ký tự SYNC. Những ký tự
đồng bộ này phải được phát trước khi bản tin bắt đầu. Nếu trong khi phát có
khoảng trống giữa hai ký tự thì USART tự động chèn các ký tự đồng bộ vào.
- Trong cả hai chế độ đồng bộ và bất đồng bộ, quá trình phát chỉ được cho
phép khi tín hiệu TxE (Transmiter Enable) và tín hiệu CTS, ở trạng thái tích
cực. Nếu USART được đặt ở chế độ đồng bộ từ ngồi, chân SYNDET sẽ là
cửa vào và nhận tín hiệu để đồng bộ khi thu.
- Khối phát có thể gửi tín hiệu cắt (BREAK). Đó là một chu kỳ liên tục các bit
SPACE trên đường dây liên tục và đưọc dùng ở chế độ truyền song công để
cắt quá trình gửi thông tin ở đầu cuối.
- USART sẽ gửi tín hiệu cắt liên tục nếu bit D3 của byte lệnh được thiết lập
Khối điều khiển Modem
Khối này tạo và nhận tín hiệu RTS (Request to Send).
Ngồi ra, còn có các tín hiệu ra DTR (Data Terminel Ready) và tín hiệu vào
DSR (Data Set Ready). Đó là những tín hiệu vạn năng.
Tín hiệu DTR điều khiển bởi bit D2 bởi byte lệnh.
Tín hiệu DSR thể hiện ở bit D7 của thanh ghi trạng thái.
USART không định nghĩa các tín hiệu này một cách cứng ngắc. Thông
thường:
- Tín hiệu DTR qua Modem để chỉ rằng thiết bị đầu cuối sẵn sàng truyền.
- DSR là tín hiệu từ Modem để chỉ trạng thái sẵn sàng liên lạc.
Khối điều khiển vào/ra
Logic điều khiển đọc/ghi giải mã các tín hiệu điều khiển từ Bus điều khiển
của đơn vị trung tâm thành những tín hiệu đều khiển các cổng dẫn số liệu đến
Bus nội của USART.
Bảng sau cho biết sự liên quan giữ các tín hiệu CE, C/D\ RD\
CE C/D\ RD\ WR\ Ý Nghĩa
0
0
0
0
1
0
1
0
1
x
0
0
1
1
x
1
1
0
0
x
CPU đọc số liệu từ USART
CPU đọc trạng thái từ USART
CPU ghi số liệu vào USART
CPU ghi lệnh vào USART
Bus của USART ở trạng thái trở kháng cao
Khối thu
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 25
MSSV: 8D15001
Khối thu nhận dữ liệu nối tiếp ở chân RxD và chuyển thành số liệu song
song (P/PC). Trước khi bộ thu làm việc, bit D2 trong Command world của byte
lệnh phải ở trạng thái cho phép. Nếu bit này không được lập, bộ thu sẽ không
tạo ra tín hiệu RxRDI.
- Trong chế độ bất đồng bộ, 8251 A kiểm tra mức điện áp của đầu vào RxD.
Khi có thay đổi mức logic từ 1 xuống 0, 8251 A khởi động bộ đếm thời gian
trong khối thu khi đặt thời gian ½ bit, 8251 A kích mẫu đầu vào RxD. Tại
thời điểm này có 2 trường hợp xảy ra:
- Nếu đầu vào RxD có mức logic cao thì sự thay đổi từ 1 xuống 0 ở RxD
trước lúc kích mẫu là do nhiễu hay khối thu đã khởi động bộ đếm trong khi
nhận bit số liệu. Như vậy có sai 8251 bỏ lệnh đang thực hiện và chuẩn bị ký
tự mới.
- Nếu đầu vào RxD có mức logic thấp trong thời điểm kích mẫu. 8251 tiếp tục
kích mẫu để nhận giá trị của các bit số liệu, bit kiểm tra chẵn lẻ và các bit
dừng. Sau đó, 8251 tách các bit khung và chuyển số liệu qua Bus trong đến
thanh ghi đệm số liệu thu. Tín hiệu RxRDI được tạo ra để báo cho trung tâm
biết số liệu thu đã sẵn sàng.
- Trong chế độ đồng bộ, khối thu kích mẫu các bit số liệu của ký tự rồi đưa
đến đệm số liệu thu và lập cờ RxRDI. Vì bộ thu nhóm một số bit thành ký tự
nên được xác định bit số liệu đầu tiên là cần thiết. Để đồng bộ giữa bộ thu và
bộ phát, nếu có trống trong dãy ký tự thì 8251 tự động chèn ký tự SYNC
vào. Quá trình đồng bộ được thực hiện trong quá trình bất đồng bộ.
Khối đệm vào ra
- Khối đệm vào ra chứa: Thanh ghi trạng thái, thanh ghi số liệu thu (thanh
ghi đệm số liệu thu), thanh ghi số liệu phát và lệnh (thanh ghi đệm số liệu
phát và lệnh).
- Như vậy, chỉ có một thanh ghi chứa thông tin chuyển từ đơn vị trung tâm
vào USART. Thông tin này bao gồm số liệu và lệnh, do vậy phải có sự phân
chia thời gian giữa lệnh và số liệu. Lệnh phải được gửi trước số liệu. Trước
khi gửi số liệu vào USART. Đơn vị trung tâm phải kiểm tra tín hiệu sẵn sàng
phát TxRDI. Nếu gửi thông tin khi TxRDI ở trạng thái chưa sẵn sàng số liệu
chuyển đi có thể sai.
CHƯơng 3 . Lập trình điều khiển qua cổng com VIẾT BẰNG v b6.0
I.Tại sao chọn ngôn ngữ lập trình Visual Basic 6.0:
Do quá trình thiết kế thuần chất rất ít kiến thức về vi xử lý nên em quyết định chọn
ngôn ngữ thực hiện là VB 6.0 với thư viện Port.dll thiết kế riêng dùng giao tiếp qua
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 26
MSSV: 8D15001
COM theo tiêu chuẩn RS 232. Đồng thời quá trình điều khiển qua mạng từ VB có
thể dễ dàng sử dụng kĩ thuật lập trình Winsock với thư viện liên kết động là
winsock32.dll sử dụng giao thức TCP / IP phổ biến hiện nay để điều khiển.
II.Thư viện liên kết động port.dll:
Thư viện liên kết động port.dll được viết bằng ngôn ngữ delphi với tên
quy ước là PORT.DLL để chỉ rõ đối tượng ứng dụng là các cổng. Tập tin port.dll
thực hiện chức năng mở rông ngôn ngữ để dùng chung cho các ngôn ngữ khác
nhau.
Các chức năng được thiết kế sẵn trong port.dll :
Mở các giao diện.
Truyền dữ liệu theo cách nối tiếp.
Tiếp cận đến những đường dẫn ở giao diện.
Nhập vào và xuất ra ở các cổng.
Phát khoảng thời gian để có thời lượng chính xác đến từng mili giây.
Phát khỏang thời gian để có thời lượng quét đến từng micro giây.
Truy nhập tới card âm thanh.
Truy nhập qua cổng trò chơi.
III. Gọi hàm trong thư viện liên kết động port.dll từ Visual Basic 6.0:
Phần lệnh được gọi khi chương trình chạy trong môi trường windows:
Declare Function OPENCOM Lib "Port" (ByVal A$) As Integer
Declare Sub CLOSECOM Lib "Port" ()
Declare Sub SENDBYTE Lib "Port" (ByVal b%)
Declare Function READBYTE Lib "Port" () As Integer
Declare Sub DTR Lib "Port" (ByVal b%)
Declare Sub RTS Lib "Port" (ByVal b%)
Declare Sub TXD Lib "Port" (ByVal b%)
Declare Function CTS Lib "Port" () As Integer
Declare Function DSR Lib "Port" () As Integer
Declare Function RI Lib "Port" () As Integer
Declare Function DCD Lib "Port" () As Integer
Declare Sub DELAY Lib "Port" (ByVal b%)
Declare Sub TIMEINIT Lib "Port" ()
Declare Sub TIMEINITUS Lib "Port" ()
Declare Function TIMEREAD Lib "Port" () As Long
Declare Function TIMEREADUS Lib "Port" () As Long
Declare Sub DELAYUS Lib "Port" (ByVal l As Long)
Declare Sub REALTIME Lib "Port" (ByVal i As Boolean)
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 27
MSSV: 8D15001
PHẦn 3
CƠ Sở Lý Thuyết về MẠNG và Giao thức TCP/IP
Chương I: Các Khái Niệm Cơ Bản Về Hệ Thống Mạng
I. Mô hình mạng, mô hình OSI, mô hình TCP:
1 .Mô Hình Mạng:
Trước tiên chúng ta cần tìm hiểu vấn đề: tại sao có sự phân tầng của các
protocol, ích lợi của việc phân tầng.
Để có thể chuyển một thông điệp (message) từ máy này sang máy khác (các
máy phải trong cùng hệ thống mạng) nó phải trải qua nhiều giai đoạn khác nhau,
các giai đoạn này rất phức tạp như là: chia nhỏ thông điệp (message) ra thành
nhiều gói nhỏ (package), mã hóa các gói này ra dạng bit, các bit này được chuyển
qua đường truyền vật lý đến máy nhận. Sau đó quá trình nhận sẽ thực hiện ngược
lại như bên gởi, nếu quá trình lắp ghép gặp phải lỗi thì phải thông báo để truyền lại
vv…
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 28
MSSV: 8D15001
Các giai đọan này rất phức tạp đòi hỏi người lập trình ứng dụng phải hiểu rõ
tất cả các cơ chế hoạt động bên dưới của hệ thống. Vì vậy người ta đưa ra ý tưởng
phân tầng, mỗi tầng sẽ chịu trách nhiệm cung cấp dịch vụ cho tầng bên trên và
đồng thời nó cũng sử dụng dịch vụ của tầng bên dưới cung cấp cho nó. Như thế
một người làm việc ở tầng nào họ chỉ quan tâm đến các tầng có quan hệ trực tiếp
với mình.
Trong mô hình này mỗi lớp n + 1 sử dụng dịch vụ của lớp n, cả hai host A
và host B phải có cùng chồng giao thức(protocol stack).
2. Mô hình OSI:
Layer N Layer N
Layer N - 1 Layer N - 1
Host A Host B Protocol layer N
Protocol layer N - 1
Layer 2 Layer 2
Layer 1 Layer 1
Protocol layer 2
Protocol layer 1
Hình 9
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 29
MSSV: 8D15001
Ý nghĩa các tầng :
Physical Layer
Ở lớp này thông tin được truyền dưới dạng bit thông qua kênh truyền. Và
nhận các bit chuyển lên cho lớp datalink.
Datalink Layer
Lớp này có nhiệm vụ chia nhỏ dữ liệu từ lớp network đưa xuống thành các
frame, mỗi frame có dung lượng từ vài trăm byte đến vài ngàn byte. Các frame
được truyền đi bằng cách chuyển xuống cho lớp physical. Nhiệm vụ thứ hai là tổ
chức nhận các frame sao cho đúng thứ tự, cung cấp khả năng truyền không lỗi trên
đường truyền vật lý cho các lớp cao hơn. Vấn đề đặt ra ở đây là phải xác định cơ
chế để xác nhận một frame có truyền thành công hay không (Acknowladge
Framje), xử lý nhiểu (truyền lại).
Network layer
Lớp này định hướng cho gói dữ liệu (package) đi từ máy gởi đến máy nhận.
Phải giải quyết vấn đề định tuyến (routing), vấn đề địa chỉ (addressing), lượng giá
chi phí (accouting), và giải quyết đụng độ (collision).
Transport layer
Lớp này có nhiệm vụ chia nhỏ gói dữ liệu được đưa xuống từ lớp bên trên
thành những đơn vị nhỏ hơn để truyền qua mạng, với sự đảm bảo là dữ liệu đến
nơi một cách chính xác. Lớp này cung cấp cho các lớp bên trên phương tiện để
truyền các message độc lập với các lớp bên dưới.
Session player
Session layer điều khiển quá trình giao tiếp giữa hai tiến trình trên hai máy,
tạo và kết thúc kết nối giữa các quá trình trên các máy khác nhau.
Application Layer
Presentation Layer
Datalink Layer
Session Layer
Transport Layer
Network Layer
Physical Layer
Application Layer
Presentation Layer
Datalink Layer
Session Layer
Transport Layer
Network Layer
Physical Layer
Host A Host B
Hình 10: Mô hình OSI
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 30
MSSV: 8D15001
Presentation layer
Lớp này biểu diễn những thông tin được truyền (được hiểu là cú pháp và
ngữ nghĩa), nó đồng nhất các thông tin giữa các các hệ thống khác nhau. Ngồi ra
có còn cung cấp dịch vụ thao tác trên dữ liệu như nén, mã hóa(compression &
cryptography).
Application layer
Đây là lớp cung vấp dịch vụ cho người sử dụng (end user), ứng với mỗi dịch
vụ (còn được gọi là ứng dụng) có 1 protocol khác nhau.
Ví dụ: FTP(truyền nhận file), HTTP, E-mai, v.v..
3. Mô hìnhTCP/IP :
Chúng ta đã khảo sát mô hình OSI 7 lớp, mô hình này chỉ là mô hình tham
khảo, việc áp dụng mô hình này vào thực tế là khó có thể thực hiện (hiệu suất kém
vì dữ liệu khi truyền từ máy này sang máy kia trong mạng thì phải trải qua tất cả
các lớp của mô hình OSI ở cả 2 máy), nó chỉ là tiêu chuẩn để các nhà phát triển
dựa theo đó mà phát triển các mô hình khác tối ưu hơn. Có rất nhiều các mô hình
khác nhau, hiện nay mô hình TCP/IP được sử dụng phổ biến nhất.
Bộ protocol TCP/IP bao gồm:
- TCP(Transmission Control Protocol): đây là loại protocol có cầu nối
(connection oriented) cung cấp khả năng truyền dòng dữ liệu không lỗi, 2
chiều (full duplex)cho các quá trình cho người sử dụng.
- UDP(User Datagram Protocol): loại protocol không thiết lập cầu nối
(connectionless) cho các quá trình của user. Không giống như TCP, nó
không đảm bảo dữ liệu khi truyền đi có đến nơi chính xác hay không.
Application
Presentation
Physical
Datalink
Network
Sesstion
Transport
OSI
7
6
3
4
2
5
1
Application
Transport
Internet
Host-to-network
TCP/IP
Hình 11: Mô hình TCP/IP
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 31
MSSV: 8D15001
- ICMP (Internet Control Message Protocol): protocol xử lý lỗi và điều
khiển thông tin giữa các gateway và các host.
- IP(Internet Protocol): IP là protocol cung cấp dịch vụ phân phối các
package cho TCP, UDP và ICMP.
- ARP (Address Resolution Protocol): Protocol ánh xạ 1 địa chỉ internet
thành địa chỉ phần cứng(MAC address).
- RAPR(Address Resolution Protocol): Protocol ánh xạ một địa chỉ phần
cứng thành địa chỉ IP.
Mô hình TCP/IP được phân ra thành 4 lớp, trong đó 2 lớp dưới (1 và 2)của
mô hình OSI được gộp lại thành 1 lớp gọi là Host-to-network; 2 lớp Session và
Presentation của OSI không có trong mô hình giao thức TCP/IP.
Tương tự như mô hình OSI, trong mô hình TCP/IP, dữ liệu từ 1 máy cũng
đi từ lớp Application xuống Transport, rồi xuống tiếp lớp Internet, sau cùng đi tới
lớp Host-to-network, thông qua đường dây vật lý đến 1 máy khác trong mạng : dữ
liệu ở đây sẽ đi ngược từ dưới lên. Cũng giống như mô hình OSI, ở đây, giữa các
lớp của 2 máy giao tiếp với nhau thông qua một protocol; giữa lớp này với lớp
khác trong cùng một máy gọi là Interface. Lớp bên dưới cung cấp các dịch vụ cho
lớp trên.
Host-to-network
Kết nối host với network sao cho chúng có thể chuyển các message tới các
địa chỉ đích, lớp này gần giống với lớp physical trong mô hình OSI.
Internet layer
Đây là lớp thực hiện một hệ thống mạng có khả năng chuyển mạch các gói
dữ liệu dựa trên một lớp mạng Connectionless(không cầu nối) hay Connection –
Oriented (có cầu nối) tùy vào loại dịch vụ mà người ta dùng một trong 2 cách trên.
Nhiệm vụ của lớp này là đảm bảo cho các host chuyển các package vào bất
kì hệ thống mạng nào và chuyển chúng đến đích mà không phụ thuộc vào vị trí của
đích đến.
Trong mô hình TCP/IP người ta đưa ra khái niệm địa chỉ IP để định địa chỉ
cho các host trên mạng(xem phần địa chỉ IP).
Transport layer
Lớp transport được thiết kế để cho các phần tử ngang cấp ở lớp host có thể
đối thoại với nhau.
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 32
MSSV: 8D15001
Hai protocol chính là :
- TCP: là một Connection Oriented Protocol, cho phép chuyển một chuỗi
byte từ host này sang host kia mà không có lỗi (dùng cơ chế phân chia dữ
liệu ra thành các gói nhỏ(package) ở máy nguồn và gom lại ở máy đích).
- UDP: là một connectionless Protocol được xây dựng cho các ứng dụng
không muốn sử dụng cách truyền theo một thứ tự của TCP mà muốn tự
mình thực hiện điều đó (tùy theo mục đích của ứng dụng mà người ta
dùng UDP hay không).
Khái niệm về port:
Một máy có thể liên lạc với một máy khác trong mạng qua địa chỉ IP. Tuy
nhiên, với địa chỉ như vậy không đủ cho một process của máy liên lạc với một
process của máy khác. Và vì vậy TCP/UDP đã dùng số nguyên (16 bit) để đặt tả
nên số hiệu port.
Như vậy, để hai process của hai máy bất kỳ trong mạng có thể giao tiếp
được với nhau thì mỗi frame ở cấp Network có IP gồm :
+ Protocol (TCP/UDP).
+ Địa chỉ IP của máy gởi.
+ Số hiệu port của máy gởi.
+ Địa chỉ IP của máy đích
+ Số hiệu port của process ở máy đích.
Ví dụ:{TCP,127.28.11.83,6000,127.28.11.241,7000};
Application layer(process layer)
Chứa các dịch vụ như trong các lớp Session, Presentaion, Application của
mô hình OSI, ví dụ: Telnet(Terminel Acesss) cho phép user thâm nhập vào một
host ở xa và làm việc ở đó như đang làm việc trên máy local(cục bộ), FPT (File
Transfer Protocol) là công cụ giúp cho chúng ta chuyển các file cho nhau,
SMTP(Simple Mail Transfer Protocol) cũng là một dạng của FTP nhưng nó đặc
điểm riêng, DNS(Domain Name Service) dùng để ánh xạ tên host thành địa chỉ IP
và ngược lại.
2. Giao Thức TCP và UDP
2.1 Giao Thức UDP
UDP là phương thức truyền dữ liệu theo phương pháp không hướng kết nối
(connectionless). Khi truyền nó không cần thiết lập cầu nối giữa máy gởi và máy
nhận, sử dụng cơ chế UDP người ta giả định rằng ở máy nhận luôn sẳn sàn đón
nhận dữ liệu gởi đến. Nếu dữ liệu gởi đến bị lỗi trong quá trình truyền hay không
nhận được đầy đủ, UDP cũng không có thông tin phản hồi lại cho máy gởi. Tuy
nhiên UDP không đòi hòi nhiều tài nguyên của hệ thống và thiết kế chương trình
ứng dụng đơn giản. UDP thường được dùng trong những ứng dụng không đòi hỏi
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 33
MSSV: 8D15001
độ chính xác cao ví dụ: dịch vụ thông báo giờ, tỉ giá, hay dịch vụ nhắn tin và dùng
cho việc truyền tải những file có kích thước lớn như hình ảnh, âm thanh, vv.
Chính vì những ưu điểm đó những nhà lập trình vẫn sử dụng UDP cho ứng
dụng của họ, khi đó người ta dùng nhiều cách để xác nhận cho gói dữ liệu đi đến
đích chính xác và trọn vẹn.
Một ví dụ minh họa cơ chế xác nhận:
1. Client gởi một gói dữ liệu(package) cho server và chờ đợi xác
nhận từ server.
2. Server nhận được gói dữ liệu sẽ trả về thông điệp phản hồi cho
client xác nhận gói dữ liệu đã nhận được.
Nếu client chờ đợi hơn một khoảng thời gian cho phép(time out) mà
không nhận được phản hồi từ server thì nó cho là gói dữ liệu không đi
đến đích và truyển lại, nếu sau nhiều lần không nhận được phản hồi từ
server nó giả định rằng mối kết nối bị đứt hay server bị hỏng hóc.
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 34
MSSV: 8D15001
4. Giao thức TCP:
TCP cung cấp khả năng truyền không lỗi từng gói dữ liệu gởi đi đến máy
nhận theo giao thức giao thức này phải có trách nhiệm thông báo và kiểm tra xem
dữ liệu có đến đủ hay chưa, có lỗi hay không có lỗi. Trước khi chuyển dữ liệu bao
giờ cũng có việc thiết lập kênh truyền giữa hay máy. Do phải duy trì mối kết nối và
Start App
Server
Create datagram
socket
Create datagram
socket
Send data to server Client data Receive data
Send data to client Server data Receive data
Exit?
Close Socket
yes
Exit?
Close Socket
yes
Exit App
no no
Mô Hình Kết Nối Theo Giao Thức UDP
Client
Hình 12: Mô hình kết nối theo giao thức UDP
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 35
MSSV: 8D15001
kiểm tra dữ liệu nên sử dụng TCP phải đòi hỏi chiếm thêm một số tài nguyên và
cách lập trình cho giao thức này hơi khó (phải thực hiện các bước kiểm tra dữ liệu
theo yêu cầu của TCP). Truyền dữ liệu theo giao thức TCP thường áp dụng cho
các dịch vụ như truyền tập tin, các dịch vụ trực tuyến trên Internet đòi hỏi có độ
chính xác cao.
Start App
Server Client
Create the socket
Create the server
socket
Accept New
Connection
Acquire Stream and
Conduct Conversation
Acquire Stream and
Conduct Conversation
Close Stream and Socket Close Stream and Socket
Start App Continue? yes no
Exchange data
Mô Hình Kết Nối Theo Giao Thức TCP
Hình 13: Mô hình kết nối theo giao thức TCP
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 36
MSSV: 8D15001
5. Địa Chỉ IP:
a. Giới thiệu địa chỉ IP:
Tất cả các máy trong hệ thống mạng(LAN, WAN, Internet) đều có ít nhất 2
địa chỉ: địa chỉ vật lý(Mac Address) và địa chỉ Internet. Địa chỉ vật lý còn được gọi
là Ethernet address là một dãy bit gồm 48 bit được gán bởi các nhà sản xuất, địa
chỉ này được biểu diễn dưới dạng số thập lục phân (hecxa).
Ví dụ : 3A : 9D : 10 : 60 : 7C : 1F
Như thế mỗi card mạng(interface card) có một địa chỉ duy nhất địa chỉ này
được quy định từ nhà sản xuất card mạng, tuy nhiên địa chỉ vật lý không thể hiện
khả năng xác định vị trí của hệ thống trên mạng. Để giải quyết vấn đề đó người ta
đưa ra địa chỉ IP(IP Address).
Địa chỉ IP phải là duy nhất trên mạng và có một dạng thống nhất, mỗi địa
chỉ IP gồm có 4 byte và có 2 thành phần: địa chỉ đường mạng (Network ID) và địa
chỉ host(Host ID).
Nếu máy tính được nối mạng với Internet thì địa chỉ IP phải do
NIC(Network Information Center) cấp.
3.2 Phân Loại Địa Chỉ IP
Có tất cả 5 lớp địa chỉ IP nhưng hiện nay có 3 lớp được sử dụng là lớp A, B, và C.
Lớp A:
Dùng cho hệ thống mạng có số lượng địa chỉ host rất lớn, số lượng này có
thể lên đến 16 triệu địa chỉ host.
Để có thể nhận biết địa chỉ thuộc lớp nào người ta căn cứ vào bit đầu tiên
trong phần network ID, trong trường hợp lớp A: bit đầu tiên trong phần ID network
bằng 0. 8 bits đầu dùng cho phần Network ID còn lại 24 bits dành cho phần Host
ID. Như vậy có 126(27) địa chỉ đường mạng và 16.777.214 (224)địa chỉ Host ID.
Lớp B:
0 Network ID Host ID
31 30 24 23 0
Network ID Host ID
32 bits(4 byte)
Địa chỉ IP
Class ID
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 37
MSSV: 8D15001
Dùng cho hệ thống mạng trung bình số lượng Host ID lên đến khoảng 65
ngàn.
Địa chỉ lớp B được nhận biết qua bit đầu tiên trong phần Network ID bit
đầu tiên có giá trị 1. Phần Network ID có 16 bit(2 byte) và phần Host ID có 16 bit
như vậy số địa chỉ đường mạng trong lớp B này là 16.382(214 -2)và số địa chỉ host
65.534(216 -2).
Lớp C:
Địa chỉ lớp C dùng cho mạng nhỏ có số lượng máy không vược quá 254
máy.
Có thể nhận biết địa chỉ lớp C thông qua 2 bit đầu tiên trong phần Network
ID, hai bit này được bật lên 1. Phần NetWork ID có 2,097,150(221-2) địa chỉ đường
mạng và phần Host ID có 254(28-2) địa chỉ host.
Chúng ta có thể xem số địa chỉ Host ID và Network ID qua bảng sau
Lớp
Mạng
Số địa chỉ đường mạng Số host trên một địa chỉ
mạng
A 126 16,777,214
B 16,382 65,534
C 2,097,150 254
b. Subnet Mask(mặt nạ con):
1 0 Network ID Host ID
31 30 29 1615 0
1 1 0 Network ID Host ID
31 30 29 28 8 7 0
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 38
MSSV: 8D15001
Subnet mask là một dãy 32 bit giống như địa chỉ IP được dùng kèm với địa
chỉ IP để xác định mạng con. Khi có một địa chỉ IP và kèm theo là một subnet
mask chúng ta có thể xác định địa chỉ đường mạng con của địa chỉ IP đó bằng cách
thực hiện tốn tữ AND giữa IP và subnet đây là cách mà router xác định cho gói dữ
liệu đi theo đường mạng nào để để đến máy nhận.
Ví dụ : địa chỉ IP:192.125.125.3
Subnet mask :255.255.255.0
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 39
MSSV: 8D15001
CHƯƠNG 2: MẠNG INTERNET
Internet là công nghệ thông tin liên lạc mới, và hiện đại, nó tác động sâu sắc
vào xã hội cuộc sống chúng ta, là một phương tiện cần thiết như điện thoại hay tivi,
nhưng ở mức độ bao quát hơn. Chẳng hạn điện thoại chỉ cho phép trao đổi thông
tin qua âm thanh, giọng nói. Với Tivi, thông tin nhận được trực quan hơn. Còn
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 40
MSSV: 8D15001
Internet đưa chúng ta vào thế giới có tầm nhìn rộng hơn và bạn có thể làm mọi thứ:
viết thư, đọc báo, xem bản tin, giải trí, tra cứu và thậm chí còn thực hiện những phi
vụ làm ăn, ….Vì Internet là mạng của các mạng, tức bao gồm nhiều mạng máy tính
kết nối lại với nhau, Số lượng máy tính nối mạng và số lượng người truy cập vào
mạng Internet trên tồn thế giới đang ngày càng tăng lên nhanh chóng. Đặc biệt từ
năm 1993 trở đi, mạng Internet không chỉ cho phép chuyển tải thông tin nhanh
chóng mà còn giúp cung cấp thông tin, nó cũng là diễn đàn và là thư viện tồn cầu
đầu tiên. Các thông tin được đặt rải rác trên tồn cầu có thể truyền thông được với
nhau như một thiết bị Modem và đường dây điện thoại.
Hệ điều hành UNIX là hệ phát triển mạnh với rất nhiều công cụ hổ trợ và
đảm bảo các phần mềm ứng dụng có thể chuyển qua lại trên các họ máy khác nhau
(máy mini, máy tính lớn và hiện nay là máy vi tính). Bên cạnh đã hệ điều hành
UNIX BSD còn cung cấp nhiều thủ tục Internet cơ bản, đưa ra khái niệm Socket và
cho phép chương trình ứng dụng thâm nhập vào Internet một cách dễ dàng.
Internet có thể tạm hiểu là liên mạng gồm các máy tính nối với nhau theo
một nghi thức và một số thủ tục chung gọi là TCP/IP (Transmission Control
Protocol/Internet Protocol).Thủ tục và nghi thức này trước kia đã được thiết lập và
phát triển là cho một đề án nghiên cứu của Bộ Quốc Phòng Mỹ với mục đích liên
lạc giữa các máy tính nối đơn lẻ và các mạng máy tính với nhau mà không phụ
thuộc vào các hãng cung cấp máy tính. Sự liên lạc này vẫn được bảo đảm liên tục
ngay cả trong trường hợp có nút trong mạng không hoạt động.
Ngày nay, Internet là một mạng máy tính có phạm vi tồn cầu bao gồm nhiều
mạng nhỏ cũng như các máy tính riêng lẻ được kết nối với nhau để có thể liên lạc
và trao đổi thông tin. Trên quan điểm Client / Server thì có thể xem Internet như là
mạng của các mạng của các Server, có thể truy xuất bởi hàng triệu Client. Việc
chuyển và nhận thông tin trên Internet được thực hiện bằng nghi thức TCP/IP.
Nghi thức này gồm hai thành phần là Internet protocol (IP) và transmission control
protocol (TCP) (được nguyên cứu ở những phần sau). IP cắt nhỏ và đóng gói thông
tin chuyển qua mạng, khi đến máy nhận, thì thông tin đó sẽ được ráp nối lại. TCP
bảo đảm cho sự chính xác của thông tin được chuyền đi cũng như của thông tin
được ráp nối lại đồng thời TCP cũng sẽ yêu cầu truyền lại tin thất lạc hay hư hỏng
.Tùy theo thông tin lưu trữ và mục đích phục vụ mà các server trên Internet sẽ
được phân chia thành các loại khác nhau như Web Server, email Server hay FTP
Server. Mỗi loại server sẽ được tối ưu hóa theo mục đích sử dụng.
Từ quan điểm người sử dụng, Internet trông như là bao gồm một tập hợp các
chương trình ứng dụng sử dụng những cơ sở hạ tầng của mạng để truyền tải những
công việc thông tin liên lạc. Chúng ta dùng thuật ngữ "interoperability" để chỉ khả
năng những hệ máy tính nhiều chủng loại hợp tác lại với nhau để giải quuyết vấn
đề. Hầu hết người sử dụng truy cập Internet thực hiện công việc đơn giản là chạy
các chương trình ứng dụng trên một máy tính nào đó gọi là máy client mà không
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 41
MSSV: 8D15001
cần hiểu loại máy tính(Server) đang được truy xuất, kỷ thuật TCP/IP, cấu trúc hạ
tầng mạng hay Internet ngay cả con đường truyền dữ liệu đi qua để đến được đích
của nó.Chỉ có những người lập trình mạng cần xem TCP/IP như là một mạng và
cần hiểu một vài chi tiết kỹ thuật.
Hình 3 : Liên lạc trên Internet
1. Internet bắt nguồn từ đâu?
Internet bắt đầu từ đầu năm 1969 dưới cái tên là ARPANET(Advanced
Research Projects Agency) còn gọi là ARPA. Nó thuộc bộ quốc phòng Mỹ
(DoD). Đầu tiên nó chỉ có 4 máy được thiết kế để minh hoạ khả năng xây dựng
mạng bằng cách dùng máy tính nằm rải rác trong một vùng rộng. Vào năm
1972, khi ARPANET được trình bày công khai, đã được 50 trường đại học và
các viện nghiên cứu nối kết vào. Mục tiêu của ARPANET là nghiên cứu hệ
thống máy tính cho các mục đích quân sự. chính phủ và quân đội tìm kiếm
những phương cách để làm cho mạng tránh được các lỗi, mạng này thiết kế
chỉ cho phép các văn thư lưu hành từ máy tính này đến máy tính khác, đối với
chính phủ và quân đội, máy tính đã có những công dụng rõ ràng và sâu rộng.
tuy nhiên, một trong những mối bận tâm chính yếu là tính đáng tin cậy vì nó
có liên quan đến vấn đề sinh tử. Kế hoạch ARPANET đã đưa ra nhiều đường
nối giữa các máy tính. Điều quan trọng nhất là các máy tính bạn có thể gởi
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 42
MSSV: 8D15001
các văn thư bởi bất kỳ con đường khả dụng nào, thay vì chỉ qua một con
đường cố định. Đây chính là nơi mà vấn đề về giao thức đã xuất hiện.
2. Giao thức mà internet sử dụng là gì?
- Giao thức hay còn gọi là nghi thức là các phương tiện để làm cho sự thông
tin trở nên khả hữu. Một (lọai) quyết định phải được thực hiện khi hai hay nhiều
máy tính muốn gởi và nhận dữ liệu.
Đầu tiên ARPANET đã đưa ra giao thức Host-to-Host Protocol, nhưng giao
thức này không đáng tin cậy và nó chỉ giới hạn trong một số các máy. Vào cuối
năm 1970 các mạng khác cũng bung ra trong thực tế, mạng UUCP gồm một nhóm
rôì cũng đã nối được hàng trăm máy rồi hàng máy. Vào cuối năm 1980 mạng
NSFNET mạng của National Science Foundation được phát triển để nối 5 trung
tâm siêu máy tính của nó, nó là mạng hấp dẫn cho tất cả các nhà nghiên cứu và các
viện đại học cũng như các viện nghiên cứu. Năm 1972, bắt đầu thế hệ thứ hai của
giao thức mạng, đã làm phát sinh ra một nhóm giao thức được gọi là Transmission
Control Protocol/ Internet Protocol viết tắt là TCP/IP. Năm 1983, TCP/IP là bộ
giao thức cho ARPANET, TCP/IP đã trở thành một trong những giao thức mạng
được dùng rộng rãi nhất. Sau cùng tất cả các mạng được tài trợ bởi cá nhân hay xã
hội -mạng ARPANET, MILNET, UUCP, BITNET, CSNET và NASA Science
Internet đã liên kết trong một mạng khu vực NSFNET và ARPANET giải tán và
ngày càng có nhiều mạng khác thêm vào...
- Ngày nay để thực hiện việc truyền thông qua mạng thông qua trình duyệt
Web, và ta cũng cần một giao thức để thực hiện công việc này. Mặc dù hiện nay
cũng đang có rất nhiều giao thức để truyền thông tin nhưng nhìn chung có hai giao
thức thường được các lập trình viên sử dụng đó là: TCP/IP(IP: là giao thức
Internet, TCP: giao thức truyền tải) và giao thức UDP(giao thức gói dữ liệu người
dùng). Vì chương trình của em sử dụng giao thức TCP/IP nên sau đây em sẽ trình
bày chi tiết giao thức này.
3. Các dịch vụ kết nối đến Internet:
Muốn truy nhập Internet, bạn phải đăng ký kết nối. Có nhiều phương pháp
để có thể đăng ký kết nối, và luôn có phương pháp mới trong quá trình thiết kế. ba
phương pháp phổ biến nhất hiện nay là: Dịch vụ trực tuyến, nhà cung cấp dịch vụ
Internet(ISP), và truy cập trực tuyến.
- Dịch vụ trực tuyến(online service) là một doanh nghiệp: như AOL,
CompuServe, Microsoft Network(MSN),...cung cấp nhiều dịch vụ truyền thông,
trong đó có truy cập Internet. Khi sử dụng dịch vụ trực tuyến, bạn chạy chương
trình kết nối của họ để đăng nhập dịch vụ cung do họ cung cấp, đến lúc kết nối để
chạy Internet Explorer. Dịch vụ trực tuyến thu cước phí hàng tháng(Không áp
dụng cho người ở Việt Nam).
- Nhà cung cấp dịch vụ Internet(ISP): là một công ty nhỏ hơn, chuyên
dụng hơn, cung cấp tùy chọn không nhiều bằng dịch vụ trực tuyến. ISP cho
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 43
MSSV: 8D15001
phép truy nhập Internet theo giờ với cước phí thấp, hoặc truy cập không giới
hạn với cước phí cao hơn. Họ còn cấp cho khách một tài khoản E-mail. Ở Việt
Nam hiện có ba dịch vụ ISP đang hoạt động: VNN, FPT, và NetNam.
- Truy nhập trực tuyến(direct access) khả dụng ở nhiều học viện giáo dục hoặc
công ty lớn. Thay vì sử dụng Modem, những tổ chức này thuê bao một đường
truyền chuyên dụng để cung cấp truy nhập Internet 24/24 giờ.
Chương IIi: Một số hàm socket
I. Khái niệm về socket:
Trong mô hình mạng để hai máy tính có thể trao đổi thông tin cho nhau thì
cần phải tạo ra kết nối giữa chúng. Trong quá trình làm việc người ta nhận thấy
rằng những nhà lập trình ứng dụng rất khó khăn trong việc thiết lập kết nối và
truyền tải dữ liệu giữa các máy tính với nhau. Vì thế người ta xây dựng khái niệm
socket, khái niệm này được đưa ra đầu những năm 80 bởi các nhà khoa học máy
tính ở California tại Berkeley. Khái niệm này được đưa ra từ ý tưởng phân tầng,
trong đó Windows sockets Application Programming Interface(Winsock API) là
thư viện các hàm do hãng Berkeley Software Distribution of UNIX đưa ra. Nhằm
làm đơn giản hóa quá trình thiết lập kết nối và chuyển dữ liệu. socket dựa trên giao
thức TCP/IP tạo môi trường trung gian cho các ứng dụng và giao thức bên dưới.
Socket được xem là một cấu trúc dữ liệu trừu tượng(asbtraction data
structure) dùng tạo ra một kênh truyền(channel) để gởi và nhận dữ liệu giữa các
process trong cùng chương trình hay các giữa các máy trong cùng môi trường
mạng với nhau. Hay nói một cách đơn giản hơn chúng ta xem socket như là “cơ
chế ổ cắm”. Khi kết nối giữa client và Server tương tự như việc cắm phích điện
vào ổ cắm điện. client thường được xem như là phích cắm điện, còn server được
xem như là ổ cắm điện, một ổ cắm có thể cắm vào đó nhiều phích điện khác nhau
Server socket
Client socket
Hình 14: minh họa cơ chế socket
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 44
MSSV: 8D15001
cũng như một server có thể phục vụ cho nhiều client khác nhau.
Trong quá trình truyền, nhận dữ liệu cần có một máy đóng vai trò là server
và một máy đóng vai trò client, đầu tiên server phải tạo ra một socket và chờ đợi
các yêu cầu kết nối từ client. client tạo ra socket cho riêng nó xác định vị trí server
(dựa vào tên của server hay địa chỉ của server trong mạng) và tiến hành việc kết
nối với server, sau khi kết nối được thiết lập client và server có thể tiến hành việc
trao đổi dữ liệu với nhau.
Tóm lại Socket là đầu (endpoint) trao đổi dữ liệu giữa các quá trình, qua đó các
ứng dụng WinSock gởi / nhận dữ liệu qua mạng.
Có hai loại Socket :
Stream Socket :
Dựa trên nghi thức TCP ( Tranmission Control Protocol ), việc truyền dữ liệu chỉ
thực hiện giữa hai quá trình đã thiết lập kết nối. Dữ liệu được truyền tin cậy, đúng
trình tự và không lập lại.
Dữ liệu được truyền như dòng liên tục các byte không phân biệt ranh giới các
record
Datagram Socket :
Dựa trên nghi thức UDP ( User Datagram Protocol ), việc truyền dữ liệu không yêu
cầu có sự thiết lập kết nối giữa hai quá trình. Dữ liệu truyền không tin cậy, có thể
không đúng trình tự hoặc lập lại.
Dữ liệu được truyền như dòng các record.
II.Lập trình Winsock:
WinSock API (Windows Sockets Application Programming Interface) là thư
viện các hàm giao diện lập trình mạng cho Microsoft Windows. WinSock tương
thích với họ nghi thức mạng TCP/IP.
a.Khái niệm Port :Port xác định duy nhất một quá trình trên một máy trong
mạng.
Một TCP/IP Socket gồm một địa chỉ IP kết hợp với một port ? xác định duy nhất
một quá trình trên mạng.
Một số port dành riêng :
UDP Ports :
0 Reversed
7 Echo
37 Time
42 Name Server
53 Domain Name Server
69 Trivial File Transfer Program ( TFTP )
514 System Log
. . . . . . . . . .
TCP Ports :
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 45
MSSV: 8D15001
0 Reversed
1 TCP Multiplexor
20 FTP_ Data Connection
21 FTP_ Command Connection
23 TELNET
25 SMTP
42 Name Server
53 Domain Name Server
79 Finger_ find a active user
. . . . . . . . . . . . . . . . . . . . .
Các file cần thiết :
WINSOCK.DLL hay WSOCK32.DLL ( tuỳ version 16 hay 32 bit của Windows ).
WINSOCK.LIB hay WSOCK32.LIB.
WINSOCK.H.
Giới thiệu một số hàm của WinSock:
Dưới đây chỉ giới thiệu chức năng của một số hàm WinSock, không trình bày
prototype của các hàm
Các hàm khởi động WinSock :
Dùng để khởi đầu và kết thúc quá trình sử dụng WinSock.
WSAStartup() : Khởi động WinSock.
WSACleanup() : Kết htúc WinSock.
WSAGetLastError() : Lấy mã sai vừa xảy ra.
Các hàm Socket :
Dùng để thiết lập quá trình trao đổi dữ liệu trên mạng.
socket() : tạo socket truyền dữ liệu.
bind() : định danh cho socket vừa tạo (gán port cho socket).
listen() : lắng nghe kết nối.
accept() : chấp nhận kết nối từ client.
connect() : kết nối với server.
send(), recv() : gởi, nhận dữ liệu với stream socket.
sendto(), recvfrom() : gởi, nhận dữ liệu với datagram socket.
. . . . . . . .
Các hàm khác :
inet_addr() : chuyển từ địa chỉ IP dạng số thập phân có chấm sang địa chỉ internet.
inet_ntoa() : ngược lại.
gethostname() : cho tên máy hiện hành.
gethostbyname(),WSAAsyncGetHostByName()
: cho địa chỉ IP ứng với tên máy.
gethostbyaddr(),WSAAsyncGetHostByAddr()
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 46
MSSV: 8D15001
: cho tên máy ứng với địa chỉ IP.
. . . . . . . .
WinSock error:
Lỗi khi send data
WSANOTINITIALISED A successful AfxSocketInit must occur before using
this API.
WSAENETDOWN The Windows Sockets implementation detected that the
networ
k subsystem failed.
WSAEACCES The requested address is a broadcast address, but the appropriate
flag was not set.
WSAEINPROGRESS A blocking Windows Sockets operation is in progress.
WSAEFAULT The lpBuf or lpSockAddr parameters are not part of the user
address space, or the lpSockAddr argument is too small (less than the size of a
SOCKADDR structure).
WSAENETRESET The connection must be reset because the Windows Sockets
implementation dropped it.
WSAENOBUFS The Windows Sockets implementation reports a buffer deadlock.
WSAENOTCONN The socket is not connected (SOCK_STREAM only).
WSAENOTSOCK The descriptor is not a socket.
WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type
SOCK_STREAM.
WSAESHUTDOWN The socket has been shut down; it is not possible to call
SendTo on a socket after ShutDown has been invoked with nHow set to 1 or 2.
WSAEWOULDBLOCK The socket is marked as nonblocking and the requested
operation would block.
WSAEMSGSIZE The socket is of type SOCK_DGRAM, and the datagram is
larger than the maximum supported by the Windows Sockets implementation.
WSAECONNABORTED The virtual circuit was aborted due to timeout or other
failure.
WSAECONNRESET The virtual circuit was reset by the remote side.
WSAEADDRNOTAVAIL The specified address is not available from the local
machine.
WSAEAFNOSUPPORT Addresses in the specified family cannot be used with
this socket.
WSAEDESTADDRREQ A destination address is required.
WSAENETUNREACH The network cannot be reached from this host at this
time.
Lỗi khi receive data
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 47
MSSV: 8D15001
WSANOTINITIALISED A successful AfxSocketInit must occur before using this
API.
WSAENETDOWN The Windows Sockets implementation detected that the
network subsystem failed.
WSAENOTCONN The socket is not connected.
WSAEINPROGRESS A blocking Windows Sockets operation is in progress.
WSAENOTSOCK The descriptor is not a socket.
WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type
SOCK_STREAM.
WSAESHUTDOWN The socket has been shut down; it is not possible to call
Receive on a socket after ShutDown has been invoked with nHow set to 0 or 2.
WSAEWOULDBLOCK The socket is marked as nonblocking and the Receive
operation would block.
WSAEMSGSIZE The datagram was too large to fit into the specified buffer and
was truncated.
WSAEINVAL The socket has not been bound with Bind.
WSAECONNABORTED The virtual circuit was aborted due to timeout or other
failure.
WSAECONNRESET The virtual circuit was reset by the remote side.
Stream Socket :
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 48
MSSV: 8D15001
Dùng Datagram Socket :
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 49
MSSV: 8D15001
Mô hình minh hoạ hoạt động của 2 dạng Socket
PHầN IV
GIỚI THIệu chương trình minh họa báo cháy
Chương trình bao gồm 2 thành phần: Một chạy ở các máy chủ gọi tắt là server
program, một chạy ở các máy trạm gọi là client program.
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 50
MSSV: 8D15001
Giao diện chạy ở server bao gồm các thành phần
I.Chat
1.Host name (Tên máy chủ)
2.Serverlimit ( Số máy con tối đa có thể kết nối măc định là
16)
3.Host button ( Sau khi xác lập các thông số trên bấm vào host
button máy này sẽ trở thành máy chủ).
4.Phần còn lại dành cho chat .
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 51
MSSV: 8D15001
II.Phần này bao gồm các phím điều khiển các máy con như : Gọi chữa cháy (Call
115),Tắt Màn Hình(Power Off), Phun nước (Water), Tắt máy (Shutdown).
Phần chạy tại máy client:
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 52
MSSV: 8D15001
I.Chat
1.Đánh vào địa chỉ IP hoặc tên máy chủ.
2.Đánh vào tên máy con.
3.Sau đó click connect. Máy tính sẽ bắt đầu giám sát quá trình
xảy ra cháy nổ của hệ thống.
Báo cháy và chống cháy qua mạng Internet
Sinh Viên : Đỗ Trần Anh 53
MSSV: 8D15001
II. Monitor : Bao gồm các thành phần giám sát như trạng thái COM, Hệ thống
shutdown.
Tài Liệu Tham Khảo.
Các file đính kèm theo tài liệu này:
- đề tài- Phòng chống cháy qua mạng Intenet dựa trên giao thức TCP IP.pdf