Mạng và truyên thông máy tính - Tổng quan về giao thức mạng

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

pdf40 trang | Chia sẻ: Mr Hưng | Lượt xem: 1302 | Lượt tải: 0download
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:

  • pdfltm_bai_2_tong_quan_ve_giao_thuc_internet_3969.pdf
Tài liệu liên quan