92
1-1 Mạng máy tính Bộ môn Kỹ thuật máy tính và Mạng Khoa Công nghệ Thông tin Đại học Sư phạm Hà Nội

Mạng máy tính

Embed Size (px)

DESCRIPTION

Mạng máy tính. Bộ môn Kỹ thuật máy tính và Mạng Khoa Công nghệ Thông tin Đại học S ư phạm Hà Nội. 2.1 Các nguyên tắc của ứng dụng mạng 2.2 Web và HTTP 2.3 FTP 2.4 E-Mail SMTP, POP3, IMAP 2.5 DNS. 2.6 Chia sẻ file P2P 2.7 Lập trình Socket với TCP 2.8 Lập trình Socket với UDP - PowerPoint PPT Presentation

Citation preview

Page 1: Mạng máy tính

1-1

Mạng máy tính

Bộ môn Kỹ thuật máy tính và Mạng

Khoa Công nghệ Thông tin

Đại học Sư phạm Hà Nội

Page 2: Mạng máy tính

1-2

Chương 3: Tầng ứng dụng

2.1 Các nguyên tắc của ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 E-Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng một Web

server

Page 3: Mạng máy tính

1-3

Chương 3: Tầng ứng dụng

Mục đích: Các khía cạnh của

các giao thức ứng dụng mạng Mô hình dịch vụ tầng

giao vận Mô hình Client-Server Mô hình peer-to-peer

Học về các giao thức phổ biến mức ứng dụng HTTP FTP SMTP / POP3 / IMAP DNS

Lập trình các ứng dụng mạng Socket API

Page 4: Mạng máy tính

1-4

Một số ứng dụng mạng

E-mail Web Instant messaging Remote login Chia sẻ file P2P Trò chơi nhiều người

sử dụng qua mạng

Điện thoại qua Internet Hội nghị truyền hình

thời gian thực Tính toán song song

Page 5: Mạng máy tính

1-5

Tạo một ứng dụng mạng

Viết chương trình Chạy trên các end systems

khác nhau và Giao tiếp qua mạng Ví dụ Web: Phần mềm Web

server giao tiếp với phần mềm trình duyệt

Không có phần mềm viết cho các thiết bị trong Network Core Các thiết bị trong Network

Core không thực hiện chức năng tại lớp ứng dụng

Thiết kế này để sự phát triển ứng dụng nhanh

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

Page 6: Mạng máy tính

1-6

Chương 3: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 7: Mạng máy tính

1-7

Các kiến trúc ứng dụng

Client-Server Peer-to-peer (P2P) Hybrid

Page 8: Mạng máy tính

1-8

Kiến trúc Client-server

Server: Host ở trạng thái luôn

chạy Địa chỉ IP cố định Server farm để tăng khả

năng phục vụ

Client: Truyền thông với server Có thể không kết nối liên

tục Có thể có địa chỉ IP động Không giao tiếp trực tiếp

với nhau

Page 9: Mạng máy tính

1-9

Kiến trúc P2P

Server không ở trạng thái luôn chạy

Hệ thống cuối tùy ý truyền thông trực tiếp

Các Peer kết nối không liên tục và thay đổi địa chỉ IP

Ví dụ: Gnutella

Khả năng co giãn quy mô cao

Khó quản lý

Page 10: Mạng máy tính

1-10

Hybrid

Lai giữa P2P và Client-ServerNapster

Truyền file P2P Tìm kiếm file tập trung:

• Các Peer đăng ký nội dung tại server trung tâm• Các Peer gửi yêu cầu server trung tâm xác định vị trí của nội

dung

Instant Messaging Giao tiếp giữa 2 user là P2P Quản lý tập trung vị trí của user:

• User đăng ký địa chỉ IP với server trung tâm khi kết nối• User thông qua server trung tâm để tìm địa chỉ IP của đối

tượng cần giao tiếp

Page 11: Mạng máy tính

1-11

Truyền thông của các tiến trình

Tiến trình: chương trình chạy trong một host.

Trong cùng host, 2 tiến trình giao tiếp sử dụng inter-process communication (Do OS định nghĩa).

Các tiến trình trong các host khác nhau giao tiếp bằng cách trao đổi các message

Tiến trình client: tiến trình khởi đầu quá trình truyền thông

Tiến trình server: tiến trình đợi kết nối

Chú ý: Các ứng dụng P2P có cả tiến trình client và tiến trình server

Page 12: Mạng máy tính

1-12

Socket

Tiến trình gửi nhận messages tới/từ socket của nó

Socket tương tự cửa ra vào Tiến trình gửi đẩy bản tin ra

ngoài cửa Tiến trình gửi dựa vào hạ

tầng giao vận trên phía bên kia của cửa, nó mang message tới socket của tiến trình nhận

Tiến trình

TCP vớibuffer,Biến

socket

host hoặcserver

Tiến trình

TCP với Buffer, biến

socket

host hoặcserver

Internet

Điều khiển bởi OS

Điều khiển bởi người lập trình ứng dụng

API: (1) Chọn giao thức giao vận; (2) Gán giá trị cho một vài tham số (chi tiết phần sau)

Page 13: Mạng máy tính

1-13

Các tiến trình đánh địa chỉ Đối với một tiến trình

nhận messages, nó phải có một định danh

Một host có một địa chỉ IP duy nhất

Câu hỏi: Địa chỉ IP của host mà tiến trình chạy có đáp ứng được việc định danh tiến trình?

Trả lời: Không, nhiều tiến trình có thể chạy trên cùng host

Định danh bao gồm cả địa chỉ IP và địa chỉ cổng gán cho ứng dụng trên host.

Ví dụ: Giá trị cổng của một số ứng dụng: HTTP server: 80 Mail server: 25

Chi tiết hơn trong phần sau

Page 14: Mạng máy tính

1-14

Giao thức lớp ứng dụng

Giao thức lớp ứng dụng định nghĩa Kiểu của bản tin trao đổi,

ví dụ bản yêu cầu, bản tin trả lời

Cú pháp của kiểu bản tin: Các trường trong bản tin và mô tả các trường trong bản tin

Ý nghĩa của các trường Quy tắc các tiến trình

gửi/nhận bản tin khi nào và như thế nào

Các giao thức công khai: Định nghĩa trong các

RFC Cho phép phối hợp hoạt

động Ví dụ: HTTP, SMTP

Các giao thức không công khai:

Page 15: Mạng máy tính

1-15

Các dịch vụ giao vận mà ứng dụng cần

Mất dữ liệu Một số ứng dụng (ví dụ: audio)

có thể chấp nhận một tỷ lệ mất dữ liệu nào đó

Một số ứng dụng khác (ví dụ: Truyền file, telnet) đòi hỏi 100%

dữ liệu truyền là tin cậy

Thời gian Một số ứng dụng (ví dụ: điện

thoại Internet, trò chơi tương tác) đòi hỏi độ trễ thấp

Băng thông Một số ứng dụng (ví dụ: đa

phương tiện) yêu cầu lượng băng thông tối thiểu

Một số ứng dụng khác sử dụng theo băng thông chúng nhận được

Page 16: Mạng máy tính

1-16

Yêu cầu của ứng dụng giao vận của một số ứng dụng

Ứng dụng

Truyền fileE-mail

WebReal-time audio/video

Stored audio/videoTrò chơi tương tácInstant messaging

Mất dữ liệu

Không cho phépKhông cho phépKhông cho phépCho phép

Cho phépCho phépKhông cho phép

Băng thông

Co giãnCo giãnCo giãnAudio: 5kbps-1MbpsVideo:10kbps-5MbpsTương tự trên Yêu cầu kbpsCo giãn

Thời gian

KhôngKhôngKhôngCó, hàng trăm msec

Có, vài secsCó, hàng trăm msecCó

Page 17: Mạng máy tính

1-17

Các dịch vụ các giao thức giao vận

Dịch vụ TCP: Hướng kết nối: Đòi hỏi quá

trình thiết lập giữa tiến trình client và tiến trình server

Truyền tin cậy giữa tiến trình gửi và tiến trình nhận

Điều khiển luồng: Bên gửi sẽ không vượt quá khả năng bên nhận

Điều khiển tắc nghẽn: điều chỉnh bên gửi khi mạng quá tải

Không cung cấp: tính thời gian, đảm bảo băng thông tối thiểu

Dịch vụ UDP: Truyền dữ liệu không tin

cậy giữa tiến trình gửi và tiến trình nhận

Không cung cấp: việc thiết lập kết, truyền tin cậy, điều khiển luồng, điều khiển tắc nghẽn, tính thời gian, đảm bảo băng thông

Q: Tại sao cần UDP?

Page 18: Mạng máy tính

1-18

Các ứng dụng Internet: các giao thức tầng ứng dụng và tầng giao vận

Ứng dụng

Thư điện tửTruy cập từ xa

Web Truyền file

Truyền dòng đa phương tiện

Điện thoại Internet

Giao thứctầng ứng dụng

SMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]Không công khai(vd: RealNetworks)Không công khai(vd: Dialpad)

Giao thức tầng giao vận

TCPTCPTCPTCPTCP hoặc UDP

UDP

Page 19: Mạng máy tính

1-19

Chương 2: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 20: Mạng máy tính

1-20

Web và HTTP

Trang Web chứa các đối tượng Đối tượng có thể là file HTML, ảnh JPEG, Java

applet, audio,… Trang Web chứa file HTML, chứa các đối tượng

tham chiếu Mỗi đối tượng được đánh địa chỉ bởi một URL Ví dụ URL:

www.someschool.edu/someDept/pic.gif

host name path name

Page 21: Mạng máy tính

1-21

HTTP

HTTP: hypertext transfer protocol

Giao thức tầng ứng dụng của Web

Mô hình client/server client: Trình duyệt yêu

cầu, nhận và hiện thị các đối tượng

server: Web server gửi các đối tượng trong trả lời

HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068

Server chạy

Apache Webserver

HTTP request

HTTP request

HTTP response

HTTP response

Page 22: Mạng máy tính

1-22

HTTP (tiếp)

Sử dụng TCP: Client khởi đầu kết nối TCP (tạo

socket) tới server, cổng 80 Server chấp nhận kết nối TCP từ

client Các bản tin HTTP (bản tin của

giao thức tầng ứng dụng Web) trao đối giứa trình duyệt (HTTP client) và Web server (HTTP server)

Kết nối TCP đóng

HTTP là không hướng trạng thái

Server không duy trì thông tin về các yêu cầu của client trong quá khứ

Các giao thức hướng trạng thái phức tạp hơn giao thức không hướng trạng thái

Quá khứ phải được duy trì Nếu server/client lỗi, các

trạng thái có thể không thống nhất

Page 23: Mạng máy tính

1-23

Kết nối HTTP

Không kiên trì HTTP Một đối tượng được gửi

qua một kết nối TCP HTTP/1.0 sử dụng

nonpersistent HTTP

Kiên trì HTTP Nhiều đối tượng có thể

gửi qua một kết nối TCP giữa client và server

HTTP/1.1 mặc định sử dụng persistent HTTP

Page 24: Mạng máy tính

1-24

Nonpersistent HTTPGiả sử người sử dụng nhập vào URL www.someSchool.edu/someDepartment/home.index

1a. HTTP client khởi đầu kết nối TCP tới HTTP server (tiến trình) tại www.someSchool.edu, cổng 80

2. HTTP client gửi bản tin yêu cầu HTTP (chứa URL) vào socket của kết nối TCP. Bản tin chỉ rằng client muốn lấy đối tượng someDepartment/home.index

1b. HTTP server tại host www.someSchool.edu đợi kết nối TCP tại cổng 80.

Chấp nhận kết nối, thông báo cho client

3. HTTP server nhận bản tin yêu cầu, xây dựng bản tin trả lời chứa đối tượng đã yêu cầu và gửi bản tin vào trong socket của nó

Thời gian

(chứa text, tham chiếu tới 10

ảnh jpeg)

Page 25: Mạng máy tính

1-25

Nonpersistent HTTP (cont.)

5. HTTP client nhận trả lời chứa file html, hiện thị nội dung. Phân tích html, tìm 10 đối tượng ảnh jpeg được tham chiếu

6. Lặp bước 1-5 cho mỗi đối tượng ảnh jpeg

4. HTTP server đóng kết nối TCP

time

Page 26: Mạng máy tính

1-26

Mô hình thời gian trả lời

RTT: thời gian để gửi một gói tin từ client tới server và trở lại

Thời gian trả lời: 1 RTT để khởi tạo kết nối

TCP 1 RTT cho yêu cầu HTTP

và nhận byte đầu tiên của trả lời HTTP

Thời gian truyền file

total = 2RTT+transmit time

transmit time

Khởi đầukết nối TCP

RTT

file yêu cầu

RTT

file đã nhận

thời gian thời gian

Page 27: Mạng máy tính

1-27

Persistent HTTP

Nonpersistent HTTP: Yêu cầu 2 RTT cho 1 đối

tượng Hệ điều hành phải cấp phát tài

nguyên cho mỗi kết nối TCP Trình duyệt phải mở song

song nhiều kết nối TCP để lấy đối tượng tham chiếu

Persistent HTTP Server tạm dừng kết nối sau

khi gửi trả lời Các bản tin HTTP sau đó giữa

cùng client/server được gửi qua kết nối

Page 28: Mạng máy tính

1-28

Bản tin yêu cầu HTTP

Hai kiểu bản tin HTTP: yêu cầu, trả lời Bản tin yêu cầu HTTP:

ASCII

GET /somedir/page.html HTTP/1.1Host: www.someschool.edu User-agent: Mozilla/4.0Connection: close Accept-language:fr

(CR, LF)

Request line(lệnh GET, POST,

HEAD )

header line

Page 29: Mạng máy tính

1-29

Bản tin yêu cầu HTTP

Page 30: Mạng máy tính

1-30

Kiểu Method

HTTP/1.0 GET POST HEAD

Hỏi server bỏ đối tượng đã yêu cầu ra khỏi trả lời

HTTP/1.1 GET, POST, HEAD PUT

đưa file trong phần body lên đường dẫn chỉ trong URL

DELETE xóa file trong trường

URL

Page 31: Mạng máy tính

1-31

Bản tin trả lời HTTP

HTTP/1.1 200 OK Connection closeDate: 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 dữ liệu

status line(protocol

status codestatus phrase)

header line

dữ liệu, ví dụ:file HTML đã

yêu cầu

Page 32: Mạng máy tính

1-32

Mã trạng thái của trả lời HTTP

200 OK Yêu cầu thực hiện thành công, đối tượng trong bản tin

301 Moved Permanently Đối tượng yêu cầu đã di chuyển vị trí, ví trí mới được chỉ ra

trong bản tin (Location:)

400 Bad Request Server không hiểu bản tin yêu cầu

404 Not Found Không tìm thấy đối tượng yêu cầu

505 HTTP Version Not Supported

Trong dòng đầu tiên của trả lời server->client

Ví dụ:

Page 33: Mạng máy tính

1-33

Thực hành

1. Telnet tới một Web server:

Mở kết nối TCP tới cổng 80 tại cis.poly.edu.Nội dung gõ được gửi tới cổng 80 tại cis.poly.edu

telnet cis.poly.edu 80

2. Gõ lệnh GET

GET /~ross/ HTTP/1.1Host: cis.poly.edu

3. Xem bản tin trả lời gửi bởi HTTP server

Page 34: Mạng máy tính

1-34

Web cache (proxy server)

Người dùng thiết lập qua trình duyệt

Trình duyệt gửi mọi yêu cầu HTTP qua Cache Đối tượng trong cache:

sẽ được trả về Nếu không: Yêu cầu

được chuyển tới server ban đầu

Mục đích: thực hiện yêu cầu của client không phải yêu cầu tới server ban đầu

client

Proxyserver

client

HTTP request

HTTP request

HTTP response

HTTP response

HTTP request

HTTP response

serverban đầu

serverban đầu

Page 35: Mạng máy tính

1-35

Web cache

Cache hoạt động như cả client và server

Thông thường, được cài đặt bởi ISP

Lợi ích của Web cache Giảm thời gian trả lời Giảm lưu lượng trên đường

truyền truy cập

Page 36: Mạng máy tính

1-36

Web cache

Cache hoạt động như cả client và server

Thông thường cache được cài đặt bởi ISP (trường đại học, công ty, nhà cung cấp dịch vụ cho gia đình)

Tại sao dùng Web cache? Giảm thời gian trả lời cho

yêu cầu của client. Giảm lưu lượng trên đường

truy cập của tổ chức.

Page 37: Mạng máy tính

1-37

Ví dụ caching

Giả sử Kích thước của đối tượng trung

bình = 100,000 bits ~ 960 kbs Tốc độ yêu cầu trung bình từ trình

duyệt của tới server ban đầu = 15 giây

Trễ từ router của tổ chức tới server ban đầu và trở lại = 2 giây

Kết quả Sự sử dụng trong LAN = 15% Sự sử dụng trong đường truyền

truy cập = 100% Total delay = Internet delay +

access delay + LAN delay

= 2 giây + phút + millisecond

Các serverban đầu

public Internet

Mạng của tổ chức 10 Mbps LAN

Đường truyền truy cập 1.5 Mbps

InstitutionalCache

Page 38: Mạng máy tính

1-38

Ví dụ caching (tiếp)

Giải pháp có thể Tăng băng thông của đường truyền

truy cập: 10 Mbps

Kết quả Sự sử dụng LAN = 15% Sử dụng đường truyền truy cập =

15% Total delay = Internet delay +

access delay + LAN delay

= 2 sec + msecs + msecs

Server ban đầu

public Internet

Mạng củatổ chức 10 Mbps LAN

Đường truyền truy cập10 Mbps

institutionalcache

Page 39: Mạng máy tính

1-39

Ví dụ caching (tiếp)

Cài đặt cache Hỗ trợ hit rate .4

Kết quả 40% yêu cầu sẽ đáp ứng gần

như ngay lập tức 60% yêu cầu đáp ứng bởi

server ban đầu Sự sử dụng đường truyền

truy cập giảm tới 60%, kết quả độ trễ không đáng kể (10 msec)

total avg delay = Internet delay + access delay + LAN delay = .6*(2.01) secs + milliseconds < 1.4 secs

Server ban đầu

public Internet

Mạng của tổ chức 10 Mbps LAN

Đường truyền truy cập 1.5 Mbps

institutionalcache

Page 40: Mạng máy tính

1-40

GET có điều kiện

Mục đích: không gửi đối tượng nếu cache có phiên bản cập nhật

Cache: chỉ định ngày của bản sao chép trong cache trong yêu cầu HTTPIf-modified-since: <date>

Server: Trả lời không chứa đối tượng nếu bản sao chép trong cache cập nhật: HTTP/1.0 304 Not Modified

Cache Server

Bản tin yêu cầu HTTP If-modified-since: <date>

Bản tin trả lời HTTPHTTP/1.0

304 Not Modified

Đối tượngkhông bị thay đổi

Bản tin yêu cầu HTTPIf-modified-since: <date>

Bản tin trả lời HTTPHTTP/1.0 200 OK

<data>

Đối tượng đã thay đổi

Page 41: Mạng máy tính

1-41

Chương 3: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 42: Mạng máy tính

1-42

FTP: File Transfer Protocol

Truyền file tới/từ host ở xa Mô hình client/server

client: Phía khởi đầu việc truyền (tới hoặc từ host ở xa) server: host ở xa

ftp: RFC 959 ftp server: port 21

Truyền file FTPserver

Giao diện người sử dụng FTP

FTPclient

Hệ thống file cục bộ

Hệ thống file từ ở xa

user tại host

Page 43: Mạng máy tính

1-43

FTP: Kết nối dữ liệu và điều khiển riêng biệt

FTP client liên lạc với FTP server tại cổng 21, chỉ định dùng TCP làm giao thức giao vận

Client giành ủy quyền qua kết nối điều khiển

Client xem thư mục từ xa bằng cách gửi lệnh qua kết nối điều khiển

Khi server nhận một lệnh truyền file, server mở một kết nối dữ liệu TCP tới client

Sau khi truyền file, server đóng kết nối.

FTPclient

FTPserver

Kết nối điều khiển TCP cổng 21

Kết nối dữ liệu TCPcổng 20

Server mở một kết nối dữ liệu TCP thứ hai để truyền một file khác.

Kết nối điều khiển: truyền theo đường riêng

FTP server duy trì trạng thái: thư mục hiện tại, ủy quyền trước đó

Page 44: Mạng máy tính

1-44

Lệnh và trả lời của FTP

Ví dụ một số lệnh: Gửi văn bản mã ASCII

qua kênh điều khiển USER username PASS password LIST trả về một danh

sách các file trong thưc mục hiện tại

RETR filename lấy file

STOR filename đưa file lên remote host

Ví dụ một số mã trả về Status code và status

phrase (như HTTP) 331 Username OK, đòi hỏi mật khẩu

125 kết nối dữ liệu đã mở; bắt đầu truyền

425 Không thể mở kết nối dữ liệu

452 Lỗi ghi file

Page 45: Mạng máy tính

1-45

Chương 2: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 46: Mạng máy tính

1-46

Electronic Mail

Ba thành phần chính: User agent Mail server Simple mail transfer protocol:

SMTP

User Agent Còn gọi là Mail Reader Soạn, sửa, đọc bản tin mail Ví dụ: Eudora, Outlook,

Netscape Messenger Các bản tin gửi tới và gửi đi

đã chứa trên server

User mailbox

Hàng đợi bản tin gửi đi

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 47: Mạng máy tính

1-47

Electronic Mail: Mail server

Mail Server mailbox chứa các bản tin

thư điện tử gửi đến cho người sử dụng

message queue của các bản tin thư điện tử gửi đi

SMTP protocol giữa các mail server để gửi các bản tin thư điện tử client: mail server gửi “server”: mail server

nhận

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 48: Mạng máy tính

1-48

Electronic Mail: SMTP [RFC 2821]

Sử dụng TCP để truyền tin cậy các bản tin thư điện tử từ client tới server, cổng 25

Gửi trực tiếp: server gửi tới server nhận Ba pha của việc truyền

Bắt tay Truyền các bản tin Kết thúc

Sự tương tác Lệnh/Trả lời Lệnh: văn bản mã ASCII Trả lời: status code và status phrase

Các bản tin phải dùng mã ASCII 7-bit

Page 49: Mạng máy tính

1-49

Kịch bản: Alice gửi bản tin cho Bob1) Alice dùng UA để soạn bản

tin và gửi cho [email protected]

2) UA của Alice gửi bản tin tới mail server của cô ta; bản tin đặt trong message queue

3) Phía client của SMTP mở kết nối TCP với mail server của Bob

4) SMTP client gửi bản tin của Alice qua kết nối TCP

5) Mail server của Bob chuyển bản tin vào mailbox của Bob

6) Bob chạy user agent để đọc bản tin

useragent

mailserver

mailserver user

agent

1

2 3 4 56

Page 50: Mạng máy tính

1-50

Ví dụ tương tác SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

Page 51: Mạng máy tính

1-51

SMTP: Một số thông tin khác

SMTP sử dụng persistent connections

SMTP yêu cầu bản tin (header & body) dùng mã ASCII 7-bit

SMTP server sử dụng CRLF.CRLF để xác định kết thúc bản tin

So sánh với HTTP: HTTP: pull SMTP: push

Cả hai có tương tác Lệnh/Trả lời dạng mã ASCII, status code

HTTP: mỗi đối tượng được đóng gói trong chính bản tin trả lời

SMTP: nhiều đối tượng được gửi trong bản tin có nhiều phần

Page 52: Mạng máy tính

1-52

Định dạng bản tin

SMTP: giao thức để trao đổi các bản tin thư điện tử

RFC 822: chuẩn định dạng bản tin dạng văn bản

Header lines, ví dụ To: From: Subject:

khác Lệnh SMTP body

bản tin, ký tự ASCII

header

body

dòng trống

Page 53: Mạng máy tính

1-53

Định dạng bản tin: Các mở rộng đa phương tiện

MIME: Multimedia Mail Extension, RFC 2045, 2046 Thêm các dòng trong header của bản tin khai báo kiểu nội

dung MIME

From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg

dữ liệu mã hóa kiểu base64 ..... ......................... ......dữ liệu mã hóa kiểu base64

kiểu dữ liệu đa phương tiện,

kiểu con, khai báo tham số

method sử dụng để mã hóa dữ liệu

MIME version

dữ liệu đã mã hóa

Page 54: Mạng máy tính

1-54

Thực hành tương tác SMTP

telnet servername 25 Xem trả lời 220 từ server Gõ vào các lệnh HELO, MAIL FROM, RCPT TO,

DATA, QUIT để gửi thư điện tử không sử dụng email client (reader)

Page 55: Mạng máy tính

1-55

Các giao thức truy cập thư điện tử

SMTP: chuyển/lưu trữ thư tới server của bên nhận Giao thức truy cập thư: lấy thư từ server

POP: Post Office Protocol [RFC 1939]• Ủy quyền (agent <-->server) và tải thư

IMAP: Internet Mail Access Protocol [RFC 1730]• Nhiều tính năng hơn (phức tạp hơn)• Thao tác trên các bản tin lưu trên server

HTTP: Hotmail , Yahoo! Mail, …

useragent

mail server của bên gửi

useragent

SMTP SMTP giao thứctruy cập

mail servercủa bên nhận

Page 56: Mạng máy tính

1-56

Giao thức POP3

Pha ủy quyền Lệnh của client:

user: khai báo tên người dùng

pass: mật khẩu Trả lời của server

+OK -ERR

Pha giao dịch, client: list: liệt kê các số bản tin retr: lấy bản tin dựa vào số dele: xóa quit

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 chấm dứt phiên làm việc

S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK người sử dụng đăng nhập thành công

Page 57: Mạng máy tính

1-57

POP3 và IMAPThông tin thêm về POP3 Ví dụ trước sử dụng

chế độ “tải và xóa” Bob không thể đọc lại

các thư điện tử nếu bob chuyển sang client khác

Chế độ “Tải và giữ” sao chép các bản tin trên các client khác nhau

POP3 không lưu trạng thái giữa các phiên

IMAP Giữ tất cả các bản tin

tại một chỗ: server Cho phép người sử

dụng tổ chức các bản tin vào các thư mục

IMAP giữ trạng thái người sử dụng qua các phiên: Tên của các thư mục và

ánh xạ giữa các định danh của bản tin và tên thư mục

Page 58: Mạng máy tính

1-58

Chương 3: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 59: Mạng máy tính

1-59

DNS: Domain Name System

Con người: có nhiều định danh: CMT, tên, hộ chiếu

Host, router trên Internet: Địa chỉ IP (32 bít) để đánh

địa chỉ các đơn vị dữ liệu gửi đi

Tên, ví dụ: www.yahoo.com sử dụng bởi con người

Câu hỏi: Ánh xạ giữa địa chỉ IP và tên ?

Hệ thống tên miền (DNS): Cơ sở dữ liệu phân tán được

thực hiện phân cấp bởi nhiều name server

Giao thức tầng ứng dụng để host, router, name server giao tiếp dịch giữa địa chỉ và tên Chú ý: Chức năng cơ bản

của Internet, thực hiện bởi giao thức ứng dụng

Sự phức tạp tại network edge

Page 60: Mạng máy tính

1-60

DNS

Tại sao không dùng DNS tập chung ?

Một điểm lỗi Khối lượng lưu lượng Cơ sở dữ liệu tập chung

xa Bảo trì

Không co giãn!

