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
Trang 1LỜ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ư luan van thac si - luan van thac si kinh te - luan an tien - luan van 1 of 95.
Trang 2LỜ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ưluan van thac si - luan van thac si kinh te - luan an tien - luan van 2 of 95.
Trang 3MỤC LỤC
Trang
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 vi
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH viii
I PHẦN MỞ ĐẦU 1
1 Lựa chọn đề tài 1
2 Mục đích nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 1
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học và thực tiễn của đề tài 2
II PHẦN NỘI DUNG 3
CHƯƠNG1:TỔNGQUANVỀETHERNETVÀGIAOTHỨCTCP/IP 4
1.1 Tổng quan về Ethernet 4
1.1.1 Cấu trúc khung tin Ethernet 4
1.1.2 Cấu trúc địa chỉ Ethernet 5
1.1.3 Đặc tính điện 5
1.1.4 Các loại khung Ethernet 6
1.1.5 Một số loại mạng Ethernet 7
1.1.6 Chuẩn IEEE 802 7
1.2 Giao thức TCP/IP 7
1.2.1 Tổng quan về bộ giao thức TCP/IP 7
1.2.2 Kiến trúc phân tầng của TCP/IP 8
1.2.3 Quá trình gửi nhận dữ liệu giữa hai máy tính 8
1.2.4 Sơ lược chức năng các tầng 9
1.2.5 Đóng gói dữ liệu trong TCP/IP 10
1.2.6 Các giao thức và khuôn dạng dữ liệu tương ứng 11
luan van thac si - luan van thac si kinh te - luan an tien - luan van 3 of 95.
Trang 4Kết luận chương 1: 30
CHƯƠNG2.TỔNGQUANVỀVIĐIỀUKHIỂNATMEGA32VÀWEB SERVER 31
2.1 Vi điều khiển ATMEGA32 31
2.1.1 Các tính năng 31
2.1.2 Cấu trúc và thanh nghi 32
2.2 Module Ethernet ENC28J60 và chuẩn giao tiếp SPI 38
2.2.1 Vi Mạch Ethernet ENC28j60 38
2.2.2 Sơ đồ chân và sơ đồ khối của ENC28j60 38
2.2.3 Sơ đồ ghép nối vi điều khiển với ENC28j60 40
2.2.4 Sơ đồ nguyên lý Module Ethernet 40
2.2.5 Mạch module Ethernet 41
2.3 Web động 41
2.4 Web server 42
Kết luận chương 2: 43
CHƯƠNG3:ỨNGDỤNGXÂYDỰNGHỆĐIỀUKHIỂNGIÁMSÁTCÁCHỒ NƯỚCTHÀNHPHỐHẢIPHÒNGSỬDỤNGMẠNGTRUYỀNDẪN INTERNET 44
3.1 Sơ đồ mạch hệ điều khiển giám sát 44
3.1.1 Khối mạch nguồn 47
3.1.2 Khối kết nối ENC28J60 47
3.1.3 Khối ghép nối đầu vào 48
3.1.4 Khối ghép nối đầu ra 48
3.1.5 Khối mạch vi điều khiển ATMEGA32 49
3.1.6 Sơ đồ mạch in 49
3.1.7 Mạch thực tế 51
3.2 Thiết kế phần mềm 52
3.2.1 Lưu đồ dữ liệu vào ra dữ liệu của giao thức 52
3.2.2 Lưu đồ giải thuật chính 55
luan van thac si - luan van thac si kinh te - luan an tien - luan van 4 of 95.
Trang 53.2.3 Lưu đồ xử lí giao thức Ethernet 56
3.2.4 Lưu đồ xử lí giao thức IP 57
3.2.5 Lưu đồ xử lí giao thức ARP 58
5.2.6 Lưu đồ xử lí giao thức ICMP 59
3.2.7 Lưu đồ xử lí tạo kết nối TCP tới Webserver 60
3.3 Sản phẩm của đề tài 61
3.3.1 Bo mạch điện tử 61
3.3.2 Giao diện Web điều khiển 61
3.4 Đánh giá kết quả thực hiện đề tài 64
III PHẦN KẾT LUẬN 65
Kết luận 65
Kiến nghị 65
TÀILIỆUTHAMKHẢO 66
PHỤLỤC 667
luan van thac si - luan van thac si kinh te - luan an tien - luan van 5 of 95.
Trang 6DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU
Chữ viết tắt Giải thích
SPI Serial Peripheral Interface
ICMP Internet Control Message Protocol
HTTP Hypertext Transfer Protocol
CSMA/CD Carrier Sense Multiple Access / Collision Detect
TCP/IP Transmission Control Protocol / Internet Protocol
luan van thac si - luan van thac si kinh te - luan an tien - luan van 6 of 95.
Trang 8DANH MỤC CÁC HÌNH
Hình 1.5 Thực hiện đóng/mở gói dữ liệu trong giao thức TCP/IP 10
luan van thac si - luan van thac si kinh te - luan an tien - luan van 8 of 95.
Trang 9Hình 2.9 Sơ đồ ghép nối vi điều khiển với ENC28j60 40
Hình 3.1 Sơ đồ tổng quan hệ điều khiển và giám sát hồ điều hòa 44
Hình 3.23 Giao diện giám sát và điều khiển trong mạng LAN 62
Hình 3.24 Giao diện giám sát và điều khiển qua mạng truyền dẫn internet 63
luan van thac si - luan van thac si kinh te - luan an tien - luan van 9 of 95.
Trang 10I 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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 10 of 95.
Trang 11- Lý thuyết mạng Ethernet và cách thức truyền nhận dữ liệu
- 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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 11 of 95.
Trang 12II 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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 12 of 95.
Trang 13CHƯƠ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:
luan van thac si - luan van thac si kinh te - luan an tien - luan van 13 of 95.
Trang 14Bả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ả
Trang 15Hì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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 15 of 95.
Trang 161.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)
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:
luan van thac si - luan van thac si kinh te - luan an tien - luan van 16 of 95.
Trang 17- Độ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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 17 of 95.
Trang 18Gó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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 18 of 95.
Trang 19Trọ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:
luan van thac si - luan van thac si kinh te - luan an tien - luan van 19 of 95.
Trang 20Tầng Giao Thức
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
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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 20 of 95.
Trang 21Preamble: 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
(FF-FF-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ý
luan van thac si - luan van thac si kinh te - luan an tien - luan van 21 of 95.
Trang 221.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
Trang 23Giao 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
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
IP Header Transport Layer PDU
IP Packet luan van thac si - luan van thac si kinh te - luan an tien - luan van 23 of 95.
Trang 24- 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
- 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):
luan van thac si - luan van thac si kinh te - luan an tien - luan van 24 of 95.
Trang 25+ 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:
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
luan van thac si - luan van thac si kinh te - luan an tien - luan van 25 of 95.
Trang 26Sau 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
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:
a.b.c.d XX:XX:XX:XX:XX:XX e.f.g.h YY:YY:YY:YY:YY:YY
Trang 27c) Cấu trúc gói tin ARP
Gói tin ARP đƣợc mô tả nhƣ sau:
Sender MAC address (bytes 0-3)
Dest MAC address (bytes 0-1) Sender IP address (bytes 2_3)
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
- 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:
luan van thac si - luan van thac si kinh te - luan an tien - luan van 27 of 95.
Trang 28- Type(1 byte): Cho biết đây là bản tin gì Nếu là bản tin ICMP request thì type
có giá trị 00h Nếu là bản tin ICMP reply sẽ có giá trị là 08h
- Code(1 byte): Mã cụ thể của từng trường hợp Đối với ICMP request và reply
sẽ có giá trị: 00h
- Checksum(2 bytes): Kiểm tra lỗi cho ICMP Header và Data
- 4 bytes sau: chứa thông tin riêng của từng loại bản tin ICMP Đối với bản tin
“Echo Request” và “Echo Reply” thì 4 bytes này là: ID(2 bytes) và Sequence
number(2 bytes)
1.2.6.5 Giao thức TCP
a) Giới thiệu giao thức TCP
Giao thức điều khiển truyền TCP là giao thức trung gian giữa IP và một ứng
dụng phía trên, đảm bảo dữ liệu được trao đổi một cách tin cậy và đúng thứ tự
TCP là một giao thức hướng kết nối dạng client – server Tức trong một phiên truyền thông sẽ có một phía đóng vai trò là client(khởi tạo kết nối), phía còn
lại lúc nào cũng chờ đợi các client kết nối tới gọi là server
b) Vai trò của giao thức TCP trong bộ giao thức TCP/IP
TCP có 3 vai trò chính:
- Điều khiển luồng: Điều phối tốc độ và kích thước luồng dữ liệu để đảm bảo
phía nhận đủ khả năng nhận và xử lí luồng dữ liệu
- Kiểm soát lỗi: Đảm bảo gói tin đến đúng và đủ
- Báo nhận: Khi nhận được dữ liệu và không có lỗi, phía nhận phải báo lại với
phía gửi biết
c) Cấu trúc gói tin TCP
luan van thac si - luan van thac si kinh te - luan an tien - luan van 28 of 95.
Trang 29Đơn vị dữ liệu của gói tin TCP được gọi là segment(đoạn dữ liệu) gồm 2 phần: TCP Header và Data, được mô tả như sau:
Hình 1.14 Cấu trúc TCP Segment
- Source Port(16 bits): Port nguồn
- Destination Port(16 bits): Port đích
Port nguồn và port đích dùng để phân biệt các tiến trình ứng dụng trong một dòng
dữ liệu
- Sequence Number(4 bytes): Phân biệt các Segment khác nhau trong một dòng
dữ liệu Sequence Number của segment X= Sequence Number của segment
(X-1) + length của segment (X-(X-1)
- Data Offset(4 bits- tính theo đơn vị 4 word): Quy định chiều dài của phần TCP
header Phần này có độ dài tối thiểu là 5 words(20 bytes), tối đa là 15 words(60
bytes)
- Reserved(6 bits): Chưa dùng đến Có giá trị là 0
- Flags: Gồm 6 cờ, mỗi cờ có độ dài 1 bit:
+ URG(Urgent): Nếu cờ URG=1 thì trong segment TCP đó có một đoạn dữ
liệu khẩn cấp Đoạn dữ liệu đó được xác định nhờ trường Urgent Poiter(16
bits) trong TCP header
+ ACK(Acknowledgement): Dùng để ghi nhận sự thành công của một phiên
kết nối
luan van thac si - luan van thac si kinh te - luan an tien - luan van 29 of 95.
Trang 30+ PSH(PUSH): Chức năng Push Ở bên gửi, cờ PSH báo cho TCP rằng dữ
liệu này cần được gửi đi ngay lập tức Ở bên nhận, nếu nhận được TCP segment với cờ PSH=1, TCP sẽ đẩy ngay phần TCP data trong bộ đệm lên tầng ứng dụng để xử lí
+ RST(Reset): Sử dụng trong trường hợp muốn đóng kết nối ngay lập tức
+ SYN(SYNchronisation): Cờ SYN được bật trong các bản tin khởi tạo kết
nối
+ FIN(Finish): Là biểu tượng cho việc hoàn thành kết nối, nó báo rằng phía
gửi cờ FIN đã hoàn tất việc gửi dữ liệu và sẵn sàng để đóng kết nối
- Window(16 bits): Chỉ ra không gian bộ đệm khả dụng để nhận dữ liệu
d) Hoạt động của giao thức TCP
Giao thức TCP đòi hỏi phải thiết lập kết nối trước khi bắt đầu gửi dữ liệu và kết thức kết nối khi việc gửi dữ liệu hoàn tất
Một phiên truyền thông TCP gồm ba giai đoạn:
- Thiết lập kết nối(Connection establishment)
- Truyền dữ liệu(Segment transmission)
- Đóng kết nối(Connection termination)
Mỗi thực thể kết nối TCP tự chọn cho mình một số thứ tự Sequence Number đầu tiên gọi là ISN(Initial Sequence Number) Trên lý thuyết ISN sẽ tăng
lên sau mỗi byte được truyền đi và mỗi byte được gửi đi sẽ có một số thứ tự, nhằm
phân biệt các segment dữ liệu, phục vụ cho việc sắp xếp dữ liệu ở bên nhận Trong
thực tế thì chỉ có byte dữ liệu đầu tiên được gán số thứ tự trong trường Sequence
Number của gói tin và bên nhận sẽ gửi bản tin báo nhận thành công với
Acknowledgement Number bằng số thứ tự của byte đang chờ
* Thiết lập kết nối(Connection establishment)
Để thiết lập kết nối, TCP sử dụng một quy trình bắt tay 3 bước Trước khi client thử kết nối tới một server, server phải đăng kí một cổng và mở cổng đó cho
các kết nối(gọi là mở bị động- Passive Open) Một khi mở bị động được thiết lập
thì client có thể bắt đầu mở chủ động(Active Open)
luan van thac si - luan van thac si kinh te - luan an tien - luan van 30 of 95.
Trang 31Quy trình bắt tay 3 bước:
Hình 1.15: Quá trình bắt tay 3 bước thiết lập kết nối
Bước 1: Host A muốn tạo kết nối tới host B, nó sẽ gửi một bản tin yêu cầu kết nối
với cờ SYN=1, Sequence number=ISN, Acknowledgemend Number=0 trong TCP
Header
Bước 2: Khi host B nhận được bản tin SYN, nó sẽ gửi cho host A bản
tin(SYN-ACK) với 2 cờ ACK=1 và SYN=1 trong TCP Header
Bước 3: Khi host A nhận được SYN-ACK, nó sẽ gửi cho host B bản tin ACK
Sau khi host B nhận được bản tin ACK, một kết nối ảo đã được thiết lập giữa client
và server, hai bên có thể tiến hành trao đổi dữ liệu
* Truyền dữ liệu (Segment transmission)
Giao thức hướng kết nối TCP sẽ gửi bản tin ACK để xác nhận sau khi nhận thành công dữ liệu Sau khi dữ liệu được gửi đi, phía nhận luôn đợi bản tin xác
nhận từ phía nhận Nếu sau một khoảng thời gian nhất định mà không nhận được
ACK thì phía gửi sẽ tiến hành truyền lại
Quá trình truyền dữ liệu bằng giao thức TCP được mô tả như sau:
Truyền dữ liệu không xảy ra lỗi Xảy ra lỗi và truyền lại
Hình 1.16: Quá trình truyền dữ liệu bằng giao thức TCP
luan van thac si - luan van thac si kinh te - luan an tien - luan van 31 of 95.
Trang 32Trong hình vẽ trên, host A truyền cho host B 2000 bytes dữ liệu, chia làm 2 lần truyền Lần truyền thứ nhất, host A gửi 1000 bytes(số thứ tự-sequence number
bằng 1), sau đó bắt đầu “bấm giờ” Khi chưa hết thời gian quy định, Nếu host B
gửi lại một bản tin ACK, điều đó chứng tỏ rằng nó đã nhận được 1000 bytes đầu và
sẵn sàng nhận từ byte có số thứ tự 1001 Lúc này host A thực hiện gửi tiếp 1000
bytes(số thứ tự là 1001) Ngược lại, nếu đã hết thời gian quy định mà chưa thấy
host B gửi lại bản tin ACK, điều này chứng tỏ host B chưa nhận được 1000 bytes
đầu tiên đó Host A sẽ tiến hành gửi lại 1000 bytes này Hai bên sẽ thực hiện
truyền – gửi xác nhận cho đến khi hết dữ liệu cần truyền
Một điểm cuối cùng cần quan tâm trong giao thức TCP, khi nhận được dữ liệu, phía nhận không xử lí ngay mà lưu vào trong một buffer Vấn đề ở đây là kích
thước của buffer là hữu hạn Điều gì sẽ xảy ra khi tốc độ gửi dữ liệu của bên gửi
nhanh hơn khả năng xử lí dữ liệu của bên nhận? Buffer của bên nhận sẽ bị đầy,
dẫn đến dữ liệu không thể tiếp tục được nhận Để giải quyết vấn đề này, TCP sử
dụng một cơ chế điều khiển luồng bằng cửa sổ trượt (Sliding window) Trong bản
tin thiết lập kết nối, phía nhận sẽ gửi bản tin SYN với trường window với mục đích
thông báo với phía bên kia rằng kích thước buffer dữ liệu mà phía nhận có thể
nhận đồng thời trước khi đưa lên lớp ứng dụng Trong quá trình trao nhận dữ liệu,
nếu phía nhận có thể xử lí dữ liệu nhanh hơn tốc độ truyền dữ liệu của phía gửi thì
phía nhận sẽ tăng kích thước window lên cho phù hợp tại mỗi bản tin ACK Ngược
lại, đến một lúc nào đó, tốc độ truyền của phía gửi nhanh hơn khả năng xử lí của
phía nhận, buffer của phía nhận sẽ bị đầy Lúc này phía nhận sẽ giảm kích thước
window về 0 trong bản tin ACK Phía gửi sẽ dừng việc truyền cho đến khi nhận
được bản tin ACK với window khác 0
Ví dụ: Cơ chế điều khiển luồng sử dụng sliding window:
luan van thac si - luan van thac si kinh te - luan an tien - luan van 32 of 95.
Trang 33Hình 1.17: Cơ chế điều khiển luồng sử dụng Sliding window
Host A truyền cho host B 1000 bytes Host B đã nhận được, gửi lại bản tin ACK với yêu cầu tăng kích thước window lên 2000 bytes Host A nhận được ACK
và truyền tiếp 2000 bytes(chia làm 2 lần truyền, mỗi lần 1000 bytes) Host B nhận
được dữ liệu gửi ACK với yêu cầu tăng kích thước window lên 2500 bytes Host A
tiến hành truyền tiếp 2500 bytes(chia làm 3 lần, 2 lần 1000 bytes và 1 lần 500
bytes) và đợi xác nhận ACK 3 segment này được lưu và buffer của host B nhanh
hơn tốc độ xử lí dữ liệu, lúc này host A sẽ gửi ACK với window là 0 để yêu cầu
host A tạm thời dùng việc truyền đợi đến khi thích hợp
* Đóng kết nối(Connection termination)
Để đóng kết nối, hai bên thực hiện quá trình bắt tay 4 bước
luan van thac si - luan van thac si kinh te - luan an tien - luan van 33 of 95.
Trang 34Hình 1.18: Quá trình đóng kết nối TCP
Bước 1: Host A cần đóng kết nối, nó sẽ gửi đi một bản tin yêu cầu đóng kết nối
với cờ FIN=1 chỉ ra rằng nó đã hoàn tất việc gửi dữ liệu
Bước 2: Host B nhận được bản tin FIN, nó không đóng kết nối ngay lập tức nhưng
sẽ đi vào trạng thái “passive close”(CLOSE-WAIT) và gửi ACK cho bản tin FIN
vừa nhận được về host A Lúc này host B đi vào trạng thái “LAST-ACK” Tại thời
điểm này, nó sẽ không chấp nhận dữ liệu từ host A nhưng có thể tiếp tục truyền dữ
liệu sang host A Nếu host B không còn bất kì dữ liệu gì để truyền sang host A, nó
sẽ đóng kết nối bằng cách gửi bản tin FIN với cờ FIN=1
Bước 3: Khi host A nhận được bản tin FIN từ host B, nó sẽ đi vào trạng thái
“TIME WAIT” và gửi ACK cho host B Sau một khoảng thời gian timeout sẽ đóng
kết nối
Bước 4: Host B nhận được bản tin ACK từ host A, kết nối TCP được đóng
e) Sơ đồ trạng thái của TCP
luan van thac si - luan van thac si kinh te - luan an tien - luan van 34 of 95.
Trang 35Hình 1.19: Sơ đồ trạng thái TCP
Giải thích sơ đồ trạng thái TCP:
- Client và server bắt đầu bằng trạng thái CLOSE, không có kết nối nào tồn tại
- Khi server mở một port TCP(passive open) để chờ client kết nối tới, nó sẽ
chuyển sang trạng thái “LISTEN”
- Khi client muốn kết nối tới server, nó sẽ gửi một bản tin TCP SYN(Active
Open) và chuyển sang trạng thái “SYN SEND”
- Server nhận đƣợc bản tin TCP SYN của client, nó sẽ đáp lại bằng bản tin
SYN|ACK và chuyển sang trạng thái “SYN RECEIVED”
- Client nhận đƣợc bản tin SYN|ACK và gửi lại bản tin ACK xác nhận Sau đó
nó chuyển sang trạng thái “ESTABLISHED” Server nhận đƣợc bản tin ACK
của client cũng chuyển sang trạng thái “ESTABLISHED” Đến đây, hai bên có
luan van thac si - luan van thac si kinh te - luan an tien - luan van 35 of 95.
Trang 36thể tiến hành truyền dữ liệu, trạng thái đều là “ESTABLISHED”, cả client và
server đều có vai trò như nhau
- Một trong hai phía truyền xong dữ liệu(giả sử là client) sẽ gửi bản tin FIN yêu
cầu đóng kết nối và chuyển sang trạng thái “FIN-WAIT 1”
- Phía server nhận được bản tin FIN sẽ gửi trả bản tin ACK|FIN xác nhận và
chuyển sang trạng thái “CLOSE WAIT”
- Khi client nhận được bản tin xác nhận từ server, nó sẽ chuyển sang trạng thái
“FIN WAIT 2”
- Lúc này server vẫn có thể gửi dữ liệu(vì chỉ có client là báo gửi xong dữ liệu)
và client tiếp tục nhận Khi nào server gửi hết dữ liệu muốn đóng kết nối TCP,
nó sẽ gửi bản tin FIN và chuyển sang trạng thái “LAST ACK”
- Client nhận được bản tin FIN từ server sẽ gửi xác nhận ACK và chuyển sang
trạng thái “TIME WAIT” Chờ một khoảng thời gian time out nó sẽ đóng kết
nối TCP và quay lại trạng thái “CLOSE”
- Khi server nhận được bản tin ACK, nó sẽ chuyển từ trạng thái “LAST ACK”
sang trạng thái “CLOSE” ngay lập tức
1.2.6.6 Giao thức HTTP- giao thức truyền tải siêu văn bản
a) Giới thiệu giao thức HTTP
HTTP là một giao thức “phi trạng thái” (stateless) bởi vì mỗi lệnh đều được
thực thi một cách độc lập, lệnh sau không biết bất cứ điều gì về các lệnh đã đến
trước mình HTTP có các phiên bản: HTTP 1.0, HTTP 1.1
b) Hoạt động của giao thức HTTP
Trong mô hình HTTP, Webserver đồng thời cũng là TCP server mở sẵn một port mặc định dành cho dịch vụ HTTP là port 80(luôn ở chế độ LISTEN) sẵn sàng
đợi yêu cầu kết nối từ các client
Khi muốn tải một trang web, client sẽ khởi tạo kết nối TCP tới port 80 của Webserver này Sau khi Webserver chấp nhận kết nối, client sẽ gửi một bản tin
HTTP request tới server trên kết nối TCP vừa thiết lập Server sẽ đáp ứng yêu cầu
luan van thac si - luan van thac si kinh te - luan an tien - luan van 36 of 95.
Trang 37của client bằng bản tin HTTP response chứa nội dung trang web được yêu cầu(thể
<Method> <Space> <Request-URI> <Space> <Http version> </r/n>
- Method: chỉ ra phương thức HTTP như: GET(Tải dữ liệu về trình duyệt),
POST(thay đổi dữ liệu trên Webserver)
- Request-URI: Chỉ ra đường dẫn tới trang web cần tải, có thể là đường dẫn
tương đối hay tuyệt đối
- HTTP version: Chỉ ra phiên bản HTTP đang sử dụng
- Space: kí tự cách trống
- /r/n: kí tự enter
Ví dụ: Request line:
GET http://i.myhouse.vn/status.aspx http/1.1 Hoặc request line với Request-URI tương đối: