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

Bài giảng Lập trình mạng: Chương 1 - ThS. Trần Đắc Tốt

89 9 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 đề Những Vấn Đề Cơ Bản Của Lập Trình Mạng
Người hướng dẫn ThS. Trần Đắc Tốt
Trường học Trường Đại Học Công Nghiệp Thực Phẩm Tp.Hcm
Chuyên ngành Lập Trình Mạng
Định dạng
Số trang 89
Dung lượng 3,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Lập trình mạng: Chương 1 Những vấn đề cơ bản của lập trình mạng, cung cấp cho người học những kiến thức như: Cơ bản về mạng máy tính; Mô hình truyền thông; Các mô hình tham chiếu; Tổng quan về lập trình mạng. Mời các bạn cùng tham khảo!

Trang 1

LẬP TRÌNH MẠNG (Network programming)

Trang 2

MÔN HỌC: LẬP TRÌNH MẠNG

Chương 1: Những vấn đề cơ bản của lập trình mạng

Chương 2: Lập trình SOCKET hướng kết nối

Chương 3: Lập trình SOCKET phi kết nối

Chương 4: Sử dụng các lớp trợ giúp của C# SOCKET

Chương 5: Lập trình đa luồng (MULTI-THREADING)

Trang 3

CHƯƠNG 1: NHỮNG VẤN ĐỀ CƠ BẢN CỦA

LẬP TRÌNH MẠNG

Cơ bản về mạng máy tính

Mô hình truyền thông

Các mô hình tham chiếu

Tổng quan về lập trình mạng

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 4

Mục đích: Giới thiệu các khái niệm cơ bản về

Mạng máy tính, truyền thông mạng máy tính

Mô hình OSI, TCP/IPWindows Socket

Trang 5

CHƯƠNG 1: NHỮNG VẤN ĐỀ CƠ BẢN CỦA

LẬP TRÌNH MẠNG

Cơ bản về mạng máy tính

Mô hình truyền thông

Các mô hình tham chiếu

Tổng quan về lập trình mạng

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 6

Cơ bản về mạng máy tính

Trang 7

Cơ bản về mạng máy tính

7

Khái niệm mạng máy tính

Tập hợp các máy tính và thiết bị mạng kết nối với nhau theo một kiếntrúc nào đó để trao đổi dữ liệu

Máy tính: máy trạm, máy chủ,

bộ định tuyến, switch

Kết nối bằng phương tiện truyền thông

Theo một kiến trúc nào đó

Các dạng máy tính ?

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 8

Cơ bản về mạng máy tính

Internet ngày nay

Trang 9

Cơ bản về mạng máy tính

Xử lý tập trung hay phân tán

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 10

Cơ bản về mạng máy tính

Kiến trúc mạng: Hình trạng (topology) và giao thức (protocol)

Thực tế là sự kết hợp của nhiều hình trạng Trục (Bus) Vòng (Ring) Sao (Star)

Trang 12

Cơ bản về mạng máy tính

Giao thức mạng

Protocol: Quy tắc để truyền thông

Gửi: Một thông điệp với yêu cầu hoặc thông tin

Nhận: Nhận một thông điệp với thông tin, sự kiện hoặc hành động

Định nghĩa khuôn dạng và thứ tự truyền, nhận thông điệp giữa các thực thể trên mạng hoặc các hành động tương ứng khi nhận thông điệp

Ví dụ về giao thức mạng: TCP, UDP, IP, HTTP,

Trang 13

CHƯƠNG 1: NHỮNG VẤN ĐỀ CƠ BẢN CỦA

LẬP TRÌNH MẠNG

Cơ bản về mạng máy tính

Mô hình truyền thông

Các mô hình tham chiếu

Tổng quan về lập trình mạng

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 14

Mô hình truyền thông

Chuyển mạch kênh

• Trao đổi dữ liệu sử dụng một kênh riêng

• Mỗi liên kết sử dụng một kênh Tài nguyên của kênh đó không được sử bởi kênh khác cho đến khi đóng liên kết

• Tài nguyên được gán riêng cho mỗi kênh, kê cả khi tài nguyên đó đang rỗi, người khác cũng không sử dụng được

Trang 15

Mô hình truyền thông

Chuyển mạch gói

• Dữ liệu được chia thành các gói(packets) và được truyền qua mạng

• Nhiều liên kết có thể chia sẻ một kênh

• Internet (Với giao thức IP) sử dụng chuyển mạch gói

• Toàn bộ băng thông được chia sẻ cho tât cả mọi người

• Nếu còn bằng thông thì ai cũng có thể sử dụng được

Trang 16

Mô hình truyền thông

So sánh

Chuyển mạch kênh

Mỗi kênh chỉ sử dụng một liên kết

Bảo đảm băng thông (cần cho các ứng dụng audio/video)

Lãng phí nếu liên kết đó không sử dụng hết khả năng của kênh

Chuyển mạch gói

Tăng hiệu quả sử dụng băng thông

Tốt cho các dữ liệu đến ngẫu nhiên, không định trước

Hạn chế: Tắc nghẽ làm trễ và mất gói tin, không đảm bảo băng thông

Trang 17

Mô hình truyền thông

Truyền thông hướng liên kết và không hướng liên kết

Truyền thông hướng liên kết

 Dữ liệu được truyền qua một liên kết đã được thiết lập

 Thông qua 3 giai đoạn: Thiết lập liên kết, truyền dữ liệu hủy bỏ liênkết

 Đáng tin cậy

Truyền thông không hướng liên kết

 Không thiết lập liên kết, chỉ có giai đoạn truyền dữ liệu

 Không tin cậy - “Best effort”

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 18

CHƯƠNG 1: NHỮNG VẤN ĐỀ CƠ BẢN CỦA

LẬP TRÌNH MẠNG

Cơ bản về mạng máy tính

Mô hình truyền thông

Các mô hình tham chiếu

Tổng quan về lập trình mạng

Trang 19

Các mô hình tham chiếu

OSI - Open System Interconnection: Bao gồm 7 tầng

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 20

Các mô hình tham chiếu

Chức năng chung của các tầng

Vật lý: Truyền bits “trên đường truyền”

Liên kết dữ liệu: Truyền dữ liệu giữa các thành phần nối kết trong mạngMạng: chọn đường, chuyển tiếp gói tin từ nguồn tới đích

Giao vận: Xử lý việc truyền-nhận dữ liệu cho các ứng dụng

Phiên: Đồng bộ hóa, check-point, khôi phục quá trình trao đổi

Trình diễn: cho phép các ứng dụng biễu diễn dữ liệu, e.g., mã hóa, nén,chuyển đổi…

Trang 21

Các mô hình tham chiếu

Mô hình OSI và TCP/IP

Trong mô hình TCP/IP (Internet), chức năng 3 tầng trên được phân địnhvào một tầng duy nhất

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 22

Ví dụ về quá trình gửi dữ liệu từ nguồn, qua nút trung gian (bộ đinh tuyến), rồi tới đích

Mô hình phân tầng của Internet

Trang 23

Chương 1: Những vấn đề cơ bản của lập trình mạng

Đóng gói dữ liệu (Encapsulation)

Trang 25

Data Data Ex:HTTP header

Họ giao thức TCP/IP và quá trình đóng gói

Trang 27

Chương 1: Những vấn đề cơ bản của lập trình mạng

Protocol stack và quá trình đóng gói

Trang 29

Chương 1: Những vấn đề cơ bản của lập trình mạng

Protocol stack và quá trình đóng gói

Trang 31

CAT5 CAT5

Chương 1: Những vấn đề cơ bản của lập trình mạng

Protocol stack và quá trình đóng gói

Trang 33

Chương 1: Những vấn đề cơ bản của lập trình mạng

Protocol stack và quá trình đóng gói

Trang 35

Chương 1: Những vấn đề cơ bản của lập trình mạng

Protocol stack và quá trình đóng gói

Trang 37

Chương 1: Những vấn đề cơ bản của lập trình mạng

Tóm tắt: ưu điểm của kiến trúc phân tầng

Chia nhỏ cho phép dễ dàng xác định chức năng của mỗi tầng

Mềm dẻo, linh hoạt với các công nghệ mới

Trao đổi giữa các tầng đồng mức: Có thể cải tiến hệ thống bằng cách thay đổi công nghệ của tầng tương ứng Vd: ISDN→ADSL→FTTH、IPv4→IPv6Nếu không phân tầng: Khi muốn thay đổi, phải làm toàn bộ

Trang 38

IP

data link

e.g 00:11:24:79:8e:82physical

Port Number, e.g Port 80

IP address, e.g 203.12.15.165

Physical address / MAC address

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

Trang 39

Địa chỉ vật lý /địa chỉ MAC

Sử dụng trong tầng liên kết dữ liệu

Cố định trên card mạng NIC ( Network Interface Card)

Sử dụng để địa chỉ hóa máy tính trong các mạng quảng bá

00:11:24:79:8e:82

00000000 00010001 00100100 01111001 10001110 10000010 HEX

OUI (Organizationally Unique Identifier): Mã nhà sản xuất

Mỗi nhà sản xuất có các giá trị OUI riêng Một nhà sản xuất có thể có nhiều OUI BIN

Chương 1: Những vấn đề cơ bản của lập trình mạng

Địa chỉ dùng trong tầng liên kết dữ liệu

Trang 40

Địa chỉ IP

Dùng trong giao thức IP - Internet Protocol (tầng mạng)

Giá trị phụ thuộc từng mạng, mỗi card mạng được gán một địa chỉ IP

Sử dụng để định danh máy tính trong một mạng IP

ví dụ :

133.113.215.10 (ipv4) 2001:200:0:8803::53 (ipv6)

Định danh dùng trên Internet

Trang 41

Chương 1: Những vấn đề cơ bản của lập trình mạng

Địa chỉ sử dụng trong tầng giao vận

Số hiệu cổng: Một địa chỉ phụ, dùng kèm theo địa chỉ IP

Các ứng dụng được định danh bởi một địa chỉ IP và một số hiệu cổngE.g HTTP cổng 80, FTP cổng 20, 21 …

Trang 42

Các RFC quan trọng

RFC Document Giao thức

Trang 43

CHƯƠNG 1: NHỮNG VẤN ĐỀ CƠ BẢN CỦA

LẬP TRÌNH MẠNG

Cơ bản về mạng máy tính

Mô hình truyền thông

Các mô hình tham chiếu

Tổng quan về lập trình mạng

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 44

Mô hình Client / Server

Xử lý Yêu cầu

 Tạo ra 1 yêu cầu

 Gửi yêu cầu qua Server

 Chờ Server xử lý

 Nhận kết quả trả về và

xử lý theo mục đích riêng

Trang 45

Mô hình Client / Server

Trang 46

Mô hình Client / Server

Trang 47

Các kiểu kiến trúc chương trình

 Chức năng của 1 chương trình ứng dụng:

 Giao diện người dùng (User Interface):

 Dịch vụ nghiệp vụ (Business Rule):

Trang 48

Các kiểu kiến trúc chương trình

Interfaces to Presentation GUI

Business Logic

Actual Program Rules

Trang 49

Các kiểu kiến trúc chương trình

• Kiến trúc đơn tầng:

User Interface Business Rule Data Storage

 Sử dụng trên 1 máy tính

 Dễ cài đặt

 Nhiều nhược điểm

Cần có kiến trúc mới – Client/Server

Trang 50

Các kiểu kiến trúc chương trình

• Kiến trúc 2 tầng (2-tiered):

Client/Server kiểu Fat Client

Trang 51

Các kiểu kiến trúc chương trình

51

• Kiến trúc đa tầng (n tiered):

– Thường gọi là Ứng dụng phân tán.

– Mỗi thành phần có nhiệm vụ riêng

Mô hình Client/Server 3 tầng

Client

Application Server Database Server

Middleware

Trang 52

Các kiểu kiến trúc chương trình

Fat Client Fat Server

Presentation Logic

Database Logic

Database Logic

Business Logic

Presentation Logic Presentation Logic

Business Logic

Database Logic

• So sánh kiến trúc 2 tầng và kiến trúc

3 tầng của ứng dụng

Trang 53

Sockets cung cấp một interface để lập trình mạng tại tầng Transport

Một socket là một end-point của một liên kết giữa hai ứng dụng mạng

Nhiều NNLT: C, C++, Java, VB, C#,

Windows Socket Application Programming Interface (Winsock API)

Winsock hỗ trợ xây dựng các ứng dụng mạng trên nền TCP/IP

.NET hỗ trợ lập trình mạng tốt nhất so với các sản phẩm khác củaMicrosoft

=> Mục tiêu: nghiên cứu cách xây dựng ứng dụng truyền thông

client/server dùng Sockets

Giới thiệu về Socket

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 54

Giới thiệu về Windows Socket

Windows Sockets Application Programming Interface (WinSock API) làmột giao diện lập trình mạng dưới nền tảng của Windows

Đầu tiên Windows Socket được phát triển cho hệ điều hành Linux,nhưng nay nó đã được cài đặt trền Windows và hỗ trợ cơ chế điềukhiển thông điệp tự nhiên của Windows

