Tải bản đầy đủ (.ppt) (122 trang)

Chuyên đề Lập trình mạng và internet pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (915.84 KB, 122 trang )


Chuyên đề
Lập trình mạng và internet
30 tiết lý thuyết


Học lập trình mạng để làm gì?

Có được sự hiểu biết để quản trị các dịch vụ có
sẳn trên mạng tốt hơn.

Có kiến thức để có thể lập được các tiện ích
khai thác tài nguyên trên mạng internet

Bước đầu lập được các ứng dụng server và
client phục vụ cho một mục đích riêng nào đó.

Nội dung

Chương 1: Nhắc lại một số khái niệm

Chương 2: Liên lạc dữ liệu bằng NetBIOS

Chương 3: Liên lạc dữ liệu bằng Pipe

Chương 4: Liên lạc dữ liệu bằng Socket

Chương 5: Lập trình socket với .NET

Chương 6: Một số bài tập ứng dụng


Lưu ý khi học
Ở những phần .NET, các ví dụ có thể viết bằng C# hoặc bằng VB.NET. Bạn
thích ngôn ngữ nào thì convert sang ngôn ngữ đó.
Chẳng hạn trang
convert khá tốt:

Chương 1
Nhắc lại một số khái niệm

Mô hình 7 lớp OSI
(Open Systems Interconnection)

Các giao thức mạng

Transmission Control Protocol/Internet Protocol (TCP/IP)

Asynchronous Transfer Mode (ATM)

NetWare Internetwork Packet Exchange/Sequenced
Packet Exchange (IPX/SPX)

NetBIOS Enhanced User Interface (NetBEUI)

AppleTalk

Data Link Control (DLC)

Infrared Data Association (IrDA)
Các giao thức (protocols) định hình các gói được chuẩn
hoá (standardized packets) của dữ liệu mà chúng được

lập đúng cho việc chia sẻ thông tin trên mạng.

Giao thức TCP/IP ánh xạ thành mô hình 4 lớp kiểu như mô hình
DARPA. Bốn lớp của mô hình DARPA là: Application, Transport,
Internet, và Network Interface. Mỗi lớp trong mô hình DARPA tương
ứng với một hoặc một vài lớp trong mô hình 7 lớp OSI.
Kiến trúc lớp trong TCP/IP

Lớp giao tiếp mạng (Network Interface Layer)

Lớp Network Interface (còn gọi là lớp Network Access) chịu trách
nhiệm đặt các gói TCP/IP trên phần trung gian của mạng và nhận các
gói TCP/IP cuối phần trung gian của mạng.

TCP/IP được thiết kế độc lập với phương pháp truy xuất, dạng khung
(frame format) và phần trung gian. Theo cách này, TCP/IP có thể được
sủ dụng để kết nối với các kiểu mạng khác nhau. Chúng bao gồm các
công nhệ LAN như Ethernet, Token Ring và các công nghệ WAN như
X.25, Frame Relay.

Sự độc lập với mọi công nghệ mạng làm cho TCP/IP có thể thích nghi
với các công nghệ mới như ATM (Asynchronous Transfer Mode )

Lớp Network Interface đối sánh với các lớp Data Link và lớp Physical
của mô hình OSI.
Các lớp trong kiến trúc TCP/IP

Lớp internet (Internet Layer)

Internet Protocol (IP) là một giao thức con có nhiệm vụ địa chỉ hoá IP,

chọn đường, phân mảnh và tụ hội lại các gói.

Address Resolution Protocol (ARP) có nhiệm vụ phân giải địa chỉ
Internet đến lớp Network Interface như là địa chỉ phần cứng.

Internet Control Message Protocol (ICMP) có nhiệm vụ cung cấp các
chức năng dò tìm lỗi và lập các báo cáo lỗi cho các thao tác nhận gói IP
không thành công.

Internet Group Management Protocol (IGMP) có nhiệm vụ quản lý các
nhóm IP multicast.

Lớp Internet là tương tự như lớp Network của mô hình OSI.
Các lớp trong kiến trúc TCP/IP (tiếp)

Lớp truyền (Transport Layer)

Lớp Transport (được hiểu như là lớp Host-to-Host Transport) có nhiệm
vụ cung cấp cho lớp Application các phiên và các dịch vụ liên lạc
datagram. Cốt lõi của lớp Transport là Transmission Control Protocol
(TCP) và User Datagram Protocol (UDP).
- TCP cung cấp kết nối one-to-one, connection-oriented, dịch vụ liên
lạc đảm bảo. TCP chịu trách nhiệm về việc thiết lập một kết nối TCP,
tuần tự và đáp ứng việc đẩy các gói và hồi phục các gói bị mất trong
quá trình chuyển.
- UDP cung cấp các kết nối one-to-one hoặc one-to-many, không cần
kết nối, các dịch vụ liên lạc không đảm bảo. UDP được sử dụng kho
khối lượng dữ liệu chuyển quá nhỏ (chẳng hạn như dữ liệu được cắt
thành các gói đơn), khi sự kết nối TCP là không được mong muốn
hoặc các ứng dụng hoặc các giao thức của lớp trên cung cấp sự giao

nhận là được đảm bảo.

Lớp Transport tương ứng với lớp Transport và một vài chức năng trong
lớp Session của mô hình OSI.
Các lớp trong kiến trúc TCP/IP (tiếp)

Application Layer

Hypertext Transfer Protocol (HTTP) được dùng để chuyển các file được thiết lập
như là các trang Web của World Wide Web.

File Transfer Protocol (FTP) được sử dụng như là công cụ chuyển file.

Simple Mail Transfer Protocol (SMTP) được sử dụng cho việc chuyển các thông
địep thư diên tử và các tư liệu kèm (mail messages and attachments).

Telnet, là một giao thức trạm cuối, được sử dụng để đăng nhập theo dạng từ xa
các hots mạng.
Ngoài ra, lớp các giao thức của lớp Application giúp sử dụng và quản trị các mạng
TCP/IP dễ dàng hơn:

Domain Name System (DNS) được dùng để phân giải một host name thành một
địa chỉ IP.

Routing Information Protocol (RIP) là một giao thức chọn đường trong đó các
router dùng để hoán chuyển sự chọn đường thông tin trên một mạng internet IP.

Simple Network Management Protocol (SNMP) được sử dụng giữa màn hình
quản trị mạng và các thiết bị mạng (routers, bridges, intelligent hubs) để tập hợp và
chuyển đổi thông tin quản trị mạng.

Các ví dụ giao tiếp lớp Appliction với các ứng dụng TCP/IP là Windows Sockets và
NetBIOS.
Các lớp trong kiến trúc TCP/IP (tiếp)

Truyền dữ liệu trên các lớp
TCP/IP


Địa chỉ IP là số nguyên 32 bit phân thành các phần định danh lớp
(class id), việc định danh mạng (network id) và định danh máy (host
id)

Định danh lớp (class id) trong địa chỉ IP xác định có bao nhiêu bit
trong đc IP dành cho network id và dành cho host ip.
Địa chỉ IP

Địa chỉ IP (tiếp)
Lớp A
Lớp B
Lớp C

Địa chỉ IP (tiếp)
Dạng biểu diễn địa chỉ IP

Liên lạc dữ liệu giữa các máy tính
trên mạng
Làm thế nào để truyển
dữ liệu từ máy này
đến máy kia?
Có thể sử dụng một

trong các kỹ thuật như:
-
NetBIOS
-
Pipe
-
Socket

Chương 2
Liên lạc dữ liệu bằng
NetBIOS

NetBIOS là gì ?

NetBIOS (Network Basic Input/Output System) là một chương trình
cho phép các ứng dụng trong các máy tính khác nhau liên lạc bên
trong một mạng cục bô (LAN). Nó được phát triển bởi IBM.

NetBIOS được dùng trong các mạng Ethernet và Token Ring và coi
như là một phần của NetBIOS Extended User Interface (NetBEUI),
trong hệ điều hành Microsoft Windows

NetBIOS cung cấp các dịch vụ session và transport được mô tả
trong mô hình OSI. Nó không cung cấp khung chuẩn (standard
frame) hoặc định dạng dữ liệu (data format) cho việc truyền mà
khung chuẩn được cung cấp bởi NetBUI.

NetBIOS cung cấp 2 kiểu liên lạc là session và datagram. Session:
là kiểu liên lạc giữa 2 máy tính thông qua thủ tục kết nối, nó cho
phép truyền được các messages kích thướclớn, xác định lỗi và sử

lỗi.

Datagram là kiểu liên lạc không cần thủ tục kết nối (connectionless)
messages nhỏ, và nó hỗ trợ kiểu truyên quảng bá (broadcast) một
message đến mỗi máy tính trên mạng LAN.

Tổ chức thực hiện lệnh của NetBIOS
Máy tính
1
Máy tính
2
Tên (name) là “thanh” Tên (name) là “minh”
NCB NCB
2. Đưa lệnh (send)
3. Đặt dữ liệu
4. Thực hiện lệnh
1. Xác định tên (local,remote)
5. Nhận kết quả
(lỗi, không lỗi)
1. Xác định tên (l,c)
2. Đưa lệnh (receive)
3. Đặt bộ đệm nhận
4. Thực hiện lệnh
5. Nhận kết quả
(lỗi, dữ liệu D)
Bộ đệm
dữ liệu
D
Bộ đệm
dữ liệu

