Đăng ký Đăng nhập
Trang chủ Nghiên cứu và thử nghiệm giao thức mqtt trong hệ thống iot...

Tài liệu Nghiên cứu và thử nghiệm giao thức mqtt trong hệ thống iot

.DOCX
76
53
145

Mô tả:

MỤC LỤC LỜI MỞ ĐẦU.........................................................................................................III TÓM TẮT ĐỒ ÁN..................................................................................................IV DANH MỤC CÁC BẢNG BIỂU.............................................................................V DANH MỤC CÁC HÌNH VẼ.................................................................................VI DANH SÁCH CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT........................................VII CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI.................................................................1 1.1. Giới thiệu về đề tài............................................................................................1 1.1.1. Lý do chọn đề tài...........................................................................................1 1.1.2. Mục đích chọn đề tài......................................................................................1 1.1.3. Đối tượng và phạm vi nghiên cứu...................................................................1 1.1.4. Ý nghĩa khoa học và ý nghĩa thực tiễn của đề tài............................................1 1.2. Một số giao thức sử dụng trong truyền thông.....................................................2 1.2.1. Mô hình TCP/IP..............................................................................................2 1.2.1.1. Kiến trúc TCP/IP.............................................................................3 1.2.1.2. Quá trình truyền dữ liệu trong mô hình TCP/IP..............................8 1.2.3. Mô hình OSI....................................................................................................9 1.2.3.1. Kiến trúc và chức năng các lớp trong mô hình OSI.........................9 1.2.3.2. So sánh hai giao thức TCP/IP và OSI............................................12 1.2.4. Truyền thông Socket......................................................................................13 1.2.4.1. Định nghĩa.....................................................................................13 1.2.4.2. Nguyên lý hoạt động......................................................................15 CHƯƠNG 2. GIAO THỨC MQTT TRONG HỆ THỐNG IOT..............................17 2.1. Hệ thống IoT (Internet of Things)....................................................................17 2.1.1. Định nghĩa.....................................................................................................17 2.1.2. Kiến trúc tham chiếu......................................................................................17 2.1.3. Phân loại thiết bị IoT và phương thức kết nối Internet..................................20 2.1.4. Các yêu cầu của kiến trúc tham chiếu cho IoT................ I ....................21 2.2. Nền tảng truyền thông IoT................................................................................23 2.2.1. Giao thức Zigbee...........................................................................................24 2.2.2. Giao thức Bluetooth.......................................................................................27 2.2.3. Công nghệ Wifi.............................................................................................30 2.3. Giao thức MQTT..............................................................................................33 2.3.1. Định nghĩa.....................................................................................................33 2.3.2. Các đặc trưng của giao thức...........................................................................35 2.3.3. Định dạng của message.................................................................................36 2.3.3.1. Message CONNECT – Client yêu cầu kết nối đến server..............42 2.3.3.2. Message PUBLISH........................................................................46 2.3.3.3. Message SUBSCRIBE...................................................................47 2.3.4. Nguyên lý làm việc........................................................................................49 2.3.5. Bảo mật trong MQTT....................................................................................50 CHƯƠNG 3. THỬ NGHIỆM GIAO THỨC MQTT...............................................53 3.1. Giới thiệu về hệ điều hành Linux.....................................................................53 3.2. Hệ điều hành Ubuntu........................................................................................54 3.3. Ngôn ngữ lập trình Python...............................................................................56 3.4. Cấu trúc một số lệnh trong thư viện Python Client MQTT...............................58 3.5. Thử nghiệm truyền nhận dữ liệu MQTT trên Python.......................................61 KẾT LUẬN.............................................................................................................63 TÀI LIỆU THAM KHẢO.......................................................................................64 PHỤ LỤC................................................................................................................ 65 II LỜI MỞ ĐẦU Trong những năm gần đây một khái niệm mới trong ngành công nghệ được nhắc đến nhiều đó là "Internet of Things". Khái niệm Internet of Things được thực sự đưa ra vào năm 1999, khi mà người ta bắt đầu nhìn nhận được tiềm năng của xu hướng này, lúc mà các rào cản giới hạn Internet, khoa học công nghệ dần được khai phá. Mặc dù khái niệm Internet of Things được đưa ra từ lâu nhưng trong những năm gần đây nó mới được nhiều doanh nghiệp cũng như các nhà khoa học để ý và phát triển mạnh mẽ. Các thiết bị trong IoT là rất nhỏ, chúng chỉ trao đổi lượng thông tin nhỏ với nhau, tuy nhiên các giao thức truyền thống không phù hợp với sự giao tiếp IoT mà cần có các giao thức tối ưu dành riêng cho IoT. Nhận biết được tầm quan trọng của giao thức này trong sự phát triển một thế giới thông minh do vậy em đã chọn đồ án “Nghiên cứu và thử nghiệm giao thức MQTT trong hệ thống IoT” để tìm hiểu về giao thức MQTT và cách thức hoạt động của nó. Đồ án này bao gồm 3 chương: Chương 1: Tổng quan về đề tài. Nêu rõ lý do, mục đích lựa chọn đề tài, ý nghĩa của đề tài trong sự phát triển thế giới IoT. Trình bày về một số giao thức truyền thông thường được sử dụng. Chương 2: Giao thức MQTT trong hệ thống IoT. Trình bày hiểu biết về thế giới IoT và các giao thức nền tảng được sử dụng. Đi sâu nghiên cứu và tìm hiểu về giao thức MQTT. Chương 3: Thử nghiệm giao thức MQTT. Thử nghiệm truyền nhận dữ liệu bằng giao thức MQTT trên phần mềm Python. Em xin gửi lời cảm ơn chân thành đến thầy giáo Th.S Đinh Văn Nam đã hướng dẫn tận tình và giúp đỡ em trong quá trình thực hiện đồ án này. Trong quá trình thực hiện đồ án không thể tránh được sai sót, vì vậy em hy vọng sẽ nhận được các lời khuyên và đóng góp của thầy, cô và bạn đọc. Nghệ An, Ngày 20 tháng 5 năm 2016 Sinh viên thực hiện Trần Thị Thuận III TÓM TẮT ĐỒ ÁN Đồ án này đi sâu tìm hiểu về giao thức MQTT. Giao thức MQTT hiện nay được sử dụng trong nhiều lĩnh vực công nghiệp khác nhau và đặc biệt là trong hệ thống IoT. Nó không chỉ kéo dài tuổi thọ pin mà còn cung cấp tin nhắn chỉ trong “vài trăm mili giây”. Giao thức MQTT sử dụng băng thông thấp do đó phù hợp với các thiết bị có hạn chế về tốc độ đường truyền và độ tin cậy thấp, nó cũng được ứng dụng trong các mạng có độ tin cậy cao nhưng cần tiết kiệm băng thông. MQTT cho phép giao tiếp hai chiều, sử dụng một kết nối TCP được tạo ra từ các client để kết nối client với broker. Giao thức này có mô hình publish/subscribe các bản tin và được thiết kế trong các ứng dụng sử dụng công nghệ M2M gọn nhẹ. Chương trình sử dụng phần mềm lập trình Python để thử nghiệm quá trình publish/subscribe giữa client và broker. Qua đó có thể hiểu rõ hơn về giao thức MQTT cũng như quá trình hoạt động của nó. ABSTRACT This thesis was studied about protocol MQTT. The MQTT protocol is used today throughout a variety of industries and IoT environments. It’s to not only save battery life but also deliver messages in "the hundreds of milliseconds". MQTT's low bandwidth makes it ideal for constrained devices and unreliable networks, though it is often also used on reliable networks to preserve bandwidth. MQTT enables bidirectional communication, uses a TCP connection initiated by the client to connect client and broker. MQTT is a publish/subscribe messaging protocol designed for lightweight M2M communications. Using Python programming software for testing process publish/ subscribe between client and broker. Through that can better understand the protocol MQTT well as its operational processes. IV DANH MỤC CÁC BẢNG BIỂU Bảng 2.1. Định dạng phần header cố định của message..........................................36 Bảng 2.2. Định dạng phần header thay đổi được của message CONNECT............38 Bảng 2.3. Các giá trị và ý nghĩa của mã rc..............................................................41 Bảng 2.4. Định dạng phần header cố định của message CONNECT......................42 Bảng 2.5. Ví dụ biểu diễn phần hesder thay đổi được của message CONNECT.....43 Bảng 2.6. Định dạng phần header cố định message PUBLISH...............................46 Bảng 2.7. Header có độ dài thay đổi của message PUBLISH.................................47 Bảng 2.8. Ví dụ về phần header thay đổi được của message PUBLISH..................47 Bảng 2.9. Định dạng phần header cố định của message SUBSCRIBE....................48 Bảng 2.10. Ví dụ về phần header thay đổi được với message ID bằng 10...............48 V DANH MỤC CÁC HÌNH VẼ Hình 1.1. Kiến trúc TCP/IP.......................................................................................3 Hình 1.2. Khuôn dạng của UDP datagram................................................................5 Hình 1.3. Khuôn dạng TCP segment.........................................................................6 Hình 1.4. Quá trình truyền dữ liệu trong mô hình TCP/IP........................................8 Hình 1.5. Các lớp trong mô hình OSI.......................................................................9 Hình 1.6. Quá trình truyền dữ liệu trong mô hình OSI............................................12 Hình 1.7. So sánh mô hình TCP/IP và OSI.............................................................13 Hình 1.8. Mô hình OSI rút gọn................................................................................14 Hình 1.9. Mô hình Socket.......................................................................................14 Hình 2.1. Kiến trúc tham chiếu cho IoT..................................................................17 Hình 2.2. Kiến trúc lớp (hay ngăn xếp – Stack) trong kiến trúc Zigbee..................25 Hình 2.3. Các mô hình mạng Zigbee.......................................................................26 Hình 2.4. Các tầng nghi thức của Bluetooth............................................................28 Hình 2.5. Quá trình Subscribe của client B và client C...........................................34 Hình 2.6. Quá trình Publish của client A và nhận dữ liệu của client B, C...............34 Hình 3.1. Giao diện hệ điều hành Ubuntu...............................................................55 Hình 3.2. Giao diện Python trên Ubuntu.................................................................57 Hình 3.3. Kết quả quá trình publish của thiết bị......................................................61 Hình 3.4. Kết quả quá trình subscribe của thiết bị...................................................61 VI DANH SÁCH CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT MQTT Message Queuing Telemetry Công nghệ truyền nhận tốc độ Transport tức thời IoT Internet of Thing Internet của sự vật M2M Machine to Machine Máy đến Máy TCP Transmission Control Protocol Giao thức điều khiển truyền thông IP Internet Protocol Giao thức Internet MAC Media Access Control Địa chỉ vật lý của thiết bị UDP User Datagram Protocol Giao thức gói dữ liệu người dùng OSI Open Systems Interconnection CoAP Constrained Application Protocol HTTP Hyper Text Transfer Protocol HTTPS Hyper Text Transfer Protocol các hệ thống mở Secure Local Area Network GPRS General Packet Radio Service FTP File Transfer Protocol IEEE Institute of Electrical and Giao thức truyền tải siêu văn bản Phiên bản của giao thức HTTP Dịch vụ dữ liệu di động dạng gói Giao thức chuyển nhượng tập tin Electronics Engineers TLS Giao thức ràng buộc ứng dụng Mạng máy tính cục bộ LAN SSL Mô hình tham chiếu kết nối Viện kỹ nghệ Điện và Điện tử Secure Sockets Layer Giao thức bảo mật Transport Layer Security Giao thức an toàn tầng giao vận VII VIII CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI 1.1. Giới thiệu về đề tài 1.1.1. Lý do chọn đề tài Giao thức MQTT là một giao thức quan trọng trong hệ thống IoT. IoT nhằm đưa thế giới tiến tới những kỹ thuật tiên tiến nhất, thông minh nhất, một thế giới mà các thiết bị có thể đo lường và đưa ra các nhận xét chính xác nhất. Để thực hiện được một thế giới thông minh như vậy thì việc tìm hiểu về cách thức hoạt động và sự giao tiếp giữa các thiết bị IoT là cực kỳ quan trọng. Nhận biết được tầm quan trọng đó, trong đồ án này em lựa chọn nghiên cứu về giao thức MQTT nhằm giúp bạn đọc hiểu rõ hơn về giao thức này cũng như vai trò của nó trong IoT. 1.1.2. Mục đích chọn đề tài Mục đích của đề tài này là đi sâu nghiên cứu về giao thức MQTT và quá trình truyền nhận dữ liệu thông qua giao thức này. Sự phát triển của thế giới thông minh cần có các giao thức phù hợp với thiết bị IoT, bởi vì các thiết bị IoT là rất nhỏ, tiêu tốn ít công suất do đó các giao thức truyền nhận cũng cần tiêu tốn ít năng lượng. Giao thức MQTT như là một ống dẫn luồng dữ liệu nhị phân cho các thiết bị IoT, giao thức này thực sự quan trọng đối với sự hoàn thiện của thế giới IoT. 1.1.3. Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu ở đồ án này là giao thức MQTT trong hệ thống IoT và lập trình truyền nhận dữ liệu thông qua giao thức MQTT trên phần mềm Python. Phạm vi nghiên cứu là quá trình giao tiếp M2M thông qua công nghệ kết nối Wifi. M2M kết nối tất cả các loại thiết bị và máy móc trên hệ thống mạng, từ đó chúng có thể giao tiếp với nhau thông qua máy chủ trung tâm hoặc dựa trên đám mây doanh nghiệp sử hữu. 1.1.4. Ý nghĩa khoa học và ý nghĩa thực tiễn của đề tài Ý nghĩa khoa học: Sự giao tiếp giữa các thiết bị M2M phụ thuộc vào giao thức MQTT. Khi các thiết bị M2M có thể giao tiếp với nhau một cách dễ dàng thì sẽ tự động kết nối với 1 nhau và làm việc thay cho con người. Từ đó sẽ xây dựng nên một thế giới thông minh. Một thế giới mà các cảm biến sẽ đo lường và đưa ra những nhận xét chính xác nhất về môi trường, thiên tai, lũ lụt,...và gửi về cho chúng ta thông qua giao thức MQTT. Ý nghĩa thực tiễn: Sự phát triển của giao thức MQTT sẽ dẫn tới sự phát triển của các thiết bị M2M và sẽ đẩy nhanh sự hoàn thiện thế giới IoT. IoT có thể thay đổi hoàn toàn cách sống của con người trong tương lai không xa. Khi mọi vật đã được "Internet hóa" người dùng có thể điều khiển chúng từ bất kỳ nơi nào, không bị giới hạn về mặt không gian và thời gian chỉ cần một thiết bị thông minh có kết nối Internet. Internet of Thing đang là chìa khóa của thành công trong tương lai. 1.2. Một số giao thức sử dụng trong truyền thông Một máy tính tương tác với thế giới thông qua một hoặc nhiều ứng dụng. Những ứng dụng này thực hiện các nhiệm vụ cụ thể và quản lý dữ liệu ra và vào. Nếu máy tính đó là một phần của hệ thống mạng, thì một trong số các ứng dụng trên sẽ có thể giao tiếp với các ứng dụng trên các máy tính khác thuộc cùng hệ thống mạng. Bộ giao thức mạng là một hệ thống các quy định chung giúp xác định quá trình truyền dữ liệu phức tạp. Dữ liệu đi từ ứng dụng trên máy này, qua phần cứng mạng của máy, tới bộ phận trung gian và đến nơi nhận, thông qua phần cứng của máy tính đích rồi tới ứng dụng. 1.2.1. Mô hình TCP/IP TCP/IP là viết tắt của Transmission Control Protocol (Giao thức Điều Khiển Truyền Thông) / Internet Protocol (Giao thức Internet). TCP/IP là một bộ giao thức (bao gồm nhiều giao thức) hỗ trợ việc truyền thông giữa các máy tính hoặc các thiết bị tương tự trên mạng. 2 TCP/IP là bộ các giao thức có vai trò xác định quá trình liên lạc trong mạng và quan trọng hơn cả là định nghĩa “hình dạng” của một đơn vị dữ liệu và những thông tin chứa trong nó để máy tính đích có thể dịch thông tin một cách chính xác. TCP/IP và các giao thức liên quan tạo ra một hệ thống hoàn chỉnh quản lý quá trình dữ liệu được xử lý, chuyển và nhận trên một mạng sử dụng TCP/IP. Một hệ thống các giao thức liên quan, chẳng hạn như TCP/IP, được gọi là bộ giao thức. Thực tế của quá trình định dạng và xử lý dữ liệu bằng TCP/IP được thực hiện bằng bộ lọc của các hãng sản xuất. Một chuẩn TCP/IP là một hệ thống các quy định quản lý việc trao đổi trên các mạng TCP/IP. Bộ lọc TCP/IP là một phần mềm có chức năng cho phép một máy tính hoà vào mạng TCP/IP. Các chức năng của TCP/IP: Một hệ thống giao thức như TCP/IP phải đảm bảo khả năng thực hiện những công việc sau: - Cắt thông tin thành những gói dữ liệu để có thể dễ dàng đi qua bộ phận truyền tải trung gian. - Tương tác với phần cứng của adapter mạng. - Xác định địa chỉ nguồn và đích: Máy tính gửi thông tin đi phải có thể xác định được nơi gửi đến. Máy tính đích phải nhận ra đâu là thông tin gửi cho mình. - Định tuyến: Hệ thống phải có khả năng hướng dữ liệu tới các tiểu mạng, cho dù tiểu mạng nguồn và đích khác nhau về mặt vật lý. - Kiểm tra lỗi, kiểm soát giao thông và xác nhận: Đối với một phương tiện truyền thông tin cậy, máy tính gửi và nhận phải xác định và có thể sửa chữa lỗi trong quá trình vận chuyển dữ liệu. - Chấp nhận dữ liệu từ ứng dụng và truyền nó tới mạng đích. Để có thể thực hiện các công việc trên, những người sáng tạo ra TCP/IP đã chia nó thành những phần riêng biệt, theo lý thuyết, hoạt động độc lập với nhau. Mỗi thành phần chịu một trách nhiệm riêng biệt trong hệ thống mạng. 1.2.1.1. Kiến trúc TCP/IP 3 Hình 1.1. Kiến trúc TCP/IP Tầng liên kết mạng (Network Access Layer): Tầng liên kết (còn được gọi là tầng liên kết dữ liệu hay là tầng giao thiếp mạng) là tầng thấp nhất trong mô hình TCP/IP, bao gồm các thiết bị giao tiếp mạng và chương trình cung cấp các thông tin cần thiết để có thể hoạt động, truy nhập đường truyền vật lý qua thiết bị giao tiếp mạng đó. Tầng này gồm các thiết bị phần cứng vật lí chẳng hạn như Card Mạng và Cáp Mạng. Card mạng chẳng hạn là card Ethernet chứa một số HEX 12 kí tự (00-18-3703-C0-F4) được gọi là địa chỉ MAC hay địa chỉ truy nhập phương tiện. MAC đóng vai trò quan trọng trong việc gán địa chỉ và truyền dữ liệu. Một số giao thức thuộc tầng này bao gồm: + ATM + Ethernet + Token Ring + FDDI + Frame Relay Tầng Internet (Internet Layer): Tầng Internet (hay còn gọi là tầng mạng) xử lý quá trình truyền gói tin trên mạng bao gồm các chức năng: gán địa chỉ, đóng gói và định tuyến (Route) dữ liệu. 4 giao thức quan trọng trong giao thức này là: + IP: Có chức năng gán địa chỉ cho dữ liệu trước khi truyền và định tuyến chúng tới đích. + ARP: Có chức năng biên dịch địa chỉ IP của máy đích thành địa chỉ MAC. + ICMP: Có chức năng thông báo lỗi trong trường hợp truyền dữ liệu bị hỏng. 4 + IGMP: Có chức năng điều khiển truyền đa hướng (Multicast). Tầng giao vận (Transport Layer): Tầng giao vận phụ trách luồng dữ liệu giữa hai trạm thực hiện các ứng dụng của tầng trên. Tầng này có hai giao thức chính: TCP và UDP.  Giao thức UDP: Là một trong những giao thức cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm, các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu. Khuôn dạng của UDP datagram như sau: Source Port Destination Port Length Checksum Data Hình 1.2. Khuôn dạng của UDP datagram − Số hiệu cổng nguồn (Source Port - 16 bit): số hiệu cổng nơi đã gửi datagram − Số hiệu cổng đích (Destination Port - 16 bit): số hiệu cổng nơi datagram được chuyển tới − Độ dài UDP (Length - 16 bit): độ dài tổng cổng kể cả phần header của gói UDP datagram − UDP Checksum (16 bit): dùng để kiểm soát lỗi, nếu phát hiện lỗi thì UDP datagram sẽ bị loại bỏ mà không có một thông báo nào trả lại cho trạm gửi. UDP có chế độ gán và quản lý các số hiệu cổng (port number) để định danh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Do có ít chức năng phức tạp nên UDP có xu thế hoạt động nhanh hơn so với TCP. Nó thường dùng cho các ứng dụng không đòi hỏi độ tin cậy cao trong giao vận.  Giao thức TCP: 5 TCP và UDP là 2 giao thức ở tầng giao vận và cùng sử dụng giao thức IP trong tầng mạng. Nhưng không giống như UDP, TCP cung cấp dịch vụ liên kết tin cậy và có liên kết. Có liên kết ở đây có nghĩa là 2 ứng dụng sử dụng TCP phải thiết lập liên kết với nhau trước khi trao đổi dữ liệu. Sự tin cậy trong dịch vụ được cung cấp bởi TCP được thể hiện như sau: − Dữ liệu từ tầng ứng dụng gửi đến được được TCP chia thành các segment có kích thước phù hợp nhất để truyền đi − Khi TCP gửi 1 segment, nó duy trì một thời lượng để chờ phúc đáp từ trạm nhận. Nếu trong khoảng thời gian đó phúc đáp không tới được trạm gửi thì segment đó được truyền lại − Khi TCP trên trạm nhận nhận dữ liệu từ trạm gửi nó sẽ gửi tới trạm gửi 1 phúc đáp tuy nhiên phúc đáp không được gửi lại ngay lập tức mà thường trễ một khoảng thời gian − TCP duy trì giá trị tổng kiểm tra (checksum) trong phần Header của dữ liệu để nhận ra bất kỳ sự thay đổi nào trong quá trình truyền dẫn. Nếu 1 segment bị lỗi thì TCP ở phía trạm nhận sẽ loại bỏ và không phúc đáp lại để trạm gửi truyền lại segment bị lỗi đó Giống như IP datagram, TCP segment có thể tới đích một cách không tuần tự. Do vậy TCP ở trạm nhận sẽ sắp xếp lại dữ liệu và sau đó gửi lên tầng ứng dụng đảm bảo tính đúng đắn của dữ liệu. Khi IP datagram bị trùng lặp TCP tại trạm nhận sẽ loại bỏ dữ liệu trùng lặp đó . TCP cũng cung cấp khả năng điều khiển luồng. Mỗi đầu của liên kết TCP có vùng đệm (buffer) giới hạn do đó TCP tại trạm nhận chỉ cho phép trạm gửi truyền một lượng dữ liệu nhất định (nhỏ hơn không gian buffer còn lại). Điều này tránh xảy ra trường hợp trạm có tốc độ cao chiếm toàn bộ vùng đệm của trạm có tốc độ chậm hơn. 0 4 10 16 Source Port 24 Destination Port Sequence Number Acknowledgement Number 6 31 Header Length Reserved U R G A C K P S H R S T S Y N F I N Window Size Checksum Urgent Pointer Options Padding Data Hình 1.3. Khuôn dạng TCP segment Các tham số trong khuôn dạng trên có ý nghĩa như sau: − Source Port (16 bits ) là số hiệu cổng của trạm nguồn − Destination Port (16 bits ) là số hiệu cổng trạm đích − Sequence Number (32 bits) là số hiệu byte đầu tiên của segment trừ khi bit SYN được thiết lập. Nếu bit SYN được thiết lập thì sequence number là số hiệu tuần tự khởi đầu ISN (Initial Sequence Number ) và byte dữ liệu đầu tiên là ISN + 1. Thông qua trường này TCP thực hiện việc quản lý từng byte truyền đi trên một kết nối TCP − Acknowledgment Number (32 bits): số hiệu của segment tiếp theo mà trạm nguồn đang chờ để nhận và ngầm định báo nhận tốt các segment mà trạm đích đã gửi cho trạm nguồn − Header Length (4 bits): số lượng từ (32 bits) trong TCP header, chỉ ra vị trí bắt đầu của vùng dữ liệu vì trường Option có độ dài thay đổi. Header length có giá trị từ 20 đến 60 byte − Reserved (6 bits): dành để dùng trong tương lai − Control bits: các bit điều khiển URG: xác đinh vùng con trỏ khẩn có hiệu lực ACK: vùng báo nhận ACK Number có hiệu lực PSH: chức năng PUSH RST: khởi động lại liên kết SYN: đồng bộ hoá các số hiệu tuần tự (Sequence number) FIN: không còn dữ liệu từ trạm nguồn 7 − Window size (16 bits): cấp phát thẻ để kiểm soát luồng dữ liệu (cơ chế cửa sổ trượt). Đây chính là số lượng các byte dữ liệu bắt đầu từ byte được chỉ ra trong vùng ACK number mà trạm nguồn sẫn sàng nhận − Checksum (16 bits): mã kiểm soát lỗi cho toàn bộ segment cả phần header và dữ liệu − Urgent Pointer (16 bits): con trỏ trỏ tới số hiệu tuần tự của byte cuối cùng trong dòng dữ liệu khẩn cho phép bên nhận biết được độ dài của dữ liệu khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập − Option (độ dài thay đổi ): khai báo các tuỳ chọn của TCP trong đó thông thường là kích thước cực đại của 1 segment: MSS (Maximum Segment Size) − TCP data (độ dài thay đổi ): chứa dữ liệu của tầng ứng dụng có độ dài ngầm định là 536 byte . Giá trị này có thể điều chỉnh được bằng cách khai báo trong vùng Option Tầng ứng dụng (Application Layer): Tầng ứng dụng là tầng trên cùng của mô hình TCP/IP bao gồm các tiến trình và các ứng dụng cung cấp cho người sử dụng để truy cập mạng. Có rất nhiều ứng dụng được cung cấp ở tầng này, mà phổ biến là: Telnet: sử dụng trong việc truy cập mạng từ xa, FTP (File Transfer Protocol): dịch vụ truyền tệp, Email: dịch vụ thư tín điện tử, WWW (World Wide Web). 1.2.1.2. Quá trình truyền dữ liệu trong mô hình TCP/IP user data application Appl head er TCP header user data TCP application data IP TCP segment IP header TCP header application data Ethernet driver Ethernet header IP header TCP header application8data Ethernet trailer IP datagram Ethernet Ethernet Frame 46 to 1500 bytes Hình 1.4. Quá trình truyền dữ liệu trong mô hình TCP/IP Khi truyền dữ liệu, quá trình tiến hành từ tầng trên xuống tầng dưới, qua mỗi tầng dữ liệu được thêm vào một thông tin điều khiển được gọi là phần header. Khi nhận dữ liệu thì quá trình xảy ra ngược lại, dữ liệu được truyền từ tầng dưới lên và qua mỗi tầng thì phần header tương ứng được lấy đi và khi đến tầng trên cùng thì dữ liệu không còn phần header nữa. 1.2.3. Mô hình OSI Mô hình OSI (Open System Interconnection): là mô hình được tổ chức ISO đề xuất từ 1977 và công bố lần đầu vào 1984. Để các máy tính và các thiết bị mạng có thể truyền thông với nhau phải có những qui tắc giao tiếp được các bên chấp nhận. Mô hình OSI là một khuôn mẫu giúp chúng ta hiểu dữ liệu đi xuyên qua mạng như thế nào đồng thời cũng giúp chúng ta hiểu được các chức năng mạng diễn ra tại mỗi lớp. 1.2.3.1. Kiến trúc và chức năng các lớp trong mô hình OSI Hình 1.5. Các lớp trong mô hình OSI Chức năng của các lớp trong mô hình tham chiếu OSI: 9  Lớp ứng dụng (ApplicationLayer): là giao diện giữa các chương trình ứng dụng của người dùng và mạng. Lớp Application xử lý truy nhập mạng chung, kiểm soát luồng và phục hồi lỗi. Lớp này không cung cấp các dịch vụ cho lớp nào mà nó cung cấp dịch vụ cho các ứng dụng như: truyền file, gởi nhận E-mail, Telnet, HTTP, FTP, SMTP…  Lớp trình bày (PresentationLayer): lớp này chịu trách nhiệm thương lượng và xác lập dạng thức dữ liệu được trao đổi. Nó đảm bảo thông tin mà lớp ứng dụng của một hệ thống đầu cuối gởi đi, lớp ứng dụng của hệ thống khác có thể đọc được. Lớp trình bày thông dịch giữa nhiều dạng dữ liệu khác nhau thông qua một dạng chung, đồng thời nó cũng nén và giải nén dữ liệu. Thứ tự byte, bit bên gởi và bên nhận qui ước qui tắc gởi nhận một chuỗi byte, bit từ trái qua phải hay từ phải qua trái. Nếu hai bên không thống nhất thì sẽ có sự chuyển đổi thứ tự các byte bit vào trước hoặc sau khi truyền. Lớp presentation cũng quản lý các cấp độ nén dữ liệu nhằm giảm số bit cần truyền. Ví dụ: JPEG, ASCCI, EBCDIC...  Lớp phiên (SessionLayer): lớp này có chức năng thiết lập, quản lý, và kết thúc các phiên thông tin giữa hai thiết bị truyền nhận. Lớp phiên cung cấp các dịch vụ cho lớp trình bày. Lớp Session cung cấp sự đồng bộ hóa giữa các tác vụ người dùng bằng cách đặt những điểm kiểm tra vào luồng dữ liệu. Bằng cách này, nếu mạng không hoạt động thì chỉ có dữ liệu truyền sau điểm kiểm tra cuối cùng mới phải truyền lại. Lớp này cũng thi hành kiểm soát hội thoại giữa các quá trình giao tiếp, điều chỉnh bên nào truyền, khi nào, trong bao lâu. Ví dụ như: RPC, NFS,... Lớp này kết nối theo ba cách: Haft-duplex, Simplex, Full-duplex.  Lớp vận chuyển (TransportLayer): lớp vận chuyển phân đoạn dữ liệu từ hệ thống máy truyền và tái thiết lập dữ liệu vào một luồng dữ liệu tại hệ thống máy nhận đảm bảo rằng việc bàn giao các thông điệp giữa các thiết bị đáng tin cậy. Dữ liệu tại lớp này gọi là segment. Lớp này thiết lập, duy trì và kết thúc các mạch ảo đảm bảo cung cấp các dịch vụ sau: + Xếp thứ tự các phân đoạn: khi một thông điệp lớn được tách thành nhiều phân đoạn nhỏ để bàn giao, lớp vận chuyển sẽ sắp xếp thứ tự các phân đoạn trước khi ráp nối các phân đoạn thành thông điệp ban đầu 10 + Kiểm soát lỗi: khi có phân đoạn bị thất bại, sai hoặc trùng lắp, lớp vận chuyển sẽ yêu cầu truyền lại + Kiểm soát luồng: lớp vận chuyển dùng các tín hiệu báo nhận để xác nhận. Bên gửi sẽ không truyền đi phân đoạn dữ liệu kế tiếp nếu bên nhận chưa gởi tín hiệu xác nhận rằng đã nhận được phân đoạn dữ liệu trước đó đầy đủ Lớp mạng (NetworkLayer): lớp mạng chịu trách nhiệm lập địa chỉ các  thông điệp, diễn dịch địa chỉ và tên logic thành địa chỉ vật lý đồng thời nó cũng chịu trách nhiệm gởi packet từ mạng nguồn đến mạng đích. Lớp này quyết định đường đi từ máy tính nguồn đến máy tính đích. Nó quyết định dữ liệu sẽ truyền trên đường nào dựa vào tình trạng, ưu tiên dịch vụ và các yếu tố khác. Nó cũng quản lý lưu lượng trên mạng chẳng hạn như chuyển đổi gói, định tuyến, và kiểm soát sự tắc nghẽn dữ liệu. Nếu bộ thích ứng mạng trên bộ định tuyến (router) không thể truyền đủ đoạn dữ liệu mà máy tính nguồn gởi đi, lớp Network trên bộ định tuyến sẽ chia dữ liệu thành những đơn vị nhỏ hơn, nói cách khác, nếu máy tính nguồn gởi đi các gói tin có kích thước là 20Kb, trong khi Router chỉ cho phép các gói tin có kích thước là 10Kb đi qua, thì lúc đó lớp Network của Router sẽ chia gói tin ra làm 2, mỗi gói tin có kích thước là 10Kb. Ở đầu nhận, lớp Network ráp nối lại dữ liệu. Ví dụ: một số giao thức lớp này: IP, IPX,... Dữ liệu ở lớp này gọi packet hoặc datagram.  Lớp liên kết dữ liệu (Data link Layer): cung cấp khả năng chuyển dữ liệu tin cậy xuyên qua một liên kết vật lý. Lớp này liên quan đến: + Địa chỉ vật lý + Mô hình mạng + Cơ chế truy cập đường truyền + Thông báo lỗi + Thứ tự phân phối frame + Điều khiển dòng Tại lớp datalink, các bít đến từ lớp vật lý được chuyển thành các frame dữ liệu bằng cách dùng một số nghi thức tại lớp này. Lớp datalink được chia thành hai lớp con: + Lớp con LLC (logical link control) 11 + Lớp con MAC (media access control) Lớp con LLC là phần trên so với các giao thức truy cập đường truyền khác, nó cung cấp sự mềm dẻo về giao tiếp. Bởi vì lớp con LLC hoạt động độc lập với các giao thức truy cập đường truyền, cho nên các giao thức lớp trên hơn (ví dụ như IP ở lớp mạng) có thể hoạt động mà không phụ thuộc vào loại phương tiện LAN. Lớp con LLC có thể lệ thuộc vào các lớp thấp hơn trong việc cung cấp truy cập đường truyền. Lớp con MAC cung cấp tính thứ tự truy cập vào môi trường LAN. Khi nhiều trạm cùng truy cập chia sẻ môi trường truyền, để định danh mỗi trạm, lớp cho MAC định nghĩa một trường địa chỉ phần cứng, gọi là địa chỉ MAC address. Địa chỉ MAC là một con số đơn nhất đối với mỗi giao tiếp LAN (card mạng).  Lớp vật lý (PhysicalLayer): định nghĩa các qui cách về điện, cơ, thủ tục và các đặc tả chức năng để kích hoạt, duy trì và dừng một liên kết vật lý giữa các hệ thống đầu cuối. Một số các đặc điểm trong lớp vật lý này bao gồm: + Mức điện thế + Khoảng thời gian thay đổi điện thế + Tốc độ dữ liệu vật lý + Khoảng đường truyền tối đa + Các đầu nối vật lý Quá trình xử lý và vận chuyển của một gói dữ liệu trong mô hình OSI: 12
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất