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

Slides:



Advertisements
Similar presentations
Domain Name System (or Service) (DNS) Computer Networks Computer Networks Term B10.
Advertisements

1 Outline r Principles of network applications m App architectures m App requirements r Web and HTTP m Objects vs. root files m Persistent, pipelining,
2: Application Layer1 FTP, SMTP and DNS. 2: Application Layer2 FTP: separate control, data connections r FTP client contacts FTP server at port 21, specifying.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach, 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007.
Application Layer session 1 TELE3118: Network Technologies Week 12: DNS Some slides have been taken from: r Computer Networking: A Top Down Approach.
1 Application layer r Electronic Mail m SMTP, POP3, IMAP r DNS r P2P file sharing.
Esimerkki: Sähköposti. Lappeenranta University of Technology / JP, PH, AH Electronic Mail Three major components: user agents mail servers simple mail.
Introduction 1 Lecture 7 Application Layer (FTP, ) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering.
CS 4396 Computer Networks Lab
Socket programming in C. Socket programming Socket API introduced in BSD4.1 UNIX, 1981 explicitly created, used, released by apps client/server paradigm.
SMTP, POP3, IMAP.
2: Application Layer1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
2: Application Layer1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail m SMTP,
21-1 Last time □ Finish HTTP □ FTP This time □ SMTP ( ) □ DNS.
Review: –Which protocol is used to move messages around in the Internet? –Describe how a message is moved from the sender’s UA to the receiver’s.
Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April A note on the use.
2: Application Layer1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
2: Application Layer 1 Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April.
File Transfer Protocol (FTP)
Chapter 2 Application Layer Computer Networking: A Top Down Approach, 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Slides based on Carey Williamson’s: FTP & SMTP1 File Transfer Protocol (FTP) r FTP client contacts FTP server at port 21, specifying TCP as transport protocol.
Important r On Friday, could you ask students to please me their groups (one per group) for Project 2 so we can assign IP addresses. I’ll send.
Spring 2006 CPE : Application Layer_DNS 1 Special Topics in Computer Engineering Application layer: Domain Name System Some of these Slides are.
Socket programming in C. Socket programming with TCP Client must contact server server process must first be running server must have created socket (door)
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
Quản trị Rủi ro thiên tai và Biến đổi khí hậu
Last time Finish HTTP FTP.
Rainforest Alliance đào tạo cho các nông trại trà ở Việt Nam
Qua hàng ngàn năm dựng nước và giữ nước, dân tộc ta đã để lại nhiều bài học vô giá. Nổi bật trong đó là tinh thần đoàn kết, ý thức cộng đồng. Hai truyền.
2: Application Layer 1 Some network apps r r Web r Instant messaging r Remote login r P2P file sharing r Multi-user network games r Streaming stored.
L/O/G/O NGUYÊN LÝ KẾ TOÁN Nguyễn Hữu Quy (MBA,CPA,APC)
Introduction to Networks
Session 6 INST 346 Technologies, Infrastructure and Architecture
Socket programming in C
No Class on Friday There will be NO class on: FRIDAY 1/27/17
Chapter 7: Application layer
PowerPoint Template
Thực hiện các cuộc họp quan trọng
QUẢN TRỊ THÀNH TÍCH Performance Management
TÌM HIỂU VỀ WEB SERVICES VÀ XÂY DỰNG MỘT WEB SERVICE
SMTP, POP3, IMAP.
Hạ Long – Cát Bà Sáng kiến Liên minh Bui Thi Thu Hien
Module 6 – Managing for Sustainability
BÀI TẬP ÔN LUYỆN IC3 SPARK
Internet & Thương Mại Điện Tử
IP Programming.
Các kỹ thuật tấn công lỗ hổng website
Thương mại điện tử HÀ VĂN SANG.
MKTNH Version 3 Giảng viên: ThS. Thái Thị Kim Oanh
Chương 9 Truyền thông và Mạng
Review of Previous Lecture
LẬP TRÌNH ỨNG DỤNG WINDOW FORM
Quản lý con người Quản lý người làm việc như những cá nhân và theo nhóm.
KỸ NĂNG HỌC TẬP KHOA QUẢN TRỊ KINH DOANH ThS. NGUYỄN HOÀNG SINH
Trách nhiệm giải trình của doanh nghiệp ở diện rộng
Chương 5: Thiết lập mạng.
Chapter 2: Application layer
QUẢN TRỊ TÍNH ĐA DẠNG THÔNG QUA NHIỀU HOẠT ĐỘNG KINH DOANH
Chương 4 – lớp Liên Kết Dữ Liệu
Trường CĐ CNTT HN Việt Hàn
Đầu tiên chỉ là 1 giao thức đơn giản
Chapter 2: Application layer
لایه ی کاربرد مظفر بگ محمدی 2: Application Layer.
CSE 4213: Computer Networks II
FTP, SMTP and DNS 2: Application Layer.
Chapter 2 Application Layer
Socket programming in C
Presentation transcript:

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

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

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

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

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 application transport network data link physical

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

Các kiến trúc ứng dụng Client-Server Peer-to-peer (P2P) Hybrid

Kiến trúc Client-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

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ý

Hybrid Lai giữa P2P và Client-Server Napster Instant Messaging 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

Truyền thông của các tiến trình 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 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 Chú ý: Các ứng dụng P2P có cả tiến trình client và tiến trình server

Socket Tiến trình gửi nhận messages tới/từ socket của nó TCP với buffer, Biến socket host hoặc server Tiến trình TCP với Buffer, biến socket host hoặc server 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 Điều khiển bởi người lập trình ứng dụng Internet Điều khiển bởi OS 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)

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

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:

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 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 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

Yêu cầu của ứng dụng giao vận của một số ứng dụng Truyền file E-mail Web Real-time audio/video Stored audio/video Trò chơi tương tác Instant messaging Thời gian Không Có, hàng trăm msec Có, vài secs Có Mất dữ liệu Không cho phép Cho phép Băng thông Co giãn Audio: 5kbps-1Mbps Video:10kbps-5Mbps Tương tự trên Yêu cầu kbps

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?

Các ứng dụng Internet: các giao thức tầng ứng dụng và tầng giao vận SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] Không công khai (vd: RealNetworks) (vd: Dialpad) Giao thức tầng giao vận TCP TCP hoặc UDP UDP Ứ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

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

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

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 HTTP request HTTP response HTTP request Server chạy Apache Web server HTTP response

HTTP (tiếp) HTTP là không hướng trạng thái 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

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

Nonpersistent HTTP (chứa text, tham chiếu tới 10 ảnh jpeg) Giả 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 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 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 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

Nonpersistent HTTP (cont.) 4. HTTP server đóng kết nối TCP 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 time 6. Lặp bước 1-5 cho mỗi đối tượng ảnh jpeg

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 đầu kết nối TCP RTT file yêu cầu đã nhận thời gian

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

Bản tin yêu cầu HTTP Hai kiểu bản tin HTTP: yêu cầu, trả lời ASCII Request line (lệnh GET, POST, HEAD ) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (CR, LF) header line

Bản tin yêu cầu HTTP

Kiểu Method HTTP/1.0 GET POST HEAD HTTP/1.1 GET, POST, HEAD PUT DELETE 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

Bản tin trả lời HTTP status line (protocol status code status phrase) HTTP/1.1 200 OK Connection close 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 dữ liệu header line dữ liệu, ví dụ: file HTML đã yêu cầu

Mã trạng thái của trả lời HTTP Trong dòng đầu tiên của trả lời server->client Ví dụ: 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

Thực hành 1. Telnet tới một Web server: 2. Gõ lệnh GET telnet cis.poly.edu 80 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 2. Gõ lệnh GET GET /~ross/ HTTP/1.1 Host: cis.poly.edu 3. Xem bản tin trả lời gửi bởi HTTP server

Web cache (proxy server) 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 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 server ban đầu Proxy server HTTP request HTTP request client HTTP response HTTP response HTTP request HTTP response client server ban đầu

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

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.

Ví dụ caching Giả sử Kết quả Các server ban đầu 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 public Internet Đường truyền truy cập 1.5 Mbps Mạng của tổ chức 10 Mbps LAN Institutional Cache

Ví dụ caching (tiếp) Giải pháp có thể Kết quả Server ban đầu 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 public Internet Đường truyền truy cập10 Mbps Mạng của tổ chức 10 Mbps LAN institutional cache

Ví dụ caching (tiếp) Cài đặt cache Kết quả Hỗ trợ hit rate .4 Server ban đầu 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 public Internet Đường truyền truy cập 1.5 Mbps Mạng của tổ chức 10 Mbps LAN institutional cache

If-modified-since: <date> GET có điều kiện Cache Server 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 HTTP If-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 Bản tin yêu cầu HTTP If-modified-since: <date> Đối tượng không bị thay đổi Bản tin trả lời HTTP HTTP/1.0 304 Not Modified Bản tin yêu cầu HTTP If-modified-since: <date> Đối tượng đã thay đổi Bản tin trả lời HTTP HTTP/1.0 200 OK <data>

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

FTP: File Transfer Protocol Giao diện người sử dụng FTP FTP client Truyền file FTP server user tại host Hệ thống file cục bộ Hệ thống file từ ở xa 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

