Tải bản đầy đủ (.doc) (72 trang)

Nghiên cứu xây dựng hệ điều khiển và giám sát các hồ điều hòa thành phố Hải Phòng qua mạng internet

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.92 MB, 72 trang )

LỜI CAM ĐOAN
Em xin cam đoan đề tài tốt nghiệp “Nghiên cứu xây dựng hệ điều khiển và
giám sát các hồ điều hòa thành phố Hải Phòng qua mạng internet” là do em tự
nghiên cứu và xây dựng dưới sự hướng dẫn của thầy giáo TS. Đinh Anh Tuấn.
Các số liệu và kết quả trong đề tài là hoàn toàn trung thực.
Để hoàn thành bản đồ án tốt nghiệp này, em chỉ sử dụng những tài liệu tham
khảo đã được ghi trong bảng các tài liệu tham khảo, không sử dụng tài liệu tham
khảo nào khác mà không được liệt kê ở phần tài liệu tham khảo.
Hải Phòng, ngày 10 tháng 9 năm 2015
Học viên
Nguyễn Quang Thư

i


LỜI CẢM ƠN
Em xin được gửi lời cảm ơn chân thành đến quý Thầy cô trong khoa Điện và
các Thầy cô trong viện đào tạo sau đại học Trường Đại học Hàng Hải Việt Nam đã
giảng dạy và truyền đạt kiến thức chuyên ngành cho em trong thời gian vừa qua.
Đặc biệt em xin gửi lời cảm ơn sâu sắc tới Thầy Đinh Anh Tuấn vì sự tận tình
hướng dẫn cũng như đã tạo những điều kiện thuận lợi nhất cho em để em có thể
thực hiện và hoàn thành tốt đề tài này.
Em cảm ơn các bạn trong lớp đã trao đổi, góp ý để em hoàn thành đề tài này
một cách tốt đẹp và đúng thời hạn.
Mặc dù đã có nhiều cố gắng và nỗ lực thực hiện, nhưng do kiến thức cũng
như khả năng bản thân còn nhiều hạn chế nên trong quá trình thực hiện đề tài
không thể tránh khỏi những sai phạm, thiếu sót…Rất mong nhận được sự góp ý,
chỉ dẫn từ nơi quý Thầy cô và các bạn. i
Em xin chân thành cảm ơn !
Hải Phòng, ngày 10 tháng 9 năm 2015
Học viên


Nguyễn Quang Thư

ii


MỤC LỤC
Trang
LỜI CAM ĐOAN......................................................................................................I
LỜI CẢM ƠN...........................................................................................................II
MỤC LỤC...............................................................................................................III
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU.............................................IV
DANH MỤC CÁC BẢNG.......................................................................................V
BẢNG 1.1.................................................................................................................V
CẤU TRÚC KHUNG MAC THEO IEEE 802.3/ ETHERNET..............................V
DANH MỤC CÁC HÌNH.......................................................................................VI
I. PHẦN MỞ ĐẦU...................................................................................................1
II. PHẦN NỘI DUNG...............................................................................................3
III. PHẦN KẾT LUẬN...........................................................................................64

iii


DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU
Chữ viết tắt
SPI
TCP
IP
UDP
ARP
ICMP

FTP
HTTP
DNS
DHCP
HTML
D HTML
CSS
CSMA/CD
TCP/IP
OSI
MAC
SFD
CRC
LAN
ADC
PWM

Giải thích
Serial Peripheral Interface
Transmission Control Protocol
Internet Protocol
User Datagram Protocol
Address Resolution Protocol
Internet Control Message Protocol
File Transfer Protocol
Hypertext Transfer Protocol
Domain Name System
Dynamic Host Configuration Protocol
HyperText Markup Language
Dynamic HyperText Markup Language

Cascading Style Sheets
Carrier Sense Multiple Access / Collision Detect
Transmission Control Protocol / Internet Protocol
Open Systems Interconnection Reference Model
Media Access Control
Start Frame Delimiter
Cyclic Redundancy Checksum
local area network
Analog to Digital Converter
Pulse Width Modulation

iv


DANH MỤC CÁC BẢNG
Số bảng
Bảng 1.1
Bảng 1.2
Bảng 1.3
Bảng 2.1
Bảng 2.2
Bảng 2.3

Tên bảng
Cấu trúc khung MAC theo IEEE 802.3/ Ethernet.
Một số giao thức của các tầng
Bảng ARP cache
Lựa chọn Clock
Lựa chọn tần số hoạt động
Các ngắt của Atmega32


v

Trang
5
11
17
36
36
37


DANH MỤC CÁC HÌNH
Số hình
Hình 1.1

Tên hình
Mã hóa Manchester

Trang
Error:
Refere
nce
source
not

Hình 1.2
Hình 1.3
Hình 1.4
Hình 1.5

Hình 1.6
Hình 1.7
Hình 1.8
Hình 1.9
Hình 1.10
Hình 1.11
Hình 1.12
Hình 1.13
Hình 1.14
Hình 1.15
Hình 1.16
Hình 1.17
Hình 1.18
Hình 2.1
Hình 2.2
Hinh 2.3
Hình 2.4
Hình 2.5
Hình 2.6
Hình 2.7
Hình 2.8
Hình 2.9
Hình 2.10
Hình 2.11
Hình 3.1
Hình 3.2
Hình 3.3
Hình 3.4

Mô hình truyền thông unicast

Kiến trúc phân tầng của TCP/IP
Quá trình gửi nhận dữ liệu giữa hai máy tính
Thực hiện đóng/mở gói dữ liệu trong giao thức TCP/IP
Cấu trúc khung dữ liệu Ethernet
Cấu trúc địa chỉ IP
Phân lớp địa chỉ IP
IP packet
Cấu trúc IP packet
Cấu trúc gói tin ARP
Bản tin ICMP
Cấu trúc TCP Segment
Quá trình bắt tay 3 bước thiết lập kết nối
Quá trình truyền dữ liệu bằng giao thức TCP
Cơ chế điều khiển luồng sử dụng Sliding window
Quá trình đóng kết nối TCP
Sơ đồ trạng thái TCP
Sơ đồ đóng gói Atmega32
Sơ đồ khối Atmega32
Lõi CPU AVR
Bộ nhớ Flash
Bộ nhớ SRAM
Sơ đồ nguyên lý tương đương cổng vào ra
Sơ đồ chân ENC28J60
Sơ đồ khối ENC28J60
Sơ đồ ghép nối vi điều khiển với ENC28j60
Sơ đồ nguyên lý Module Ethernet
Module Ethernet thực tế
Sơ đồ tổng quan hệ điều khiển và giám sát hồ điều hòa
sơ đồ khối của modul điều khiển và giám sát
sơ đồ nguyên lý modul điều khiển và giám sát

Khối mạch nguồn
vi

found
6
8
8
10
11
13
13
14
14
18
19
20
22
22
24
25
26
32
33
34
35
35
37
38
38
40

40
41
44
45
46
47


Hình 3.5
Hình 3.6
Hình 3.7
Hình 3.8
Hình 3.9
Hình 3.10
Hình 3.11
Hình 3.12
Hình 3.13
Hình 3.14
Hình 3.15

Khối kết nối ENC28J60
Sơ đồ khối nghép nối đầu vào
Sơ đồ khối nghép nối đầu ra
Mạch vi điều khiển chính dùng chíp atmega32
Sơ đồ mạch in lớp dưới
Sơ đồ mạch in lớp trên
Sơ đồ mạch in lớp trên và lớp dưới
Sơ đồ bố trí linh kiện trên mạch in
Bản mạch chính mặt dưới.
Bản mạch chính mặt trên

Lưu đồ dữ liệu vào ra của giao thức

47
48
48
49
49
50
50
51
51
52
Error:
Refere
nce
source
not

Hình 3.16
Hình 3.17
Hình 3.18
Hình 3.19
Hình 3.20
Hình 3.21
Hình 3.22
Hình 3.23
Hình 3.24
Hình 3.25

Lưu đồ giải thuật chính

Lưu đồ xử lí dữ liệu giao thức Ethernet
Lưu đồ xử lí giao thức IP
Lưu đồ xử lí giao thức ARP
Lưu đồ xử lí giao thức ICMP
Lưu đồ xử lí tạo kết nối TCP tới web server
modul bo mạch thực tế
Giao diện giám sát và điều khiển trong mạng LAN
Giao diện giám sát và điều khiển qua mạng truyền dẫn internet
Giao diện giám sát và điều khiển tổng thể

vii

found
55
56
57
58
59
60
61
62
63
63


I. PHẦN MỞ ĐẦU
1. Lựa chọn đề tài.
Trong thời đại công nghệ thông tin phát triển như ngày nay. Việc thiết kế và
chế tạo ra các thiết bị điện tiện dụng có khả năng giám sát và điều khiểu từ xa đang
và sẽ rất được quan tâm và rất hữu ích cho các ứng dụng trong cuộc sống hàng

ngày.
Vì mục tiêu công nghệ hiện đại hoá ngày càng phát triển, tác giả đã quyết định
nghiên cứu đề tài về điều khiển và giám sát thiết bị qua mạng truyền dẫn
internet. Khi đề tài hoàn thành sẽ cho phép có thể điều khiểu và giám sát các thiết
bị thông qua mạng truyền dẫn internet, tương tác thông qua các thiết bị smart
phone, máy tính bảng hay máy vi tính; để kiểm soát các trạng thái và thông số của
thiết bị cũng như các thông số của môi trường xung quanh thiết bị như: nhiệt độ,
độ ẩm, mức nước, lưu lượng... Người sử dụng ở bất cứ nơi nào có mạng internet
đều có thể giám sát các hoạt động của thiết bị, các thông số cần thiết cho hệ thống
và điều khiển được hoạt động các thiết bị khi thiết bị đã kết nối với module điều
khiển Ethernet này.
Vấn đề được đặt ra như trên đây, hướng nghiên cứu đề tài của tác giả là
nghiên cứu, xây dựng mạch điều khiển và giám sát thiết bị qua mạng truyền dẫn
internet. Với hướng nghiên cứu đó, tên đề tài được chọn là: “Nghiên cứu xây
dựng hệ điều khiển và giám sát các hồ điều hòa thành phố Hải Phòng qua
mạng internet”.
2. Mục đích nghiên cứu .
- Thực hiện giao tiếp mạng giữa phần cứng mạch điện tử với mạng Ethernet.
- Điều khiển các thiết bị điện phục vụ cho hồ chứa điều hòa thành phố Hải Phòng
- Giám sát hoạt động của các máy bơm và mực nước các hồ chứa điều hòa thành
phố Hải Phòng.
3. Đối tượng và phạm vi nghiên cứu.
* Đối tượng nghiên cứu
- Tìm hiểu vi điều khiển ATMEGA32
- Lý thuyết mạng Ethernet và cách thức truyền nhận dữ liệu.

1


- Nghiên cứ chuẩn giao tiếp SPI và ứng dụng thực tế trên module Ethernet

ENC28J60.
* Phạm vi nghiên cứu
- Tìm hiểu ngôn ngữ html trong lập trình giao diện web server nhúng vào vi điều
khiển
- Tìm hiểu về giao thức TCP/IP
- Tính toán, thiết kế và thi công phần cứng mạch điện tử.
- Xây dựng thuật toán và viết code cho ứng dụng dựa theo mục tiêu đã đề ra.
4. Phương pháp nghiên cứu.
- Phương pháp nghiên cứu lý thuyết: Tìm hiểu tổng quan về mạng Ethernet, giao
thức TCP/IP, vi điều khiển ATMEGA32 và cách thức thiết kế web server nhúng
vào vi điều khiển, xây dựng thuật toán và viết code cho vi điều khiển ATMEGA32.
- Phương pháp thực nghiệm: Sử dụng phần mềm AVR Studio và WinAVR để viết
chương trình và biên dịch chương trình, xây dựng mạch điều khiển và viết code
HTML nhúng vào vi điều khiển.
5. Ý nghĩa khoa học và thực tiễn của đề tài.
* Ý nghĩa khoa học: Đề tài là tài liệu tham khảo hữu ích cho những ai quan tâm
đến lĩnh vực điều khiển và giám sát thiết bị sử dụng mạng truyền dẫn internet.
* Ý nghĩa thực tiễn: Kết quả nghiên cứu của đề tài sẽ góp phần giải quyết vấn đề
điều khiển và giám sát các hồ điều hòa thành phố Hải Phòng qua mạng truyền dẫn
internet và có thể áp dụng cho các thành phố khác tại Việt Nam.

2


II. PHẦN NỘI DUNG
Để giải quyết và làm rõ các vấn đề nghiên cứu, nội dung đề tài gồm 3
chương như sau:
- Chương 1. Tổng quan về Ethernet và bộ giao thức TCP/IP: trình bày về lý
thuyết Ethernet gồm các vấn đề về cấu trúc khung tin Ethernet, phương pháp
truy nhập bus (CSMA/CD), các loại mạng Ethernet, chuẩn Ethernet IEEE

802.3, kiến thức về bộ giao thức TCP/IP bao gồm 4 tầng: tầng ứng dụng
(Application Layer), tầng giao vận (Transport Layer), tầng liên mạng (Internet
Layer), tầng giao tiếp mạng (Network Interface Layer). Trình bày các kiến thức
về gói tin IP, TCP, UDP.
- Chương 2. Tổng quan về vi điều khiển Atmega32 và web server: trình bày các
kiến thức về vi điều khiển ATMEGA32, module Ethernet, giới thiệu về các nội
dung liên quan đến việc thiết kế web giao diện web server như là HTML
- Chương 3. Ứng dụng xây dựng hệ điều khiển giám sát các hồ nước thành
phố Hải Phòng sử dụng mạng truyền dẫn internet: Trình bày về xây dựng
modul mạch điện tử bao gồm sơ đồ cấu trúc mạch điện tử, các lưu đồ thuật toán
cho bộ giao thức TCP/IP, lưu đồ thuật toán chính, sơ đồ nguyên lý của mạch, sơ
đồ mạch in, viết code chương trình điều khiển và web server nhúng vào chíp vi
điều khiển ATMEGA32.

3