Windows Socket đã phát triền qua nhiều phiên bản

Vd phiên bản chạy

trên Windows XP và 2000 là 2.2

Giới thiệu về Socket

Trang 55

Giới thiệu về Windows Socket

Windows Sockets cho phép những nhà sản xuất cung cấp một giaodiện đồng nhầt để người lập trình có thể viết các chương trình ứngdụng theo những đặc tả của Windows Sockets và có thể chạy đượctrên bất kỳ hệ thống nào có hỗ trợ Windows Sockets

Các phiên bản sau của Windows socket đều tương thích với các phiênbản trước của nó Điều đó có nghĩa là một ứng dụng được viết chophiền bản trước cũng hoàn toàn có thể chạy được trên phiên bản saucủa Windows Sockets

Windows Sockets hỗ trợ nhiều giao thức khác: IPX/SPX, Apple’sAppletalk, ATM,…

Giới thiệu về Socket

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 56

Một số khái niệm

Socket: Một điểm giao tiếp đầu cuối của một chương trình trên mạng.Một TCP/IP Sockets được xác định bằng sự kết nối của một địa chỉ vàmột số hiệu cổng

 Địa chỉ sẽ xác định máy mà Sockets đó làm việc

 Cổng sẽ xác định chính xác tiến trình đang thực hiện Sockets trênmáy có địa chỉ đó

Giới thiệu về Socket

Trang 57

Khái niệm địa chỉ và cổng (Address & Port)

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 58

Khái niệm địa chỉ và cổng (Address & Port)

Có thể xảy ra "nhầm lẫn" khi dữ liệu từ máy A gửi đến máy B thì trên máy

B không biết là dữ liệu đó gửi cho ứng dụng nào?

Mỗi ứng dụng trên máy B sẽ được gán một số hiệu (cổng: Port), từ0 65535

Trang 59

Khái niệm địa chỉ và cổng (Address & Port)

Chương 1: Những vấn đề cơ bản của lập trình mạng

Cách giải quyết

Khi ứng dụng trên máy A muốn gửi cho ứng dụng nào trên máy B thì chỉviệc điền thêm số hiệu cổng (vào trường RemotePort) vào gói tin cần gửi.Trên máy B, các ứng dụng chỉ việc kiểm tra giá trị cổng trên mỗi gói tinxem có trùng với số hiệu cổng của mình (đã được gán – chính là giá trịLocalPort) hay không? Nếu bằng thì xử lý, trái lại thì không làm gì (vìkhông phải là của mình)

Trang 60

Khái niệm địa chỉ và cổng (Address & Port)

Một số quy định

Không bao giờ có 2 ứng dụng lại cùng dùng 1 port

Các port từ 0 – 1023 (Well-know): dùng cho các ứng dụng quan trọngtrên hệ điều hành

Các port từ 1024 – 49151 (Registered): dành cho người lập trình (khuyếncáo tuân theo)

Các port từ 49152 – 65535 (Dynamic): dự trữ

Trang 61

Giao tiếp sử dụng socket có thể ở chế độ hướng kết nối (giao thức TCP)hoặc không hướng kết nối (giao thức UDP) bằng cách xác định giao thứccủa tầng vận chuyển

Lập trình Socket với C#

Chương 1: Những vấn đề cơ bản của lập trình mạng

Network driver Network protocol Transport protocol

Network driver Network protocol Transport protocol

Giao tiÕp gi÷a hai qu¸ tr×nh sö dông Socket

Trang 62

– Kiểm tra lỗi.

– Truyền lại gúi tin lỗi, mất

– Bảo đảm thứ tự cỏc gúi tin

 Không kiểm tra lỗi.

 Không phát hiện, không truyền lại gói tin lỗi, mất.

 Không bảo đảm thứ tự các gói tin

 Dữ liệu không chính xác, tốc độ truyền nhanh

 Thích hợp cho các ứng dụng cần tốc

Trang 63

Giao tiếp sử dụng socket có thể ở chế độ hướng kết nối (giao thức TCP)hoặc không hướng kết nối (giao thức UDP) bằng cách xác định giao thứccủa tầng vận chuyển

Lập trình Socket với C#

Chương 1: Những vấn đề cơ bản của lập trình mạng

Trang 64

Các lớp trong NET Framework được tạo ra để cung cấp một giao diện

Trang 65

Lớp IPAddress

