Upload
hao-nguyen
View
117
Download
13
Embed Size (px)
Citation preview
1
CHƯƠNG 1- GIỚI THIỆU VỀ TCP/IP
1.1 Tổng quát về TCP/IP. Giới thiệu
Lớp Network
Lớp Transport (TCP vàUDP)
Lớp Appication
1.2 Các giao thức và dịch vụ trên Internet. 1.3 Giới thiệu một số ứng dụng mạng
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU 2
Tổng quát về TCP/IP
• Một số đặc tính : - Độc lập về hình thái của mạng.
- Độc lập về phần cứng của mạng. - Các chuẩn giao thức mở. - Mô hình địa chỉ toàn cầu. - Nền tảng client/server mạnh mẽ. - Các chuẩn về giao thức ứng dụng mạnh mẽ.
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU 3
Giới thiệu
OSI TCP/IP Application
Presentation
Applications
layer
Telnet FTP
SMTP DNS SNMP
Session
Transport
Transport layer
(host level)
TCP UDP
ICMP
Network
Data link
Physical
Internet layer
(gateway level)
Network
interface layer
ARP
Ethernet Token Ring
IP
FDDI WANs
4
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP/IP and OSI model
5
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP/IP Protocol Stack
6
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
• Application – Xác nhận quyền, nén dữ liệu và
các dịch vụ cho người dùng.
• Transport – Xử lý dữ liệu giữa các hệ thống và
cung cấp việc truy cập cho các ứng dụng thông
qua thư viện BSD socket.
• Network – Tìm đường cho các packet.
• Link – Mức OS hoặc các thiết bị giao tiếp
mạng trên một máy tính.
Những điểm khác giữa OSI và TCP/IP
• Lớp ứng dụng trong TCP/IP xử lý các chức
năng của các lớp 5,6, và 7 trong mô hình
OSI
• Lớp transport trong TCP/IP cung cấp cơ chế UDP truyền dữ liệu không tin cậy, khác
với lớp transport trong mô hình OSI là luôn
đảm bảo dữ liệu truyền tin cậy
7
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP/IP
• TCP/IP là một tập của các protocols (một
bộ giao thức) định nghĩa cách thức truyền
dữ liệu qua môi trường Internet
• TCP/IP là tên của mô hình mạng được ghép giữa hai giao thức chính trong mạng
là TCP (Transmission Control Protocol) và
IP (Internet Protocol)
8
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP/IP và mạng Internet • Một liên mạng(internet) dùng TCP/IP được
xem như là một mạng đơn kết nối các máy tính với nhiều loại • Mạng Internet là sự kết nỗi giữa các mạng vật lý độc lập thông qua các thiết bị liên mạng • Với mô hình TCP/IP, các mạng khác nhau kết nối với nhau được xem như là một mạng lớn đồng nhất, không quan tâm đến sự khác nhau giữa các thiết bị vật lý hay môi trường • Mỗi máy kết nối vào mạng xem như kết nối đến một mạng luận lý, không quan tâm đến mạng vật lý
9
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
An Internet according to TCP/IP
McGraw-Hill ©The McGraw-Hill Companies, Inc., 2001
10
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP/IP và OSI • TCP/IP được xây dựng trước mô hình OSI
nên các lớp trong bộ giao thức TCP/IP không hoàn toàn giống với bộ giao thức trong mô hình OSI. Có 4 lớp trong mô hình TCP/IP
• Ở lớp transport, TCP/IP định nghĩa hai protocol là TCP và UDP. Ở lớp network,
protocol chính là IP và có các protocol khác hỗ trợ việc truyền dữ liệu • Ở lớp physical & data link, TCP/IP không định
nghĩa protocol nào, không phụ thuộc vào phần cưng bên dưới • Một mạng trong một liên mạng TCP/IP có thể là mạng LAN, MAN hoặc WAN.
11
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Đóng gói dữ liệu trong TCP/IP 1. Đơn vị dữ liệu trong lớp ứng dụng gọi là
message 2. Giao thức TCP và UDP tạo ra một đơn vị dữ
liệu tương ứng là segment và user datagram.
3. Đơn vị dữ liệu trong lớp IP được gọi là datagram
4. Datagram phải được đóng gói (encapsulate)
trong một frame để truyền trên mạng vật lý
5. Frame sẽ được truyền theo dạng tín hiệu trên
đường truyền vật lý
12
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Đóng gói dữ liệu trong TCP/IP
13
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp Network • Nội dung:
- Lớp Internet - Địa chỉ IP - Các đánh địa chỉ, phân mạng con - Các giao thức phụ trong lớp Network
14
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp Internet • Mô hình TCP/IP cung cấp giao thức liên
mạng (internetwork protocol -IP), là một cơ
chế truyền dữ liệu không tin cậy và không
kết nối (connectionless)
• Các giao thức hỗ trợ cho việc truyền dữ liệu
bao gồm: ARP, RARP, ICMP và IGMP.
15
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Internetwork Protocol (IP)
• Giao thức IP không tin cậy (unreliable) vì
không cung cấp cơ chế kiểm tra lỗi hay
tracking.
• IP xem như lớp bên dưới sẽ thực hiện việc
truyền nhận một cách tốt nhất, không có sự
đảm bảo
• Nếu các dịch vụ cần cơ chế truyền tin cậy
thì kết hợp với giao thức tin cậy TCP.
• Tương tự như hệ thống bưu điện
16
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
IP (tt)
• IP cắt dữ liệu ra thành các gói. các gói gọi là
datagrams, và mỗi gói được truyền độc lập
• Datagram có thể đi theo các đường khác nhau và
có thể đến không đúng thứ tự hoặc trùng nhau. IP
không giữ thông tin đường đi cũng như không
sắp xếp lại các gói lại khi chúng đến
• IP là một dịch vụ connectionless, nó không khởi
tạo Virtual Circuits và không có sự thông báo đến
phần tử nhận
17
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Datagram
18
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
IP Datagram
• Version. Version number of IP current version is 4 (0100 in binary).
• HLEN. Header length. The HLEN field defines the length of the header in multiple of 4 bytes ( 0 - 15 # maximum 60
bytes) • Service type. The service type field defines how the
datagram should be handled. It includes bits that define the priority of the datagram. • Total length. The total length field defines the total length
of the IP datagram. It is a two-byte field (16 bits) and can define up to 65,535 bytes • Identification. The identification field is used in
fragmentation. A datagram, when passing through different networks, may be divided fragments to match the network frame size. When this happens, each fragment is identified with a sequence number in this field.
19
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
IP Datagram (cont.) • Flags. The bits in this field deal with fragmentation
• Fragmentation offset. A pointer that shows the offset of the data in original datagram • Time to live. The time to live field defines the number of hops a datagram can travel before it is discarded. • Protocol. Defined which upper-layer protocol (TCP, UDP, ICMP…) • Header checksum. Check the integrity of the header • Option. Give more functionality to the IP datagram, can control routing, timing, management and alignment
20
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
IP Fragmentation and Reassembly
length ID fragflag offset =4000 =x =0 =0
One large datagram becomes several smaller datagrams
length ID fragflag offset =1500 =x =1 =0
length ID fragflag offset =1500 =x =1 =1480
length ID fragflag offset =1040 =x =0 =2960
21
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Địa chỉ IP • Là địa chỉ luận lý trong mạng để xác định
địa chỉ của các máy trong mạng (ngoài địa
chỉ vật lý) cho việc truyền nhận dữ liệu
• Địa chỉ IP có 32 bit nhị phân chia ba phần:
class type, netid, hostid
22
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Phân lớp địa chỉ
Để xác định netid (Network Identifier) và
hostid (Host Identifier)
23
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Addressing-Dotted-decimal notation
• Để biểu diễn ở dạng ngắn hơn và dễ đọc, địa
chỉ IP được chia thành dạng 4 phần x 8 bit,
cách nhau bằng dấu chấm, một phần được
biểu diễn theo giá trị thập phân
24
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Class Ranges of Internet Addresses
25
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Examples What is the class of each of the following
addresses? A. 10011101 10001111 11111110 11001111
B. 01111011 11110000 10101010 11110000 C. 11110101 10001111 11111110 11001111 Write each of following in dotted-decimal
notation: A. 10011101 10001111 11111100 11001111
B. 11011101 10001111 11111101 00001111
26
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Solutions
• Classes identify A. Class B
B. Class A C. Class E
• Dotted-decimal notation A. 157.143.252.207
B. 221.143.253.15
27
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Một số địa chỉ IP đặc biệt
Maximum number of unique addresses in each class Class A 2^7 - 2 = 126 Class B 2^14 - 2 = 16,382 Class C 2^21 - 2 = 2,097,150
28
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Một máy với nhiều địa chỉ • Địa chỉ IP định nghĩa cho mỗi kết nối đến
một mạng
• Một phần tử mạng có nhiều kết nối đến các
mạng khác nhau ( ví dụ như router) phải có
các địa chỉ IP tương ứng với mạng đó
• Một máy có một giao tiếp mạng cũng có thể
định nghĩa nhiều địa chỉ IP, tuỳ theo nhu
cầu
29
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
A Sample Internetnetwork
30
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Subneting
Hình minh hoạ một mạng có hai lớp phân cấp
31
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Subneting • Không có subnetting, địa chỉ có 2 lớp (bao gồm
netid và hostid) không hiệu quả, không thể có
nhiều mạng vật lý
• Với mô hình này, các máy không thể tổ chức thành các nhóm và cùng một mức. Điều này rất
khó cho việc quản lý đối với các mạng có nhiều
máy
• Phân mạng con (subnetting) là giải pháp cho vấn
đề này, là sự chia một mạng lớn thành các mạng
nhỏ hơn gọi là mạng con (subnetworks)
32
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Subneting
Hình vẽ minh họa mạng được chia thành 3 cấp
33
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Addresses with and without Subnetting
34
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Masking
• Masking là cách để tính địa chỉ vật lý của
mạng từ địa chỉ IP, có thể tính kể cả mạng
có phân mạng con hoặc không
• Nếu có phân mạng con, masking sẽ lấy
được địa chỉ mạng từ địa chỉ IP
• Nếu mạng được chia mạng con thì masking
sẽ lấy được thông tin địa chỉ của mạng con
(subnetwork address) từ địa chỉ IP
35
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Masking example
36
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Masks without Subneting • Depending on class
• Following table show mask for unsubneted
networks
class mask Address (e.g.) Network address (e.g.)
A 255.0.0.0 15.32.56.7 15.0.0.0
B 255.255.0.0 135.67.13.9 135.67.0.0
C 255.255.255.0 201.34.12.72 201.34.12.0
D N/A N/A N/A
E N/A N/A N/A
37
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Masks with Subneting • Khi có chia mạng con thì mỗi mạng con sẽ có
mặt nạ mạng (mask) khác nhau
• Examples:
class mask Address (e.g.) Network address (e.g.)
A 255.255.0.0 15.32.56.7 15.32.0.0
B 255.255.255.0 135.67.13.9 135.67.13.0
C 255.255.255.192 201.34.12.72 201.34.12.64
D N/A N/A N/A
E N/A N/A N/A
38
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Finding the Subnetwork Address
• Apply the mask to the IP address • Boundary-Level Masking - If the masking is at the boundary level (the
mask numbers are either 255 or 0), finding the
subnetwork address is very easy. Follow these
two rules:
1.The bytes in the IP address that correspond to 255 in the mask will be
repeated in the subnetwork address
2.The bytes in the IP address that correspond to 0 in the mask will change to 0 in the subnetwork address.
39
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Finding the Subnetwork Address Boundary-Level Masking example
IP address 45 . 23 . 21 . 8
Mask 255 . 255 . 0 . 0
---------------------------------------------------------
Subnetwork address 45 . 23 . 0 . 0
40
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Finding the Subnetwork Address
• Nonboundary-level Masking - If the masking is not at the boundary level
(the mask numbers are not just 255 or 0), finding the subnetwork address involves using
the bit-wise operator. Follow these three
rules:
1. The bytes in the IP address that correspond to 255 in the
mask will be repeated in the subnetwork address
2. The bytes in the IP address that correspond to 0 in the
mask will change to 0 in the subnetwork address.
3. For other bytes, use the bit-wise AND operator.
41
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Finding the Subnetwork Address
• Nonboundary-level masking example IP address 45 . 123 . 21 . 8
Mask 255 . 192 . 0 . 0
--------------------------------------------------------
Subnetwork 45 . ? . 0 . 0
Address ? use bit-wise AND operator
123 0 1 1 1 1 0 1 1
192 1 1 0 0 0 0 0 0
-----------------------------------
0 1 0 0 0 0 0 0 = 64
42
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Finding the Subnetwork Address
• Another nonboundary-level masking
example
IP address 213 . 23 . 47 . 37
Mask 255 . 255 . 255 . 240
--------------------------------------------------------
Subnetwork 213 . 23 . 47 . ?
Address ? use bit-wise AND operator
37 0 0 1 0 0 1 0 1
240 1 1 1 1 0 0 0 0
-----------------------------------
0 0 1 0 0 0 0 0 = 32
43
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
IP addressing: CIDR
• Classful addressing: - inefficient use of address space, address space
exhaustion - e.g., class B net allocated enough addresses for 65K hosts, even if only 2K hosts in that network
• CIDR: Classless InterDomain Routing - network portion of address of arbitrary length
- address format: a.b.c.d/x, where x is # bits in network portion of address
network host part part
11001000 00010111 00010000 00000000
200.23.16.0/23
44
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
IP addresses: how to get one?
Network (network portion): • get allocated portion of ISP’s address space:
ISP's block
Organization 0
Organization 1
Organization 2
Organization 7
11001000 00010111 00010000 00000000
11001000 00010111 00010000 00000000
11001000 00010111 00010010 00000000
11001000 00010111 00010100 00000000
….. ….
11001000 00010111 00011110 00000000
200.23.16.0/20
200.23.16.0/23
200.23.18.0/23
200.23.20.0/23
….
200.23.30.0/23
45
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Các giao thức khác trong lớp network
• ARP (Address Resolution Protocol) • RARP (Reverse Address Resolution
Protocol)
• ICMP (Internet Control Message Protocol) • IGMP (Internet Group Message Protocol)
More references:
TCP/IP Protocol Suite, 2/e, Behrouz A. Forouzan,
DeAnza College
46
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
ARP và RARP Vấn đề phân giải địa chỉ
• Hai giao thức dùng để phân giải địa chỉ là
ARP (Address Resolution Protocol) và
RARP (Reverse ARP)
- ARP dùng phân giải địa chỉ IP 32 bits sang địa
chỉ Ethernet 48 bits
- RARP dùng phân giải địa chỉ Ethernet 48 bits
sang địa chỉ IP 32 bits
47
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
ARP và RARP
• Địa chỉ mạng (lớp Internet) và địa chỉ MAC
(lớp Network Interface) cần có sự chuyển
đổi qua lại:
- Lớp Internet gởi dữ liệu cho lớp Network Interface, chỉ cung cấp địa chỉ IP của máy nhận
- Lớp Network Interface cần địa chỉ MAC của
máy nhận để truyền thông tin
48
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
ARP và RARP
49
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Position of ARP and RARP
in TCP/IP protocol suite
50
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
ARP
51
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
ARP
• Là giao thức được dùng để hỏi địa chỉ vật lý
một máy khi đã biết địa chỉ IP
• Cần cho lớp Network Interface để đóng gói
một Ethernet Frame
• Khi cần địa chỉ vật lý, máy sẽ broadcast
trên mạng để hỏi địa chỉ vật lý tương ứng
với địa chỉ IP, máy có địa chỉ IP tương ứng
sẽ reply thông tin
52
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Các thành phần chính trong ARP • ARP table: bảng thông tin được lưu trữ
trong bộ nhớ, nếu không tìm được thông tin trong bảng này thì phần tử gởi sẽ broadcast ARP request để hỏi thông tin
• ARP request: gởi broadcast để hỏi địa chỉ vật lý • ARP reply: gởi lại máy hỏi thông tin địa chỉ IP của máy mình • ARP reply caching: lưu thông tin vào ARP table trong một khoảng thời gian (5 phút)
53
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Phân giải ngược địa chỉ RARP • Dùng cho việc liên kết giữa lớp Network
Interface và lớp Internet
• Sử dụng khi máy biết địa chỉ Ethernet nhưng không biết địa chỉ IP. Thường dùng
trong các trường hợp:
- Các hệ thống diskless - Các hệ thống JumpStartTM
• Kèm với các giao thức DHCP, BOOTP
54
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
RARP operation
55
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
RARP packet
56
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp transport • Có hai dạng dịch vụ:
- TCP (Transmission
Control Protocol)
- UDP (User Datagram
Protocol)
application transport network data link physical network
data link physical
network data link physical
network data link physical network data link
physical
network data link physical
application transport network data link physical
57
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp transport • Cung cấp sự truyền nhận luận lý giữa các
process ứng dụng giữa các máy trong
mạng
• Các giao thức lớp transport hoạt động ở
các hệ thống đầu cuối.
• Lớp transport so với lớp network: - network layer: dữ liệu truyền nhận giữa các hệ thống
- transport layer: dữ liệu được truyền nhận giữa các processes, dựa trên các dịch vụ của lớp network và mở
rộng một số chức năng
58
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp Transport • Lớp TCP/IP transport cung cấp cơ chế cho
source process gởi dữ liệu destination
process qua mạng
• Định nghĩa một tập các kết nối mức khái
niệm cho các processes gọi là protocol
ports. Một protocol port là một điểm đích
(buffer) dùng để lưu dữ liệu cho một
process cụ thể
59
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Transport layer • Việc quản lý giao tiếp giữa các processes và các
ports tương ứng được hệ điều hành cung cấp
• Các protocol lớp transport là port-to-port protocols, truyền dữ liệu giữa process gởi đên
process nhận
• Mỗi port được xác định bằng một số nguyên
dương 16 bits nhị phân
- 65,536 (0 to 65535) ports - Port 0?
60
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp Transport • Mở rộng cách
đánh địa chỉ cho
process.
- Địa chỉ port : xác
định ứng dụng
mạng trên mỗi
máy.
- Địa chỉ của một
ứng dụng mạng
(IP,port)
61
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Port Addresses
62
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Transport-layer protocols
Internet transport services: • reliable, in-order unicast delivery (TCP) - congestion
- flow control - connection setup
• unreliable (“best-effort”), unordered unicast or multicast delivery: UDP • services not available: - real-time
- bandwidth guarantees - reliable multicast
63
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
User Datagram Protocol (UDP) • User datagram protocol (UDP) là protocol đơn
giản trong hai protocol ở lớp transport
• Chỉ thêm thông tin về các địa chỉ port, điều khiển
lỗi checksum và độ dài thông tin length information
• UDP chỉ cung cấp các chức năng cơ bản cho cơ
chế truyền end-to-end, không cung cấp các chức
năng xử lý lỗi và truyền lại dữ liệu bị hỏng hoặc
mất.
• Có cơ chế báo lỗi nếu kèm với giao thức ICMP
64
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
UDP Datagram Format
65
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Transmission Control Protocol (TCP)
• Cung cấp các dịch vụ đầy đủ cho các ứng dụng • Là giao thức port-to-port tin cậy, connection- oriented: kết nối phải được thiết lập trước khi dữ
liệu được truyền
• Khi thiết lập kết nối, TCP tạo một mạch ảo (virtual
circuit ) giữa bên gởi và bên nhận trong suốt quá
trình truyền nhận
• Có sự thông báo khi truyền dữ liệu đến phần tử
nhận. Sau khi kết thúc việc truyền nhận thì đóng
kết nối
66
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP • IP và UDP xem các datagrams trong một single
transmission là các đơn vị hoàn toàn độc lập, không liên quan với nhau. Mỗi datagram đến phần tử nhận cũng là các đơn vị phân biệt, và không có sự thông báo cho phần tử nhận • Khác với IP và UDP, TCP là dịch vụ connection- oriented, cung cấp cơ chế truyền tin cậy cho toàn bộ stream chứa trong message mà ứng dụng gởi đi • Cơ chế truyền tin cậy đảm bảo bằng việc cung cấp việc phát hiện lỗi và truyền lại những dữ liệu hỏng
67
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP • Khi truyền dữ liệu, TCP chia dữ liệu thành các
đơn vị nhỏ hơn gọi là segment. • Tất các các segment phải được nhận đủ và phản hồi (acknowledge) trước khi sự truyền nhận hoàn thành và mạch ảo được hủy • Mỗi segment có một số tuần tự (sequencing number) để sắp xếp lại sau khi nhận kết hợp với
ACK ID number và field window-size cho cửa sổ dịch (sliding window) • Các segments TCP truyền trên mạng được chứa
trong các IP datagrams. Ở phần tử nhận, TCP nhận mỗi datagram theo thứ tự đến và dựa vào số tuần tự để sắp xếp lại
68
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP segment format
69
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP segment format (cont.) • Sequence number. Shows the position of the
data in the original data stream (application data)
• Acknowledgment number. Used to
acknowledge the receipt of data
• Control. 6 bits of control define the use of segment or server validity check for others fields
- URG: urgent, - ACK: acknowledgment - PSH: need higher throughput,
70
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
TCP segment format (cont.) • Control (cont.)
- RST: reset, - SYN: used for sequence number synchronization (connection request, connection confirmation-with ACK
set, confirmation acknowledgement-with ACK set) - FIN: used in termination confirmation
• Window size. Defines the sliding window • Checksum. Used for error detection • Urgent Pointer. Valid if URG is set. Define the
end of urgent data and the start of normal data
71
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp ứng dụng
Comparison between OSI and TCP/IP
72
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp ứng dụng • Định nghĩa các giao thức cho các ứng dụng
mạng • Nhìn ở góc độ hệ điều hành, ứng dụng được hiểu như là các processes. Các giao
thức lớp ứng dụng phải định nghĩa cách thức giao tiếp giữa các processes qua các vấn đề: - Định dạng của message - Thứ tự của các message trao đổi - Các công việc phải thực thi khi một process nhận hay truyền dữ liệu
73
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp ứng dụng
• Các ứng dụng mạng hoạt động theo mô
hình client/server
- Server : là phần tử thụ động • Chờ yêu cầu từ client, xử lý và trả kết quả cho client
- Client : là phần tử chủ động • Kết nối đến server để gởi yêu cầu.
• Chờ nhận kết quả trả về và xử lý kết quả.
• Vấn đề quan trọng khi lập trình các ứng
dụng mạng là định nghĩa giao thức giữa
client và server
74
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lớp ứng dụng • User agent là giao tiếp giữa người sử dụng và
ứng dụng mạng.Mỗi ứng dụng mạng client phải có hiện thực việc giao tiếp giữa user và chương trình mạng:
- Web:browser - E-mail: mail reader - streaming audio/video: media player
• Khái niệm stateful và stateless - Stateful : lưu giữ trạng thái giữa các lần kết nối
(request/response). - Stateless : Mỗi lần request/response thì cầu nối hủy bỏ. Không giữ trạng trái trước đó.
75
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Mô hình client-server
76
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Quan hệ giữa client và server
77
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Các loại server Concurrent: xử lý đồng thời, cơ chế xử lý nhiều
processes trên một hệ thống chỉ có một CPU
≠ Parallel
78
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Connectionless iterative server
79
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Connection-oriented concurrent server
80
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Programs và Processes
81
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Server với cơ chế multi-process
82
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Khái niệm Socket • Socket: “cửa” nằm giữa process ứng dụng và end-end-
transport protocol (UDP hoặc TCP)
• TCP service: dịch vụ truyền tin cậy chuỗi bytes giữa hai
process
controlled by controlled by application developer
controlled by operating system
process socket TCP with
buffers, variables
host or server
process socket TCP with
buffers, internet
variables
host or server
application developer controlled by operating system
83
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Khái niệm Socket • Socket :
- Là môi trường để các process ứng dụng giao
tiếp với nhau, process ứng dụng có thể chạy
trên cùng một máy hoặc trên hai máy khác
nhau.
- Được ứng dụng tạo ra và sử dụng tuy nhiên
được hệ thống (hệ điều hành) kiểm soát.
84
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Khái niệm Socket
• Socket API - Được giới thiệu ở BSD4.1 UNIX, 1981
- Được ứng dụng khởi tạo, sử dụng hay hủy bỏ - Dùng cơ chế client/server - Cung cấp hai dịch vụ chuyển dữ liệu thông qua
socket API:
• unreliable datagram • reliable, byte stream-oriented
85
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Các loại socket
86
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lập trình socket với TCP • Client phải kết nối đến server
- server process phải chạy trước (phần tử thụ
động)
- server phải tạo một socket để lắng nghe và
chấp nhận các kết nối từ client
• Client kết nối đến server bằng cách: - Khởi tạo TCP socket ở local
- Xác định IP address, port number của server
process và kết nối đến
87
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lập trình socket với TCP • Sau khi client khởi tạo socket, nó sẽ thiết
lập kết nối đến server
• Khi server nhận yêu cầu kết nối, nó sẽ chấp
nhận yêu cầu và khởi tạo socket mới để
giao tiếp với client.
- Cho phép server chấp nhận nhiều client tại một
thời điểm.
88
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lập trình socket với TCP Server (running on hostid)
create socket, port=x, for incoming request: welcomeSocket = ServerSocket()
TCP
wait for incoming connection setup
connection request connectionSocket = welcomeSocket.accept()
read request from connectionSocket write reply to connectionSocket
close connectionSocket
Client
create socket, connect to hostid, port=x clientSocket = Socket()
send request using clientSocket
read reply from clientSocket close clientSocket
89
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java client (TCP) import java.io.*;
import java.net.*; class TCPClient {
public static void main(String argv[]) throws Exception { String sentence;
String modifiedSentence; Create
input stream
Create client socket,
connect to server Create
output stream attached to socket
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("hostname", 6789);
DataOutputStream outToServer =
new DataOutputStream(clientSocket.getOutputStream());
90
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java client (TCP), cont.
BufferedReader inFromServer = Create
input stream attached to socket
Send line to server
Read line from server
} }
new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close();
91
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java server (TCP)
import java.io.*; import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence;
Create welcoming socket
at port 6789 Wait, on welcoming
socket for contact by client
Create input stream, attached
to socket
String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789);
while(true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new
InputStreamReader(connectionSocket.getInputStream()));
92
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java server (TCP), cont
Create output stream, attached
to socket
Read in line from socket
Write out line to socket
}
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence); }
} End of while loop,
loop back and wait for another client connection
93
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lập trình socket với UDP • Cung cấp cơ chế truyền không tin cậy các
nhóm các byte (datagrams) giữa client và
server.
• Không cần thiết lập kết nối giữa client với
server.
• Sender phải gởi kèm địa chỉ IP và port đích • Server khi nhận dữ liệu sẽ phân tích địa chỉ
của sender để truyền lại.
94
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Lập trình socket với UTP Server (running on hostid)
create socket, port=x, for incoming request: serverSocket = DatagramSocket()
read request from serverSocket
write reply to serverSocket specifying client
host address,
port number
Client
create socket, clientSocket =
DatagramSocket()
Create, address (hostid, port=x,
send datagram request
using clientSocket
read reply from clientSocket close clientSocket
95
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java client (UDP)
import java.io.*; import java.net.*;
class UDPClient { public static void main(String args[]) throws Exception
{
Create input stream
Create client socket
Translate hostname to IP
address using DNS
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("hostname");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
96
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java client (UDP), cont.
Create datagram with data-to-send,
length, IP addr, port
Send datagram to server
Read datagram from server
}
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
97
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java server (UDP)
import java.io.*; import java.net.*;
class UDPServer { public static void main(String args[]) throws Exception
Create {
datagram socket at port 9876
Create space for received datagram
Receive
datagram
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
98
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Example: Java server (UDP), cont
String sentence = new String(receivePacket.getData()); Get IP addr
port #, of sender
Create datagram to send to client
Write out datagram to socket }
}
}
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress,
port);
serverSocket.send(sendPacket); End of while loop,
loop back and wait for another datagram
99
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Các giao thức và dịch vụ
• Hệ thống tên miền DNS • Hệ thống World Wide Web ( WWW) - giao thức HTTP
• Hệ thống file FTP - giao thức FTP
• Hệ thống e-mail - giao thức SMTP
- giao thức POP3
100
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống tên miền DNS
• DNS là viết tắt của Domain Name System • Dùng chuỗi ký tự để đánh địa chỉ, không phân biệt chữ hoa, thường, mỗi thành phần
có thể 63 ký tự và tên đầy đủ không dài quá
255, dưới đây gọi là tên.
• Tên được đặt theo cây phân cấp • Địa chỉ tài nguyên biểu diễn dạng tên được
hình thành từ nó cho đến root
101
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống tên miền DNS
102
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Domain names và labels
103
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Zone và domain
104
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Ánh xạ địa chỉ trong DNS • Network chỉ hiểu địa chỉ IP (binary) => ánh
xạ giữa địa chỉ IP và tên. • Mỗi ứng dụng mạng phải chuyển địa chỉ từ dạng tên sang địa chỉ IP • Hệ thống tên miền được hiện thực theo distributed database, quản lý theo dạng phân cấp với nhiều name servers
105
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Sự phân cấp của các name server
106
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Root name servers
107
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Root name servers • Khi local name server không thể phân giải địa chỉ,
nó kết nối đến root name server để hỏi thông tin
• root name server: - Kết nối đến name server tương ứng với từng domain
(trong trường hợp root name không biết thông tin)
- Lấy thông tin ánh xạ địa chỉ - trả thông tin về cho local name server
• Có rất nhiều root name server trong mạng
Internet trên toàn thế giới
108
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
DNS trong Internet
109
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Generic và country domains
110
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Inverse domain
111
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Ánh xạ địa chỉ trong DNS
root name server
• Ứng dụng giao tiếp với local name
server để hỏi địa chỉ
ánh xạ.
• Local name server
sẽ trả lời hoặc
request tiếp…
2 3
local name server dns.eurecom.fr
1 8
requesting host surf.eurecom.fr
iterated query
4 7 intermediate name server dns.umass.edu
5 6
authoritative name server dns.cs.umass.edu
gaia.cs.umass.edu
112
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web • World Wide Web (W W W)
- Dùng giao thức http: hypertext
transfer protocol
- Web’s application layer protocol - Mô hình client/server
• client: browser gởi yêu cầu,
nhận và hiển thị kết quả. • server: Web server gởi kết quả
cho client đối với mỗi request.
- http1.0: RFC 1945 - http1.1: RFC 2068
PC running Explorer
Server running NCSA Web
server
Mac running Navigator
113
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web
• http: TCP transport service: - client khởi tạo TCP connection (tạo socket) đến
server, port 80 (default)
- server chấp nhận kết nối từ client - http messages (application-layer protocol messages) được trao đổi giữa browser (http
client) và Web server (http server)
- đóng TCP connection
114
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web • Ví dụ
- User đánh địa chỉ URL sau lên browser http://www.dit.hcmut.edu.vn/~phu/courses/net-programming/index.html
1a. http client tạo TCP connection (tạo socket) đến http server ở
www.dit.hcmut.edu.vn Port 80
time 2. http client gởi http request
message (chứa đường dẫn)
thông qua TCP connection
socket
1b. http server ở địa chỉ www.dit.hcmut.edu.vn đang chờ
đợi kết nối ở port 80, chấp nhận
kết nối và notifying đến client
115
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web • Ví dụ (tt)
3. http server nhận yêu cầu,
tạo response message
(/~phu/courses/net- programming/index.html) trả
kết quả, gởi message qua
socket
time
5. http client nhận response
message chứa file html và
hiển thị. Phân tích file html
để tìm các liên kết
6. Lặp lại các bước 1-5 cho mỗi
liên kết đến objects
4. http server đóng cầu nối TCP
116
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web
• W W W (tt) - Có hai dạng message trong http : request,
response
- http request message: • ASCII (human-readable format)
117
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web
• http request message:
request line (GET, POST,
HEAD commands)
header lines
Carriage return, line feed indicates end
of message
GET /~phu/index.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg
Accept-language:vn
(extra carriage return, line feed)
118
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web
• http response message: status line
(protocol status code
status phrase)
header lines
data, e.g., requested html file
HTTP/1.0 200 OK
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
data data data data data ...
119
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web
Authentication goal: control access to
server documents
client server
• stateless: client must present authorization in each request
• authorization: typically name, password
- authorization: header line in
request
- if no authorization presented,
server refuses access, sends
WWW authenticate:
header line in response
Browser caches name & password so
usual http request msg 401: authorization req. WWW authenticate:
usual http request msg + Authorization:line
usual http response msg
usual http request msg + Authorization:line
usual http response msg
time that user does not have to repeatedly enter it.
120
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web Cookies
• server sends “cookie” to client in response message
Set-cookie: 1678453
• client presents cookie in later requests
cookie: 1678453
• server matches presented-cookie with
server-stored info - authentication - remembering user preferences, previous
choices
client
usual http request msg
usual http response +
Set-cookie: #
usual http request msg cookie: #
usual http response msg
usual http request msg cookie: #
usual http response msg
server
cookie- spectific action
cookie- spectific action
121
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống World Wide Web Conditional GET
client
server • Goal: don’t send object if
client has up-to-date stored (cached) version • client: specify date of
cached copy in http request If-modified-since: <date>
• server: response contains no object if cached copy
up-to-date: HTTP/1.0 304 Not
Modified
http request msg If-modified-since:
<date>
http response HTTP/1.0
304 Not Modified
http request msg If-modified-since:
<date>
http response HTTP/1.1 200 OK
…
<data>
object not modified
object modified
122
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống FTP
• File Transfer Protocol (ftp)
FTP user interface
user at host
FTP client
local file system
file transfer
FTP server
remote file system
- Chuyển file từ local đến server hoặc lấy file từ server về local. - Hoạt động theo cơ chế client/server - FTP server chạy ở port 21. - Tham khảo : RFC 959
123
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống FTP • ftp client giao tiếp đến ftp server qua TCP ở port
21
• Hai cầu nối TCP được thiết lập: - control: exchange commands, responses
between client, server. “out of band control”
- data: file data to/from server
• ftp server hiện thực cơ chế “state”: current
directory, earlier authentication
124
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Control connection
125
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Data connection
126
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống FTP Một số định dạng mesage trong giao thức FTP:
• Dữ liệu được gởi qua control channel theo dạng mã ASCII - USER username
- PASS password
- LIST trả về list các file và thư mục trong thư mục
hiện hành
- RETR filename retrieves (gets) file
- STOR filename stores (puts) file onto remote
host
127
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống FTP Sample return codes
• status code and phrase (as in http) • 331 Username OK, password required
• 125 data connection already open;
transfer starting
• 425 Can’t open data connection
• 452 Error writing file
128
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Ví dụ một giao dịch trong FTP
129
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Sử dụng trình FTP
• Một số lệnh ftp cơ bản #ftp [host] #cd
#open host #lcd
#close #mkdir, rmdir
#help #get, mget
#reset #put, mput
#ls #delete, mdelete
#pwd #bye
130
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Hệ thống E-mail • Hệ thống E-mail
- RFC 821, 822 - SMTP: port 25 - POP3: port 110 - IMAP: port 143 - MTA: Mail Transfer Agent
- UA: User Agent
user
agent
server
SMTP
SMTP
SMTP mail
server
user
user agent
mail server user
agent
user agent
outgoing message queue
user mailbox
agent user
agent
131
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Mô hình hệ thống e-mail
132
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Quá trình truyền nhận
133
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Mail message format
134
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
MIME- Multipurpose Internet Mail Extensions
RFC 2045, 2046
135
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
MIME header
136
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Base64 Encoding
137
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Quoted-printable encoding
138
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Giao thức SMTP
139
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Giao thức SMTP Ví dụ vê SMTP
>Telnet mail.hamburger.edu 25 S: 220 hamburger.edu
>HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you
>MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok
>RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok
>DATA S: 354 Enter mail, end with "." on a line by itself
>Do you like ketchup? >How about pickles? >. S: 250 Message accepted for delivery
>QUIT S: 221 hamburger.edu closing connection
140
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Các giao thức truy cập e-mail • IMAP
- Internet Mail Access Protocol - RFC 1730 - Các lệnh phức tạp, cho phép cơ chế lưu trữ và quản lý e-mail trên mail server
• POP3 - Post Office Protocol, version 3 - RFC 1939
- Đăng nhập đến mail server và download email có trong mail box của user về máy client
• HTTP - Web-based mail client program
- Dùng ứng dụng web hiện thực giao thức IMAP hoặc POP3
141
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU
Ví dụ về POP3 authorization phase • client commands: - user: declare username
- pass: password
• server responses - +OK
- -ERR
transaction phase, client: • list: list message numbers
• retr: retrieve message by
number • dele: delete
• quit
S: +OK POP3 server ready
C: user alice
S: +OK
C: pass hungry
S: +OK user successfully logged on
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: <message 1 contents>
S: .
C: dele 1
C: retr 2
S: <message 1 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
142
Nguyễn Duy Hiếu – Bộ môn: KTMT & Mạng - TBU