CHƯƠNG 1: TỔNG QUAN VỀ ETHERNET VÀ GIAO THỨC TCP/IP
Vấn đề giám sát và điều khiển từ xa hệ thống các trạm bơm nước và hồ điều
hòa nói chung và ở thành phố Hải Phòng nói riêng đang là yêu cầu cần thiết. Vấn
đề này đã được nghiên cứu ở nhiều nơi trên thế giới và đã cho ra đời những sản
phẩm ứng dụng, tuy nhiên việc áp dụng hệ thống đó đòi hỏi chi phí cao và phức
tạp như: phải lắp đặt mới một hệ thống cáp quang, lắp đặt hệ thống thu phát không
dây bán kính rộng hoặc sử dụng dịch vụ GMS với thuê bao tương đối đắt. Do đó,
để giảm bớt giá thành và ứng dụng được các tài nguyên internet sẵn có cũng như
việc sử dụng giám sát và điều khiển tiện lợi qua giao diện web trên các thiết bị có
sử dụng trình duyệt web như smart phone, máy tính bảng, máy vi tính thì vấn đề
trên vẫn cần được tiếp tục nghiên cứu để đáp ứng nhu cầu tự động hóa và hiện đại
hóa hiện nay của thành phố.
1.1. Tổng quan về Ethernet

1.1.1. Cấu trúc khung tin Ethernet
Các chuẩn Ethernet hoạt động ở tầng Data Link trong mô hình 7 lớp OSI,
nên một đơn vị dữ liệu các trạm có thể trao đổi với nhau là những khung, cấu trúc
khung Ethernet được thể hiện như bảng 1.1:

4


Bảng 1.1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet.
Preamble: Ở trường này cho biết sự xuất hiện của một khung bit, nó thường
có giá trị 10101010. Bắt đầu nhóm bit này, bên nhận có thể tạo ra xung 10 Mhz.
SFD: Ở trường này sẽ xác định sự bắt đầu của một khung. Nó có giá trị cố
định 10101011.
Các trường đích và nguồn: Lưu địa chỉ vật lý các trạm nhận và trạm gửi
khung, cho biết khung được gửi từ máy nào và sẽ được gửi tới máy nào nhận.
Địa chỉ đích: gồm 6 bytes, chứa địa chỉ MAC card Ethernet máy nhận.
Địa chỉ nguồn): gồm 6 bytes, chứ địa chỉ MAC card Ethernet máy gửi.
Độ dài/kiểu gói: gồm 2 bytes, là giá trị số lượng byte dữ liệu mà máy gửi đi.
1.1.2. Cấu trúc địa chỉ Ethernet
Mỗi giao tiếp mạng Ethernet được xác định bởi 48 bit địa chỉ, Địa chỉ này
được xác định bởi nhà sản xuất và gọi là địa chỉ. Địa chỉ MAC được viết bởi các
chữ số hệ 16. Ví dụ:02:61:97:1F:3F:84 hoặc 01-60-97-3F-4F-86.
1.1.3. Đặc tính điện
Tín hiệu Ethernet được mã hóa theo mã Manchester. Mã hóa Manchester sử
dụng cách đảo ngược mỗi bit trong khoảng thời gian của nó để đồng bộ và miêu tả
bit.
- Bit ‘0’ Nửa chu kỳ đầu của bit là điện áp +V và nửa chu kỳ còn lại là
điện áp –V
- Bit ‘1’ Nửa chu kỳ đầu của bit là điện áp -V và nửa chu kỳ còn lại là
điện áp + V


5


Hình 1.1: Mã hóa Manchester
1.1.4. Các loại khung Ethernet
1.1.4.1. Các khung unicast
Ví dụ truyền khung 2 chạm với nhau.
Khung Ethernet của trạm 1 sử dụng địa chỉ:
- MAC máy nguồn: 00-60-08-93-DB-C1
- MAC máy đích: 00-60-08-93-AB-12

Hình 1.2: Mô hình truyền thông unicast.
Đây là một unicast khung, khung này đã được chuyển giao cho một trạm có
địa chỉ xác định.
1.1.4.2. Các khung broadcast
Địa chỉ MAC đích của các khung broadcast là FF-FF-FF-FF-FF-FF. Khi
nhận được các khung này, tuy không trùng địa chỉ MAC của mình, tuy nhiên các
trạm đều tiếp tục phải nhận khung dữ liệu và tiếp tục xử lý dữ liêu.
6


1.1.4.3. Các khung multicast
Máy nguồn gửi khung tới một số máy nhất định chứ không phải là tất cả. Địa
chỉ MAC máy đích của khung là địa chỉ đặc biệt mà chỉ các trạm trong cùng nhóm
mới chấp nhận các khung gửi tới địa chỉ này.
1.1.5. Một số loại mạng Ethernet
IEEE đã phát triển nhiều chuẩn Ethernet trên nhiều công nghệ của nó truyền
dẫn khác nhau được cũng nhiều loại mạng Ethernet. Mỗi loại mạng được xây dựng
dựa trên 3 yếu tố chủ yếu: đặc tính đường truyền vật lý, phương thức tín hiệu được

