1. Trang chủ
  2. » Luận Văn - Báo Cáo

Sử dụng lập trình socket xây dựng chương trình chat lan

106 8 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

Thông tin cơ bản

Tiêu đề Sử Dụng Lập Trình Socket – Xây Dựng Chương Trình Chát Lan
Tác giả Lê Anh Tuấn
Người hướng dẫn ThS. Đặng Thái Sơn
Trường học Trường Đại Học Vinh
Chuyên ngành Điện Tử Viễn Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2015
Thành phố Nghệ An
Định dạng
Số trang 106
Dung lượng 2,35 MB

Cấu trúc

  • CHƯƠNG 1.TỔNG QUAN VỀ LẬP TRÌNH MẠNG (5)
    • 1.1. Mô hình tham chiếu OSI (11)
    • 1.2. Giao thức TCP/IP (14)
    • 1.3. Mô hình truyền thông trong cấu trúc mạng (16)
      • 1.3.1. Nguyên tắc truyền thông (16)
      • 1.3.2. Nguyên tắc của phương pháp phân tầng (16)
    • 1.4. Địa chỉ IP – Các địa chỉ IP dành riêng (19)
    • 1.5. Giao thức truyền file (19)
      • 1.5.1. Khái niệm về giao thức FTP (19)
      • 1.5.2. Đặc điểm và nguyên lý hoạt động (20)
      • 1.5.3. Thiết lập kênh điều khiển và chứng thực người dùng trong FTP (0)
      • 1.5.4. Quản lý kênh dữ liệu FTP (24)
      • 1.5.5. Các phương thức truyền dữ liệu trong FTP (28)
    • 1.6. Phân loại một số mạng thông dụng (29)
      • 1.6.1. Mạng LAN (29)
      • 1.6.2. Mạng WAN (38)
      • 1.6.3. Mạng Internet (40)
    • 1.7. Lập trình mạng với sockets (0)
      • 1.7.1. Socket (42)
      • 1.7.2. Lập trình mạng với UDP socket (0)
      • 1.7.3. Ưu, nhược điểm của giao thức UDP (47)
    • 1.8. Mô hình Client/ Server (48)
      • 1.8.1. Tổng quan (48)
      • 1.8.2. Giao thức cho ứng dụng Client/Server (54)
  • CHƯƠNG 2. LẬP TRÌNH C# CĂN BẢN VÀ PHẦN MỀM VISUAL STUDIO (6)
    • 2.1. Ngôn ngữ lập trình C# (0)
      • 2.1.1. Tổng quan về C# (57)
      • 2.1.2. Các thành phần cơ bản (57)
      • 2.1.3. Kiểu dữ liệu (58)
      • 2.1.4. Câu lệnh (59)
      • 2.1.5. Các toán tử (63)
    • 2.2. Lập trình mạng với C# (0)
      • 2.2.1. Lập trình mạng với socket (0)
      • 2.2.2. Lập trình với C# socket helper (0)
    • 2.3. Giới thiệu phần mềm Visual Studio (0)
  • CHƯƠNG 3. XÂY DỰNG VÀ THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH 3.1. Giới thiệu chương trình (0)
    • 3.2. Kết nối Client/Server với TCP/IP (74)
    • 3.3. Tạo kết nối - Gửi và nhận tin (76)
    • 3.4. Xây dựng và thiết kế chương trình (0)
  • TÀI LIỆU THAM KHẢO (87)
  • PHỤ LỤC (88)

Nội dung

QUAN VỀ LẬP TRÌNH MẠNG

Mô hình tham chiếu OSI

Mô hình tham chiếu Open System Interconnect (OSI) là một cấu trúc giúp hiểu cách thức truyền dữ liệu giữa các ứng dụng trên máy tính Mô hình này bao gồm 7 lớp, mỗi lớp đảm nhiệm các chức năng mạng khác nhau Các chức năng mạng có thể được phân chia cho một hoặc một cặp lớp liền kề trong 7 lớp này, đồng thời mỗi lớp hoạt động độc lập với các lớp khác.

Sự tách lớp của mô hình này mang lại những lợi ích sau:

- Chia hoạt động thông tin mạng thành những phần nhỏ hơn, đơn giản hơn giúp chúng ta dễ khảo sát

- Chuẩn hóa các thành phần mạng để cho phép phát triển mạng từ nhiều nhàcung cấp sản phẩm

Ngăn chặn sự thay đổi của một lớp ảnh hưởng đến các lớp khác giúp mỗi lớp phát triển độc lập và nhanh chóng hơn.

Mô hình tham chiếu OSI định nghĩa các qui tắc cho các nội dung sau:

- Cách thức các thiết bị giao tiếp và truyền thông được với nhau

- Các phương pháp để các thiết bị trên mạng khi nào thì được truyền dữ liệu, khi nào thì không được

- Các phương pháp để đảm bảo truyền đúng dữ liệu và đúng bên nhận

- Cách thức vận tải, truyền, sắp xếp và kết nối với nhau

- Cách thức đảm bảo các thiết bị mạng duy trì tốc độ truyền dữ liệu thích hợp

- Cách biểu diễn một bit thiết bị truyền dẫn

Mô hình tham chiếu OSI được chia thành bảy lớp với các chức năng sau:

Lớp ứng dụng (Application Layer) là giao diện giữa các chương trình ứng dụng của người dùng và mạng, chịu trách nhiệm xử lý truy cậ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 dịch vụ cho lớp nào khác, mà chỉ cung cấp dịch vụ cho các ứng dụng như truyền file, gửi nhận email, Telnet, HTTP, FTP và SMTP.

Lớp trình diễn (Presentation Layer) đóng vai trò quan trọng trong việc thương lượng và xác lập định dạng dữ liệu được trao đổi giữa các hệ thống Nó đảm bảo rằng thông tin từ lớp ứng dụng của một hệ thống đầu cuối có thể được đọc hiểu bởi lớp ứng dụng của hệ thống khác Bên cạnh đó, lớp trình bày còn thực hiện chức năng chuyển đổi giữa các định dạng dữ liệu khác nhau thông qua một định dạng chung, đồng thời thực hiện nén và giải nén dữ liệu để tối ưu hóa quá trình truyền tải.

Lớp phiên (Session Layer) 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 Nó cung cấp dịch vụ cho lớp trình bày và đồng bộ hóa các tác vụ người dùng bằng cách đặt điểm kiểm tra trong luồng dữ liệu Điều này cho phép chỉ dữ liệu truyền sau điểm kiểm tra cuối cùng cần phải truyền lại nếu mạng không hoạt động Lớp phiên cũng thực hiện 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 và trong bao lâu Ví dụ về các giao thức sử dụng lớp này bao gồm RPC và NFS, và nó hỗ trợ kết nối theo ba cách: Half duplex, Simplex và Full-duplex.

Lớp vận chuyển (Transport Layer) chịu trách nhiệm 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 thành một luồng tại hệ thống máy nhận, đảm bảo việc truyền tải thông điệp giữa các thiết bị một cách đáng tin cậy Dữ liệu trong lớp này được 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:

Khi một thông điệp lớn được chia thành nhiều phân đoạn nhỏ, lớp vận chuyển sẽ sắp xếp thứ tự các phân đoạn trước khi kết nối chúng lại thành thông điệp ban đầu.

- 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à quá trình trong đó lớp vận chuyển sử dụng tín hiệu xác nhận để đảm bảo dữ liệu được truyền đi một cách chính xác Bên gửi sẽ trì hoãn việc gửi phân đoạn dữ liệu tiếp theo cho đến khi bên nhận gửi tín hiệu xác nhận, xác nhận rằng phân đoạn dữ liệu trước đó đã được nhận đầy đủ.

Lớp mạng (Network Layer) có vai trò quan trọng trong việc lập địa chỉ cho các thông điệp, chuyển đổi địa chỉ và tên logic thành địa chỉ vật lý, đồng thời gửi packet từ mạng nguồn đến mạng đích Lớp này quyết định đường đi của dữ liệu từ máy tính nguồn đến máy tính đích, dựa vào tình trạng mạng, ưu tiên dịch vụ và các yếu tố khác Ngoài ra, lớp mạng còn quản lý lưu lượng trên mạng, bao gồm chuyển đổi gói, định tuyến và kiểm soát tắc nghẽn dữ liệu Dữ liệu tại lớp này được gọi là 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:

- Cơ chế truy cập đường truyền

- Thứ tự phân phối frame

Lớp data link chuyển đổi các bít từ lớp vật lý thành các frame dữ liệu thông qua các nghi thức đặc trưng Lớp này được chia thành hai lớp con.

- Lớp con LLC (logical link control)

- Lớp con MAC (media access control)

Lớp con LLC nằm trên các giao thức truy cập đường truyền khác, cung cấp sự linh hoạt trong giao tiếp Nó hoạt động độc lập với các giao thức truy cập, cho phép các giao thức lớp trên, như IP ở lớp mạng, hoạt động mà không phụ thuộc vào loại phương tiện LAN Lớp con LLC có thể dựa vào các lớp thấp hơn để cung cấp truy cập đường truyền, trong khi lớp con MAC đảm bảo tính thứ tự truy cập vào môi trường LAN Để xác định mỗi trạm khi nhiều trạm cùng chia sẻ môi trường truyền, lớp 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 số duy nhất cho mỗi giao tiếp LAN (card mạng) Lớp vật lý (Physical Layer) định nghĩa các quy cách về điện, cơ, thủ tục và các đặc tả chức năng cần thiết để 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:

- 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ý

Lớp vật lý trong mạng máy tính chịu trách nhiệm truyền tải tín hiệu giữa các thiết bị, bao gồm các yếu tố kỹ thuật như mức điện áp, định thời tín hiệu, tốc độ dữ liệu và độ dài truyền tải tối đa Thiết bị hoạt động chỉ trong lớp vật lý không có kiến thức về dữ liệu mà nó truyền tải, mà chỉ thực hiện việc truyền hoặc nhận dữ liệu một cách đơn giản.

Giao thức TCP/IP

Hình 1.2 Mô hình TCP/IP

The emergence of the TCP/IP protocol is intrinsically linked to the development of the Internet, which evolved from the ARPAnet (Advanced Research Projects Agency Network) established by the Department of Defense.

Mỹ đã phát triển bộ giao thức Internet, nổi bật với tính mở và tính phổ biến Hai giao thức chính được sử dụng là TCP (Transmission Control Protocol) và IP (Internet Protocol), nhanh chóng được chấp nhận và phát triển bởi nhiều tổ chức và cá nhân trên toàn thế giới.

Internet được hình thành từ sự hợp tác của 5 nhà nghiên cứu và các hãng công nghiệp máy tính với mục tiêu xây dựng một mạng truyền thông toàn cầu Bộ giao thức TCP/IP, tương tự như mô hình OSI, được chia thành hai phần: Giao thức IP cho kết nối mạng và Giao thức TCP để đảm bảo tính tin cậy trong việc truyền dữ liệu Ở lớp ứng dụng, người sử dụng truy cập các dịch vụ trên Internet thông qua các chương trình ứng dụng, tương tác với các giao thức ở lớp giao vận để gửi và nhận dữ liệu Lớp giao vận có nhiệm vụ cung cấp liên lạc giữa các chương trình ứng dụng, đảm bảo thông tin được truyền đạt một cách tin cậy và theo thứ tự Phần mềm giao thức lớp giao vận cung cấp TCP, cho phép xác nhận thông tin và truyền lại các gói dữ liệu bị mất, trong khi UDP là một giao thức khác mà lớp giao vận cung cấp cho các môi trường truyền dẫn có độ tin cậy cao như cáp quang.

