Bài giảng tóm tắt lập trình mạng

182 779 4
Bài giảng tóm tắt lập trình mạng

Đ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” được biên soạn theo chương trình đào tạo hệ thống tín chỉ của trường Đại Học Đà Lạt. Mục đích biên soạn giáo trình nhằm cung cấp cho sinh viên ngành Công Nghệ Thông Tin những kiến thức về lập trình mạng. Tuy có rất nhiều cố gắng trong công tác biên soạn nhưng chắc chắn rằng giáo trình này còn nhiều thiếu sót. Chúng tôi xin trân trọng tiếp thu tất cả những ý kiến đóng góp của các đồng nghiệp cũng như các bạn sinh viên, trong lĩnh vực này để hoàn thiện giáo trình, phục vụ tốt hơn cho việc dạy và học tin học đang ngày càng phát triển ở nước ta.

TRƯỜNG ĐẠI HỌC ĐÀ LẠT KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG TĨM TẮT LẬP TRÌNH MẠNG Dành cho sinh viên ngành Công Nghệ Thông Tin (Lưu hành nội bộ) Đà Lạt 2009 Khoa Cơng Nghệ Thơng Tin Giáo trình Lập Trình Mạng LỜI NĨI ĐẦU Giáo trình “ Lập trình mạng” biên soạn theo chương trình đào tạo hệ thống tín trường Đại Học Đà Lạt Mục đích biên soạn giáo trình nhằm cung cấp cho sinh viên ngành Công Nghệ Thông Tin kiến thức lập trình mạng Tuy có nhiều cố gắng công tác biên soạn chắn giáo trình cịn nhiều thiếu sót Chúng tơi xin trân trọng tiếp thu tất ý kiến đóng góp đồng nghiệp bạn sinh viên, lĩnh vực để hồn thiện giáo trình, phục vụ tốt cho việc dạy học tin học ngày phát triển nước ta Khoa Công Nghệ Thông Tin Trường Đại Học Đà Lạt Trang 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 .6 I.1.2 Địa Ethernet I.1.3 Ethernet Protocol Type I.1.4 Data payload .9 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 ICHƯƠNG Giáo trình Lập Trình Mạ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 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 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 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 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 đặt theo trật tự đị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 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 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 giao thức chuẩn 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 Trang Khoa Cơng Nghệ Thơng Tin Giáo trình Lập Trình Mạng  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 Địa Ethernet (địa MAC) địa thiết bị, địa gán nhà sản xuất thiết bị mạng khơng thay đổi 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 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ỉ Mô Tả 01-80-C2-00-00-00 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 HP DTC 09-00-2B-00-00-00 DEC MUMPS 09-00-2B-00-00-01 DEC DSM/DTP 09-00-2B-00-00-02 DEC VAXELN 09-00-2B-00-00-03 DEC Lanbridge Traffic Monitor (LTM) Trang Khoa Cơng Nghệ Thơng Tin Giáo trình Lập Trình Mạng Địa Chỉ Mô Tả 09-00-2B-00-00-04 DEC MAP End System Hello 09-00-2B-00-00-05 DEC MAP Intermediate System Hello 09-00-2B-00-00-06 DEC CSMA/CD Encryption 09-00-2B-00-00-07 DEC NetBios Emulator 09-00-2B-00-00-0F DEC Local Area Transport (LAT) 09-00-2B-00-00-1x DEC Experimental 09-00-2B-01-00-00 DEC LanBridge Copy packets (all bridges) 09-00-2B-02-00-00 DEC DNA Lev Routing Layer Routers 09-00-2B-02-01-00 DEC DNA Naming Service Advertisement 09-00-2B-02-01-01 DEC DNA Naming Service Solicitation 09-00-2B-02-01-02 DEC DNA Time Service 09-00-2B-03-xx-xx DEC default filtering by bridges 09-00-2B-04-00-00 DEC Local Area System Transport (LAST) 09-00-2B-23-00-00 DEC Argonaut Console 09-00-4E-00-00-02 Novell IPX 09-00-77-00-00-01 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 Trang 10 ... 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... ICHƯƠNG Giáo trình Lập Trình Mạ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)... Nghệ Thơng Tin Giáo trình Lập Trình Mạng LỜI NĨI ĐẦU Giáo trình “ Lập trình mạng? ?? biên soạn theo chương trình đào tạo hệ thống tín trường Đại Học Đà Lạt Mục đích biên soạn giáo trình nhằm cung cấp

Ngày đăng: 19/08/2013, 09:35

Hình ảnh liên quan

Hình I.1: Các tầng giao thức mạng trong các gĩi dữ liệu - Bài giảng tóm tắt lập trình mạng

nh.

I.1: Các tầng giao thức mạng trong các gĩi dữ liệu Xem tại trang 7 của tài liệu.
Hình I.2: Ethernet Header - Bài giảng tóm tắt lập trình mạng

nh.

I.2: Ethernet Header Xem tại trang 8 của tài liệu.
Hình I.3: Thơng tin tầng IP - Bài giảng tóm tắt lập trình mạng

nh.

I.3: Thơng tin tầng IP Xem tại trang 12 của tài liệu.
Hình I.4: Các trường của TCP Header - Bài giảng tóm tắt lập trình mạng

nh.

I.4: Các trường của TCP Header Xem tại trang 16 của tài liệu.
Hình I.5: Kết nối TCP đơn giản - Bài giảng tóm tắt lập trình mạng

nh.

I.5: Kết nối TCP đơn giản Xem tại trang 17 của tài liệu.
Hình I.6: Các bước bắt tay của giao thức TCP - Bài giảng tóm tắt lập trình mạng

nh.

I.6: Các bước bắt tay của giao thức TCP Xem tại trang 21 của tài liệu.
Hình I.7: UDP Header UDP header gồm những trường sau: - Bài giảng tóm tắt lập trình mạng

nh.

I.7: UDP Header UDP header gồm những trường sau: Xem tại trang 22 của tài liệu.
Hình II.1: Mơ hình lập trình Socket hướng kết nối - Bài giảng tóm tắt lập trình mạng

nh.

II.1: Mơ hình lập trình Socket hướng kết nối Xem tại trang 29 của tài liệu.
Hình II.2: Kết quả trả về sau khi telnet vào Server local tại port 5000 - Bài giảng tóm tắt lập trình mạng

nh.

II.2: Kết quả trả về sau khi telnet vào Server local tại port 5000 Xem tại trang 32 của tài liệu.
Hình II.3: TCP Buffer - Bài giảng tóm tắt lập trình mạng

nh.

II.3: TCP Buffer Xem tại trang 36 của tài liệu.
Hình II.4: Kết quả trả về khi chạy chương trình với buffer nhỏ - Bài giảng tóm tắt lập trình mạng

nh.

II.4: Kết quả trả về khi chạy chương trình với buffer nhỏ Xem tại trang 37 của tài liệu.
Hình II.5: Client Send hai lần rồi Server mới Receive - Bài giảng tóm tắt lập trình mạng

nh.

II.5: Client Send hai lần rồi Server mới Receive Xem tại trang 38 của tài liệu.
Hình II.7: Kết quả gởi và nhận dữ liệu với kích thước cố định - Bài giảng tóm tắt lập trình mạng

nh.

II.7: Kết quả gởi và nhận dữ liệu với kích thước cố định Xem tại trang 47 của tài liệu.
Hình II.8: Kết quả gởi và thơng điệp cùng với kích thước - Bài giảng tóm tắt lập trình mạng

nh.

II.8: Kết quả gởi và thơng điệp cùng với kích thước Xem tại trang 53 của tài liệu.
Hình V.1: Mơ hình lập trình Socket phi kết nối - Bài giảng tóm tắt lập trình mạng

nh.

V.1: Mơ hình lập trình Socket phi kết nối Xem tại trang 62 của tài liệu.
Hình V.2: UDP Server nhận biết được các thơng điệp riêng rẽ - Bài giảng tóm tắt lập trình mạng

nh.

V.2: UDP Server nhận biết được các thơng điệp riêng rẽ Xem tại trang 70 của tài liệu.
XLVMơ hình - Bài giảng tóm tắt lập trình mạng

h.

ình Xem tại trang 91 của tài liệu.
Hình VI.1: Lập trình sự kiện trên Windows - Bài giảng tóm tắt lập trình mạng

nh.

VI.1: Lập trình sự kiện trên Windows Xem tại trang 127 của tài liệu.
Hình VI.2: Gởi và nhận sự kiện trong Windows - Bài giảng tóm tắt lập trình mạng

nh.

VI.2: Gởi và nhận sự kiện trong Windows Xem tại trang 128 của tài liệu.
Hình VI.3: Giao diện Server - Bài giảng tóm tắt lập trình mạng

nh.

VI.3: Giao diện Server Xem tại trang 136 của tài liệu.
LXXI.1.1.2.Mơ hình chương trình Server - Bài giảng tóm tắt lập trình mạng

1.1.2..

Mơ hình chương trình Server Xem tại trang 136 của tài liệu.
Hình VI.4: Mơ hình chương trình Server - Bài giảng tóm tắt lập trình mạng

nh.

VI.4: Mơ hình chương trình Server Xem tại trang 137 của tài liệu.
Hình VI.5: Giao diện Client - Bài giảng tóm tắt lập trình mạng

nh.

VI.5: Giao diện Client Xem tại trang 141 của tài liệu.
Hình VI.6: Mơ hình chương trình Client - Bài giảng tóm tắt lập trình mạng

nh.

VI.6: Mơ hình chương trình Client Xem tại trang 142 của tài liệu.
Mơ hình xử lý như sau: - Bài giảng tóm tắt lập trình mạng

h.

ình xử lý như sau: Xem tại trang 152 của tài liệu.
Các thành phần của một lớp ICMP điển hình - Bài giảng tóm tắt lập trình mạng

c.

thành phần của một lớp ICMP điển hình Xem tại trang 160 của tài liệu.
Mơ hình email Unix - Bài giảng tóm tắt lập trình mạng

h.

ình email Unix Xem tại trang 169 của tài liệu.
Trong thẻ Delivery, cấu hình số lần cố gắng gởi thư. Nút Advanced là các thiết lập thơng minh cho mail server - Bài giảng tóm tắt lập trình mạng

rong.

thẻ Delivery, cấu hình số lần cố gắng gởi thư. Nút Advanced là các thiết lập thơng minh cho mail server Xem tại trang 175 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan