Khái niệm và các yêu cầu của giao thức mạng 
2. Nguyên tắc thiết kế giao thức Internet
 Nguyên tắc cuối cuối (End-to-end arguments)
 Nguyên tắc phân tầng
 Mô hình mạng OSI
 Mô hình mạng TCP/IP
3. Giao thức tầng mạng
4. Giao thức tầng giao vận
5. Giao thức tầng ung dung
              
                                            
                                
            
 
            
                 40 trang
40 trang | 
Chia sẻ: Mr Hưng | Lượt xem: 1588 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Mạng và truyên thông máy tính - Tổng quan về giao thức mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Network programming 1
Tổng quan về giao thức mạng
Giảng viên: Nguyễn Hoài Sơn
Bộ môn Mạng và Truyền thông máy tính
Khoa Công nghệ thông tin
2Network programming
Nội dung bài học
1. Khái niệm và các yêu cầu của giao thức mạng 
2. Nguyên tắc thiết kế giao thức Internet
 Nguyên tắc cuối cuối (End-to-end arguments)
 Nguyên tắc phân tầng
 Mô hình mạng OSI
 Mô hình mạng TCP/IP
3. Giao thức tầng mạng
4. Giao thức tầng giao vận
5. Giao thức tầng ung dung
3Network programming
Giao thức là gì?
 Giao thức là “quy ước giữa hai bên truyền tin về cách thức truyền tin”
 Ví dụ Cuộc nói chuyện giữa hai người, phát thanh truyền hình, 
 Độ phức tạp của giao thức phụ thuộc vào yêu cầu và số lượng của các 
bên tham gia truyền tin
 Ví dụ Giao thức trong một cuộc gọi điện thoại: Người gọi – Điện thoại, Điện 
thoại – tổng đài, tổng đài – tổng đài, tổng đài – điện thoại, điện thoại - người 
nghe, người gọi – người nghe
4Network programming
Giao thức mạng là gì?
 Giao thức mạng là tập hợp các quy ước về 
định dạng và ý nghĩa của các thông báo 
được gửi giữa các máy tính thông qua mạng 
máy tính
 Có nhiều loại giao thức mạng
 Giao thức nội mạng: Ethernet, AppleTalk, PPP, 
X.25, 
 Giao thức giữa các mạng: ATM, MPLS,TCP/IP, 
IPX, 
 Giao thức ứng dụng mạng: HTTP, FTP, SIP, 
5Network programming
Yêu cầu với các giao thức mạng
 Phía người dùng mạng: 
 Chất lượng dịch vụ mà ứng dụng của họ cần 
 Đảm bảo mỗi thông báo được gửi đến đúng địa chỉ 
không lỗi trong một khoảng thời gian nhất định 
 Nhà cung cấp dịch vụ: 
 Thiết kế hiệu quả
 Đảm bảo tài nguyên mạng được sử dụng hiệu quả và 
công bằng với mọi người dùng
 Hệ thống dễ điều hành và quản lý
 Dễ dàng phát hiện và xử lý các lỗi hệ thống 
6Network programming
Internet
 Mạng công cộng kết nối các mạng máy 
tính
 Quy mô toàn cầu
 Mục đích chung, công cộng
 Công nghệ đa dạng
 Giao thức trên Internet
 Sử dụng giao thức TCP/IP
 Chuẩn mở: 
 được chuẩn hoá bởi Internet Engineering Task 
Force (IETF) 
 Phát triển bởi cộng đồng nghiên cứu
IP
TCP, UDP
HTTP,FTP,
RTP, 
Ethernet,
ATM,
7Network programming
Giao thức Internet được thiết kế và 
xây dựng như thế nào?
 Nguyên tắc Điểm cuối-cuối
 A function can only be completely and correctly 
implemented with the knowledge and help of the 
applications standing at the communication 
endpoints
“The network is fool,
the terminal is clever”
“The network is clever, 
the terminal is fool”
Internet Telephone network
8Network programming
Giao thức Internet được thiết kế và xây 
dựng như thế nào?(2)
 Nguyên tắc phân tầng:
 Chia giao thức mạng thành các tầng, mỗi tầng giao thức giải 
