1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài tập lớn môn mạng và truyền thông (7)

22 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ -🙞🙜🕮🙞🙜 - BÀI TẬP NHĨM MƠN MẠNG TRUYỀN THƠNG ĐỀ TÀI: TÌM HIỂU VỀ TCP SOCKET VÀ ỨNG DỤNG CỦA TCP SOCKET Giảng viên hướng dẫn : Lê Văn Hùng Lớp : 212IS06A03 Hà Nội, ngày 07 tháng 06 năm 2022 THÀNH VIÊN VÀ MỨC ĐỘ ĐÓNG GÓP Lỗ Quang Dũng 20% 22A4040020 Nguyễn Thị Hương Giang 20% 22A4040174 Nguyễn Minh Hiếu 20% 22A4040085 Trần Thị Lệ Quyên 20% 22A4040190 Lê Văn Tùng 22A4040168 20% LỜI CẢM ƠN Nhóm em muốn gửi lời cảm ơn chân thành đến thầy Lê Văn Hùng tận tâm hướng dẫn truyền dạy chúng em kiến thức mới, đốc thúc tiến độ chúng em làm Nhóm em xin cảm ơn thầy nhiệt tình bảo chúng em cách chọn đề tài, hướng làm bài, quy mô nên xây dựng đề tài giúp chúng em hiểu cách cụ thể rõ ràng, để tiểu luận nhóm em hồn thiện tốt Chúng em xin chân thành cảm ơn! MỤC LỤC MỞ ĐẦU CHƯƠNG I: TỔNG QUAN VỀ TCP SOCKET 1.1 Tổng quan TCP 1.1.1 Giới thiệu TCP 1.1.2 Nhiệm vụ TCP 1.1.3 TCP hoạt động nào? 1.1.4 Địa TCP 1.2 Tổng quan Socket 1.2.1 Giới thiệu Socket 1.2.2 Tại người dùng lại cần đến Socket? 1.2.3 Socket hoạt động nào? 1.2.4 Phân loại Socket CHƯƠNG 2: MỘT SỐ ỨNG DỤNG CỦA TCP SOCKET TRONG THỰC TIỄN 11 2.1 Mơ hình client-server 11 2.2 Sử dụng TCP socket mơ hình client-server 12 2.3 Thiết kế TCP Socket Chatroom sử dụng ngôn ngữ Python 13 2.3.1 Server 14 2.3.2 Client 16 MỞ ĐẦU Socket thuật ngữ phổ biến sử dụng ngành lập trình đại Nói đơn giản, socket định nghĩa cách trừu tượng hóa ổ cắm vật lý Nếu ổ cắm vật lý nhận lấy tiếp xúc cáp điện socket hoạt động tương tự vậy, khác thứ nhận chương trình mạnh Một chức khác sockets tạo kết nối client server Kết hoàn thành dựa trình ràng buộc lớp socket điểm cố định Điểm cổng port, thường số cụ thể Liên kết lớp socket giúp tầng TCP hay TCP Player danh ứng dụng mà liệu gửi tới Ưu điểm lớn khiến socket trở nên cần thiết tương thích với hầu hết hệ điều hành, từ Windows, Linux Mac OS X… Ngồi ra, socket cịn kết hợp với nhiều ngơn ngữ lập trình như: C, C++, Java, Visual Basic, Visual C++… Có thể thấy socket phù hợp để sử dụng điều kiện hoàn cảnh khác Đặc biệt lập trình viên chạy song song nhiều socket lúc Điều giúp rút ngắn thời gian tăng hiệu suất hoạt động Với ưu điểm tuyệt vời vậy, đề tài đào sâu vào khía cạnh để hiểu rõ thêm tổng quan ứng dụng socket thực tiễn CHƯƠNG I: TỔNG QUAN VỀ TCP SOCKET 1.1 Tổng quan TCP 1.1.1 Giới thiệu TCP TCP (Transmission Control Protocol) giao thức mạng quan trọng sử dụng việc truyền liệu qua mạng Một giao thức phạm vi mạng tập hợp quy tắc trình tự kiểm sốt việc thực truyền liệu cho tất người giới vị trí địa lý, ứng dụng, phần mềm họ sử dụng thao tác theo phương thức giống gọi TCP TCP thường kết hợp với IP (Giao thức Internet) theo cặp gọi TCP/IP Bạn bắt gặp cụm thuật ngữ phần network setting máy tính, điện thoại thơng minh thiết bị cầm tay IP xử lý việc gán địa chuyển tiếp gói tin từ nguồn đến đích TCP kiểm soát độ tin cậy truyền dẫn 1.1.2 Nhiệm vụ TCP Chức TCP xác định kiểm soát mức độ tin cậy việc truyền liệu Trên mạng Internet, liệu truyền theo dạng gói tin, gói cụm liệu truyền hoàn toàn độc lập mạng, tập hợp lại với chúng đến địa đích sau trả liệu gốc Truyền liệu mạng xử lý theo lớp, giao thức lớp thực công việc bổ sung cho lớp khác Tập hợp lớp gọi ngăn giao thức (protocol stack) TCP IP làm việc liên quan chặt chẽ với nhau, lớp lớp VD: stack bạn có cặp HTTP - TCP - IP - WiFi Điều có nghĩa máy tính truy cập trang web, máy tính sử dụng giao thức HTTP để nhận trang web theo dạng HTML, TCP kiểm soát việc truyền liệu, kiểm soát IP kênh mạng (ví dụ: internet), Wifi truyền mạng cục TCP chịu trách nhiệm hoàn tồn q trình truyền tải Một đường truyền tin cậy đường truyền đảm bảo toàn yêu cầu đáp ứng 1.1.3 TCP hoạt động nào? TCP dán nhãn gói tin theo dạng đánh số TCP đảm bảo liệu tới đích thời hạn xác định (một khoảng thời gian vài trăm mili giây gọi thời gian chờ) tuân theo số quy định kỹ thuật khác Với gói tin nhận được, thiết bị gửi thơng báo thơng qua gói gọi xác nhận Sau hết thời gian chờ, không nhận xác nhận, nguồn gửi gửi gói tin bị bị hỗn Các gói tin khơng theo trình tự khơng xác nhận Nhờ vậy, tất gói liệu tập hợp theo thứ tự, khơng có sơ hở, khoảng thời gian chờ xác định chấp nhận 1.1.4 Địa TCP Trong IP có chế hồn chỉnh để định gán địa gọi địa IP, TCP lại khơng có hệ thống địa phức tạp Đúng TCP không cần đến hệ thống TCP sử dụng số cung cấp thiết bị mà chạy để xác định nơi nhận truyền gói tin đâu, cho dịch vụ Các số gọi port Ví dụ, trình duyệt web thường sử dụng cổng 80 cho TCP, cổng 25 dùng cho email,… Số port thường kèm với địa IP để dịch vụ, ví dụ: 192.168.66.5:80 1.2 Tổng quan Socket 1.2.1 Giới thiệu Socket Socket giao diện lập trình ứng dụng mạng dùng để truyền nhận liệu internet Giữa hai chương trình chạy mạng cần có liên kết giao tiếp hai chiều, hay gọi two-way communication để kết nối process trò chuyện với Điểm cuối (endpoint) liên kết gọi socket Một chức khác socket giúp tầng TCP TCP Layer định danh ứng dụng mà liệu gửi tới thông qua ràng buộc với cổng port (thể số cụ thể), từ tiến hành kết nối client server 1.2.2 Tại người dùng lại cần đến Socket? Ưu điểm lớn socket hỗ trợ hầu hết hệ điều hành bao gồm MS Windows, Linux,… Ngoài ra, socket sử dụng với nhiều ngơn ngữ lập trình, gồm C, C++, Java, Visual Basic, Visual C++, Python,… nên tương thích với hầu hết đối tượng người dùng với cấu hình máy khác Đặc biệt, người dùng chạy lúc nhiều socket liên tục, giúp nâng cao hiệu suất làm việc, tiết kiệm thêm nhiều thời gian công sức 1.2.3 Socket hoạt động nào? Như đề cập trước đó, chức socket kết nối client server thông qua TCP/IP UDP để truyền nhận giữ liệu qua Internet Giao diện lập trình ứng dụng mạng hoạt động có thơng tin thơng số IP số hiệu cổng ứng dụng cần trao đổi liệu cho Hai ứng dụng cần truyền thông tin phải đáp ứng điều kiện sau socket hoạt động: • Hai ứng dụng nằm máy máy khác • Trong trường hợp ứng dụng nằm máy, số hiệu cổng không trùng 1.2.4 Phân loại Socket Socket có loại khác là: ● Stream Socket ● Datagram Socket ● Websocket ● Unix socket a) Stream Socket Đây socket hướng kết nối hoạt động qua giao thức TCP Có nghĩa hoạt động máy chủ client kết nối thành công với Ưu điểm: ● Đảm bảo truyền liệu đến đối tượng, theo thứ tự cách nhanh chóng ● Khi thơng điệp gửi hệ thống ln có xác nhận nhằm thơng báo tình trạng tiến trình truyền tải cho người dùng Nhược điểm: Vì có địa IP máy chủ máy nhận nên bắt buộc máy phải chờ máy chấp nhận kết nối b) Datagram Socket Ngược lại với Stream Socket, Datagram Socket Socket không hướng kết nối chúng hoạt động qua giao thức UDP (viết tắt User Datagram Protocol) Vì thế, Socket hoạt động dù khơng có kết nối máy với - Ưu điểm: ● Quá trình kết nối, truyền liệu vô đơn giản ● Việc truyền tải thông tin liệu diễn nhanh chóng - Nhược điểm: Thơng tin truyền tải bị lặp truyền sai thứ tự, thơng tin nhận có độ tin cậy chưa cao c) WebSocket Đây Socket có chức hỗ trợ việc kết nối môi trường internet client với máy chủ để chúng diễn nhanh chóng, tăng hiệu cách dùng Socket TCP Websocket dùng cho ứng dụng web tất ứng dụng cần trao đổi thông tin qua môi trường internet - Ưu điểm: ● Tốc độ truyền thông tin giữ máy chủ client diễn nhanh chóng ● Người dùng dễ dàng phát lỗi để xử lý chúng ● Cách sử dụng đơn giản không cần cài thêm phần mềm khác để hỗ trợ ● Người dùng không cần kết hợp thêm phương pháp kết nối khác trình sử dụng - Nhược điểm: ● Hạn chế việc tương thích với trình duyệt, Websocket chưa hỗ trợ tất trình duyệt có mặt thị trường ● Websocket chưa hoàn toàn hỗ trợ dịch vụ yêu cầu phạm vi nên nhiều đem lại bất tiện cho người dùng d) Unix Socket Xét tốc độ kết nối Unix socket giống Websocket, giúp tăng tốc độ kết nối trình truyền liệu diễn nhanh chóng, nhẹ hiệu Unix socket xem điểm giao tiếp, thúc đẩy tiến trình trao đổi thơng tin ứng dụng khác máy tính Theo đó, tồn hoạt động Unix socket thực nhân hệ điều hành Chính nhờ điều mà liệu ứng dụng truyền tải nhanh chóng nhiều Ngồi ra, nhờ khả tránh routing hay bước kiểm tra nên với hỗ trợ Unix Socket, việc truyền tải liệu dễ dàng đảm bảo - Ưu điểm: ● Q trình truyền tải nhanh chóng, nhẹ nhàng xác ● Tốc độ truy cập vào MySQL tăng đến 30 – 50% ● Giảm độ trễ thời gian từ 60ms xuống 5ms ● PostgreSQL tăng đến 30% ● Redis tăng khoảng 50% ● Và cịn nhiều thơng số tốc độ khác để minh chứng cho trình truyền tải liệu ưu việc mà Unix Socket mang lại - Nhược điểm: ● Đối với ứng dụng không máy chủ Unix Socket khơng thể kết nối ● Trên Unix Socket, vấn đề phân quyền tập tin xảy lỗi làm ảnh hưởng thao tác trình sử dụng người dùng 10 CHƯƠNG II: MỘT SỐ ỨNG DỤNG CỦA TCP SOCKET TRONG THỰC TIỄN Socket: lớp Socket số lớp khác InetAddress, ServerSocket…đều hỗ trợ trực tiếp java chuẩn, nghĩa không cần phải sử dụng thêm thư viện bên thứ ba Lớp Socket java hỗ trợ làm việc với giao thức TCP để giao tiếp với java hỗ trợ sử dụng giao tiếp dạng stream Đối với C# tương tự, lớp làm việc với socket TcpClient, IPAddress, TcpListener… C# hỗ trợ tận không cần thêm thư viện bên thứ ba 2.1 Mơ hình client-server Đây mơ hình sử dụng nhiều giới, trang web ngày xây dựng theo mơ hình Ở client đóng vai trị khách, server chủ, khách yêu cầu tài nguyên/xử lý từ chủ, chủ xử lý phản hồi lại kết cho khách(nghĩa chủ phải phục vụ khách) Ví dụ truy cập vào trang mp3.zing.vn tải nhạc, trình duyệt client yêu cầu hát đến server, sau server tìm kiếm/xử lý xong gửi liệu hát lại cho trình duyệt Dễ nhận thấy server thường phục vụ cho nhiều client số lượng client tăng giảm cách biết trước 11 2.2 Sử dụng TCP socket mơ hình client-server Client sử dụng socket để làm việc với server theo bước: ● Kết nối tới server ● Trao đổi liệu với server ● Đóng kết nối Server làm việc với client theo bước: ● Bind tới endpoint(một địa IP port) server ● Bắt đầu lắng nghe kết nối ● Đợi kết nối ● Tạo worker có kết nối ● Quay lại bước 12 Worker lớp wrapper có nhiệm vụ làm việc trực tiếp với client thực thi thread khác để đảm bảo server phục vụ nhiều client lúc Thực server chấp nhận kết nối, sinh socket để ta làm việc với client socket Worker bao bọc lại với thread sinh Sau Worker sinh server quay lại lắng nghe tiếp kết nối khác, vòng lặp diễn mãi ta đóng server phương thức close có lỗi xảy lúc lắng nghe Thơng thường server cần phải hoạt động 24/7 nên xảy trường hợp cần phải đóng server 2.3 Thiết kế TCP Socket Chatroom sử dụng ngơn ngữ Python Việc xây dựng chatroom nhiều ngơn ngữ như: C#, Java nhóm em xin phép xây dựng dựa ngôn ngữ Python Mỗi người dùng có tài khoản, người dùng gửi tin nhắn tất người cịn lại nhận tin nhắn 13 Để đơn giản người dùng cần điền tên để phân biệt với người dùng khác không cần phải register thời gian Người dùng sử dụng chương trình client để kết nối đến server chat thông qua địa IP port Server có nhiệm vụ quản lý kết nối broadcast tin nhắn đến client khác kết nối vào server 2.3.1 Server - Đầu tiên ta import thư viện Python để phục vụ trình code là: Threading Socket - Tiếp theo ta khai báo biến host port gán giá trị cho chúng sau: - Và để khởi chạy server ta sử dụng phương thức socket thư viện socket mà ta import: - Tiếp theo ta khai báo list rỗng để lưu trữ thông tin client nickname thêm xóa đi: - Tạo hàm broadcast với tham số đầu vào message client Hàm có mục đích để gửi tin nhắn tới tất client kết nối với nhau: 14 - Cuối tạo thêm hàm handle hàm receive (hàm có mục đích gắn kết phần lại với nhau, hiểu đơn giản hàm main chính) 15 2.3.2 Client - Sau xong phần server ta tiếp tục đến với phần client Tương tự server ta phải import thư viện Python, nhiên ta khai báo thêm biến nickname để phân biệt client khác cho người dùng nhập vào từ bàn phím - Tiếp theo ta tạo hàm receive write để giúp server nhận diện client gửi message qua lại client 16 - Cuối ta gọi hàm khởi chạy phương thức start() - Kết sau chạy demo (cửa sổ bên trái server cửa sổ phía bên phải client): 17 TÀI LIỆU THAM KHẢO When TCP sockets refuse to die (cloudflare.com) Asynchronous Server Socket Example - NET Framework | Microsoft Docs What Is a Socket? (The Java™ Tutorials > Custom Networking > All About Sockets) (oracle.com) Socket gì? Khái niệm cần biết giao thức TCP/IP UDP (matbao.net) 18 ... cậy truyền dẫn 1.1.2 Nhiệm vụ TCP Chức TCP xác định kiểm soát mức độ tin cậy việc truyền liệu Trên mạng Internet, liệu truyền theo dạng gói tin, gói cụm liệu truyền hoàn toàn độc lập mạng, tập. .. TCP kiểm sốt việc truyền liệu, kiểm sốt IP kênh mạng (ví dụ: internet), Wifi truyền mạng cục TCP chịu trách nhiệm hồn tồn q trình truyền tải Một đường truyền tin cậy đường truyền đảm bảo toàn... Protocol) giao thức mạng quan trọng sử dụng việc truyền liệu qua mạng Một giao thức phạm vi mạng tập hợp quy tắc trình tự kiểm soát việc thực truyền liệu cho tất người giới vị trí địa lý, ứng

Ngày đăng: 09/06/2022, 14:28

HÌNH ẢNH LIÊN QUAN

2.2. Sử dụng TCP socket trong mô hình client-server - Bài tập lớn môn mạng và truyền thông (7)
2.2. Sử dụng TCP socket trong mô hình client-server (Trang 16)
w