FTP: Kết nối dữ liệu và điều khiển riêng biệt client server Kết nối điều khiển TCP cổng 21 Kết nối dữ liệu TCP cổng 20 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. 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 đó

Lệnh và trả lời của FTP Ví dụ một số lệnh: Ví dụ một số mã trả về 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

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

Electronic Mail Ba thành phần chính: SMTP SMTP SMTP User agent User mailbox Hàng đợi bản tin gửi đi user agent 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 mail server user agent SMTP mail server user agent SMTP mail server SMTP user agent user agent user agent

Electronic Mail: Mail server user agent 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 mail server user agent SMTP mail server user agent SMTP mail server SMTP user agent user agent user agent

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

Kịch bản: Alice gửi bản tin cho Bob 1) Alice dùng UA để soạn bản tin và gửi cho bob@someschool.edu 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 mail server mail server 1 user agent user agent 2 3 6 4 5

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: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu ... 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

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

Định dạng bản tin header body 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 dòng trống body

Đị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: alice@crepes.fr To: bob@hamburger.edu 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 MIME version method sử dụng để mã hóa dữ liệu kiểu dữ liệu đa phương tiện, kiểu con, khai báo tham số dữ liệu đã mã hóa

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)

Các giao thức truy cập thư điện tử SMTP SMTP giao thức truy cập user agent user agent mail server của bên gửi mail server của bên nhận 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, …

Giao thức POP3 Pha ủy quyền C: list Pha giao dịch, client: 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 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> C: dele 1 C: retr 2 C: dele 2 C: quit S: +OK POP3 server chấm dứt phiên làm việc

POP3 và IMAP Thông tin thêm về POP3 IMAP 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

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

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

DNS Tại sao không dùng DNS tập chung ? Các dịch vụ DNS 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

Cơ sở dữ liệu phân cấp và phân tán Root DNS Servers com DNS servers org DNS servers edu DNS servers poly.edu DNS servers umass.edu yahoo.com amazon.com pbs.org 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

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 b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA e NASA Mt View, CA f 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, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 11 locations) 13 root name server trên toàn thế giới

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ụ

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.

authoritative DNS server Ví dụ Root DNS server 2 Host tại cis.poly.edu muốn biết địa chỉ IP của gaia.cs.umass.edu 3 TLD DNS server 4 5 Local DNS server dns.poly.edu 7 6 1 8 authoritative DNS server dns.cs.umass.edu host gửi yêu cầu cis.poly.edu gaia.cs.umass.edu

authoritative DNS server Truy vấn đệ quy requesting host cis.poly.edu gaia.cs.umass.edu root DNS server local DNS server dns.poly.edu 1 2 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server 3 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”

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

Định dạng RR: (name, value, type, ttl) Bản ghi DNS DNS: Cơ sở dữ liệu phân tán chứa các bản ghi tài nguyên (Resource record - RR) Đị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=NS name là domain (ví dụ foo.com) value là địa chỉ của authoritative name server cho domain đó 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)

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

Giao thức DNS, bản tin Các trường Name, type cho một Truy vấn Các bản ghi trong trả lời Các bản ghi cho authoritative server Các bản ghi cung cấp thông tin khác

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?

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

Chia sẻ file P2P 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! 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.

P2P: thư mục trung tâm Thiết kế của “Napster” ban đầu Server thư mục trung tâm peers Alice Bob 1 2 3 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

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

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

Lập trình Socket với TCP Client 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

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

Ví dụ: C client (TCP) (tiếp) input stream từ user gets(Sentence); n=write(clientSocket, Sentence, strlen(Sentence)+1); n=read(clientSocket, modifiedSentence, sizeof(modifiedSentence)); printf(“TỪ SERVER: %s\n”, modifiedSentence); close(clientSocket); } Gửi tới server Đọc từ server Đóng kết nối

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ộ

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); } Đợi client liên lạc Đư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

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

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

Server (đang chạy trên hostid) Tương tác giữa client socket và server socket: UDP Server (đang chạy trên hostid) 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ới gói tin đến: serverSocket = DatagramSocket() Đọc yêu cầu từ serverSocket Đóng clientSocket Đọc trả lời từ clientSocket Ghi trả lời ra serverSocket chỉ định địa chỉ host của client và giá trị cổng

Không kết nối tới server 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

Ví dụ: C client (UDP) (tiếp) input stream từ user 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); } Gửi tới server Đọc từ server Đóng kết nối

Gắn với một địa chỉ cục bộ 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ộ

Nhận bản tin từ các client 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); } Nhận bản tin từ các client 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

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

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)

Chương 3: Tổng kết 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 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

Chương 3: Tổng kết Quan trọng: đã học về các giao thức 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 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