quyết một phần chức năng của truyền tin
 Ưu điểm của việc phân tầng
 Cấu trúc rõ ràng – Cho phép định nghĩa rõ ràng các mối quan hệ 
giữa các giao thức mạng 
 Trừu tượng hóa chức năng – Có thể thay đổi một tầng giao thức 
mà không làm ảnh hưởng các tầng trên hoặc dưới
 Sử dụng lại – Các tầng trên có thể sử dụng lại các chức năng 
được cung cấp bởi tầng dưới
 Nhược điểm của việc phân tầng
 Che dấu thông tin – Giảm hiệu quả trong việc thực thi giao thức
9Network programming
Mô hình mạng phân tầng
 Giao thức tầng cao sẽ tạo thông báo và gửi xuống giao 
thức tầng thấp thông qua giao diện giữa các tầng
 Giao thức tầng cao sẽ thêm thông tin điều khiển bao 
gồm các khóa giao thức vào tiêu đề của thông báo
 Thông báo của giao thức tầng trên sẽ được xử lý như 
dữ liệu của giao thức tầng dưới
 Giao thức tầng dưới sẽ sử dụng các khóa giao thức 
trong tiêu đề để xác định đúng giao thức tầng trên
10Network programming
Ví dụ về mô hình mạng phân tầng
Toi yeu VN
I love VN
I love VNL:EngDHost
Application
Transport
Network
DHost = Destination service host
L: Eng
Application
Transport
Network
J’aime le Vn
I Love VN
I love VN L:Eng DHost
L:Eng
11Network programming
Mô hình mạng TCP/IP(1)
 Lịch sử phát triển
 Được phát triển vào những năm 1970 bởi các kỹ 
sư thuộc dự án ARPANET
 Được chuẩn hóa vào năm 1982 và được thực thi 
trên hệ điều hành BSD Unix
 Đang tiếp tục được chuẩn hóa bới IETF (Internet 
Engineering Task Force )
12Network programming
Mô hình mạng TCP/IP(2)
Network Device Controller/Drivers
TCP UDP
IP (ICMP)
Ethernet or other physical medium
FTP Telnet Ping H.323 RTPHTTPApplication
Transport
Internet
Network
interface 
Hardware 
13Network programming
OSI vs. TCP/IP
 OSI: Định nghĩa khái niệm rõ ràng: dịch vụ, giao diện, giao thức
 TCP/IP: Được thực thi thành công 
Application
Presentation
Session
Transport
Network
Datalink
Physical
IPv4, IPv6, ICMP
Network interface
TCP UDP
Application
Hardware
OSI TCP/IP
14Network programming
Ví dụ về giao thức TCP/IP
“Xin chào”
TCP
Header
“Xin 
chào”
TCP
Header
“Xin 
chào”
IP
Header
TCP
Header
“Xin 
chào”
IP
Header
Ethernet
Header
“Xin chào”
TCP
Header
“Xin 
chào”
TCP
Header
“Xin 
chào”
IP
Header
TCP
Header
“Xin 
chào”
IP
Header
Ethernet
Header
Sending host Receiving host
Router
15Network programming
Ví dụ về giao thức TCP/IP(2)
Dst
MAC
addr
Src
MAC
addr
Protcl
Type
=0800
Src
IP
Addr
Dst
IP
Addr
Protcl
Type =
6
Src
Port =
11111
Dst
Port =
110
Data = “Xin chào”
charset=UTF-8
FCS
Ethernet header IP header TCP/UDP
header 
Ethernet’s 
Frame 
Check 
Sequence
Give the type of
upper protocol
Give the type of
upper protocol
Header & data 
of application
protocol
Give the type of
upper protocol
The order to creating dataThe order of processing data
Data link Network
Transport Session
Presentation
Application
16Network programming
Giao thức tầng mạng
 Vận chuyển thông báo điểm cuối-cuối dựa 
trên địa chỉ IP
 Không kết nối: Các gói tin được xử lý tách biệt
 Không tin cậy: Việc vận chuyển gói tin không 
được đảm bảo
 Phân mảnh/ ghép mảnh
 Phát hiện lỗi
17Network programming
Địa chỉ IP
 Xác định một máy tính trên Internet
 là duy nhất
 độ dài 32 bit trong trường hợp của IPv4
 Bao gồm ID mạng (network ID) và ID máy (host ID) được 
phân biệt bởi subnet mask (netmask)
 E.g. 132.168.1.100/255.255.255.0
 Trên thực tế địa chỉ IP gán cho một card mạng chứ không phải gán cho 
một máy
 Các lớp địa chỉ 
 A: 1.0.0.0 tới 127.255.255.255 (8 bit network address)
 B: 128.0.0.0 tới 191.255.255.255 (16 bit network address)
 C: 192.0.0.0 tới 223.255.255.255 (24 bit network address)
 D,E: 224.0.0.0 and higher (multicast and reserved)
 Địa chỉ quảng bá : 255.255.255.255
 Subnet mask
 Chia một địa chỉ mạng thành nhiều phần mạng nhỏ hơn
18Network programming
Địa chỉ IP riêng
 Chỉ dùng cho các mạng riêng, không dùng 
cho mạng chung
 Có thể truyền tin với các máy trên Internet thông 
qua Network Address Translator (NAT)
 Bao gồm 3 subnets
 10.0.0.0 ~ 10.255.255.255 (10/8)
 172.16.0.0 ~ 172.31.255.255 (172.16/12)
 192.168.0.0 ~ 192.168.255.255 (192.168/16)
19Network programming
Tiêu đề của gói tin IP
20Network programming
Khai báo tiêu đề của gói tin IP
struct ip{
#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int ip_hl:4; /* header length */
unsigned int ip_v:4; /* version */
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned int ip_v:4; /* version */
unsigned int ip_hl:4; /* header length */
#endif
u_int8_t ip_tos; /* type of service */
u_short ip_len; /* total length */
u_short ip_id; /* identification */
u_short ip_off; /* fragment offset field */
u_int8_t ip_ttl; /* time to live */
u_int8_t ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src, ip_dst; /* source and 
dest address */
};
#include 
char packetBuffer[1500];
struct ip *ipPkt;
ipPkt = (struct ip *)packetBuffer;
21Network programming
Giao thức tầng giao vận
- Giao thức TCP
 Hướng kết nối:
 Thiết lập kết nối ảo bằng Bắt tay 3-bước trước khi dữ liêu được truyền đi 
 Một kết nối TCP được định danh bởi (srcIP, dstIP, src Port, dst Port)
 Tin cậy: 
 Bên nhận sẽ xác nhận việc nhận gói tin
 Bên gửi sẽ gửi lại gói tin nếu không nhận được xác nhận của bên gửi
 Full-duplex: 
 Truyền và nhận gói tin cùng lúc
 Truyền theo dòng: 
 Đảm bảo việc truyền thông tin theo thứ tự của dòng bytes
 Điều khiển luồng: 
 Điều khiển chống tắc nghẽn
22Network programming
Thiết lập kết nối TCP
 Bắt tay 3 bước
 Số thứ tự
 J,K
 Kiểu thông báo
 Synchronize (SYN)
 Acknowledge (ACK)
 Mở thụ động
 Máy chủ chờ kết nối đến từ 
máy khách
 Mở chủ động
 Máy khách bắt đầu một kết 
nối đến máy chủ
Client Server
Time flows down
listen
Passive open
Active open
23Network programming
Khái niệm số hiệu cổng
 Số hiệu cổng dùng để định danh tiến 
trình trên mỗi máy
 Số hiệu cổng có thể là
Well-known (port 0-1023)
Registered (port 1024-49151)
Dynamic or private (port 49152-
65535)
 Máy chủ thường sử dụng well-known 
ports
 Mọi máy khách có thể xác định được máy 
chủ/ dịch vụ cung cấp
 HTTP = 80, FTP = 21, Telnet = 23, ...
 /etc/service định nghĩa well-known ports
 Máy khách thường sử dụng dynamic ports
 được gán bởi hệ thống khi khởi tạo
TCP/UDP
IP
Ethernet Adapter
NTP
daemon
Web 
server
port 123 port 80
24Network programming
Well-known port numbers
Port number Protocol Keyword Application
20 TCP ftp-data File transfer (Default data)
21 TCP ftp File transfer (Control)
22 TCP ssh SSH Remote Login Protocol
23 TCP telnet telnet
25 TCP smtp Simple Mail Transfer Protocol
53 TCP domain Domain Name Server
80 TCP http HTTP
110 TCP pop3 Post Office Protocol – Ver 3
123 TCP ntp Network Time Protocol
443 TCP https HTTPS
7 UDP echo Echo
13 UDP daytime Daytime
53 UDP domain Domain Name Server
123 UDP ntp Network Time Protocol
25
CLOSED
BEGIN
LISTEN
Server Passive Open
SYN SENT
Active Open
send SYN
Client Active Open 
send SYN
SYN RCVD rcv SYN
send SYN,ACK
rcv SYN
send SYN,ACK
rcv RST
ESTABLISHED
rcv ACK of SYN
rcv SYN,ACK
send ACK
FIN WAIT-1
FIN WAIT-2
CLOSE_WAIT
CLOSING
TIME_WAIT
LAST_ACK
send FIN
rcv ACK
rcv FIN
send ACK
timer ~ 1 min
rcv FIN,ACK
send ACK
rcv FIN
send ACK
rcv ACK
send FIN
rcv FIN
send ACK
send FIN
rcv ACK
Trạng thái kết nối TCP 
26Network programming
Tiêu đề TCP
27Network programming
Khai báo tiêu đề TCP
struct tcphdr{
u_int16_t th_sport; /* source port */
u_int16_t th_dport; /* destination port */
tcp_seq th_seq; /* sequence number */
tcp_seq th_ack; /* acknowledgement number */
# if __BYTE_ORDER == __LITTLE_ENDIAN
u_int8_t th_x2:4; /* (unused) */
u_int8_t th_off:4; /* data offset */
# endif
# if __BYTE_ORDER == __BIG_ENDIAN
u_int8_t th_off:4; /* data offset */
u_int8_t th_x2:4; /* (unused) */
# endif
u_int8_t th_flags;
u_int16_t th_win; /* window */
u_int16_t th_sum; /* checksum */
u_int16_t th_urp; /* urgent pointer */
};
28Network programming
Giao thức UDP
 Viết tắt của User Datagram Protocol
 Cung cấp dịch vụ truyền tin không kết nối cho 
các chương trình tầng ứng dụng
 Truyền tin không tin cậy
 Không đảm bảo việc truyền tin đến đúng địa chỉ và 
không bị trùng lặp
 Truyền không giới hạn
 Không có điều khiển luồng
 Yêu cầu xử lý nhỏ
29Network programming
Tiêu đề UDP
30Network programming
Khai báo tiêu đề UDP
struct udphdr
{
u_int16_t uh_sport; /* source port */
u_int16_t uh_dport; /* destination port */
u_int16_t uh_ulen; /* udp length */
u_int16_t uh_sum; /* udp checksum */
};
31Network programming
Giao thức tầng ứng dụng:
Mô hình truyền tin khách/chủ
 Truyền tin bất đối xứng 
 Máy khách gửi yêu cầu
 Máy chủ gửi trả lời
 Máy chủ
 Sử dụng định dạng đã biết (e.g., IP 
address + port)
 Đợi kết nối đến
 Xử lý yêu cầu, gửi trả lời
 Máy khách
 Bắt đầu mộtkết nối
 Đợi trả lời từ máy chủ
Client
Server
Client
Client
Client
32Network programming
Giao thức tầng ứng dụng:
Mô hình truyền tin khách chủ(2)
 Mô hình dịch vụ
 Xử lý tuần tự:
 Máy chủ chỉ xử lý yêu cầu của một máy khách tại mỗi thời điểm
 E.g. Voice communication
 Xử lý đồng thời:
 Máy chủ xử lý nhiều yêu cầu của các máy khách khác nhau cùng 
một lúc
 E.g. Web server
 Lai:
 Máy chủ tạo ra nhiều kết nối với nhiều máy khách, nhưng xử lý yêu 
cầu của các máy khách một cách tuần tự
 Không có ranh giới rõ ràng giữa hai khái niệm máy khách và 
máy chủ
 Một máy chủ có thể là máy khách của một máy chủ khác
 Một máy chủ có thể là máy khách của chính máy khách của nó
33
Giao thức tầng ứng dụng:
Mô hình truyền tin ngang hàng
 Các node trong mạng đóng cả hai vai trò máy chủ/máy khách
 Cung cấp và sử dụng tài nguyên
 Bất cử node nào cũng có thể khởi tạo kết nối
 Không có máy chủ dữ liệu trung tâm
 “The ultimate form of democracy on the Internet”
 “The ultimate threat to copy-right protection on the Internet”
Network programming
Node
Node
Node Node
Node
Internet
34
Giao thức tầng ứng dụng
 Sử dụng các dịch vụ truyền tin cung cấp bởi 
tầng dưới
 Thông qua giao diện socket (= “bit pipe”)
Network programming
process
TCP with
buffers,
variables
socket
controlled by
application
developer
controlled by
operating
system
host or
server
process
TCP with
buffers,
variables
socket
controlled by
application
developer
controlled by
operating
system
host or
server
internet
35
Các yêu cầu về dịch vụ giao vận của các 
ứng dụng phổ biến 
Network programming
Application
file transfer
e-mail
Web documents
real-time audio/video
stored audio/video
interactive games
financial apps
Data loss
no loss
no loss
loss-tolerant
loss-tolerant
loss-tolerant
loss-tolerant
no loss
Bandwidth
elastic
elastic
elastic
audio: 5Kb-1Mb
video:10Kb-5Mb
same as above 
few Kbps up
elastic
Time Sensitive
no
no
no
yes, 100’s msec
yes, few secs
yes, 100’s msec
yes and no
36
Một số giao thức tầng ứng dụng
Network programming
Application
e-mail
remote terminal access
Web 
file transfer
streaming multimedia
remote file server
Internet telephony
Application
layer protocol
smtp [RFC 821]
telnet [RFC 854]
http [RFC 2068]
ftp [RFC 959]
proprietary
(e.g. RealNetworks)
NSF
proprietary
(e.g., Vocaltec)
Underlying
transport protocol
TCP
TCP
TCP
TCP
TCP or UDP
TCP or UDP
typically UDP
37
Ví dụ về giao thức tầng ứng dụng 
HTTP
Network programming
http: hypertext transfer protocol
 Giao thức tầng ứng dụng của 
Web
 Mô hình khách chủ
 máy khách: Trình duyệt gửi 
yêu cầu, nhận kết quả và 
hiển thị trang Web
 Máy khách: Máy chủ Web 
gửi trang Web khi nhận 
được yêu cầu của máy 
khách
 http1.0: RFC 1945
 http1.1: RFC 2068
PC running
Explorer
Server 
running
NCSA Web
server
Mac running
Navigator
38
Định dạng thông báo yêu cầu
Network programming
39
Ví dụ về thông báo yêu cầu
 GET /hello.html
 Host: www.abc.xyz.edu
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; 
 Accept: text/xml,application/xml,application/xhtml+xml,
 Accept-Language: en-us,en;q=0.5
 Accept-Encoding: gzip,deflate
 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
 Keep-Alive: 300
 Connection: keep-alive
 Cookie: SignOnDefault=ATWOLF
Network programming
40
Định dạng thông báo trả lời
Network programming
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 ... 
status line
(protocol
status code
status phrase)
header
lines
data, e.g., 
requested
html file
            Các file đính kèm theo tài liệu này:
 ltm_bai_2_tong_quan_ve_giao_thuc_internet_3969.pdf ltm_bai_2_tong_quan_ve_giao_thuc_internet_3969.pdf