Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
801 KB
Nội dung
Tổng quan giao thức mạng Giảng viên: Nguyễn Hoài Sơn Bộ mơn Mạng Truyền thơng máy tính Khoa Công nghệ thông tin Network programming Nội dung học Khái niệm yêu cầu giao thức mạng 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 Giao thức tầng mạng Giao thức tầng giao vận Giao thức tầng ung dung Network programming Giao thức gì? Giao thức “quy ước hai bên truyền tin cách thức truyền tin” Ví dụ Cuộc nói chuyện hai người, phát truyền hình, … Độ phức tạp giao thức phụ thuộc vào yêu cầu số lượng bên tham gia truyền tin Ví dụ Giao thứ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 Network programming Giao thức mạng gì? Giao thức mạng tập hợp quy ước định dạng ý nghĩa thông báo gửi 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 mạng: ATM, MPLS,TCP/IP, IPX, … Giao thức ứng dụng mạng: HTTP, FTP, SIP, … Network programming Yêu cầu với giao thức mạng Phía người dùng mạng: Chất lượng dịch vụ mà ứng dụng họ cần Đảm bảo thông báo gửi đến địa không lỗi khoảng thời gian định Nhà cung cấp dịch vụ: Thiết kế hiệu Đảm bảo tài nguyên mạng sử dụng hiệu công với người dùng Hệ thống dễ điều hành quản lý Dễ dàng phát xử lý lỗi hệ thống Network programming Internet Mạng công cộng kết nối mạng máy tính Quy mơ tồn cầu Mục đích chung, cơng cộng Cơng nghệ đa dạng Giao thức Internet Sử dụng giao thức TCP/IP Chuẩn mở: HTTP,FTP, RTP, … TCP, UDP IP Ethernet, ATM,… chuẩn hoá Internet Engineering Task Force (IETF) http://www.ietf.org Phát triển cộng đồng nghiên cứu Network programming Giao thức Internet thiết kế xây dựng 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 Internet Telephone network “The network is fool, the terminal is clever” “The network is clever, the terminal is fool” Network programming Giao thức Internet thiết kế xây dựng nào?(2) Nguyên tắc phân tầng: Ưu điểm việc phân tầng Chia giao thức mạng thành tầng, tầng giao thức giải phần chức truyền tin Cấu trúc rõ ràng – Cho phép định nghĩa rõ ràng mối quan hệ giao thức mạng Trừu tượng hóa chức – Có thể thay đổi tầng giao thức mà không làm ảnh hưởng tầng Sử dụng lại – Các tầng sử dụng lại chức cung cấp tầng Nhược điểm việc phân tầng Che dấu thông tin – Giảm hiệu việc thực thi giao thức Network programming Mơ hình mạng phân tầng Giao thức tầng cao tạo thông báo gửi xuống giao thức tầng thấp thông qua giao diện tầng Giao thức tầng cao thêm thông tin điều khiển bao gồm khóa giao thức vào tiêu đề thơng báo Thơng báo giao thức tầng xử lý liệu giao thức tầng Giao thức tầng sử dụng khóa giao thức tiêu đề để xác định giao thức tầng Network programming Ví dụ mơ hình mạng phân tầng Application Transport Network Toi yeu VN L: Eng I love VN DHost L:Eng I love VN J’aime le Vn I Love VN L:Eng I love VN L:Eng DHost Application Transport Network DHost = Destination service host Network programming 10 Tiêu đề TCP Network programming 26 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 */ }; Network programming 27 Giao thức UDP Viết tắt User Datagram Protocol Cung cấp dịch vụ truyền tin không kết nối cho 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 địa 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ỏ Network programming 28 Tiêu đề UDP Network programming 29 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 */ }; Network programming 30 Giao thức tầng ứng dụng: Mơ hình truyền tin khách/chủ Client Truyền tin bất đối xứng Client Máy chủ Server Client Máy khách gửi yêu cầu Máy chủ gửi trả lời 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 Network programming 31 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ự: Xử lý đồng thời: Máy chủ xử lý nhiều yêu cầu máy khách khác lúc E.g Web server Lai: Máy chủ xử lý yêu cầu máy khách thời điểm E.g Voice communication Máy chủ tạo nhiều kết nối với nhiều máy khách, xử lý yêu cầu máy khách cách Khơng có ranh giới rõ ràng hai khái niệm máy khách máy chủ Một máy chủ máy khách máy chủ khác Một máy chủ máy khách máy khách Network programming 32 Giao thức tầng ứng dụng: Mơ hình truyền tin ngang hàng Các node mạng đóng hai vai trò máy chủ/máy khách Cung cấp sử dụng tài nguyên Bất cử node khởi tạo kết nối Khơng có máy chủ liệu trung tâm “The ultimate form of democracy on the Internet” “The ultimate threat to copy-right protection on the Internet” Node Node Node Internet Node Node Network programming 33 Giao thức tầng ứng dụng Sử dụng dịch vụ truyền tin cung cấp tầng Thông qua giao diện socket (= “bit pipe”) controlled by application developer controlled by operating system process process socket TCP with buffers, variables socket TCP with buffers, variables internet controlled by application developer controlled by operating system host or server host or server Network programming 34 Các yêu cầu dịch vụ giao vận ứng dụng phổ biến Data loss Bandwidth Time Sensitive file transfer e-mail Web documents real-time audio/video no loss no loss loss-tolerant loss-tolerant no no no yes, 100’s msec stored audio/video interactive games financial apps loss-tolerant loss-tolerant no loss elastic elastic elastic audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps up elastic Application Network programming yes, few secs yes, 100’s msec yes and no 35 Một số giao thức tầng ứng dụng Application e-mail remote terminal access Web file transfer streaming multimedia remote file server Internet telephony Application layer protocol Underlying transport protocol smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietary (e.g RealNetworks) NSF proprietary (e.g., Vocaltec) TCP TCP TCP TCP TCP or UDP Network programming TCP or UDP typically UDP 36 Ví dụ giao thức tầng ứng dụng HTTP http: hypertext transfer protocol Giao thức tầng ứng dụng 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 hiển thị trang Web Máy khách: Máy chủ Web gửi trang Web nhận yêu cầu máy khách http1.0: RFC 1945 http1.1: RFC 2068 htt PC running Explorer pr htt pr equ est esp ons e st e u eq Server r p nse t o t p h running es r NCSA Web ht server Mac running Navigator Network programming 37 Định dạng thơng báo u cầu Network programming 38 Ví dụ 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 39 Định dạng thông báo trả lời status line (protocol status code status phrase) header lines data, e.g., requested html file HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 … Content-Length: 6821 Content-Type: text/html data data data data data Network programming 40 ... máy Internet thơng qua Network Address Translator (NAT) Bao gồm subnets 10 .0.0.0 ~ 10 .25 5 .25 5 .25 5 (10 /8) 17 2 .16 .0.0 ~ 17 2. 31. 25 5 .25 5 (17 2 .16 / 12 ) 19 2 .16 8.0.0 ~ 19 2 .16 8 .25 5 .25 5 (19 2 .16 8 /16 )... A: 1. 0.0.0 tới 12 7 .25 5 .25 5 .25 5 (8 bit network address) B: 12 8.0.0.0 tới 19 1 .25 5 .25 5 .25 5 (16 bit network address) C: 19 2. 0.0.0 tới 22 3 .25 5 .25 5 .25 5 (24 bit network address) D,E: 22 4.0.0.0... programming 16 Địa IP Xác định máy tính Internet độ dài 32 bit trường hợp IPv4 Bao gồm ID mạng (network ID) ID máy (host ID) phân biệt subnet mask (netmask) E.g 13 2 .16 8 .1. 100 /25 5 .25 5 .25 5.0