Các dịch vụ DNS Dịch tên host sang địa

chỉ IP Bí danh cho Host

Canonical name và alias names

Bí danh cho Mail server Phân tải

Web server: Một tập các địa chỉ IP cho một canonical name

Page 61: Mạng máy tính

1-61

Root DNS Servers

com DNS servers org DNS servers edu DNS servers

poly.eduDNS servers

umass.eduDNS servers

yahoo.comDNS servers

amazon.comDNS servers

pbs.orgDNS servers

Cơ sở dữ liệu phân cấp và phân tán

Client muốn biết địa chỉ IP của www.amazon.com: Client yêu cầu root server để tìm com DNS server Client yêu cầu com DNS server để xác định

amazon.com DNS server Client yêu cầu amazon.com DNS server để lấy địa

chỉ IP cho www.amazon.com

Page 62: Mạng máy tính

1-62

DNS: Root name server Local name server không trả lời được thì nó sẽ liên lạc với Root name server Root name server:

Liên lạc với authoritative name server nếu nó không biết ánh xạ tên Lấy ánh xạ Trả ánh xạ về cho local name server

13 root name server trên toàn thế giới

b USC-ISI Marina del Rey, CAl ICANN Los Angeles, CA

e NASA Mt View, CAf Internet Software C. Palo Alto, CA (and 17 other locations)

i Autonomica, Stockholm (plus 3 other locations)

k RIPE London (also Amsterdam, Frankfurt)

m WIDE Tokyo

a Verisign, Dulles, VAc Cogent, Herndon, VA (also Los Angeles)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 11 locations)

Page 63: Mạng máy tính

1-63

TLD và Authoritative Server

Top-level domain (TLD) server: có vai trò đối với com, org, net, edu,… và tất cả các miền quốc gia mức trên cùng uk, fr, ca, jp,…

Authoritative DNS server: DNS server của các tổ chức cung cấp ánh xạ authoritative hostname thành địa chỉ IP cho server của tổ chức (ví dụ Web và Email). Có thể duy trì bởi tổ chức hoặc nhà cung cấp dịch vụ

Page 64: Mạng máy tính

1-64

Local Name Server

Không hoàn toàn thuộc vào phân cấp Mỗi ISP (residential ISP, công ty, tổ chức) có

Còn gọi là “default name server”

Khi một host tạo truy vấn DNS, truy vấn được gửi tới Local DNS server của nó Hoạt động như một proxy, chuyển tiếp query vào

trong phân cấp.

Page 65: Mạng máy tính

1-65

host gửi yêu cầucis.poly.edu

gaia.cs.umass.edu

Root DNS server

Local DNS serverdns.poly.edu

1

23

4

5

6

authoritative DNS serverdns.cs.umass.edu

78

TLD DNS server

Ví dụ

Host tại cis.poly.edu muốn biết địa chỉ IP của gaia.cs.umass.edu

Page 66: Mạng máy tính

1-66

requesting hostcis.poly.edu

gaia.cs.umass.edu

root DNS server

local DNS serverdns.poly.edu

1

2

45

6

authoritative DNS serverdns.cs.umass.edu

7

8

TLD DNS server

3

Truy vấn đệ quy

Truy vấn đệ quy: Giao toàn bộ việc tìm

tên cho name server liên lạc

Tải lớn?

Truy vấn lặp: Server liên lạc trả về

tên của server cần liên lạc tiếp

“Tôi không biết nhưng anh muốn biết thì đi hỏi server này”

Page 67: Mạng máy tính

1-67

DNS: lưu giữ tạm và cập nhật bản ghi

Name server nào đó học các ánh xạ, server sẽ lưu giữ tạm các ánh xạ đó Các khe lưu trữ tạm quá hạn (biến mất) sau một khoảng

thời gian Các TLD server thông thường lưu trữ tạm trong các local

name servers• Vì thế, root name server không phải hỏi thường xuyên

Cơ chế cập nhật/thông báo định nghĩa bởi IETF RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html

Page 68: Mạng máy tính

1-68

Bản ghi DNSDNS: Cơ sở dữ liệu phân tán chứa các bản ghi tài nguyên (Resource record - RR)

Type=NS name là domain (ví dụ

foo.com) value là địa chỉ của

authoritative name server cho domain đó

Định dạng RR: (name, value, type, ttl)

Type=A name là hostname value là địa chỉ IP

Type=CNAME name là tên bí danh cho một số

tên thật (cannonical name) www.ibm.com thật ra là

servereast.backup2.ibm.com value là tên thật

Type=MX value là tên thật của mail

server liên kết với name (bí danh của hostname)

(foo.com, mail.bar.foo.com,

MX)

Page 69: Mạng máy tính

1-69

Giao thức DNS, bản tin

Giao thức DNS: Bản tin truy vấn và trả lời có chung một định dạng bản tin

Header của bản tin identification: 16 bit, định

cho truy vấn, trả lời sử dụng cùng giá trị

flags: Truy vấn hay trả lời Mong muốn đệ quy Có khả năng đệ quy Trả lời là ủy quyền

Page 70: Mạng máy tính

1-70

Giao thức DNS, bản tin

Các trường Name, typecho một Truy vấn

Các bản ghi trong trả lời

Các bản ghi choauthoritative server

Các bản ghi cung cấp thông tin khác

Page 71: Mạng máy tính

1-71

Chèn thêm bản ghi vào DNS

Ví dụ: Tạo “Network Utopia” Đăng ký tên networkuptopia.com tại registrar (ví dụ: nhà

cung cấp giải pháp mạng) Cần cung cấp cho registrar tên và địa chỉ IP của authoritative

name server của mạng (primary và secondary) Registrar chèn thêm hai RR vào trong com TLD server:

(networkutopia.com, dns1.networkutopia.com, NS)(dns1.networkutopia.com, 212.212.212.1, A)

Thêm vào authoritative server bản ghi kiểu A cho www.networkuptopia.com và bản ghi kiểu MX cho networkutopia.com

Người khác xác định địa chỉ IP của Web site này như thế nào?

Page 72: Mạng máy tính

1-72

Chương 2: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 73: Mạng máy tính

1-73

Chia sẻ file P2P

Ví dụ Alice chạy ứng dụng

P2P client Kết nối tới Internet và

nhận một địa chỉ IP mới Tìm “Hey Jude” Ứng dụng các peer

khác có bản sao chép của Hey Jude không.

Alice chọn một peer, Bob File được sao chép từ

máy của Bob tới máy của Alice: HTTP

Trong khi Alice đang tải, người sử dụng khác lấy dữ liệu đã có trên máy Alice

Peer của Alice vừa là Web client vừa là Web server.

Mọi peer là server = quy mô lớn!

Page 74: Mạng máy tính

1-74

P2P: thư mục trung tâm

Thiết kế của “Napster” ban đầu

1) Khi peer kết nối, nó thông báo server trung tâm: Địa chỉ IP Nội dung

2) Alice yêu cầu “Hey Jude”

3) Alice yêu cầu file từ Bob

Server thư mục trung tâm

peers

Alice

Bob

1

1

1

12

3

Page 75: Mạng máy tính

1-75

P2P: Vấn đề của thư mục trung tâm

Một điểm chịu lỗi Hiệu năng Xâm phạm bản quyền

Truyền file là không tập trung,xác định vị trí nội dung là không tập chung

Page 76: Mạng máy tính

1-76

Chương 3: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 77: Mạng máy tính

1-77

Lập trình Socket với TCPClient phải liên lạc với server

• Tiến trình server phải đang chạy

• Server phải mở socket (cửa) để client liên lạc

Client liên lạc với server bằng cách:

• Tạo client-local TCP socket

• Gán địa chỉ IP, cổng của tiến trình server

• Khi client tạo socket: client TCP giành kết nối tới server TCP

• Khi nhận được sự liên lạc của client, server TCP tạo một socket mới cho tiến trình server để giao tiếp với client

– Cho phép server nói chuyện với nhiều client

– Giá trị source port dùng để phân biệt các client (chi tiết hơn trong chương sau)

TCP cung cấp dịch vụ truyền tin cậy các byte giữa client và server

Góc nhìn ứng dụng

Page 78: Mạng máy tính

1-78

Ví dụ: C client (TCP)/* client.c */void main(int argc, char *argv[]){ struct sockaddr_in sad; /* cấu trúc chứa 1 địa chỉ IP */ int clientSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */

char Sentence[128]; char modifiedSentence[128];

host = argv[1]; port = atoi(argv[2]);

clientSocket = socket(PF_INET, SOCK_STREAM, 0); memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_port = htons((u_short)port); ptrh = gethostbyname(host); /* Chuyển tên host thành địa chỉ IP */memcpy(&sad.sin_addr, ptrh->h_addr, ptrh->h_length);

connect(clientSocket, (struct sockaddr *)&sad, sizeof(sad));

Tạo client socket, Kết nối tới server

Page 79: Mạng máy tính

1-79

Ví dụ: C client (TCP) (tiếp)

gets(Sentence);

n=write(clientSocket, Sentence, strlen(Sentence)+1);

n=read(clientSocket, modifiedSentence, sizeof(modifiedSentence)); printf(“TỪ SERVER: %s\n”, modifiedSentence);

close(clientSocket); }

Đọc input stream

từ user

Gửi tới server

Đọc từ server

Đóng kết nối

Page 80: Mạng máy tính

1-80

Ví dụ: C server (TCP)/* server.c */void main(int argc, char *argv[]){ struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */ struct sockaddr_in cad;int welcomeSocket, connectionSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */

char clientSentence[128]; char capitalizedSentence[128];

port = atoi(argv[1]);

welcomeSocket = socket(PF_INET, SOCK_STREAM, 0); memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_addr.s_addr = INADDR_ANY; /* thiết lập địa chỉ IP address */ sad.sin_port = htons((u_short)port);/* thiết lập giá trị cổng */

bind(welcomeSocket, (struct sockaddr *)&sad, sizeof(sad));

Tạo một socket chờ tại một cổng&

Gắn với một địa chỉ cục bộ

Page 81: Mạng máy tính

1-81

Ví dụ: C server (TCP) (tiếp)

/* Chỉ định số client lớn nhất được xếp hàng */listen(welcomeSocket, 10)

while(1) {

connectionSocket=accept(welcomeSocket, (struct sockaddr *)&cad, &alen); n=read(connectionSocket, clientSentence, sizeof(clientSentence)); /* Chuyển clientSentence thành chữ hoa, chứa kết quả trong capitalizedSentence*/

n=write(connectionSocket, capitalizedSentence, strlen(capitalizedSentence)+1);

close(connectionSocket); } }

Đưa kết quả ra socket

Kết thúc vòng lặp While,Quay trở lại và đợi một kết nối client khác

Đợi client liên lạc

Page 82: Mạng máy tính

1-82

Chương 3: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 83: Mạng máy tính

1-83

Lập trình Socket với UDP

UDP: Không kết nối giữa client và server

• Không bắt tay

• Bên gửi chỉ ra địa chỉ IP và cổng của bên nhận cho mỗi gói tin

• Server phải tìm địa chỉ IP, cổng của bên gửi trong gói tin đã nhận

UDP: dữ liệu đã truyền có thể nhận không theo thứ tự hoặc bị mất

Góc nhìn ứng dụng

UDP cung cấp dịch vụ truyền không tin cậy

một nhóm các byte (“datagrams”) giữa client và server

Page 84: Mạng máy tính

1-84

Tương tác giữa client socket và server socket: UDP

ĐóngclientSocket

Server (đang chạy trên hostid)

Đọc trả lời từ clientSocket

Tạo socket,clientSocket = DatagramSocket()

Client

Tạo, địa chỉ (hostid, port=x,Gửi yêu cầu datagram sử dụng clientSocket

Tạo socket,Cổng=x, đối vớigói tin đến:serverSocket = DatagramSocket()

Đọc yêu cầu từserverSocket

Ghi trả lời raserverSocketchỉ định địa chỉ host của client và giá trị cổng

Page 85: Mạng máy tính

1-85

Ví dụ: C client (UDP)/* client.c */void main(int argc, char *argv[]){ struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */ int clientSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */

char Sentence[128]; char modifiedSentence[128];

host = argv[1]; port = atoi(argv[2]);

clientSocket = socket(PF_INET, SOCK_DGRAM, 0);

/* xác định địa chỉ của server */memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_port = htons((u_short)port); ptrh = gethostbyname(host); /* Chuyển tên host thành địa chỉ IP */memcpy(&sad.sin_addr, ptrh->h_addr, ptrh->h_length);

Tạo client socket, Không kết nối tới server

Page 86: Mạng máy tính

1-86

Ví dụ: C client (UDP) (tiếp)

gets(Sentence);

addr_len =sizeof(struct sockaddr); n=sendto(clientSocket, Sentence, strlen(Sentence)+1, (struct sockaddr *) &sad, addr_len);

n=recvfrom(clientSocket, modifiedSentence, sizeof(modifiedSentence). (struct sockaddr *) &sad, &addr_len); printf(“TỪ SERVER: %s\n”,modifiedSentence);

close(clientSocket); }

Đọc input stream

từ user

Gửi tới server

Đọc từ server

Đóng kết nối

Page 87: Mạng máy tính

1-87

Ví dụ: C server (UDP)/* server.c */void main(int argc, char *argv[]){ struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */ struct sockaddr_in cad;int serverSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */

char clientSentence[128]; char capitalizedSentence[128];

port = atoi(argv[1]);

serverSocket = socket(PF_INET, SOCK_DGRAM, 0); memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_addr.s_addr = INADDR_ANY; /* thiết lập địa chỉ IP cục bộ */ sad.sin_port = htons((u_short)port);/* thiết lập giá trị cổng */

bind(serverSocket, (struct sockaddr *)&sad, sizeof(sad));

Tạo socket chờ ở cổng&

Gắn với một địa chỉ cục bộ

Page 88: Mạng máy tính

1-88

Ví dụ: C server (UDP) (tiếp)

while(1) {

n=recvfrom(serverSocket, clientSentence, sizeof(clientSentence), 0 (struct sockaddr *) &cad, &addr_len ); /* chuyển clientSentence thành chữ hoa, chứa kết quả trong capitalizedSentence*/

n=sendto(connectionSocket, capitalizedSentence, strlen(capitalizedSentence)+1,0 (struct sockaddr *) &cad, &addr_len);

close(connectionSocket); } }

Ghi kết quả ra socket

Kết thúc vòng lặp While,quay trở lại và đợi kết nối client khác

Nhận bản tin từ các client

Page 89: Mạng máy tính

1-89

Chương 3: Tầng ứng dụng

2.1 Nguyên tắc của các ứng dụng mạng

2.2 Web và HTTP 2.3 FTP 2.4 Electronic Mail

SMTP, POP3, IMAP

2.5 DNS

2.6 Chia sẻ file P2P 2.7 Lập trình Socket với

TCP 2.8 Lập trình Socket với

UDP 2.9 Xây dựng Web Server

Page 90: Mạng máy tính

1-90

Xây dựng một Web server đơn giản

Điều khiển một yêu cầu HTTP

Chấp nhận yêu cầu Phân tích header Giành file đã yêu cầu từ

hệ thống file của server Tạo bản tin trả lời HTTP:

header lines + file

Gửi trả lời cho client

Sau khi tạo server, có thể yêu cầu file sử dụng một trình duyệt (ví dụ IE explorer)

Page 91: Mạng máy tính

1-91

Chương 3: Tổng kết

Các kiến trúc ứng dụng Client-Server P2P Hybrid

Các yêu cầu ứng dụng: Tính tin cậy, băng thông, độ trễ

Mô hình dịch vụ giao vận của Internet Tin cậy, hướng kết nối Không tin cậy, datagrams: UDP

Nội dung đã học: Ứng dụng mạng

Các giao thức cụ thể: HTTP FTP SMTP, POP, IMAP DNS

Lập trình socket

Page 92: Mạng máy tính

1-92

Chương 3: Tổng kết

Trao đổi bản tin yêu cầu/bản tin trả lời: Client yêu cầu thông tin

hoặc dịch vụ Server gửi dữ liệu trả lời,

mã trạng thái

Định dạng bản tin: Header: Các trường mang

thông tin về Data Data: thông tin truyền

thông

Quan trọng: đã học về các giao thức

Bản tin dữ liệu và bản tin điều khiển in-band, out-of-band

Tập chung (centralized) và không tập chung (decentralized)

Không hướng trạng thái (stateless) và hướng trạng thái (stateful)

Truyền bản tin kiểu tin cậy (reliable) và không tin cậy (unreliable)

Sự phức tạp tại network edge