– Nắm vững các giao thức cấp ứng dụng của các ứng dụng phổ biến như DNS, E-mail, FTP, HTTP,.... để cĩ khả năng lập trình các ứng dụng mạng.. GIỚI THIỆUChương trình học chi tiết – Chương
Trang 2GIỚI THIỆU
Mục tiêu
– Cung cấp kiến thức nền tảng về lập trình mạng (Client/Server).
– Cung cấp kỹ năng lập trình mạng trên các mơi trường phát triển phần mềm trực quan như VC++, JBuilder.
– Nắm vững các giao thức cấp ứng dụng của các ứng dụng phổ biến như DNS, E-mail, FTP, HTTP, để cĩ khả năng lập trình các ứng dụng
mạng.
Tài liệu tham khảo
[1] Computer Networks, A.S Tanenbaum, Prentice-Hall, Edition 3
[2] Unix network programming
[3] Winsock Programming
SinhVienZone.Com
Trang 3GIỚI THIỆU
Chương trình học chi tiết
– Chương 0: Khái quát về mạng máy tính, TCP/IP
– Chương 1: Lập trình mạng dùng socket
– Chương 2: Lập trình MiniChat dùng VC++ bằng cơ chế xử lý sự kiện
– Chương 3: Lập trình MiniChat dùng JBuilder bằng cơ chế xử lý sự kiện
– Chương 4: DHMTL và lập trình Web chạy ở client
– Chương 5: Lập trình Web chạy ở server
Trang 4CHƯƠNG 0
KHÁI QUÁT VỀ MẠNG MÁY TÍNH,
TCP/IP
SinhVienZone.Com
Trang 5GIỚI THIỆU
tính hoạt động độc lập lại với nhau thông qua môi trường truyền thông.
SinhVienZone.Com
Trang 6VÌ SAO PHẢI SỬ DỤNG MẠNG MÁY TÍNH
• Chia xẻ thông tin.
Chia xẻ phần cứng và phần mềm.SinhVienZone.Com
Trang 7CÁC CẤU HÌNH MẠNG MÁY TÍNH
SinhVienZone.Com
Trang 8CÁC CẤU HÌNH MẠNG MÁY TÍNH
SinhVienZone.Com
Trang 9MẠNG KHÁCH CHỦ (Server –based)
SinhVienZone.Com
Trang 10CÁC THÀNH PHẦN CƠ BẢN CỦA MẠNG MÁY TÍNH
– Các môi trường truyền tín hiệu
– Các thiết bị phần cứng
– Kết nối các môi trường truyền lại với nhau (Hub, Switch).
– Điều khiển quá trình truyền dữ liệu (Switch, Router, Gateway).
– Truyền nhận dữ liệu tin cậy giữa hai tiến trình, hai máy tính
SinhVienZone.Com
Trang 11MẠNG CỤC BỘ VÀ ỨNG DỤNG MẠNG
Local-Area Network
SinhVienZone.Com
Trang 12MẠNG DIỆN RỘNG VÀ ỨNG DỤNG MẠNG
Wide-Area Network
SinhVienZone.Com
Trang 13PROTOCOL, LAYER, OSI MODEL
Trang 14PROTOCOL, LAYER, OSI MODEL
Profess ional Workstation 5000
Put letter into an envelope
and address it
Translate letter to another language
Monitoring sorted mail Put letter in mailbox
SinhVienZone.Com
Trang 15PROTOCOL, LAYER, OSI MODEL
Mô hình tham khảo OSI
Interconnectivity
Interoperability
Local connection
Remote connection Logical connection
Physical Data Link Network Transport Session Presentation Application
user
1 2 3 4 5 6 7
SinhVienZone.Com
Trang 16z Cơ chế trao đổi thông tin
PROTOCOL, LAYER, OSI MODEL
SinhVienZone.Com
Trang 17z Định dạng thông tin
PROTOCOL, LAYER, OSI MODEL
SinhVienZone.Com
Trang 18BỘ GIAO THỨC TCP/IP
– Transmission Control Protocol/ Internet Protocol
– Được phát triển bởi Defense Advanced Research Projects Agency (DARPA)
– Đưa vào chuẩn 1983.
SinhVienZone.Com
Trang 19SO SÁNH GIỮA OSI VÀ TCP/IP
ICMP IP
ARP
Ethernet Token Ring FDDI WANs
Network interface layer
Internet layer (gateway level)
Transport layer (host level)
Applications layer
TCP/IP OSI
Trang 20SO SÁNH GIỮA OSI VÀ TCP/IP
SinhVienZone.Com
Trang 21TẦNG INTERNET TRONG TCP/IP
– IP, ARP, RARP, ICMP.
– Các máy tính giao tiếp với nhau thông qua địa chỉ IP và tên gợi nhớ.
– Hãy suy nghĩ địa chỉ IP như thông tin nhà của bạn !!!!
– Địa chỉ IP : Mỗi địa chỉ là một cặp (netid, hostid).
SinhVienZone.Com
Trang 22ĐỊA CHỈ IP
z Địa chỉ IP (version 4)
– Địa chỉ IP có chiều dài 4 bytes (32 bits)
– Địa chỉ IP thường biểu biễn dạng thập phân :
z xxx.xxx.xxx.xxx (x là số thập phân 0-9)
chỉ máy).
SinhVienZone.Com
Trang 23ĐỊA CHỈ IP
z Phân lớp địa chỉ
– Xác định bởi những bit nhận dạng (Class ID).
– Sự tương quan giữa lớp và kích thước mạng
SinhVienZone.Com
Trang 25ĐỊA CHỈ IP
SinhVienZone.Com
Trang 26CÁC GIAO THỨC XEM XÉT
SinhVienZone.Com
Trang 27– Có khả năng phát hiện lỗi trong phần header.
– Nỗ lực tối đa(Best-effort): không tin cậy và không có kết nối.
– Phân mảnh và hợp nhất.
SinhVienZone.Com
Trang 28INTERNET PROTOCOL
SinhVienZone.Com
Trang 29INTERNET PROTOCOL
– Version(VER): IPv4 hay IPv6.
– Flags, Fragmentation offset : dùng cho vấn đề phân mảnh.
– Time To Live.
– Protocol:
OSPF 89
IPv6 41
UDP 17
EGP 8
TCP 6
IGMP 2
ICMP 1
Protocol Value
SinhVienZone.Com
Trang 30INTERNET PROTOCOL
– MTU (Maximum Transfer Unit)
– Chiều dài tối đa của IP Datagram
1500 Ethernet
4.352 FDDI
4.464 Token ring
(4Mbps)
17.914
Token ring (16Mbps)
65.535 Hyperchannel
MTU(Bytes) Protocol
SinhVienZone.Com
Trang 31INTERNET PROTOCOL
SinhVienZone.Com
Trang 32INTERNET CONTROL MESSAGE PROTOCOL
– Gởi các thông báo lỗi và các thông báo điều khiển.
– Các loại sau được dùng để định nghĩa thông điệp:
Echo reply Echo
Timestamp Reply Timestamp
Redirect
Source Quench Parameter Problem
Time to Live Exceeded Destination Unreachable
SinhVienZone.Com
Trang 33ADDRESS RESOLUTION PROTOCOL
z Khái niệm
– Cơ chế hoạt động
SinhVienZone.Com
Trang 34ADDRESS RESOLUTION PROTOCOL
Destination Source
Router A
SinhVienZone.Com
Trang 35ADDRESS RESOLUTION PROTOCOL
z Ví dụ cùng subnet (tiếp theo)
Host Stevens 172.16.10.10 255.255.255.0 MAC 00-0C-04-17-91-CC
172.16.10.0/24
Host Cerf 172.16.10.25 255.255.255.0 MAC 00-0C-04-38-44-AA
Destination MAC Address???
Router A
SinhVienZone.Com
Trang 36ADDRESS RESOLUTION PROTOCOL
z Ví dụ cùng subnet (tiếp theo)
- ARP Request từ host Stevens ở địa chỉ IP 172.16.10.10
“Hey everyone! I have this IP Address, 172.28.10.25, and I need the device this belongs to, to send me their MAC address.”
ARP Request from 172.16.10.10
Ethernet Header Ethernet Data – 28 byte ARP request/reply
Fram
e Type
ARP header
s, i.e
op field
Sender’s Ethernet Address (MAC)
Sender’s
IP Address
Target’s Ethernet Address (MAC)
00-0C-0x806 op = 1 00-0C-
04-17-
172.16.10.10 172.16.10.25
SinhVienZone.Com
Trang 37ADDRESS RESOLUTION PROTOCOL
z Ví dụ cùng subnet (tiếp theo)
- ARP Reply từ Cerf ở địa chỉ IP 172.16.10.25
“ Hey sender of ARP Request! Here is my MAC address that you wanted for that IP address.”
ARP Reply from 172.16.10.25
Ethernet Header Ethernet Data – 28 byte ARP request/reply
Fram
e Type
ARP header
s, i.e
op field
Sender’s Ethernet Address (MAC)
Sender’s
IP Address
Target’s Ethernet Address (MAC)
0x806 op = 2 00-0C-
04-38- 44-AA
172.16.10.25 00-0C-
04-17- 91-CC
172.16.10.10
Here it is!
SinhVienZone.Com
Trang 38ADDRESS RESOLUTION PROTOCOL
z Ví dụ cùng subnet (tiếp theo)
- Host Stevens nhận được ARP Reply và đưa địa chỉ IP, và địa chỉ MAC của Host Cerf vào bảng ARP của nó.
- Host Stevens bây giờ đã có tất cả các thông tin cần thiết để đóng gói IP
packet vào Ethernet frame và gởi frame này trực tiếp đến Host Cerf.
Ethernet Frame
Ethernet Header IP Datagram from above Ethern
et Trailer
MAC
Destination
Address
MAC Source Address Other
Heade
r
IP Header Info
IP Original Source Address
IP Final Destination Address
Data FCS SinhVienZone.Com
Trang 39ADDRESS RESOLUTION PROTOCOL
z Ví dụ khác subnet
Host Stevens ở địa chỉ IP là 172.16.10.10 muốn gởi một IP packet đến
Host Perlman ở địa chỉ IP là 172.16.20.12
Destination Source
Router A Ethernet 0
172.16.10.1 255.255.255.0 MAC 03-0D-17-8A-F1-32
172.16.20.0/24
SinhVienZone.Com
Trang 40ADDRESS RESOLUTION PROTOCOL
z Ví dụ khác subnet (tiếp theo)
Default Gateway's (the router's)
MAC Address???
SinhVienZone.Com
Trang 41ADDRESS RESOLUTION PROTOCOL
z Ví dụ khác subnet (tiếp theo)
- ARP Request từ host Stevens ở địa chỉ IP 172.16.10.10
op field – ARP request = 1
ARP reply = 2RARP request = 3RARP reply = 4
“Hey everyone! I have this IP Address, 172.16.10.1, and I need the device this belongs to, to send me their MAC address.”
ARP Request from 172.16.10.10
Ethernet Header Ethernet Data – 28 byte ARP request/reply
Fram
e Type
ARP header
s, i.e
op field
Sender’s Ethernet Address (MAC)
Sender’s
IP Address
Target’s Ethernet Address (MAC)
00-0C-0x806 op = 1 00-0C-
04-17- 91-CC
172.16.10.10 172.16.10.1
SinhVienZone.Com
Trang 42ADDRESS RESOLUTION PROTOCOL
z Ví dụ khác subnet (tiếp theo)
- ARP Reply từ Router A ở địa chỉ IP 172.16.10.1
“Hey sender of ARP Request! Here is my MAC address that you
wanted for that IP address.”
ARP Reply from 172.16.10.1
Ethernet Header Ethernet Data – 28 byte ARP request/reply
Fram
e Type
ARP header
s, i.e
op field
Sender’s Ethernet Address (MAC)
Sender’s
IP Address
Target’s Ethernet Address (MAC)
Trang 43ADDRESS RESOLUTION PROTOCOL
z Ví dụ khác subnet (tiếp theo)
- Host Stevens nhận được ARP Reply và đưa địa chỉ IP, địa chỉ MAC của
Host Cerf vào bảng ARP của nó.
- Host Stevens bây giờ đã có tất cả các thông tin cần thiết để đóng gói IP
packet vào Ethernet frame và gởi frame này đến Router A.
Ethernet Frame
Ethernet Header IP Datagram from above Ethern
et Trailer
00-0C- 04-17- 91-CC
Other Heade
r Info
IP Header Info
IP Original Source Address 172.17.10.10
IP Final Destination Address
172.16.10.1
Data FCS
SinhVienZone.Com
Trang 44TẦNG VẬN CHUYỂN
SinhVienZone.Com
Trang 45TẦNG VẬN CHUYỂN TRONG TCP/IP
SinhVienZone.Com
Trang 46z Một giao thức phổ biến ở tầng vận chuyển
– Được chuẩn hoá trên RFC 793
– Tin cậy.
– Hướng kết nối (Connection oriented).
– Hoạt động hai chiều đồng thời.
– Phân mảnh thông điệp và ráp lại ở đích.
TCP (Transmission Control Protocol)
SinhVienZone.Com
Trang 47Địa chỉ ứng dụng
z Khơng thể dùng địa chỉ IP.
z Phải làm việc trên tất cả
Trang 49Địa chỉ ứng dụng
SinhVienZone.Com
Trang 50Địa chỉ ứng dụng
SinhVienZone.Com
Trang 51TCP (Transmission Control Protocol)
SinhVienZone.Com
Trang 52UDP (User Datagram Protocol)
– Giao thức không kết nối (Connectionless protocol)
– Phân phối thông điệp không tin cậy nhưng best effort
– Có khả năng phát hiện lỗi (trường checksum)
– Không điều khiển dòng (không window)
– Không điều khiển lỗi (không ACK)SinhVienZone.Com
Trang 53UDP (User Datagram Protocol)
SinhVienZone.Com
Trang 54z Các ứng dụng dạng Client – Server.
Ứng dụng mạng
SinhVienZone.Com
Trang 55Heä thoáng teân mieàn (DNS)
– Ánh xạ tên gợi nhớ thành địa chỉ IP và ngược lại.
SinhVienZone.Com
Trang 56Heä thoáng teân mieàn (DNS)
SinhVienZone.Com
Trang 57Hệ thống thư tín điện tử (E-mail)
– Message transfer agent
•User Agent •Message
Trang 58Hệ thống thư tín điện tử (E-mail)
– Trên Internet, email được chuyển bằng cách máy nguồn thiết lập một cầu nối TCP qua port 25 của máy đích Chương trình được chạy trên port này là SMTP (Simple Mail Transfer Protocol)
– Nĩ sẽ lắng nghe tại port 25 và cho phép thiết lập các cầu nối để từ đĩ đọc các message và chuyển đến các địa chỉ tương ứng.
– Trên Internet, email được nhận bằng cách máy nguồn thiết lập một cầu nối TCP qua port 110 của máy mail server Chương trình được chạySinhVienZone.Com
Trang 59điện tử (E-mail)
z SMTP
SinhVienZone.Com
Trang 60Hệ thống thư tín điện tử (E-mail)
SinhVienZone.Com
Trang 61Hệ thống thư tín điện tử (E-mail)
SinhVienZone.Com
Trang 62Hệ thống thư tín điện tử (E-mail)
SinhVienZone.Com
Trang 63World Wide Web
SinhVienZone.Com
Trang 64World Wide Web
– WWW là một hệ thống có cấu trúc để truy cập các văn bản được đặt khắp nơi trên hàng ngàn cái máy tính trên toàn thế giới.
– Web Server : lắng nghe tại port TCP 80
– Giao thức sử dụng : HTTP (HyperText Transfer Protocol)
SinhVienZone.Com
Trang 65World Wide Web
z Server Side & Client Side
SinhVienZone.Com
Trang 66World Wide Web
z Server Side & Client Side
SinhVienZone.Com
Trang 67World Wide Web
SinhVienZone.Com
Trang 68World Wide Web
SinhVienZone.Com