nhận D


Tên (name):
Tên là định danh logic cho một trạm trên mạng.
Độ dài tên không quá 16 ký tự.

Lệnh (command):
Lệnh là số nguyên 1 byte xác định chức năng
của một thao tác mạng.

Các phiên giao dịch (session):
Là một logic kết nối trong kiểu liên lạc session

Datagrams:
Làm một cách thức liên lạc khác kiểu session
Các khái niệm

NCB (network control block)
NCB_COMMAND 1 byte ; Mã lệnh
NCB_RETCODE 1 byte ; Mã kết quả trả lại (sau khi thực hiện lệnh)
NCB_LSN 1 byte ; Chỉ số Local session
NCB_NUM 1 byte ; Chỉ số tên (Name number)
NCB_BUFFER 4 byte ; Địa chỉ bộ đếm dữ liệu D (segment:offset)
NCB_LENGTH 2 byte ; độ dài bộ đệm dữ liệu D
NCB_CALLNAME 16 byte ; Tên máy tính từ xa (remote adapter)
NCB_NAME 16 byte ; Tên máy tính cục bộ (local adapter)
NCB_RTO 1 byte ;Timeout cho các lệnh nhận (receive)
NCB_STO 1 byte ;Timeout cho các lệnh đẩy (send).
NCB_POST 4 byte ;Con trỏ đến post routine (segment:offset)

NCB_LANA_NUM 1 byte ;Chỉ số adapter được sử dụng.
NCB_CMD_CPLT 1 byte ;Nếu lệnh lỗi, nó là 0FFH.
NCB_RESERVE 1 byte 14 DUP(?) ;Dự trữ
Là khối bộ nhớ 64 byte được chia thành các field như sau:

Cách thực một hiện lệnh
1. Điền các field cần thiết ứng với lệnh cần thực hiện vào NCB. Các
field không cần điền nên lấp đầy các byte 0.
2. Đặt dữ liệu cần chuyển vào bộ đệm dữ liệu (nếu lệnh cần thực hiện
là các lệnh đẩy như SEND…)
3. Đặt điạ chỉ của NCB vào hai thanh ghi ES:BX.
4. Thực hiện lệnh: Gọi thực hiện lệnh ngắt (CPU) INT 5CH.
5. Đợi cho đến khi lệnh hoàn thành, không đươc thay đổi gì trong NCB
6. Khi lệnh hoàn thành, NetBIOS sẽ đặt mã kết quả vào NCB tại field
NCB_RETCODE) và có thể một vài field khác. Nếu là lệnh nhận dữ
liệu (RECEIVE) thì dữ liệu nhận được sẽ được NetBIOS đặt vào bộ
đệm dữ liệu.

Một số lệnh về tên
Thêm một tên mới (ADD NAME)
Fields Required:
NCB_COMMAND = 30H (đồng bộ - Wait form) or 0B0H (dạng dị bộ No-wait form).
NCB_NAME = Tên cần thêm.
NCB_POST = Địa chỉ cho post routine (nếu dùng lệnh dạng dị bộ).
NCB_LANA_NUM = Adapter number (0).
Fields Returned:
NCB_RETCODE = Final return code.
NCB_NUM = Name number.
Final Return Codes:
00H = Good return.

03H = Invalid command.
0DH = Duplicate name in local name table.
0EH = Name table is full.
15H = First byte of NCB_NAME is "*" or 00H.
16H = Name in use on remote station.
19H = Name conflict detected.
21H = Interface busy.
22H = Too many commands outstanding.
23H = Invalid NCB_LANA_NUM.
40H-0FEH = Network malfunction.

Một số lệnh về tên (tiếp)
Bỏ một tên (DELETE NAME)
Fields Required:
NCB_COMMAND = 31H (Wait form) or 0B1H (No-wait form).
NCB_NAME = 16-character name to be removed from the name table.
NCB_POST = Address of post routine (if no-wait command form is used).
NCB_LANA_NUM = Adapter number.
Fields Returned:
NCB_RETCODE = Final return code
Final return code:
00H = Good return.
03H = Invalid command.
0FH = Name has active sessions and is now de-registered.
15H = First byte of NCB_NAME is "*" or 00H.
21H = Interface busy.
22H = Too many commands outstanding.
23H = Invalid NCB_LANA_NUM.
40H-0FEH = Network malfunction.

×