Lớp Internet có nhiệm vụ chính là quản lý việc liên lạc giữa các thiết bị trong mạng Nó nhận yêu cầu gửi gói dữ liệu kèm theo định danh máy nhận, sau đó đóng gói thông tin vào một packet và điền vào phần đầu của nó Lớp này sử dụng các giao thức định tuyến để chuyển gói tin đến đích hoặc đến trạm kế tiếp Tại điểm nhận, gói tin sẽ được kiểm tra tính hợp lệ và tiếp tục xử lý bằng các giao thức định tuyến Đối với các packet thuộc cùng một mạng cục bộ, phần mềm sẽ đảm bảo quá trình truyền tải diễn ra hiệu quả.

Internet sẽ loại bỏ phần đầu của gói tin và lựa chọn giao thức lớp phù hợp để xử lý Cuối cùng, lớp Internet đảm nhiệm việc gửi và nhận các thông điệp kiểm soát cũng như xử lý lỗi thông qua ICMP.

Lớp giao tiếp mạng là lớp thấp nhất trong mô hình TCP/IP, có nhiệm vụ nhận và truyền tải các IP datagram trên một mạng cụ thể Lớp này được chia thành hai lớp con.

- Lớp vật lý: Lớp vật lý làm việc với các thiết bị vật lý, truyền tới dòng bit 0, 1 từ ni gửi đến nơi nhận

Lớp liên kết dữ liệu tổ chức thông tin thành các khung (frame), trong đó phần đầu khung chứa địa chỉ và thông tin điều khiển, còn phần cuối khung được sử dụng để phát hiện lỗi.

Mô hình truyền thông trong cấu trúc mạng

1.3.1.Nguyên tắc truyền thông Để một mạng máy tính trở một môi trường truyền dữ liệu thì nó cần phải có những yếu tố sau:

- Các hệ thống được liên kết với nhau theo một cấu trúc kết nối (topology) nàođó

Việc chuyển dữ liệu giữa các máy tính được thực hiện qua mạng dựa trên các quy định thống nhất, được gọi là giao thức mạng.

- Phân chia hoạt động truyền thông của hệ thống thành nhiều lớp theo các nguyên tắc nhất định

Việc xem xét các module độc lập giúp đơn giản hóa thiết kế và cài đặt Phương pháp phân tầng này được áp dụng phổ biến trong xây dựng mạng và các chương trình truyền thông.

1.3.2 Nguyên tắc của phương pháp phân tầng

Mỗi hệ thống thành phần trong mạng được thiết kế theo cấu trúc nhiều tầng, với số lượng và chức năng của từng tầng đều giống nhau.

- Các tầng nằm chồng lên nhau, dữ liệu được chỉ trao đổi trực tiếp giữa hai tầng kề nhau từ tầng trên xuống tầng dưới và ngược lại

Để đảm bảo chức năng hoạt động hiệu quả của hệ thống, cần xác định mối quan hệ giữa các tầng kề nhau Dữ liệu được truyền từ tầng cao nhất xuống tầng thấp nhất của hệ thống truyền, sau đó qua đường nối vật lý dưới dạng các bit Cuối cùng, dữ liệu sẽ được chuyển ngược lên từ tầng thấp nhất đến tầng cao nhất của hệ thống nhận.

Chỉ có hai tầng thấp nhất trong mô hình có liên kết vật lý với nhau, trong khi các tầng trên cùng, đặc biệt là tầng thứ tư, chỉ có liên kết logic Liên kết logic giữa các tầng được thiết lập thông qua các tầng phía dưới và phải tuân thủ các quy định nghiêm ngặt, được gọi là giao thức của tầng.

Hình 1.3 Mô hình truyền thông đơn giản Trong kiến trúc phân tầng, một số mô hình được phát triển:

- Mô hình tham chiếu kết nối các hệ thống mở OSI

Trong lập trình máy tính, mô hình phân tầng thu gọn trong truyền thông bao gồm nhiều thành phần như chương trình ứng dụng, chương trình truyền thông, máy tính và mạng Chương trình ứng dụng cho phép người dùng thực hiện các tác vụ trên máy tính và tham gia vào quá trình trao đổi thông tin giữa các máy tính Trên hệ điều hành đa nhiệm như Windows hoặc UNIX, nhiều ứng dụng có thể hoạt động đồng thời, bao gồm cả ứng dụng mạng Các máy tính kết nối với nhau qua mạng, cho phép dữ liệu được trao đổi từ máy tính này sang máy tính khác.

Việc gửi dữ liệu giữa hai ứng dụng trên hai máy tính khác nhau qua mạng được thực hiện thông qua một chương trình truyền thông Ứng dụng gửi dữ liệu đến chương trình truyền thông trên máy tính của nó, sau đó chương trình này sẽ chuyển dữ liệu tới máy tính nhận Tại máy tính nhận, chương trình truyền thông sẽ tiếp nhận và kiểm tra dữ liệu trước khi chuyển giao cho ứng dụng đang chờ nhận Mô hình truyền thông đơn giản được chia thành ba tầng độc lập: tầng ứng dụng, tầng giao vận và tầng tiếp cận mạng.

Tầng tiếp cận mạng đảm nhiệm việc trao đổi dữ liệu giữa các máy tính và mạng mà chúng kết nối Để dữ liệu đến được máy tính đích, máy gửi cần cung cấp địa chỉ của máy nhận, từ đó mạng sẽ chuyển thông tin đến đúng nơi Bên cạnh đó, máy gửi có thể sử dụng nhiều dịch vụ khác nhau mà mạng cung cấp, như gửi ưu tiên và tốc độ cao, đồng thời có thể sử dụng nhiều phần mềm trong tầng này.

Tầng giao vận thực hiện quá trình truyền thông end-to-end giữa hai ứng dụng không liên quan tới mạng, nằm trên tầng tiếp cận mạng Tầng truyền dữ liệu không quan tâm đến bản chất của các ứng dụng trao đổi dữ liệu, mà tập trung vào việc đảm bảo dữ liệu được truyền tải một cách an toàn.

Tầng truyền dữ liệu đảm bảo rằng dữ liệu được gửi đến đúng đích và theo thứ tự xử lý chính xác Trong khi đó, tầng ứng dụng chứa các module phục vụ cho nhu cầu đa dạng của người sử dụng, với các ứng dụng khác nhau như truyền file và truyền thư mục yêu cầu các module riêng biệt.

Hình 1.4.Trao đổi giữa các tầng

Địa chỉ IP – Các địa chỉ IP dành riêng

Mỗi địa chỉ IP (IPv4) có độ dài 32 bits, được chia thành 4 vùng, mỗi vùng 1 byte, và có thể được biểu thị dưới dạng thập phân, bát phân, thập lục phân hoặc nhị phân Cách viết phổ biến nhất là sử dụng ký pháp thập phân có dấu chấm để phân tách các vùng Địa chỉ IP đóng vai trò là định danh duy nhất cho một host trên liên mạng, với khuôn dạng để xác định từng host trong mạng TCP/IP.

Các địa chỉ IP được phân loại thành 5 lớp A, B, C, D, E dựa trên tổ chức và kích thước của các mạng con trong liên mạng Các bit đầu tiên của byte đầu tiên được sử dụng để xác định lớp địa chỉ.

Trong nhiều trường hợp, mạng có thể được phân chia thành các mạng con (subnet), và để định danh các mạng con này, ta có thể sử dụng các vùng subnetid Các vùng subnetid này được trích xuất từ vùng hostid, đặc biệt là trong ba lớp A, B và C.

Giao thức truyền file

1.5.1 Khái niệm về giao thức FTP

Giao thức truyền tệp tin (FTP) là một phương thức phổ biến để trao đổi tệp qua mạng sử dụng giao thức TCP/IP, bao gồm Internet và intranet FTP hoạt động thông qua hai máy tính: một máy chủ và một máy khách Máy chủ FTP, chạy phần mềm cung cấp dịch vụ, lắng nghe yêu cầu từ các máy tính khác, trong khi máy khách khởi đầu liên kết để sử dụng dịch vụ Sau khi kết nối, máy khách có thể thực hiện nhiều thao tác như tải tệp lên hoặc xuống, đổi tên, hoặc xóa tệp trên máy chủ Vì FTP là một giao thức chuẩn công khai, bất kỳ công ty phần mềm hay lập trình viên nào cũng có thể phát triển phần mềm cho máy chủ hoặc máy khách FTP Hầu hết các hệ điều hành đều hỗ trợ FTP, cho phép các máy tính kết nối trong mạng TCP/IP xử lý tệp trên nhau, bất kể hệ điều hành của chúng.

Trên thị trường hiện nay, có nhiều trình khách và trình chủ FTP, hầu hết đều cho phép người dùng truy cập miễn phí.

FTP hoạt động trên hai cổng 20 và 21, sử dụng giao thức TCP Trình chủ FTP lắng nghe yêu cầu từ các trình khách trên cổng 21, tạo ra một dòng điều khiển cho việc chuyển lệnh Để truyền tải tập tin giữa hai máy, cần một kết nối khác Tùy thuộc vào chế độ truyền tải, trình khách (chế độ năng động) hoặc trình chủ (chế độ bị động) sẽ lắng nghe yêu cầu kết nối Trong chế độ năng động, trình chủ phải thiết lập kết nối trên cổng 20 trước khi liên lạc với trình khách, trong khi chế độ bị động không yêu cầu đóng kết trước.

1.5.2 Đặc điểm và nguyên lý hoạt động

 Mô hình hoạt động của FTP

Giao thức FTP hoạt động dựa trên một mô hình rõ ràng, quy định các nguyên tắc mà thiết bị phải tuân thủ trong quá trình trao đổi file Mô hình này yêu cầu thiết lập hai kênh thông tin giữa các thiết bị, đồng thời mô tả các thành phần của FTP cần thiết để quản lý các kênh này ở cả hai phía truyền và nhận.

Mô hình này cung cấp một khởi điểm lý tưởng để phân tích hoạt động của FTP, bao gồm tiến trình giữa Server-FTP và User-FTP.

FTP là giao thức truyền thống theo mô hình Client/Server, trong đó thuật ngữ Client thường được thay thế bằng "user" để nhấn mạnh vai trò của người sử dụng trong việc thực hiện các lệnh FTP trên máy Client Phần mềm FTP được cài đặt trên thiết bị gọi là tiến trình, với phần mềm trên máy Server được gọi là tiến trình Server-FTP và phần trên máy Client được gọi là tiến trình User-FTP.

 Kênh điều khiển và kênh dữ liệu trong FTP:

Một khái niệm quan trọng về FTP là giao thức này sử dụng kết nối TCP nhưng không chỉ dựa vào một kênh TCP như hầu hết các giao thức truyền thông khác.

Mô hình FTP chia quá trình truyền thông giữa bộ phận Server với bộ phận Client ra làmhai kênh logic:

Kênh điều khiển trong FTP là kênh logic TCP dùng để khởi tạo và duy trì phiên kết nối Kênh này chỉ truyền tải thông tin điều khiển, bao gồm các lệnh và hồi đáp, mà không được sử dụng để truyền file.

Kênh dữ liệu là một kết nối TCP được thiết lập giữa Server và Client mỗi khi dữ liệu được truyền Dữ liệu được gửi qua kênh này và sẽ bị ngắt khi quá trình truyền file hoàn tất Việc sử dụng các kênh riêng lẻ mang lại sự linh hoạt trong việc truyền dữ liệu, nhưng cũng làm cho FTP trở nên phức tạp hơn.

 Các tiến trình và thuật ngữ trong FTP:

Mô hình hoạt động của FTP được chia thành hai thành phần logic tương ứng với các kênh điều khiển và dữ liệu Thành phần Protocol Interpreter (PI) quản lý kênh điều khiển, chịu trách nhiệm phát và nhận lệnh, trong khi thành phần Data Transfer Process (DTP) thực hiện việc gửi và nhận dữ liệu giữa Client và Server.

Giao thức FTP bao gồm hai tiến trình ở phía Server và ba tiến trình ở phía Client, trong đó có một thành phần quan trọng là giao diện người dùng FTP Thành phần này không tồn tại ở phía Server, nhưng đóng vai trò thiết yếu trong việc mô tả chi tiết hoạt động của giao thức FTP.

Dưới đây là hình đối chiếu các tiến trình vào trong mô hình FTP:

Hình 1.5 Các tiến trình trong mô hình FTP

 Các tiến trình phía Server

Các tiến trình phía server bao gồm hai giao thức:

Server Protocol Interpreter (Server-PI) là thành phần quản lý kênh điều khiển trên Server, lắng nghe yêu cầu kết nối từ người dùng qua cổng chuyên dụng Khi kết nối được thiết lập, Server-PI nhận lệnh từ User-PI, phản hồi lại và quản lý quá trình truyền dữ liệu trên Server.

Quá trình Chuyển Dữ Liệu Máy Chủ (Server DataTransfer Process - Server-DTP) đảm nhiệm việc gửi và nhận file từ bộ phận User-DTP Server-DTP thiết lập kết nối kênh dữ liệu và lắng nghe kết nối từ người dùng, đồng thời tương tác với máy chủ file trên hệ thống cục bộ để thực hiện việc đọc và sao chép file.

 Các tiến trình phía Client

User Protocol Interpreter (User -PI) là thành phần quan trọng trong việc quản lý kênh điều khiển phía Client, chịu trách nhiệm khởi tạo phiên kết nối FTP bằng cách gửi yêu cầu đến Server-PI Sau khi kết nối được thiết lập, User-PI xử lý các lệnh từ giao diện người dùng, chuyển tiếp chúng đến Server-PI và nhận phản hồi về Bên cạnh đó, nó cũng quản lý tiến trình User-DTP, đảm bảo mọi hoạt động diễn ra suôn sẻ.

Quá trình Chuyển Giao Dữ Liệu Người Dùng (User -DTP) là thành phần DTP nằm ở phía người dùng, có nhiệm vụ gửi và nhận dữ liệu từ Server-DTP User-DTP có khả năng thiết lập hoặc lắng nghe các yêu cầu kết nối kênh dữ liệu trên Server, đồng thời tương tác với thiết bị lưu trữ file phía Client.

Phân loại một số mạng thông dụng

Mạng cục bộ LAN (Local Area Network) là hệ thống truyền thông tốc độ cao, kết nối các máy tính và thiết bị xử lý dữ liệu trong một khu vực địa lý nhỏ như một tầng hoặc một tòa nhà Tên gọi "mạng cục bộ" phản ánh quy mô của mạng, nhưng không chỉ có quy mô mà còn nhiều đặc tính và công nghệ khác quyết định tính năng của mạng Dưới đây là một số đặc điểm nổi bật của mạng cục bộ.

 Đặc điểm của mạng cục bộ:

Mạng cục bộ có quy mô nhỏ, thường có bán kính dưới vài km, cho phép thiết lập kết nối mà không cần sử dụng các thiết bị dẫn đường phức tạp.

Mạng cục bộ thường thuộc quyền sở hữu của một tổ chức, điều này có vẻ không quan trọng nhưng thực tế lại rất cần thiết cho việc quản lý mạng hiệu quả.

Mạng cục bộ có tốc độ cao và độ tin cậy tốt, với tốc độ thông thường đạt 10, 100 Mb/s, và hiện nay có thể lên tới 1Gb/s nhờ vào Gigabit Ethernet, trong khi đó tốc độ trên mạng rộng chỉ đạt vài Kbit/s.

- Xác xuất lỗi rất thấp

 Các đặc tính của mạng LAN

Đường truyền là thành phần quan trọng trong mạng máy tính, đóng vai trò là phương tiện truyền tải tín hiệu điện tử giữa các máy tính Các tín hiệu này biểu thị thông tin và dữ liệu dưới dạng xung nhị phân (ON_OFF) Tất cả các tín hiệu truyền giữa các máy tính đều thuộc sóng điện từ, và tùy theo tần số, có thể thiết lập các đường truyền vật lý khác nhau Các máy tính được kết nối thông qua các loại cáp truyền như cáp đồng trục và cáp xoắn đôi.

Chuyển mạch là kỹ thuật chuyển tín hiệu giữa các nút trong mạng, giúp hướng thông tin tới đích cụ thể Trong mạng nội bộ, quá trình chuyển mạch được thực hiện thông qua các thiết bị như HUB và Switch.

Kiến trúc mạng máy tính mô tả cách kết nối các máy tính và các quy tắc mà các thực thể truyền thông phải tuân thủ để đảm bảo hiệu suất mạng Hai yếu tố chính của kiến trúc mạng là topo mạng, tức là cách bố trí các thiết bị trong mạng, và giao thức mạng, là các quy tắc điều chỉnh việc truyền tải dữ liệu.

Topology mạng là cách kết nối các máy tính với nhau theo một hình thức hình học, thường được gọi là topo mạng Các dạng mạng cơ bản bao gồm hình sao và hình bus.

Network Protocol: Tập hợp các quy ước truyền thông giữa các thực thể truyền thông mà ta gọi là giao thức (hay nghi thức) của mạng

Các giao thức thường gặp nhất là: TCP/IP, NETBIOS, IPX/SPX,

Hệ điều hành mạng: Hệ điều hành mạng là một phần mềm hệ thống có các chức năng sau:

Quản lý tài nguyên của hệ thống, các tài nguyên này gồm:

Tài nguyên thông tin, từ góc độ lưu trữ, chủ yếu liên quan đến quản lý tệp Các hoạt động như lưu trữ tệp, tìm kiếm, xóa, sao chép, nhóm và thiết lập thuộc tính đều nằm trong phạm vi công việc này.

- Tài nguyên thiết bị: Điều phối việc sử dụng CPU, các thiết bị ngoại vi để tối ưu hóa việc sử dụng

Quản lý người dựng và các công việc trên hệ thống

Hệ điều hành đảm bảo giao tiếp giữa người sử dụng, chương trình ứng dụng với thiết bị của hệ thống

Cung cấp các tiện ích cho việc khai thác hệ thống thuận lợi (ví dụ format đĩa, sao chép tệp và thư mục, in ấn chung )

Cách kết nối các máy tính với nhau về mặt hình học mà ta gọi là topolog của mạng Có hai kiểu nối mạng chủ yếu đó là:

- Nối kiểu điểm - điểm (point - to - point)

- Nối kiểu điểm - nhiều điểm (point - to - multipoint hay broadcast)

Mạng kiểu điểm - điểm kết nối từng cặp nút, với mỗi nút có nhiệm vụ lưu trữ tạm thời và chuyển tiếp dữ liệu đến đích Phương thức hoạt động này khiến mạng được gọi là mạng "lưu và chuyển tiếp" (store and forward).

Theo kiểu điểm - nhiều điểm, tất cả các nút trong mạng chia sẻ một đường truyền vật lý chung, cho phép dữ liệu từ một nút được gửi đến tất cả các nút còn lại Để xác định đích đến của dữ liệu, các nút cần kiểm tra địa chỉ đích nhằm xác định xem dữ liệu có phải gửi cho mình hay không Cần phân biệt giữa topo của mạng cục bộ và mạng diện rộng; trong đó, topo mạng diện rộng thường đề cập đến sự kết nối giữa các mạng cục bộ thông qua các bộ dẫn đường (router) Topo của mạng diện rộng thể hiện hình trạng hình học của các bộ dẫn đường và kênh viễn thông, trong khi topo mạng cục bộ tập trung vào cấu trúc của các nút và kết nối trong một khu vực nhỏ hơn.

22 đến sự liên kết của chính các máy tính

Mạng hình sao là một cấu trúc trong đó tất cả các trạm đều kết nối với một thiết bị trung tâm, có nhiệm vụ nhận tín hiệu từ các trạm và chuyển tiếp đến trạm đích Thiết bị trung tâm có thể là bộ chuyển mạch (switch), bộ chọn đường (router) hoặc bộ phân kênh (hub), tùy thuộc vào yêu cầu truyền thông của mạng Vai trò chính của thiết bị này là thiết lập các liên kết điểm-điểm giữa các trạm, đảm bảo quá trình truyền tải dữ liệu diễn ra hiệu quả.

- Mạng trục tuyến tính (Bus)

Trong mạng trục, tất cả các trạm kết nối với nhau thông qua một đường truyền chung gọi là bus Đường truyền này được ngăn cách ở hai đầu bởi hai đầu nối đặc biệt gọi là terminator Mỗi trạm được kết nối với đường truyền chính thông qua một đầu nối chữ T (T-connector) hoặc một thiết bị thu phát (transceiver).

Khi một trạm truyền dữ liệu tín hiệu trên bus hai chiều, mọi trạm khác có thể thu tín hiệu đó trực tiếp Ngược lại, trong bus một chiều, tín hiệu chỉ di chuyển theo một hướng, do đó các terminator cần được thiết kế để phản hồi tín hiệu trở lại, đảm bảo tất cả các trạm trên mạng đều nhận được thông tin.

Trong mạng trục dữ liệu, tín hiệu được truyền qua các liên kết điểm-đa điểm (point-to-multipoint) hoặc thông qua phương thức quảng bá (broadcast) Điều này cho phép 23 thiết bị có khả năng nhận tín hiệu một cách hiệu quả.

Lập trình mạng với sockets

- Các quá trình khác có thể giao tiếp với quá trình đã công bố cổng cũng bằng cách tạo ra một socket

- Socket hướng kết nối (TCP Socket)

- Socket không hướng kết nối (UDP Socket)

Hình 1.15.Các giao thức trong lập trình Socket

1.7 Lập trình mạng với Socket

Socket là điểm kết thúc trong quá trình truyền tải dữ liệu hai chiều giữa hai socket, được xác định bởi sự kết hợp giữa địa chỉ IP và cổng Mỗi socket cần có các thông tin cần thiết để hoạt động hiệu quả.

- Địa chỉ và port cục bộ

- Địa chỉ và port kết nối tới

- Giao thức: TCP, UDP, raw IP,…

Hiện nay, hàng triệu máy tính trên thế giới kết nối internet, cho phép các chương trình giao tiếp và trao đổi thông tin dù cách xa hàng ngàn dặm Để một chương trình có thể giao tiếp với chương trình khác trên mạng, cách thức thực hiện sẽ khác nhau tùy thuộc vào ứng dụng và hệ điều hành Tuy nhiên, phần lớn các chương trình truy cập mạng đều sử dụng giao diện lập trình ứng dụng "socket".

Socket là một trong những kỹ thuật cơ bản nhất trong truyền thông mạng máy tính, cho phép thực hiện giao tiếp giữa các tiến trình Phương thức này được đề xuất bởi BSD (Berkeley Software Distribution).

TCP là giao thức "có liên kết", yêu cầu thiết lập kết nối giữa hai thực thể trước khi trao đổi dữ liệu Các tiến trình ứng dụng trên máy tính truy cập dịch vụ của TCP thông qua cổng (port) TCP, với số hiệu cổng được thể hiện bởi 2 bytes.

Một cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket) duy nhất trong mạng Dịch vụ TCP hoạt động thông qua một liên kết logic giữa hai đầu nối TCP/IP Mỗi đầu nối có khả năng tham gia nhiều liên kết với các đầu nối khác nhau Trước khi truyền dữ liệu, cần thiết lập một liên kết TCP, và khi không còn nhu cầu, liên kết này sẽ được giải phóng Các thực thể ở tầng trên sử dụng giao thức TCP thông qua các hàm gọi, bao gồm các hàm yêu cầu và trả lời, với các tham số để trao đổi dữ liệu.

Để thiết lập một liên kết TCP/IP, bạn có thể mở một liên kết mới theo hai phương thức: chủ động (active) hoặc bị động (passive).

Phương thức bị động yêu cầu TCP chờ đợi một yêu cầu kết nối từ xa thông qua đầu nối TCP/IP tại chỗ, với hàm passive Open được sử dụng để khai báo cổng TCP và các thông số như mức ưu tiên, mức an toàn Ngược lại, phương thức chủ động cho phép người dùng yêu cầu TCP mở một liên kết với đầu nối TCP/IP ở xa, và liên kết sẽ được xác lập nếu có hàm Passive Open tương ứng đã được thực hiện tại đầu nối đó Khi gửi yêu cầu mở liên kết, người dùng sẽ nhận được hai thông số trả lời từ TCP.

Thông số Open ID được TCP trả về ngay lập tức để gán một tên kết nối cục bộ cho liên kết được yêu cầu Thông số này sẽ được sử dụng sau đó.

TCP cần gửi tham số Open Failure nếu không thể thiết lập liên kết yêu cầu.

Khi TCP thiết lập một liên kết, nó gửi tham số Open Success để thông báo rằng liên kết đã được thiết lập thành công Thông báo này được chuyển đến trong cả hai trường hợp bị động và chủ động Sau khi liên kết được mở, việc truyền dữ liệu có thể diễn ra trên liên kết đó.

Các bước thực hiện khi truyền và nhận dữ liệu bao gồm việc xác lập liên kết giữa người sử dụng để gửi và nhận dữ liệu Quá trình này được thực hiện thông qua các hàm send và receive.

Hàm Send trong TCP gửi dữ liệu theo các khối và lưu trữ chúng trong bộ đệm Khi cờ PUSH được kích hoạt, toàn bộ dữ liệu trong bộ đệm sẽ được gửi đi, bao gồm cả khối dữ liệu mới nhận Ngược lại, nếu cờ PUSH không được dựng, dữ liệu sẽ được giữ lại trong bộ đệm và chỉ được gửi đi khi có cơ hội thích hợp, nhằm tối ưu hóa hiệu quả truyền tải.

Tại trạm đích, dữ liệu sẽ được TCP lưu trữ trong bộ đệm liên kết Nếu dữ liệu có cờ PUSH, toàn bộ dữ liệu trong bộ đệm sẽ được gửi ngay cho người sử dụng Ngược lại, nếu dữ liệu không có cờ PUSH, TCP sẽ chờ đến thời điểm thích hợp để chuyển dữ liệu, nhằm nâng cao hiệu quả hệ thống.

Việc truyền nhận dữ liệu qua TCP phụ thuộc vào cài đặt cụ thể, và trong trường hợp cần chuyển gấp dữ liệu, có thể sử dụng cờ URGENT Cờ này cho phép đánh dấu dữ liệu bằng bit URG, thông báo cho người sử dụng rằng dữ liệu cần được xử lý khẩn cấp.

Các bước thực hiện khi đóng một liên kết: Việc đóng một liên kết khi không cần thiết được thực hiên theo một trong hai cách :

Hàm Close trong TCP yêu cầu đóng liên kết một cách bình thường, cho thấy rằng quá trình truyền dữ liệu đã hoàn tất Khi nhận hàm Close, TCP sẽ gửi tất cả dữ liệu còn lại trong bộ đệm và thông báo về việc đóng liên kết Cần lưu ý rằng, sau khi gửi hàm Close, người sử dụng vẫn phải tiếp tục nhận dữ liệu cho đến khi TCP thông báo cho bên kia về việc đóng liên kết và hoàn tất việc chuyển giao dữ liệu.

LẬP TRÌNH C# CĂN BẢN VÀ PHẦN MỀM VISUAL STUDIO

XÂY DỰNG VÀ THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH 3.1 Giới thiệu chương trình

Ngày đăng: 25/08/2021, 15:40

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Mô hình TCP/IP. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.2. Mô hình TCP/IP (Trang 14)
Hình 1.3. Mô hình truyền thông đơngiản Trong kiến trúc phân tầng, một số mô hình được phát triển:  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.3. Mô hình truyền thông đơngiản Trong kiến trúc phân tầng, một số mô hình được phát triển: (Trang 17)
Hình 1.4.Trao đổi giữa các tầng. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.4. Trao đổi giữa các tầng (Trang 18)
Dưới đây là hình đối chiếu các tiến trình vào trong mô hình FTP: - Sử dụng lập trình socket   xây dựng chương trình chat lan
i đây là hình đối chiếu các tiến trình vào trong mô hình FTP: (Trang 22)
Hình 1.6. Tiến trình làmviệc dạng chủ động trong FTP - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.6. Tiến trình làmviệc dạng chủ động trong FTP (Trang 25)
Hình 1.7. Tiến trình làmviệc dạng bị động trong FTP - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.7. Tiến trình làmviệc dạng bị động trong FTP (Trang 26)
Hình 1.8. Kếtnối hình sao - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.8. Kếtnối hình sao (Trang 32)
- Mạng hình sao: - Sử dụng lập trình socket   xây dựng chương trình chat lan
ng hình sao: (Trang 32)
Hình 1.13.Thiết bị Router - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.13. Thiết bị Router (Trang 36)
tắnh chất và phạm vi sửdụng mà người thiết kế xây dựng lên cấu hình mạng LAN thắch hợp - Sử dụng lập trình socket   xây dựng chương trình chat lan
t ắnh chất và phạm vi sửdụng mà người thiết kế xây dựng lên cấu hình mạng LAN thắch hợp (Trang 37)
Hình 1.15.Các giao thức trong lập trình Socket. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 1.15. Các giao thức trong lập trình Socket (Trang 42)
Bảng 2.2. Bảng các tham số - Sử dụng lập trình socket   xây dựng chương trình chat lan
Bảng 2.2. Bảng các tham số (Trang 66)
Các hằng đó được định nghĩa trong namespaceSystem.Threading. Bảng sau liệt kê những trạng thái có thể có của một thread trong hệ điều hành Windows - Sử dụng lập trình socket   xây dựng chương trình chat lan
c hằng đó được định nghĩa trong namespaceSystem.Threading. Bảng sau liệt kê những trạng thái có thể có của một thread trong hệ điều hành Windows (Trang 70)
Hình 2.1. Giao diện visual studio 2013 - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 2.1. Giao diện visual studio 2013 (Trang 72)
Hình 3.1.Quá trình kết nối. - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.1. Quá trình kết nối (Trang 74)
Quy trình này có thể được minh họa theo mô hình sau: - Sử dụng lập trình socket   xây dựng chương trình chat lan
uy trình này có thể được minh họa theo mô hình sau: (Trang 76)
Hình 3.4. Hàm lấy địa chỉ IP của Server IP của Server được hiển thị trên giao diện:  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.4. Hàm lấy địa chỉ IP của Server IP của Server được hiển thị trên giao diện: (Trang 77)
Hình 3.5. IP server Hàm khởi tạo socket và bắt đầu tiếp nhận kết nối  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.5. IP server Hàm khởi tạo socket và bắt đầu tiếp nhận kết nối (Trang 77)
Hình 3.7. Textbox hiển thị trên giao diện Hàm AcceptCallback được gọi khi có một kết nối mới từ Client  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.7. Textbox hiển thị trên giao diện Hàm AcceptCallback được gọi khi có một kết nối mới từ Client (Trang 78)
Hình 3.6. Hàm khởi tạo socket - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.6. Hàm khởi tạo socket (Trang 78)
Hình 3.9. Hàm startsocket Xử lý dữ liệu nhận được:  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.9. Hàm startsocket Xử lý dữ liệu nhận được: (Trang 79)
Xử lý update dữ liệu nhận được lên màn hình dao diện - Sử dụng lập trình socket   xây dựng chương trình chat lan
l ý update dữ liệu nhận được lên màn hình dao diện (Trang 80)
Hình 3.11. Hàm xử lý dữ liệu gửi đi Hàm đóng kết nối Server  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.11. Hàm xử lý dữ liệu gửi đi Hàm đóng kết nối Server (Trang 81)
Hình 3.12. Hàm đóng kếtnối Server Hàm đóng Socket Sever dùng để lắng nghe  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.12. Hàm đóng kếtnối Server Hàm đóng Socket Sever dùng để lắng nghe (Trang 81)
Hình 3.14. Thông báo hiển thị lên Client sau khi Server ngắt kếtnối Tạo Client Ờ Kết nối, gửi và nhận dữ liệu  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.14. Thông báo hiển thị lên Client sau khi Server ngắt kếtnối Tạo Client Ờ Kết nối, gửi và nhận dữ liệu (Trang 82)
Hình 3.15. Hàm ConnectoServer - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.15. Hàm ConnectoServer (Trang 83)
Hình 3.17. Giao diện Client Gửi và nhận dữ liệu giữa Server và Client  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.17. Giao diện Client Gửi và nhận dữ liệu giữa Server và Client (Trang 84)
Hình 3.16. Dao diện Server Client  - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.16. Dao diện Server Client (Trang 84)
Một số hình ảnh quá trình truyền tải dữ liệu giữa Client và Server Send một file   - Sử dụng lập trình socket   xây dựng chương trình chat lan
t số hình ảnh quá trình truyền tải dữ liệu giữa Client và Server Send một file (Trang 85)
Hình 3.19. Gửi 1 file powerpoint - Sử dụng lập trình socket   xây dựng chương trình chat lan
Hình 3.19. Gửi 1 file powerpoint (Trang 85)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w