sử dụng và tốc độ như Giga Ethernet, Ethernet 100Mb/s, Ethernet 10Mb/s.
1.1.6. Chuẩn IEEE 802
IEEE 802 là họ các chuẩn IEEE dành cho mình mạng LAN và mạng MAN,
các chuẩn IEEE 802 được sử dụng cho các gói mạng có kích thước khác nhau.
Giao thức và dịch vụ là những đặc điểm kỹ thuật trong IEEE 802 được ánh
xạ tới 2 tầng thấp (tầng tầng vật lý và tầng liên kết dữ liệu trong mô hình 7 tầng
OSI, trong thực tế IEEE 802 chia tầng liên kết dữ liệu OSI thành hai tầng con
MAC (điều khiển truy nhập môi trường truyền) và LLC (điều khiển liên kết logic)
và gồm các tầng sau:
+ Tầng liên kết dữ liệu.
+ Tầng con MAC.
+ Tầng con LLC.
+ Tầng vật lý.
1.2. Giao thức TCP/IP
1.2.1. Tổng quan về bộ giao thức TCP/IP
TCP/IP là một bộ các giao thức được thiết kế thực hiệu 2 mục tiêu:
Cho phép truyền thông dữ liệu giữa các môi trường đa dạng.
Cho phép truyền thông dữ liệu qua các đường dây của mạng diện rộng
(Wide Area Network - WAN).
TCP/IP có những đặc điểm nổi bật:

7


- Độc lập với cấu hình mạng: TCP/IP có thể dùng cho mạng Bus, Star, Ring,
cho mạng cục bộ , mạng diện rộng hay liên mạng.
- Là một chuẩn giao thức mở: TCP/IP có thể thực hiện trên nhiều hệ điều
hành khác nhau, nên nó thích hợp dùng cho các mạng hỗn tạp các loại phần
cứng và phần mềm như Internet.
- Định địa chỉ một cách tổng quát: mỗi trạm trên mạng TCP/IP có 1 địa chỉ IP

duy nhất được dùng để liên lạc với bất kì trạm nào khác trên mạng.
- Hỗ trợ đắc lực mạng theo mô hình Client - server.
1.2.2 Kiến trúc phân tầng của TCP/IP
Bộ các giao thức TCP/IP được phân làm bốn lớp tầng:

Hình 1.4: Kiến trúc phân tầng của TCP/IP
1.2.3. Quá trình gửi nhận dữ liệu giữa hai máy tính

Hình 1.5: Quá trình gửi nhận dữ liệu giữa hai máy tính
8


Gói dữ liệu từ máy gửi sẽ đi từ gửi lần lượt qua tầng: Tầng ứng dụng và dịch
vụ, tầng vận chuyển, Tầng lớp mạng và tầng truy cập mạng. Tại mỗi tầng, dữ liệu
sẽ được chèn thêm tất cả các điều khiển thông tin đòi hỏi gọi là Header. Tại máy
thu dữ liệu nhận được sẽ theo thứ tự ngược lại. Dữ liệu thông qua tầng được loại
bỏ phần tiêu đề tương ứng là Chen thêm. Cho đến khi đến tầng trên cùng thì dữ
liệu lúc này sẽ không có phần tiêu đề nữa.
1.2.4. Sơ lược chức năng các tầng
1.2.4.1. Tầng ứng dụng
Đây là mức cao nhất trong tầng kiến trúc TCP/IP, Tầng này bao gồm tất cả
các chương trình ứng dụng sử dụng các dịch vụ có sẵn thông qua bộ giao thức
TCP/IP. Các chương trình ứng dụng này tương tác với một trong các giao thức
tầng giao vận cho truyền hay nhận dữ liệu và mỗi chương trình ứng dụng chọn một
kiểu giao thức hợp lý cho công việc của mình.
Tại tầng ứng dụng các dữ liệu là các luồng được gọi là stream.
1.2.4.2. Tầng giao vận
Tầng giao vận cho phép sự giao tiếp thông tin ở mình chương trình ứng
dụng. Mỗi sự giao tiếp gọi là End- to-end. Tầng giao vận, cho phép điều chỉnh lưu
lượng luồng thông tin. Nó cũng cung cấp sự truyền tin cậy và đảm bảo các dữ liệu

vào sẽ bị lỗi. Để làm được điều này, ta cần viết phần mềm giao thức hỗ trợ để bên
nhận có thể gửi lại thông báo xác nhận về việc thu thập dữ liệu bên gửi và bên có
thể truyền lại gói tin bị lỗi hoặc bị mất.
Phần mềm giao thức tầng vận chuyển có thể chia dữ liệu (stream) ra thành
gói dữ liệu ít hơn (thường gọi là Segment hoặc gói) và gửi xuống tầng dưới.
1.2.4.3. Tầng Internet
Tầng Internet (tầng mạng) xử lí giao tiếp thông tin của một máy này với một
máy khác. Nó phải phải chấp nhận một yêu cầu để gửi một gói từ tầng giao vận
cùng với một định danh của các máy đích mà gói tin sẽ được gửi đến.

9


Trọng Tầng Internet, dữ liệu mà giao thức IP gửi xuống tầng dưới gọi là IP
diagram.
1.2.4.4. Tầng truy cập mạng
Là tầng thấp nhất của bộ các giao thức TCP/IP nó thực hiện việc chấp nhận
các datagram ở tầng trên (ví dụ IP datagram) và việc truyền nó trên một mạng
ethernet xác định.
Trong tầng truy cập mạng, dữ liệu truyền đi được gọi là frame.
1.2.5. Đóng gói dữ liệu trong TCP/IP
Bộ giao thức TCP/IP dùng sự đóng gói dữ liệu nhằm trừu tượng hóa các
giao thức và dịch vụ. Nói cách khác là các giao thức ở tầng cao hơn sử dụng các
giao thức ở tầng thấp hơn nhằm đạt được mục đích của mình bằng cách đóng gói
dữ liệu.
Mô tả việc thực hiện đóng/mở gói dữ liệu trong giao thức TCP/IP:

Hình 1.6: Thực hiện đóng/mở gói dữ liệu trong giao thức TCP/IP.
Trong bộ giao thức TCP/IP phần data của tầng bên dưới sẽ chứa phần header
và data của tầng phía trên.

Một số giao thức của các tầng:
10


Tầng
Application
Transport

Giao Thức
DNS, FTP, HTTP
TCP, UDP

Internet

IP (IPv4, IPv6), ICMP, ARP

Network Access

Ethernet

Bảng 1.2: Một số giao thức của các tầng
1.2.6. Các giao thức và khuôn dạng dữ liệu tương ứng
1.2.6.1. Giao thức Ethernet
a). Giới thiệu giao thức Ethernet
Là giao thức nằm trong tầng Network Access, Ethernet là một chuẩn công
nghệ dành cho mạng cục bộ(LAN) được quy định trong IEEE 802.3
b). Địa chỉ MAC
MAC là địa chỉ vật lí, là một định danh duy nhất được nhà sản xuất gán cho
thiết bị mạng hoặc card giao tiếp mạng để nhận dạng và được sử dụng trong lớp
Network Access Layer.

Địa chỉ MAC gồm 6 bytes, thường được biểu diễn ở dạng hexa.
Ví dụ: 00-E0-4C-4D-6A-0C
Trong mạng cục bộ, các máy tính truyền thông với nhau thông qua địa chỉ
MAC.
Địa chỉ MAC Broadcast có dạng: FF-FF-FF-FF-FF-FF. Khi gói tin có địa
chỉ MAC đích là MAC Broadcast được gửi đi thì tất cả các máy tính trong mạng
cục bộ đều nhận được.
c). Cấu trúc trong một đơn vị dữ liệu của giao thức Ethernet

Hình 1.7: Cấu trúc khung dữ liệu Ethernet

11


Preamble: Phần mở đầu gồm 7 bytes chứa giá trị 10101010 dùng để đồng
bộ giữa bên truyền và nhận. Phần này không được tính và kích thước của Ethernet
Frame.
Start Of Frame Delimiter: Gồm 1 byte chứa giá trị 101010111 dùng để
đánh dấu sự bắt đầu của một Frame, và nó không tính vào kích thước của gói
Ethernet Frame.
Destination Address: Gồm 6 bytes, là địa chỉ MAC của máy nhận Frame.
Source Address: Gồm 6 bytes, là địa chỉ MAC của máy gửi Frame.
Length/Type(độ dài/loại): Gồm 2 bytes cho biết độ dài của dữ liệu chứa
trong Frame và cho biết dữ liệu có trong frame là dữ liệu của lớp giao thức nào.
Ví dụ: Dữ liệu trong Ethernet Frame là của giao thức IP thì 2 byte này sẽ có giá trị
là: 0800h, hoặc của giao thức ARP là: 0806h.
Data: dữ liệu của một gói có độ dài từ 46 đến 1500 bytes.
FCS(Frame Check Sequency): Gồm 4 bytes dùng để kiểm tra lỗi cho các
trường Destination Adderss, Source Address, Length/Type, Data.
Trong đề tài này, khi lập trình xử lígiao thức Ethernet chúng ta không cần

quan tâm đến các trường Preamble, Start Of Frame Delimiter, FCS vì chíp giao
tiếp Ethernet ENC28j60 sẽ tự động lược bỏ các trường này.
d). Hoạt động của giao thức Ethernet
Khi nhận được một Ethernet Frame. Phần mềm giao thức Ethernet bên máy
nhận sẽ thực hiện 2 bước.
Bước 1: Kiểm tra lỗi frame, frame lỗi sẽ bị bỏ qua(thực hiện bởi chip Enc28j60).
Bước 2: Kiểm tra MAC host nhận (Destination Address) trong Ethernet Frame có
trùng với MAC của chính nó hay không?
- Nếu trùng, nó sẽ nhận Frame này, loại bỏ phần Ethernet Header và chuyển
lên lớp trên.
- Nếu MAC host nhận trong Ethernet Frame là địa chỉ MAC broadcast (FFFF-FF-FF-FF-FF) (nghĩa là gửi cho tất cả các máy nhận trong mạng LAN)
thì frame này cũng được nhận và xử lý.

12


1.2.6.2. Giao thức IP
a). Giới thiệu giao thức IP
Trong mạng LAN ta có thể sử dụng địa chỉ MAC để gửi dữ liệu tới đích.
Nhưng ngoài mạng LAN, địa chỉ MAC không thể xác định được host đích. Vì vậy,
lúc gửi dữ liệu bên ngoài mạng LAN thì các router sẽ chuyển dữ liệu đi tới máy
đích dựa vào địa chỉ IP.
Giao thức IP có vai trò:
b). Địa chỉ IP
Mạng Internet dùng hệ thống địa chỉ IP để “định vị” các máy tính liên kết
với nó, dịa chỉ IP gồm 32 bits.
Địa chỉ IP gồm 3 phần: Class bit, Network ID và Host ID.
Class bit

Network ID


Host ID

4 bytes

Hình 1.8: Cấu trúc địa chỉ IP
Phần 1 là bit nhận dạng lớp, dùng để xác định địa chỉ đang ở lớp nào, phần
Network ID dùng để đánh địa chỉ mạng, Host ID dùng để đánh địa chỉ host trong
mạng.
Địa chỉ IP được phân thành 5 lớp: lớp A, B, C, D, E, trong đó lớp A, B, C
dành cho 3 loại mạng: lớn, vừa, nhỏ ; 1 lớp địa chỉ multicasting(lớp D) và một lớp
dự trữ(E).

Hình 1.9: Phân lớp trong địa chỉ IP
c). Cấu trúc gói tin IP(IP packet)

13


Giao thức IP cấp thêm phần header IP vào trước mỗi Segment được gửi từ
tầng giao vận(Transport) và đơn vị dữ liệu này trong giao thức TCP/IP được gọi là
IP packet.
IP Packet

IP Header

Transport Layer PDU

Hình 1.10: IP packet


Một IP packet có dạng như hình 1.11:
- Version (4 bits): chỉ ra phiên bản của giao thức IP(version 4 có giá trị 0100).
- Internet Header Length(IHL)(4 bits): Chỉ ra chiều dài của IP header. Tính theo
đơn vị word(1 word bằng 32 bits).
+ Độ dài tối thiểu của IP Header là 5 words(20 bytes).
+ IHL giúp xác định byte đầu tiên của phần data nằm ở đâu trong IP packet.
- Type Of Services(TOS) - 8 bits: dùng để đặc tả tham số về dịch vụ nhằm thông
báo cho mạng biết dịch vụ nào mà gói tin muốn sử dụng, như: ưu tiên, thời gian
chậm trễ, năng suất truyền và độ tin cậy.

Hình 1.11: Cấu trúc IP packet
- Total Length(16 bits tính theo đơn vị word): Chỉ ra chiều dài toàn bộ IP
Packet(Gồm IP Header + IP data).
+ Giá trị lớn nhất của Total Length là 65535 byte.
+ Chiều dài IP data= Total Length – IHL.

14


- Identification(16 bits tính theo đơn vị word):
+ Dùng để nhận diện các phân đoạn của IP packet.
+ Định danh duy nhất cho 1 IP Packet trong khoảng thời gian nó vẫn còn trên liên
mạng.
+ Giúp bên nhận có thể ghép các đoạn của 1 IP packet lại với nhau vì IP packet
phân thành các đoạn và các đoạn thuộc cùng 1 IP packet sẽ có cùng Identifiation.
+ Có tối đa 65535 định danh có thể được sử dụng.
- Flags(3 bits): điều khiển sự phân đoạn
+ R- Reserver(1 bit): Không sử dụng.Mặc định R=0.
+ DF(Don’t Fragment)(1 bit): Quản lý việc phân đoạn của IP Packet
DF=0: Phân đoạn nếu cần thiết

DF=1: Không phân đoạn đoạn gói này.
+ MF(More Fragment)(1 bit)
MF=0: đây là phân đoạn cuối cùng
MF=1: Còn nhiều phân đoạn sau này.
Nếu IP Packet bị phân đoạn thì bit MF này cho biết đoạn này có phải là đoạn cuối
hay không? Tất cả các đoạn(trừ đoạn cuối) phải có bit MF=1 để xác định tất cả các
đoạn của IP Packet đến đích chưa?
- Flagment Offset(13 bits)
+Độ dời(đơn vị 8 bytes) tính từ điểm bắt đầu của IP header tới điểm bắt đầu của
phân đoạn.
+ Báo cho bên nhận vị trí offset của các đoạn so với IP Packet gốc để có thể
ghép lại thành IP Packet gốc.
- Time To Live(8 bits):
+ Thời gian tồn tại trên mạng hoặc số chặng trên mạng mà gói tin đi qua trước
khi bị hủy bỏ.
+ Số này giảm đi một khi qua môt router.
+ Khi bộ đếm đạt đến 0 thì gói này sẽ bị loại.
+ TTL do người gửi khởi tạo.
- Protocol(8bits):
+ Nhận diện Protocol trên lớp IP.
+ Chỉ ra giao thức nào (TCP/UDP/ICMP) của tầng trên(tầng Trasport) sẽ nhận
phần data sau công đoạn xử límột IP Packet ở tầng Network hoàn tất đối với khi
nhận.
+ Đối với khi truyền đi(từ tầng trên xuống duới): Chỉ ra giao thức nào của tầng
trên gửi segment xuống cho tầng Network đóng gói thành một IP packet để
chuyển đi.
+ Mỗi giao thức sẽ có một mã Protocol:
15



ICMP: Protocol = 1
TCP : Protocol = 6
UDP : Protocol = 17
- Header Checksum(16 bits): Dùng để phát hiện lỗi của IP header(Không tính
phần Data) của gói tin xảy ra trong quá trình truyền của nó.
-

Source Address(32 bits): Địa chỉ IP của host gửi.
Destination Address(32 bits): Địa chỉ IP của host nhận.
Option(độ dài không cố định): Dùng để khai báo tùy chọn.
Data(độ dài không cố định): Vùng chứa dữ liệu từ 1 đến 65535 byte.

d). Hoạt động của giao thức IP
Hoạt động mà dữ liệu sẽ được gửi qua giao thức IP như sau:
Khi nhận được một segment đơn vị dữ liệu cần gửi tới máy đích nào đó, địa
chỉ đích này sẽ được cung cấp bằng địa chỉ IP. Giao thức IP sẽ gắn thêm vào đầu
Segment dữ liệu một đoạn IP header để tạo thành một IP Packet hoàn chỉnh.
Sau khi điền đầy đủ các thông tin của IP packet, nó sẽ được chuyển xuống
lớp Network Access để giao thức Ethernet thêm phần Ethernet Header vào và gửi
đi.
Chú ý:
- Trong mạng LAN: có thể xác định được máy đích dựa vào MAC.
- Ngoài mạng LAN: không thể xác định được máy đích dựa vào MAC nên khi
gửi gói dữ liệu ra ngoài mạng LAN, các router sẽ chuyển dữ liệu đi đến máy
đích chính xác nhờ vào địa chỉ IP.
- Vì vậy, sau khi IP Packet(có IP đích(Destination Address) là một máy ngoài
mạng LAN) đã được chuyển xuống lớp Network Access, giao thức Ethernet
điền địa chỉ MAC đích là MAC của gateway(router) chứ không phải là MAC
của chính máy đích.
1.2.6.3. Giao thức ARP

a). Giới thiệu giao thức ARP
Khi một IP Packet từ lớp Network được chuyển xuống lớp Network Access,
giao thức Ethernet sẽ phải điền thêm thông tin về MAC đích tương ứng với địa chỉ
IP đích để tạo thành một Ethernet Frame hoàn chỉnh.
b). Hoạt động của giao thức ARP

16


Trước khi giao thức IP chuyển IP Packet xuống cho giao thức Ethernet, nó
sẽ phải sử dụng giao thức ARP để phân giải địa chỉ MAC cho máy đích.
Khi giao thức IP hỏi giao thức ARP: ”Host có địa chỉ IP là a.b.c.d thì MAC là bao
nhiêu?”. Giao thức ARP sẽ trả lời: “MAC của nó là: XX:XX:XX:XX:XX:XX”.
Giao thức ARP có một bảng ARP cache gồm hai trường:
IP
MAC
a.b.c.d XX:XX:XX:XX:XX:XX
e.f.g.h YY:YY:YY:YY:YY:YY
Bảng 1.3: Bảng ARP cache
Giao thức ARP sẽ lấy luôn thông tin về MAC trong bảng ARP cache để trả
lời cho giao thức IP nếu nó có sẵn trong bảng ARP cache.
c). Cấu trúc gói tin ARP
Gói tin ARP được mô tả như sau:
7 8
15 16
0
Hardware Type
Protocol Type
HLEN


PLEN

31

Operation

Sender MAC address (bytes 0-3)
Sender MAC address (bytes 4-5)

Sender IP address (bytes 0-1)

Sender IP address (bytes 2_3)

Dest MAC address (bytes 0-1)

Dest MAC address (bytes 2-5)
Dest IP address ( bytes 0-3)

Hình 1.12: cấu trúc gói tin ARP
1.2.6.4. Giao thức ICMP(Internet Control Message Protocol)
ICMP là giao thức dùng để chuyển qua lại các bản tin điều khiển trên mạng.
a). Chức năng của giao thức ICMP
Cung cấp các thông tin phản hồi và trả lời thực hiện việc để kiểm tra độ tin
cậy của kết nối giữa hai máy. Điều này được thực hiện bằng lệnh PING(Packet
Internet Gropher)
b). Một số bản tin ICMP thường gặp

17



-

Bản tin “Echo Request” và “Echo Reply”: sử dụng cho quá trình kiểm tra(lệnh

-

Ping).
Bản tin “Destination Unreachable”: thông báo cho trạm nguồn biết datagram
không thể truyền đến đích.

c). Cấu trúc bản tin ICMP
Đơn vị dữ liệu của bản tin ICMP gồm 2 phần: ICMP Header(4 bytes) và
data(4 byte). Cấu trúc của bản tin ICMP gồm:

18


×