Bài tập lớn lập trình mạng đề tài xây ứng dụng chat client – server trong mạng lan

25 3.6K 36
Bài tập lớn lập trình mạng đề tài xây ứng dụng chat client  –  server trong mạng lan

Đ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

Bài tập lớn lập trình mạng đề tài xây ứng dụng chat client – server trong mạng lan

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC Bài Tập Lớn Lập Trình Mạng ĐỀ TÀI Xây ứng dụng Chat Client – Server trong mạng Lan Giáo viên hướng dẫn: Ths Nguyễn Tuấn Dũng Nhóm SV thực hiện: Nguyễn Huy Anh Toán tin 1K53 Mssv: 2008 6310 Khúc Tuấn Vũ Toán tin 1K53 Msss: 2008 3196 Lê Hồng Nhật Toán tin 1K53 Mssv: 2008 1928 Ứng dụng Chat Client-Server trong mạng Lan Mục Lục 2 Ứng dụng Chat Client-Server trong mạng Lan PHẦN I: GIAO THỨC TCP / IP 1.1 Tổng quan Giao thức TCP/IP được phát triển từ mạng ARPANET và Internet và được dùng như giao thức mạng và giao vận trên tầng mạng Internet. TCP (Transmission Control Protocol) là giao thức thuộc tầng giao vận và IP (Internet Protocol) là giao thức thuộc tầng mạng của mô hình OSI. Họ giao thức TCP/IP hiện nay là giao thức được sử dụng rộng rãi nhất để liên kết các máy tính và các mạng. Hiện nay các máy tính của hầu hết các mạng có thể sử dụng giao thức TCP/IP để liên kết với nhau thông qua hệ thống mạng với kỹ thuật khác nhau. Giao thức TCP/IP thực chất là một họ giao thức cho phép các hệ thống mạng cùng làm việc với nhau thông qua việc cung cấp các phương tiện truyền thông liên mạng. 1.2 Các tầng của mô hình tham chiếu TCP/IP Bộ quốc phòng Mỹ gọi tắt là DoD (Department of Defense) đã tạo ra mô hình tham chiếu TCP/IP vì muốn một mạng có thể tồn tại trong bất cứ điều kiện nào. DoD muốn các gói dữ liệu xuyên suốt mạng vào mọi lúc, dưới bất cứ điều kiện nào, từ bất cứ một điểm đến một điểm khác. Đây là một bài toán thiết kế cực kỳ khó khăn mà từ đó đã làm nảy sinh mô hình TCP/IP, vì vậy đã trở thành chuẩn Internet để phát triển. 3 Ứng dụng Chat Client-Server trong mạng Lan Tầng ứng dụng Các nhà thiết kế TCP/IP cảm thấy rằng các giao thức mức cao nên bao gồm các tầng trình bày và tầng phiên. Để đơn giản, họ tạo ra một tầng ứng dụng kiểm soát các giao thức mức cao, các vấn đề của tầng Trình diễn, mã hóa và điều khiển hội thoại. TCP/IP tập hợp tất cả các vấn đề liên quan đến ứng dụng vào trong một tầng, và đảm bảo dữ liệu được đóng gói một cách thích hợp cho tầng kế tiếp. Tầng giao vận Tầng vận chuyển đề cập đến các vấn đề chất lượng dịch vụ như độ tin cậy, điều khiển luồng và sửa lỗi. Một trong các giao thức của nó là TCP, TCP cung cấp các phương thức linh hoạt và hiệu quả để thực hiện các hoạt động truyền dữ liệu tin cậy, hiệu suất cao và ít lỗi. TCP là giao thức có tạo cầu nối (connection – oriented). Nó tiến hành hội thoại giữa nguồn và đích trong khi bọc thông tin tầng ứng dụng thành các đơn vị gọi là segment. Tạo cầu nối không có nghĩa là tồn tại một mạch thực giữa hai máy tính, thay vì vậy nó có nghĩa là các segment của tầng 4 di chuyển tới và lui giữa hai host để công nhận kết nối tồn tại một cách luận lý trong một khoảng thời gian nào đó. Điều này coi như chuyển mạch gói (packet switching). Tầng Internet 4 Ứng dụng Chat Client-Server trong mạng Lan Mục tiêu của tầng Internet là truyển các gói tin bắt nguồn từ bất kỳ mạng nào trên liên mạng và đến được đích trong điều kiện độc lập với đường dẫn và các mạng mà chúng đã trải qua. Giao thức đặc trưng khống chế tầng này được gọi là IP. Công việc xác định đường dẫn tốt nhất và hoạt động chuyển mạch gói diễn ra tại tầng này. Tầng truy xuất mạng Tên của tầng này có nghĩa khá rộng. Nó cũng được gọi là tầng host – to – network. Nó là tầng liên quan đến tất cả các vấn đề mà một gói tin IP yêu cầu để tạo một liên kết vật lý thực sự, và sau đó tạo một liên kết vật lý khác. Nó bao gồm các chi tiết kỹ thuật LAN và WAN, và tất cả các chi tiết trong tầng liên kết dữ liệu cũng như tầng vật lý của mô hình OSI. Mô hình OSI hướng đến tối đã độ linh hoạt tại tầng ứng dụng cho người phát triển phần mềm. Tầng vận chuyển liên quan đến hai giao thức TCP và UDP (User Datagram Protocol). Tầng cuối cùng, tầng truy xuất mạng liên kết các kỹ thuật LAN hay WAN đang được sử dụng. Trong mô hình TCP/IP không cần quan tâm đến ứng dụng nào yêu cầu các dịch vụ mạng, và không cần quan tâm đến giao thức vận chuyển nào đang được dùng, chỉ có một giao thức mạng IP. Đây là một quyết định thiết kế được cân nhắc rất kỹ. IP phục vụ như một giao thức đa năng cho phép bất kỳ máy tính nào, ở bất cứ đâu, truyền dữ liệu vào bất cứ thời điểm nào. 1.3 Họ giao thức TCP/IP Bao gồm hai phần chính: • Các giao thức tạo thành hệ thống truyền dẫn. • Các giao thức hỗ trợ ứng dụng. 5 Ứng dụng Chat Client-Server trong mạng Lan Tầng liên mạng (Internet) • Sử dụng giao thức connectionless – IP, là hạt nhân hoạt động của hệ thống truyền dẫn Internet. • Các thuật toán định tuyến RIP, OSFD, BGP • Cho phép kết nối một cách mềm dẻo và linh hoạt các loại mạng “vật lý” khác nhau; như: Ethernet, Token Ring, X25 v.v. dựa trên địa chỉ IP. Tầng giao vận (Transport) • TCP là giao thức hướng liên kết (connection – oriented) • UDP là giao thức không hướng liên kết (connectionless) 6 Ứng dụng Chat Client-Server trong mạng Lan 1.4 Định danh trên Internet và quan hệ với các tầng Địa chỉ dùng trong tầng liên kết dữ liệu: • Địa chỉ vật lý / địa chị MAC o Sử dụng trong tầng liên kết dữ liệu o Cố định trên NIC o Sử dụng để địa chỉ hóa máy tính trong các mạng quảng bá Địa chỉ dùng trên Internet • Địa chỉ IP • Dùng trong giao thức IP (tầng mạng) • Giá trị phụ thuộc từng mạng, mỗi card được gán một địa chỉ IP • Sử dụng để định danh một máy tính trong một mạng IP, ví dụ: o 133.113.215.10 (IPv4) o 2001:200:0:8803::53 (IPv6) Địa chỉ sử dụng trong tầng giao vận 7 Ứng dụng Chat Client-Server trong mạng Lan • Số hiệu cổng o Một chỉ số phụ, dùng kèm theo địa chỉ IP o Các ứng dụng được định danh bởi một địa chỉ IP và một số hiệu cổng • Ví dụ: HTTP cổng 80, FTP cổng 20, 21… 1.5 Khuôn dạng gói tin • Phần đầu gói tin IP o Phiên bản giao thức (4 bits)  IPv4  IPv6 o Độ dài phần đầu (4 bits)  Tính theo từ (4 bytes)  Min: 5  Max: 60 o DS (Differentiated Service: 8 bits)  Được sử dụng trong quản lý QoS o Độ dài toàn bộ, tính cả phần đầu (16 bits)  Tính theo bytes  Max: 65536 o ID – Số hiệu gói tin  Dùng để xác định chuỗi các gói tin bị phân mảnh o Flag – Cờ o Fragmentation offset – vị trí gói tin phân mảnh trong gói tin ban đầu o TTL, 8 bits – Thời gian sống  Độ dài đường đi gói tin có thể đi qua  Max: 255  Router giảm TTL đi 1 đơn vị khi xử lý  Gói tin bị hủy nếu TTL = 0 o Protocol – Giao thức tầng trên  Giao thức tầng giao vận (TCP, UDP,…)  Các giao thức tầng mạng khác (ICMP, IGMP, OSPF) o Checksum – kiểm tra lỗi o Địa chỉ IP nguồn  32 bit, địa chỉ của trạm gửi o Địa chỉ IP đích  32 bit, địa chỉ của trạm đích 8 Ứng dụng Chat Client-Server trong mạng Lan • Khuôn dạng bức tin (với giao thức UDP) o Source port – 16 bits o Dest port – 16 bits o Độ dài toàn bộ bức tin (tính theo bytes) – 16 bits o Checksum: kiểm soát lỗi – 16 bits 9 Ứng dụng Chat Client-Server trong mạng Lan • Phần đầu gói tin IP o Source port – 16 bits o Dest port – 16 bits o Sequence number – 4 bytes  Được sử dụng để truyền dữ liệu tin cậy o ACK – 4 bytes  Được sử dụng để truyền dữ liệu tin cậy 10 [...]... IGMP2, IGMP3 - sử dụng socket với kiểu SOCK_DGRAM - sử dụng cấu trúc ip_mreq để định địa chỉ nhóm - sử dụng hàm setsockpt để tác động lên socket 3.2 Cài đặt và kiểm thử a) Server 20 Ứng dụng Chat Client- Server trong mạng Lan b) Client khi cần đăng nhập c) Client đăng nhập thành công 21 Ứng dụng Chat Client- Server trong mạng Lan d )Chat giữa 2 client 22 Ứng dụng Chat Client- Server trong mạng Lan e) Gửi tin... “STATUS”: trạng thái client 17 Ứng dụng Chat Client- Server trong mạng Lan c2) Quá trình gửi tin nhắn gửi tin nhắn Chat (gửi cho client 2) Server nhận tin nhắn Chat (nhận từ server Client 1 Client 2 Client gửi gói tin chat đến Server CHAT : Tên gói tin ”SENDNICK”: tên client gửi tin nhắn tới Server “RECVNICK”: tên client nhận tin nhắn từ Server “TEXT”: nội dung chat client gửi tin nhắn c3) Quá trình thoát Nội... thoát (client gửi tới Server) “EXIT”: tên gói tin ”NICK”: tên client cần thoát Nội dung gói tin phản hồi thooát (Server gửi cho các client trong mạng) 18 Ứng dụng Chat Client- Server trong mạng Lan “NICK” tên client vừa thoát “Status” trạng thái của client gửi gói tin thoát gửi gói tin client 1 đã thoát Client 1 Client 2 Server gửi gói tin client 1 đã thoát Client 3 gửi gói tin client 1 đã thoát Client. . .Ứng dụng Chat Client- Server trong mạng Lan PHẦN II Giới thiệu mô hình Client – Server 2.1 Mô hình Client – Server và một số khả năng ứng dụng Mô hình chuẩn cho các ứng dụng trên mạng là mô hình client- server Trong mô hình này máy tính đóng vai trò là một client là máy tính có nhu cầu cần phục vụ dịch vụ và máy tính đóng vai trò là một server là máy tính có thể đáp ứng được các yêu... chương trình c) Các quá trình gửi tin nhắn giữa Client và Server c1) Quá trình đăng nhập Server gửi gói tin đăng nhập gửi phản hồi gói tin đăng nhập (Ýes / No) gửi gói tin dữ liệu 16 Ứng dụng Chat Client- Server trong mạng Lan gửi gói tin client 1 đã đăng nhập Client 1 gửi gói tin client 1 đã đăng nhập Client 2 Client 3 gửi gói tin client 1 đã đăng nhập Client … gửi gói tin client 1 đã đăng nhập Client. .. chỉ IP trong khoảng này đại diện cho một nhóm multicast - một địa chỉ IP trong nhóm multicast được sử dụng chung cho tất cả các thành viên của nhóm để gửi và nhận dữ liệu Phần III Thiết kế chương trình Chat 3.1 Các chứ năng trong chương trình a) các chức năng bên client Client 15 Ứng dụng Chat Client- Server trong mạng Lan Gửi tin nhắn Đăng nhập Thoát chương trình b) Các chức năng bên Server Server... gói tin client 1 đã thoát Client n c4) Lập trình Multicast Các bước: - tạo UDP socket tham gia một nhóm multicast chỉ ra bởi một địa chỉ IP lớp D nhận các gói tin gửi đến cho nhóm đó gửi các gói tin đến các máy trong nhóm thông qua địa chỉ IP của nhóm 19 Ứng dụng Chat Client- Server trong mạng Lan - rời bỏ khỏi nhóm multicast - đóng socket Lập trình multicast với winsock: - winsock hỗ trợ lập trình Multicast... các client Khái niệm client- server chỉ mang tính tương đối, điều này có nghĩa là một máy có thể lúc này đóng vai trò là client và lúc khác lại đóng vai trò là server Nhìn chung, client là một máy tính cá nhân, còn các Server là các máy tính có cấu hình mạnh có chứa các cơ sở dữ liệu và các chương tŕnh ứng dụng để phục vụ một dịch vụ nào đấy từ các yêu cầu của client 11 Ứng dụng Chat Client- Server trong. .. trong mạng Lan Cách thức hoạt động của mô hình client- server như sau: một tiến tŕnh trên server khởi tạo luôn ở trạng thái chờ yêu cầu từ các tiến trình client tiến trình tại client được khởi tạo có thể trên cùng hệ thống hoặc trên các hệ thống khác được kết nối thông qua mạng, tiến trình client thường được khởi tạo bởi các lệnh từ người dùng Tiến trình client ra yêu cầu và gửi chúng qua mạng tới server. .. Chat Client- Server trong mạng Lan d )Chat giữa 2 client 22 Ứng dụng Chat Client- Server trong mạng Lan e) Gửi tin nhắn cho nhóm huyanh gửi tin nhắn cho nhóm 23 Ứng dụng Chat Client- Server trong mạng Lan 24 Ứng dụng Chat Client- Server trong mạng Lan 25 . TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC Bài Tập Lớn Lập Trình Mạng ĐỀ TÀI Xây ứng dụng Chat Client – Server trong mạng Lan Giáo viên hướng dẫn: Ths Nguyễn Tuấn Dũng Nhóm. thooát (Server gửi cho các client trong mạng) 18 gửi tin nhắn Chat (gửi cho client 2) nhận tin nhắn Chat (nhận từ server Server Client 2Client 1 Ứng dụng Chat Client- Server trong mạng Lan “NICK”. ACK – 4 bytes  Được sử dụng để truyền dữ liệu tin cậy 10 Ứng dụng Chat Client- Server trong mạng Lan PHẦN II Giới thiệu mô hình Client – Server 2.1 Mô hình Client – Server và một số khả năng ứng

Ngày đăng: 23/10/2014, 16:27

Từ khóa liên quan

Mục lục

  • PHẦN I: GIAO THỨC TCP / IP

    • 1.1 Tổng quan

    • 1.2 Các tầng của mô hình tham chiếu TCP/IP

    • 1.3 Họ giao thức TCP/IP

    • 1.4 Định danh trên Internet và quan hệ với các tầng

    • 1.5 Khuôn dạng gói tin

    • PHẦN II Giới thiệu mô hình Client – Server

      • 2.1 Mô hình Client – Server và một số khả năng ứng dụng.

      • 2.2 Socket

      • 2.3 Giới thiệu Multicast

      • Phần III Thiết kế chương trình Chat

        • 3.1 Các chứ năng trong chương trình

        • 3.2 Cài đặt và kiểm thử

Tài liệu cùng người dùng

Tài liệu liên quan