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
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ến
trú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 ?
89 trang |
Chia sẻ: candy98 | Lượt xem: 659 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu 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 - Trần Đắc Tốt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH MẠNG
(Network programming)
1
Giảng viên: Ths. Trần Đắc Tốt – Khoa CNTT
Email: tottd@cntp.edu.vn
Website: www.oktot.com
Facebook: https://www.facebook.com/oktotcom/
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC
PHẨM TP.HCM
Chương 1: Những vấn đề cơ bản của lập trình mạng
MÔN HỌC: LẬP TRÌNH MẠNG
2
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)
Chương 1: Những vấn đề cơ bản của lập trình mạng
3CHƯƠ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
4Mụ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/IP
Windows Socket
Lập trình Socket trong C#
Các lớp DNS trong C#
Yêu cầu: Sinh viên nắm vững các khái niệm cơ bản về
Lập trình mạng
Sử dụng socket trong lập trình mạng
MỤC ĐÍCH – YÊU CẦU
Chương 1: Những vấn đề cơ bản của lập trình mạng
5CHƯƠ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
6Cơ bản về mạng máy tính
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
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ến
trú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
8Cơ bản về mạng máy tính
Internet ngày nay
Chương 1: Những vấn đề cơ bản của lập trình mạng
9Cơ 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
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)
Chương 1: Những vấn đề cơ bản của lập trình mạng
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)
11
Cơ bản về mạng máy tính
Giao thức là gì?
Chương 1: Những vấn đề cơ bản của lập trình mạng
12
Cơ bản về mạng máy tính
Giao thức mạng
Chương 1: Những vấn đề cơ bản của lập trình mạng 20
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,
Telnet, SSH, Ethernet,
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
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
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
16
Mô hình truyền thông
So sánh
Chương 1: Những vấn đề cơ bản của lập trình mạng
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
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ên
kế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
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
Chương 1: Những vấn đề cơ bản của lập trình mạng
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
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ạng
Mạ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
Ứng dụng: Hỗ trợ các ứng dụng trên mạng
Chương 1: Những vấn đề cơ bản của lập trình mạng
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 định
và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
Ethernet/10M
CAT5
IP
FTP
TCP
IP
100M/Ethernet
CAT5
IP
FTP
TCP
Nguồn ĐíchNút trung gian
100M
CAT5
10M
CAT5
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
Chương 1: Những vấn đề cơ bản của lập trình mạng
Mô hình phân tầng của Internet
Địa chỉ
Gói quà
Trang trí
Dán địa chỉ
Địa chỉ
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)
(N+1) PDU
(N) PDU
(N-1) PDU
HN
HN HN-1
Layer (N+1)
Layer (N-1)
Layer (N)
Service interface
Protocol N
Service interface
Protocol N-1
addr.
Chương 1: Những vấn đề cơ bản của lập trình mạng
PDU: Protocol Data Unit – Đơn vị dữ liệu
giao thức
Data Data
Ex:HTTP header
TCP header
IP header
Ethernet Frame
Signal
Application
TCP
IP
Network Interface
Physical
Sender
Bên gửi
Mỗi tầng thêm các thông tin điều khiển (header) vào gói tin và truyền xuống tâng
dưới
Bên nhận
Mỗi tầng xử lý thông tin dựa trên phần header, sau đó bỏ header và truyền dữ liệu lên
tầng trên
Physical
Receiver
Application
TCP
IP
Network Interface
Họ giao thức TCP/IP và quá trình đóng gói
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
Dữ
End node
liệu - payload
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
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
TCP header
End node
Dữ liệu - payload
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
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
Dữ liệu - payload
Protocol stack và quá trình đóng gói
CAT5
End node End nodeIntermediate node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Dữ liệu - payloadEthernet header IP header TCP header
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
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
Dữ liệu - payload
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
CAT5CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
Dư liệu - payload
End node
WDM header
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
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
Dữ liệu - payload
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
CAT5
End node End nodeIntermediate node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Dữ liệu - payloadEthernet header IP header TCP header
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
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
IP header TCP header
End node
Dữ liệu - payload
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
CAT5
End node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
Intermediate node
TCP header
End node
Dữ liệu - payload
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
CAT5
End node Intermediate node
CAT5
Ethernet/10M
IP
FTP
TCP
Ethernet/100M
IP
FTP
TCP
10M
IP
10G
CAT5 WDM
10G
IP
WDM CAT5
End node
Dữ liệu - payload
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
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
Các tầng hoạt động độc lập
Tầng trên chỉ quan tâm đến việc sử dụng tầng dưới mà không quan tâm
đến các tầng xa hơn.
Cho phép định nghĩa giao diện chung giữa các tầng
Khả năng mở rộ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→IPv6
Nếu không phân tầng: Khi muốn thay đổi, phải làm toàn bộ
application
TCP/UDP
IP
data link
e.g. 00:11:24:79:8e:82
physical
Port Number, e.g. Port 80
IP address, e.g. 203.12.15.165
Physical address / MAC address
Chương 1: Những vấn đề cơ bản của lập trình mạng
Định danh trên Internet và quan hệ với các tầng
Đị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 Gán bởi nhà sản xuất
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
Đị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)
Chương 1: Những vấn đề cơ bản của lập trình mạng
Định danh dùng trên Internet
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ổng
E.g. HTTP cổng 80, FTP cổng 20, 21
42
Các RFC quan trọng
RFC Document Giao thức
RFC 821 SMTP (email, outgoing)
RFC 954 WHOIS
RFC 959 FTP (uploading and downloading)
RFC 1939 POP3 (email, incoming)
RFC 2616 HTTP (Web browsing)
RFC 793 TCP (runs under all above protocols)
RFC 792 ICMP (ping)
RFC 791 IP (runs under TCP and ICMP)
Chương 1: Những vấn đề cơ bản của lập trình mạng
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
Mô hình Client / Server
44
Xử lý
Yêu cầu
Phục vụ
Lắng nghe yêu cầu
Nhận yêu cầu
Xử lý yêu cầu
Gửi kết quả trả về
cho Client
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
Dạng thức của thông điệp phải tuân theo protocol của dịch vụ.
Mô hình Client / Server
Web Client
Web Server
file1.htm
Trình
duyệtTrang
Web
Xử lý
• Mô hình Client-Server của dịch vụ WEB:
Mô hình Client / Server
Các chế độ giao tiếp:
Chế độ giao tiếp nghẽn Chế độ giao tiếp không nghẽn
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):
Tương tác với người dùng
Nhập liệu, báo biểu, thông báo ra màn hình,
Dịch vụ nghiệp vụ (Business Rule):
Tính toán dữ liệu
Xử lý thông tin
Dịch vụ lưu trữ (Data Storage):
Lưu trữ dữ liệu
Truy vấn dữ liệu
Các kiểu kiến trúc chương trình
GOLDMAN: CSIS
FIG. 01-11
Presentation
Application
Data
Communication
Presentation
Logic
Interfaces to
Presentation GUI
Business Logic
Actual Program
Rules
Database Logic
Interfaces to DBMS
in Data Layer
Presentation
Logic
Interfaces to
Presentation GUI
Business Logic
Actual Program
Rules
Database Logic
Interfaces to DBMS
in Data Layer
Presentation
Application
Data
CLIENT SERVER
Mô hình của 1 chương trình ứng dụng
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
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
Client/Server kiểu Fat Server
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
Các kiểu kiến trúc chương trình
GOLDMAN: CSIS
FIG. 01-24
Fat Client Fat Server
TWO-TIERED
ARCHITECTURE
THREE-TIERED
ARCHITECTURES
Presentation
Logic
Database
Logic
Middleware
C
LI
E
N
TS
TI
E
R
1
TI
E
R
2
D
E
P
A
R
TM
E
N
TA
L
S
E
R
V
E
R
S
TI
E
R
3
S
U
P
E
R
-S
E
R
V
E
R
S
M
A
IN
FR
A
M
E
S
Business
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
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ủa
Microsoft
=> 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
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ều
khiể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
Chương 1: Những vấn đề cơ bản của lập trình mạng
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 giao
diện đồng nhầt để người lập trình có thể viết các chương trình ứng
dụng theo những đặc tả của Windows Sockets và có thể chạy được
trê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ên
bản trước của nó. Điều đó có nghĩa là một ứng dụng được viết cho
phiền bản trước cũng hoàn toàn có thể chạy được trên phiên bản sau
của Windows Sockets.
Windows Sockets hỗ trợ nhiều giao thức khác: IPX/SPX, Apple’s
Appletalk, 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
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ên
máy có địa chỉ đó.
Giới thiệu về Socket
Chương 1: Những vấn đề cơ bản của lập trình mạng
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
58
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
Nguyên lý
Trong máy có rất nhiều ứng dụng muốn trao đổi với các ứng dụng khác
thông qua mạng.
Ví dụ: có 2 ứng dụng của máy A muốn trao đổi với với 2 ứng dụng trên máy
B
Mỗi máy tính chỉ có duy nhất một đường truyền dữ liệu (để gửi và nhận)
Vấn đề
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.
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 tin
xem 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).
60
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
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ọng
trên hệ điều hành
Các port từ 1024 – 49151 (Registered): dành cho người lập trình (khuyến
cáo tuân theo)
Các port từ 49152 – 65535 (Dynamic): dự trữ
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ức
củ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
port port
Network driver
Network protocol
Transport protocol
Network driver
Network protocol
Transport protocol
Program A Program B
Host1 Host2
Giao tiÕp gi÷a hai qu¸ tr×nh sö dông Socket
port port
62
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
• Chế độ có nối kết
(connection):
• Tồn tại kênh giao tiếp ảo giữa
client và server.
• Dữ liệu được gởi đi theo chế độ
bảo đảm:
– 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
– . . .
• Dữ liệu chính xác, Tốc độ truyền
chậm.
ChÕ ®é kh«ng nèi kÕt
(connectionless):
Kh«ng tån t¹i kªnh giao tiÕp ¶o gi÷a
client vµ server.
D÷ liÖu được gëi ®i theo chÕ ®é
kh«ng b¶o ®¶m:
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
®é, kh«ng cÇn chÝnh x¸c cao: truyÒn
©m thanh, h×nh ¶nh . . .
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ức
củ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
64
Các lớp trong .NET Framework được tạo ra để cung cấp một giao diện
dễ dàng cho các lập trình viên.
Nội dung phần này sẽ gồm:
IP Addresses in C#
Using C# Socket