Trên Internet mỗi một trạm (có thể là máy tính, máy in, thiết bị …) đều cómột định danh duy nhất, định danh đó thường được gọi là một địa chỉ(Address)

Địa chỉ trên Internet là một tập hợp gồm 4 con số có giá trị từ 0-255 vàcách nhau bởi dấu chấm

Để thể hiện địa chỉ này, người ta có thể viết dưới các dạng sau:

Tên: ví dụ như May01, Server, …

Địa chỉ IP nhưng đặt trong một chuỗi: "192.168.1.1", "127.0.0.1“

Đặt trong một mảng 4 byte, mỗi byte chứa một số từ 0-255

Hoặc cũng có thể là một số (long), có độ dài 4 byte Ví dụ, với địa chỉ192.168.1.2 ở trên thì giá trị đó sẽ là 33663168 (số ở hệ thập phân khi xếp

liền 4 byte ở trên lại với nhau) 00000010000000011010100011000000

13/07/2016 2 (byte 0) 1 (byte 1) 168 (byte 2) 192 (byte 3) 65

Trang 66

• IPAddress được sử dụng để biểu hiện một địa chỉ IP duy nhất

• Hàm tạo là : public IPAddress(long address)

• Tuy nhiên hàm tạo này không được sử dụng thường xuyên

• Lớp IPAddress cung cấp một số phương thức khác để làm việc với địa chỉ

Trang 67

Lớp IPAddress: các thành viên

AddressFamily

Trả về họ địa chỉ của địa chỉ IP hiện hành Nếu địa chỉ

ở dạng IPv4 thì kết quả là Internetwork vàInternetworkV6 nếu là địa chỉ IPv6

trong địa chỉ IPAddress

Trang 68

Lớp IPAddress: các thành viên

byte thông thường

IP chuẩn (Một đối tượng IPAddress)

có dấu chấm (Ví dụ "192.168.1.1")

Trang 69

IPAddress: Ví dụ tạo địa chỉ

IPAddress Ip3 = IPAddress.Parse(“192.168.1.2")

• Cách 4: Thông qua tính toán

Long So = 192* 256^0+168* 256^1+1* 256^2 + 2*256^3;

IPAddress Ip4 = new IPAddress(So);

Trang 70

Cung cấp một địa chỉ IP quảng bá (Broadcast, thường là 255.255.255.255), ở dạng số Long Muốn lấy ở dạng chuỗi, viết: Broadcast.ToString() Thuộc tính này chỉ đọc

Thuộc tính này chỉ đọc

Một địa chỉ IP (An Internet Protocol (IP) address) ở dạng số

Trang 71

IPAddress: Ví dụ kiểm tra địa chỉ

private void KiemTra()

{

IPAddress ip;

String Ip4 = "127.0.0.1";

String Ip5 = "999.0.0.1";

MessageBox.Show(IPAddress.TryParse(Ip4, out ip).ToString());

MessageBox.Show(IPAddress.TryParse(Ip5, out ip).ToString());

}

Trang 72

IPAddress: Ví dụ chuyển địa chỉ hiện hành ra

mảng

void ChuyenDoi()

{

IPAddress Ip3 = new IPAddress(16885952);

Byte[] b= new Byte[4];

b = Ip3.GetAddressBytes();

MessageBox.Show("Address: " + b[0] + "." + b[1] + "." + b[2] + "." + b[3]);

}

Trang 73

Lớp IPEndpoint

• Trong mạng, để hai trạm có thể trao đổi thông tin được với nhau thì chúngcần phải biết được địa chỉ (IP) của nhau và số hiệu cổng mà hai bên dùng

để trao đổi thông tin

• Lớp IPAddress mới chỉ cung cấp địa chỉ IP (IPAddress), như vậy vẫn cònthiếu số hiệu cổng (Port number)

• NET Framework sử dụng IPEndPoint để biểu diễn một sự kết hợp giữacổng và địa chỉ IP

• Hai hàm tạo của lớp này là:

– IPEndPoint(long address, int port)

– IPEndPoint(IPAddress address, int port)

• Hàm tạo thứ 2 được sử dụng phổ biến hơn

Trang 74

Lớp IPEndpoint: các thành viên

tượng IPAddress)

Port Lấy về hoặc thiết lập số hiệu cổng của endpoint

Trang 75

để giao tiếp (Tham khảo cách tạo IPAddress ở phần trên)

Cổng, ví dụ: 192.168.1.1:8080

Ngày đăng: 28/02/2022, 10:01

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm