1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Lập trình mạng: Phần 1 - Trường Đại học Phan Thiết

78 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Giáo trình Lập trình mạng: Phần 1 cung cấp cho người học những kiến thức như: những kiến thức cơ bản về lập trình mạng; lập trình socket hướng kết nối; lập trình socket phi kết nối. Mời các bạn cùng tham khảo!

TRƯỜNG ĐẠI HỌC PHAN THIẾT KHOA CÔNG NGHỆ THÔNG TIN - GIÁO TRÌNH LẬP TRÌNH MẠNG LƯU HÀNH NỘI BỘ Khoa Cơng Nghệ Thơng Tin Giáo trình Lập Trình Mạng MỤC LỤC CHƢƠNG I: NHỮNG KIẾN THỨC CƠ BẢN VỀ LẬP TRÌNH MẠNG I.1 TổNG QUAN I.1.1 Tầng Ethernet I.1.2 Địa Ethernet I.1.3 Ethernet Protocol Type I.1.4 Data payload I.1.5 Checksum 10 I.2 TầNG IP 10 I.2.1 Trƣờng địa .11 I.2.2 Các cờ phân đoạn 11 I.2.3 Trƣờng Type of Service 12 I.2.4 Trƣờng Protocol 12 I.3 TầNG TCP 13 I.3.1 TCP port .14 I.3.2 Cơ chế đảm bảo độ tin cậy truyền tải gói tin 16 I.3.3 Quá trình thành lập phiên làm việc TCP 17 I.4 TầNG UDP 18 CHƢƠNG II: LẬP TRÌNH SOCKET HƢỚNG KẾT NỐI 21 II.1 SOCKET 21 II.2 IPADDRESS 24 II.3 IPENDPOINT 25 II.4 LậP TRÌNH SOCKET HƢớNG KếT NốI 25 II.4.1 Lập trình phía Server .26 II.4.2 Lập trình phía Client 30 II.4.3 Vấn đề với đệm liệu 32 II.4.4 Xử lý với đệm có kích thƣớc nhỏ 33 II.4.5 Vấn đề với thông điệp TCP 35 II.4.6 Giải vấn đề với thông điệp TCP 39 II.4.6.1 Sử dụng thông điệp với kích thƣớc cố định 39 II.4.6.2 Gởi kèm kích thƣớc thơng điệp với thông điệp 44 Trang Khoa Công Nghệ Thơng Tin Giáo trình Lập Trình Mạng II.4.6.3 Sử dụng hệ thống đánh dấu để phân biệt thông điệp 50 II.4.7 Sử dụng C# Stream với TCP 50 II.4.7.1 Lớp NetworkStream 50 II.4.7.2 Lớp StreamReader StreamWriter 54 CHƢƠNG III: LẬP TRÌNH SOCKET PHI KẾT NỐI 59 III.1 TổNG QUAN 59 III.2 LậP TRÌNH PHÍA SERVER 60 III.3 LậP TRÌNH PHÍA CLIENT 62 III.3.1 Sử dụng phƣơng thức Connect() chƣơng trình UDP Client 64 III.3.2 Phân biệt thông điệp UDP 65 III.4 NGĂN CảN MấT Dữ LIệU 67 III.5 NGĂN CảN MấT GÓI TIN 70 III.5.1 Sử dụng Soket Time-out .71 III.6 ĐIềU KHIểN VIệC TRUYềN LạI CÁC GÓI TIN 73 CHƢƠNG V: SỬ DỤNG CÁC LỚP HELPER CỦA C# SOCKET 79 IV.1 LớP TCP CLIENT 79 IV.2 LớP TCPLISTENER 82 IV.3 LớP UDPCLIENT 85 CHƢƠNG V: ĐA NHIỆM TIỂU TRÌNH 89 V.1 KHÁI NIệM TIếN TRÌNH VÀ TIểU TRÌNH CủA WINDOWS 89 V.2 MƠ HÌNH 89 V.3 CÁC Kỹ THUậT TRONG NET TạO TIểU TRÌNH 90 V.3.1 Tạo tiểu trình Thread-pool 90 V.3.2 Tạo tiểu trình bất đồng 93 V.3.2.1 Phƣơng thức BlockingExample 96 V.3.2.2 Phƣơng thức PollingExample 97 V.3.2.3 Phƣơng thức WaitingExample 98 V.3.2.4 Phƣơng thức WaitAllExample 99 V.3.2.5 Phƣơng thức CallbackExample 100 V.3.3 Thực thi phƣơng thức Timer 102 V.3.4 Thực thi phƣơng thức tiểu trình .104 V.3.5 Điều khiển trình thực thi tiểu trình 106 V.3.6 Nhận biết tiểu trình kết thúc 110 V.3.7 Khởi chạy tiến trình .112 Trang Khoa Công Nghệ Thông Tin Giáo trình Lập Trình Mạng V.3.8 Kết thúc tiến trình 114 V.4 THựC THI PHƢƠNG THứC BằNG CÁCH RA HIệU ĐốI TƢợNG WAITHANDLE 115 CHƢƠNG V: ĐỒNG BỘ HÓA 117 VI.1 LÝ DO ĐồNG Bộ HÓA 117 VI.2 CÁC PHƢƠNG PHÁP ĐồNG Bộ HÓA 117 VI.3 PHƢƠNG PHÁP SEMAPHORE 117 VI.4 PHƢƠNG PHÁP DÙNG LớP MONITOR 119 VI.5 SYSTEM.THREADING.WAITHANDLE, BAO GồM AUTORESETEVENT, MANUALRESETEVENT 121 VI.6 PHƢƠNG PHÁP MUTEX 124 CHƢƠNG V: LẬP TRÌNH SOCKET BẤT ĐỒNG BỘ 126 VII.1 LậP TRÌNH Sự KIệN TRONG WINDOWS 126 VII.1.1 Sử dụng Event Delegate 127 VII.1.2 Lớp AsyncCallback lập trình Windows 129 VII.2 Sử DụNG SOCKET BấT ĐồNG Bộ 129 VII.2.1 Thành lập kết nối 130 VII.2.1.1 Phƣơng thức BeginAccept() EndAccept() 130 VII.2.1.2 Phƣơng thức BeginConnect() EndConnect() 132 VII.2.2 Gởi liệu .133 VII.2.2.1 Phƣơng thức BeginSend() phƣơng thức EndSend() 133 VII.2.2.2 Phƣơng thức BeginSendTo() EndSendTo() 134 VII.2.3 Nhận liệu 135 VII.2.3.1 Phƣơng thức BeginReceive(), EndReceive, BeginReceiveFrom(), EndReceiveFrom() 135 VII.2.4 Chƣơng trình WinForm gởi nhận liệu Client Server 135 VII.2.4.1 Chƣơng trình Server 135 VII.2.4.2 Mơ hình chƣơng trình Server 135 VII.2.4.3 Lớp ServerProgram 136 VII.2.4.4 Lớp ServerForm 139 VII.2.5 Chƣơng trình Client 140 VII.2.5.1 Mơ hình chƣơng trình Client 141 VII.2.5.2 Lớp ClientProgram 142 VII.2.5.3 Lớp ClientForm 145 Trang Khoa Cơng Nghệ Thơng Tin Giáo trình Lập Trình Mạng VII.3 LậP TRÌNH SOCKET BấT ĐồNG Bộ Sử DụNG TIểU TRÌNH 146 VII.3.1 Lập trình sử dụng hàng đợi gởi hàng đợi nhận thông điệp .146 VII.3.2 Lập trình ứng dụng nhiều Client 152 TÀI LIỆU THAM KHẢO 155 Trang Khoa Công Nghệ Thơng Tin Giáo trình Lập Trình Mạng CHƢƠNG I: NHỮNG KIẾN THỨC CƠ BẢN VỀ LẬP TRÌNH MẠNG I.1 Tổng quan Internet Protocol (IP) tảng lập trình mạng IP phƣơng tiện truyền tải liệu hệ thống hệ thống mạng cục (LAN) hay hệ thống mạng diện rộng (WAN) Mặc dù lập trình viên mạng chọn giao thức khác để lập trình nhƣng IP cung cấp kỹ thuật mạnh để gởi liệu thiết bị, đặc biệt thông qua mạng Internet Để hiểu rõ khái niệm bên dƣới lập trình mạng, phải hiểu rõ giao thức IP, hiểu cách chuyển liệu thiết bị mạng Lập trình mạng dùng giao thức IP thƣờng phức tạp Có nhiều yếu tố cần quan tâm liên quan đến cách liệu đƣợc gởi qua mạng: số lƣợng Client Server, kiểu mạng, tắc nghẽn mạng, lỗi mạng,… Bởi yếu tố ảnh hƣởng đến việc truyền liệu từ thiết bị đến thiết bị khác mạng việc hiểu rõ chúng vấn đề quan trọng để lập trình mạng đƣợc thành cơng Một gói liệu mạng gồm nhiều tầng thông tin Mỗi tầng thông tin chứa dãy byte đƣợc đặt theo trật tự đƣợc định sẵn Hầu hết gói liệu dùng lập trình mạng chứa ba tầng thơng tin với liệu đƣợc dùng để truyền tải thiết bị mạng Hình sau mơ tả hệ thống thứ bậc gói IP: Hình I.1: Các tầng giao thức mạng gói liệu I.1.1 Tầng Ethernet Tầng gói liệu mạng đƣợc gọi Ethernet Header, tầng có ba gói giao thức Ethernet: Ethernet 802.2, Ethernet 802.3, Ethernet phiên Các giao thức Ethernet 802.2 Ethernet 802.3 giao thức chuẩn IEEE Ethernet phiên khơng phải giao thức chuẩn nhƣng đƣợc sử dụng rộng Trang Khoa Công Nghệ Thông Tin Giáo trình Lập Trình Mạng rãi mạng Ethernet Hầu hết thiết bị mạng kể hệ điều hành Windows mặc định dùng giao thức Ethernet phiên để truyền tải gói IP Hình I.2: Ethernet Header Phần đầu Ethernet phiên địa MAC (Media Access Card) dùng để xác định thiết bị mạng với số giao thức Ethernet xác định giao thức tầng chứa gói Ethernet Mỗi gói Ethernet bao gồm: byte địa MAC đích byte địa MAC nguồn byte xác định giao thức tầng Data payload từ 46 đến 1500 byte 4-byte checksum I.1.2 Địa Ethernet Trang Khoa Cơng Nghệ Thơng Tin Giáo trình Lập Trình Mạng Địa Ethernet (địa MAC) địa thiết bị, địa đƣợc gán nhà sản xuất thiết bị mạng không thay đổi đƣợc Mỗi thiết bị mạng Ethernet phải có địa MAC Địa MAC gồm phần: byte xác định nhà sản xuất byte xác định số serial nhà sản xuất Giản đồ địa Ethernet cho phép địa broadcast multicast Đối với địa broadcast tất bit địa đích đƣợc gán (FFFFFFFFFFFF) Mỗi thiết bị mạng chấp nhận gói có địa broadcast Địa hữu ích cho giao thức phải gởi gói truy vấn đến tất thiết bị mạng Địa multicast loại địa đặc biệt địa Ethernet, địa multicast cho phép số thiết bị chấp nhận gói tin Một số địa Ethernet multicast: Địa Chỉ 01-80-C2-00-00-00 Mô Tả Spanning tree (for bridges) 09-00-09-00-00-01 HP Probe 09-00-09-00-00-01 HP Probe 09-00-09-00-00-04 09-00-2B-00-00-00 09-00-2B-00-00-01 HP DTC DEC MUMPS DEC DSM/DTP 09-00-2B-00-00-02 09-00-2B-00-00-03 09-00-2B-00-00-04 09-00-2B-00-00-05 DEC VAXELN DEC Lanbridge Traffic Monitor (LTM) DEC MAP End System Hello DEC MAP Intermediate System Hello 09-00-2B-00-00-06 09-00-2B-00-00-07 09-00-2B-00-00-0F 09-00-2B-00-00-1x 09-00-2B-01-00-00 DEC CSMA/CD Encryption DEC NetBios Emulator DEC Local Area Transport (LAT) DEC Experimental DEC LanBridge Copy packets (all bridges) DEC DNA Lev Routing Layer Routers DEC DNA Naming Service Advertisement 09-00-2B-02-00-00 09-00-2B-02-01-00 09-00-2B-02-01-01 09-00-2B-02-01-02 09-00-2B-03-xx-xx DEC DNA Naming Service Solicitation DEC DNA Time Service DEC default filtering by bridges Trang Khoa Cơng Nghệ Thơng Tin Giáo trình Lập Trình Mạng Địa Chỉ 09-00-2B-04-00-00 Mô Tả DEC Local Area System Transport (LAST) 09-00-2B-23-00-00 DEC Argonaut Console 09-00-4E-00-00-02 09-00-77-00-00-01 Novell IPX Retix spanning tree bridges 09-00-7C-02-00-05 Vitalink diagnostics 09-00-7C-05-00-01 Vitalink gateway 0D-1E-15-BA-DD-06 HP CF-00-00-00-00-00 Ethernet Configuration Test protocol (Loopback) I.1.3 Ethernet Protocol Type Một phần khác quan trọng Ethernet Header trƣờng Protocol Type, trƣờng có kích thƣớc hai byte Sự khác gói tin Ethernet phiên Ethernet 802.2 802.3 xảy trƣờng Các gói tin Ethernet 802.2 802.3 sử dụng trƣờng biết kích thƣớc gói tin Ethernet Ethernet phiên dùng trƣờng để định nghĩa giao thức tầng gói tin Ethernet Một số giá trị trƣờng này: Giá Trị 0800 0806 0BAD 8005 Giao Thức IP ARP Banyan VINES HP Probe 8035 809B Reverse ARP AppleTalk 80D5 8137 IBM SNA Novell 8138 814C 86DD 876B Novell Raw SNMP IPv6 TCP/IP compression I.1.4 Data payload Trang Khoa Công Nghệ Thông Tin Giáo trình Lập Trình Mạng Data payload phải chứa tối thiểu 46 byte để đảm bảo gói Ethernet có chiều dài tối thiểu 64 byte Nếu phần data chƣa đủ 46 byte ký tự đệm đƣợc thêm vào cho đủ Kích thƣớc trƣờng từ 46 đến 1500 byte I.1.5 Checksum Giá trị checksum cung cấp chế kiểm tra lỗi cho liệu, kích thƣớc trƣờng byte Nếu gói tin bị hỏng lúc truyền, giá trị checksum bị tính tốn sai gói tin đƣợc đánh dấu gói tin xấu I.2 Tầng IP Tẩng IP định nghĩa thêm nhiều trƣờng thông tin của giao thức Ethernet Hình I.3: Thơng tin tầng IP Các trƣờng tầng IP: Trƣờng Version Header Length Bit 4 Mô Tả Phiên IP header (phiên 4) Chiều dài phần header gói IP Trang 10 ... 0 1- 80-C 2-0 0-0 0-0 0 Mô Tả Spanning tree (for bridges) 0 9-0 0-0 9-0 0-0 0- 01 HP Probe 0 9-0 0-0 9-0 0-0 0- 01 HP Probe 0 9-0 0-0 9-0 0-0 0-0 4 0 9-0 0-2 B-0 0-0 0-0 0 0 9-0 0-2 B-0 0-0 0- 01 HP DTC DEC MUMPS DEC DSM/DTP 0 9-0 0-2 B-0 0-0 0-0 2... Layer Routers DEC DNA Naming Service Advertisement 0 9-0 0-2 B-0 2-0 0-0 0 0 9-0 0-2 B-0 2- 0 1- 00 0 9-0 0-2 B-0 2- 0 1- 01 0 9-0 0-2 B-0 2- 0 1- 02 0 9-0 0-2 B-03-xx-xx DEC DNA Naming Service Solicitation DEC DNA Time Service... Thông Tin Giáo trình Lập Trình Mạng Địa Chỉ 0 9-0 0-2 B-0 4-0 0-0 0 Mơ Tả DEC Local Area System Transport (LAST) 0 9-0 0-2 B-2 3-0 0-0 0 DEC Argonaut Console 0 9-0 0-4 E-0 0-0 0-0 2 0 9-0 0-7 7-0 0-0 0- 01 Novell IPX

Ngày đăng: 26/11/2022, 16:15

Xem thêm: