Bài giảng Lập trình mạng

TCP/IP là mộttậpcủa các protocols (một

bộgiao thức) định nghĩacáchthứctruyền

dữliệu qua môi trường Internet

TCP/IP là tên củamôhìnhmạngđược

ghép giữa hai giao thức chính trong mạng

là TCP (Transmission Control Protocol) và

IP (Internet Protocol)

pdf144 trang | Chia sẻ: oanh_nt | Lượt xem: 1442 | Lượt tải: 1download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Môn học Lập trình mạng CBGD: Phùng Hữu Phú Email: phu@dit.hcmut.edu.vn URL: Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 1 Nội dung môn học CHƯƠNG 1: GII THIU V TCP/IP CHƯƠNG 2: THIT K GII THUT CHO CHƯƠNG TRÌNH CLIENT/SERVER CHƯƠNG 3: LP TRÌNH MNG TRÊN CÁC MÔI TRUNG PH D NG CHƯƠNG 4: LP TRÌNH MNG VI JAVA Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 2 Nội dung môn học(tt) CHƯƠNG 5: LP TRÌNH WEB – CGI CHƯƠNG 6: LP TRÌNH WEB VI CÁC CÔNG NGH PH BIN CHƯƠNG 7: NG D NG XML TRONG LP TRÌNH MNG CHƯƠNG 8: BO MT D LIU TRUYN Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 3 CHƯƠNG 1- GII THIU V TCP/IP 1.1 Tng quát v TCP/IP. Gii thiu Lp Network Lp Transport (TCP và UDP) Lp Appication 1.2 Các giao thc và dch v trên Internet. 1.3 Gii thiu mt s ng dng m ng Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 4 Tng quát v TCP/IP • Một số đặc tính : – Độc lập về hình thái của mạng. – Độc lập về phần cứng của mạng. – Các chuẩn giao thức mở. – Mô hình địa chỉ toàn cầu. – Nền tảng client/server mạnh mẽ. – Các chuẩn về giao thức ứng dụng mạnh mẽ. Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 5 Gii thiu Telnet FTP SMTP DNS SNMP TCP UDP ICMP IPARP Ethernet Token Ring FDDI WANsNetwork interface layer Internet layer (gateway level) Transport layer (host level) Applications layer TCP/IPOSI Application Presentation Session Transport Network Data link Physical Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 6 TCP/IP and OSI model Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 7 TCP/IP Protocol Stack     !  "#   "  $%& '$ ()* ) + , !  $!    $ "# $ - " )  . $   $ $ /$ % " 012*34 546)3 (7. 8%&$  34 93 : ;1 $ = . $ )? . . @ Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 8 Những điểm khác giữa OSI và TCP/IP • Lớp ứng dụng trong TCP/IP xử lý các chức năng của các lớp 5,6, và 7 trong mô hình OSI • Lớp transport trong TCP/IP cung cấp cơ chế UDP truyền dữ liệu không tin cậy, khác với lớp transport trong mô hình OSI là luôn đảm bảo dữ liệu truyền tin cậy Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 9 TCP/IP • TCP/IP là một tập của các protocols (một bộ giao thức) định nghĩa cách thức truyền dữ liệu qua môi trường Internet • TCP/IP là tên của mô hình mạng được ghép giữa hai giao thức chính trong mạng là TCP (Transmission Control Protocol) và IP (Internet Protocol) Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 10 TCP/IP và mạng Internet • Một liên mạng(internet) dùng TCP/IP được xem như là một mạng đơn kết nối các máy tính với nhiều loại • Mạng Internet là sự kết nỗi giữa các mạng vật lý độc lập thông qua các thiết bị liên mạng • Với mô hình TCP/IP, các mạng khác nhau kết nối với nhau được xem như là một mạng lớn đồng nhất, không quan tâm đến sự khác nhau giữa các thiết bị vật lý hay môi trường • Mỗi máy kết nối vào mạng xem như kết nối đến một mạng luận lý, không quan tâm đến mạng vật lý Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 11 An Internet according to TCP/IP McGraw-Hill ©The McGraw-Hill Companies, Inc., 2001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 12 TCP/IP và OSI • TCP/IP được xây dựng trước mô hình OSI nên các lớp trong bộ giao thức TCP/IP không hoàn toàn giống với bộ giao thức trong mô hình OSI. Có 4 lớp trong mô hình TCP/IP • Ở lớp transport, TCP/IP định nghĩa hai protocol là TCP và UDP. Ở lớp network, protocol chính là IP và có các protocol khác hỗ trợ việc truyền dữ liệu • Ở lớp physical & data link, TCP/IP không định nghĩa protocol nào, không phụ thuộc vào phần cưng bên dưới • Một mạng trong một liên mạng TCP/IP có thể là mạng LAN, MAN hoặc WAN. Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 13 Đóng gói dữ liệu trong TCP/IP 1. Đơn vị dữ liệu trong lớp ứng dụng gọi là message 2. Giao thức TCP và UDP tạo ra một đơn vị dữ liệu tương ứng là segment và user datagram. 3. Đơn vị dữ liệu trong lớp IP được gọi là datagram 4. Datagram phải được đóng gói (encapsulate) trong một frame để truyền trên mạng vật lý 5. Frame sẽ được truyền theo dạng tín hiệu trên đường truyền vật lý Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 14 Đóng gói dữ liệu trong TCP/IP Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 15 Lớp Network • Nội dung: – Lớp Internet – Địa chỉ IP – Các đánh địa chỉ, phân mạng con – Các giao thức phụ trong lớp Network Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 16 Lớp Internet • Mô hình TCP/IP cung cấp giao thức liên mạng (internetwork protocol -IP), là một cơ chế truyền dữ liệu không tin cậy và không kết nối (connectionless) • Các giao thức hỗ trợ cho việc truyền dữ liệu bao gồm: ARP, RARP, ICMP và IGMP. Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 17 Internetwork Protocol (IP) • Giao thức IP không tin cậy (unreliable) vì không cung cấp cơ chế kiểm tra lỗi hay tracking. • IP xem như lớp bên dưới sẽ thực hiện việc truyền nhận một cách tốt nhất, không có sự đảm bảo • Nếu các dịch vụ cần cơ chế truyền tin cậy thì kết hợp với giao thức tin cậy TCP. • Tương tự như hệ thống bưu điện Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 18 IP (tt) • IP cắt dữ liệu ra thành các gói. các gói gọi là datagrams, và mỗi gói được truyền độc lập • Datagram có thể đi theo các đường khác nhau và có thể đến không đúng thứ tự hoặc trùng nhau. IP không giữ thông tin đường đi cũng như không sắp xếp lại các gói lại khi chúng đến • IP là một dịch vụ connectionless, nó không khởi tạo Virtual Circuits và không có sự thông báo đến phần tử nhận Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 19 Datagram ©The McGraw-Hill Companies, Inc., 2001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 20 IP Datagram • Version. Version number of IP current version is 4 (0100 in binary). • HLEN. Header length. The HLEN field defines the length of the header in multiple of 4 bytes ( 0 – 15 # maximum 60 bytes) • Service type. The service type field defines how the datagram should be handled. It includes bits that define the priority of the datagram. • Total length. The total length field defines the total length of the IP datagram. It is a two-byte field (16 bits) and can define up to 65,535 bytes • Identification. The identification field is used in fragmentation. A datagram, when passing through different networks, may be divided fragments to match the network frame size. When this happens, each fragment is identified with a sequence number in this field. Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 21 IP Datagram (cont.) • Flags. The bits in this field deal with fragmentation • Fragmentation offset. A pointer that shows the offset of the data in original datagram • Time to live. The time to live field defines the number of hops a datagram can travel before it is discarded. • Protocol. Defined which upper-layer protocol (TCP, UDP, ICMP…) • Header checksum. Check the integrity of the header • Option. Give more functionality to the IP datagram, can control routing, timing, management and alignment Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 22 IP Fragmentation and Reassembly ID =x offset =0 fragflag =0 length =4000 ID =x offset =0 fragflag =1 length =1500 ID =x offset =1480 fragflag =1 length =1500 ID =x offset =2960 fragflag =0 length =1040 One large datagram becomes several smaller datagrams Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 23 Địa chỉ IP • Là địa chỉ luận lý trong mạng để xác định địa chỉ của các máy trong mạng (ngoài địa chỉ vật lý) cho việc truyền nhận dữ liệu • Địa chỉ IP có 32 bit nhị phân chia ba phần: class type, netid, hostid Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 24 Phân lớp địa chỉ Để xác định netid (Network Identifier) và hostid (Host Identifier) Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 25 Addressing–Dotted-decimal notation • Để biểu diễn ở dạng ngắn hơn và dễ đọc, địa chỉ IP được chia thành dạng 4 phần x 8 bit, cách nhau bằng dấu chấm, một phần được biểu diễn theo giá trị thập phân Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 26 Class Ranges of Internet Addresses McGraw-Hill ©The McGraw-Hill Companies, Inc., 2001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 27 Examples What is the class of each of the following addresses? A. 10011101 10001111 11111110 11001111 B. 01111011 11110000 10101010 11110000 C. 11110101 10001111 11111110 11001111 Write each of following in dotted-decimal notation: A. 10011101 10001111 11111100 11001111 B. 11011101 10001111 11111101 00001111 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 28 Solutions • Classes identify A. Class B B. Class A C. Class E • Dotted-decimal notation A. 157.143.252.207 B. 221.143.253.15 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 29 Một số địa chỉ IP đặc biệt Maximum number of unique addresses in each class Class A 2^7 – 2 = 126 Class B 2^14 – 2 = 16,382 Class C 2^21 – 2 = 2,097,150 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 30 Một máy với nhiều địa chỉ • Địa chỉ IP định nghĩa cho mỗi kết nối đến một mạng • Một phần tử mạng có nhiều kết nối đến các mạng khác nhau ( ví dụ như router) phải có các địa chỉ IP tương ứng với mạng đó • Một máy có một giao tiếp mạng cũng có thể định nghĩa nhiều địa chỉ IP, tuỳ theo nhu cầu Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 31 A Sample Internetnetwork ©The McGraw-Hill Companies, Inc., 2001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 32 Subneting Hình minh hoạ một mạng có hai lớp phân cấp McGraw-Hill ©The McGraw-Hill Companies, Inc., 001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 33 Subneting • Không có subnetting, địa chỉ có 2 lớp (bao gồm netid và hostid) không hiệu quả, không thể có nhiều mạng vật lý • Với mô hình này, các máy không thể tổ chức thành các nhóm và cùng một mức. Điều này rất khó cho việc quản lý đối với các mạng có nhiều máy • Phân mạng con (subnetting) là giải pháp cho vấn đề này, là sự chia một mạng lớn thành các mạng nhỏ hơn gọi là mạng con (subnetworks) Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 34 Subneting Hình vẽ minh họa mạng được chia thành 3 cấp ©The McGraw-Hill Companies, Inc., 2001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 35 Addresses with and without Subnetting McGraw-Hill ©The McGraw-Hill Companies, Inc., 2001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 36 Masking • Masking là cách để tính địa chỉ vật lý của mạng từ địa chỉ IP, có thể tính kể cả mạng có phân mạng con hoặc không • Nếu có phân mạng con, masking sẽ lấy được địa chỉ mạng từ địa chỉ IP • Nếu mạng được chia mạng con thì masking sẽ lấy được thông tin địa chỉ của mạng con (subnetwork address) từ địa chỉ IP Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 37 Masking example Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 38 Masks without Subneting • Depending on class • Following table show mask for unsubneted networks N/AN/AN/AE N/AN/AN/AD 201.34.12.0201.34.12.72255.255.255.0C 135.67.0.0135.67.13.9255.255.0.0B 15.0.0.015.32.56.7255.0.0.0A Network address (e.g.)Address (e.g.)maskclass Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 39 Masks with Subneting • Khi có chia mạng con thì mỗi mạng con sẽ có mặt nạ mạng (mask) khác nhau • Examples: N/AN/AN/AE N/AN/AN/AD 201.34.12.64201.34.12.72255.255.255.192C 135.67.13.0135.67.13.9255.255.255.0B 15.32.0.015.32.56.7255.255.0.0A Network address (e.g.)Address (e.g.)maskclass Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 40 Finding the Subnetwork Address • Apply the mask to the IP address • Boundary-Level Masking – If the masking is at the boundary level (the mask numbers are either 255 or 0), finding the subnetwork address is very easy. Follow these two rules: 1.The bytes in the IP address that correspond to 255 in the mask will be repeated in the subnetwork address 2.The bytes in the IP address that correspond to 0 in the mask will change to 0 in the subnetwork address. Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 41 Finding the Subnetwork Address Boundary-Level Masking example IP address 45 . 23 . 21 . 8 Mask 255 . 255 . 0 . 0 --------------------------------------------------------- Subnetwork address 45 . 23 . 0 . 0 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 42 Finding the Subnetwork Address • Nonboundary-level Masking – If the masking is not at the boundary level (the mask numbers are not just 255 or 0), finding the subnetwork address involves using the bit-wise operator. Follow these three rules: 1. The bytes in the IP address that correspond to 255 in the mask will be repeated in the subnetwork address 2. The bytes in the IP address that correspond to 0 in the mask will change to 0 in the subnetwork address. 3. For other bytes, use the bit-wise AND operator. Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 43 Finding the Subnetwork Address • Nonboundary-level masking example IP address 45 . 123 . 21 . 8 Mask 255 . 192 . 0 . 0 -------------------------------------------------------- Subnetwork 45 . ? . 0 . 0 Address ? use bit-wise AND operator 123 0 1 1 1 1 0 1 1 192 1 1 0 0 0 0 0 0 ----------------------------------- 0 1 0 0 0 0 0 0 = 64 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 44 Finding the Subnetwork Address • Another nonboundary-level masking example IP address 213 . 23 . 47 . 37 Mask 255 . 255 . 255 . 240 -------------------------------------------------------- Subnetwork 213 . 23 . 47 . ? Address ? use bit-wise AND operator 37 0 0 1 0 0 1 0 1 240 1 1 1 1 0 0 0 0 ----------------------------------- 0 0 1 0 0 0 0 0 = 32 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 45 IP addressing: CIDR • Classful addressing: – inefficient use of address space, address space exhaustion – e.g., class B net allocated enough addresses for 65K hosts, even if only 2K hosts in that network • CIDR: Classless InterDomain Routing – network portion of address of arbitrary length – address format: a.b.c.d/x, where x is # bits in network portion of address 11001000 00010111 00010000 00000000 network part host part 200.23.16.0/23 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 46 IP addresses: how to get one? Network (network portion): • get allocated portion of ISP’s address space: ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 47 Các giao thức khác trong lớp network • ARP (Address Resolution Protocol) • RARP (Reverse Address Resolution Protocol) • ICMP (Internet Control Message Protocol) • IGMP (Internet Group Message Protocol) More references: TCP/IP Protocol Suite, 2/e, Behrouz A. Forouzan, DeAnza College Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 48 ARP và RARP Vấn đề phân giải địa chỉ • Hai giao thức dùng để phân giải địa chỉ là ARP (Address Resolution Protocol) và RARP (Reverse ARP) – ARP dùng phân giải địa chỉ IP 32 bits sang địa chỉ Ethernet 48 bits – RARP dùng phân giải địa chỉ Ethernet 48 bits sang địa chỉ IP 32 bits Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 49 ARP và RARP • Địa chỉ mạng (lớp Internet) và địa chỉ MAC (lớp Network Interface) cần có sự chuyển đổi qua lại: – Lớp Internet gởi dữ liệu cho lớp Network Interface, chỉ cung cấp địa chỉ IP của máy nhận – Lớp Network Interface cần địa chỉ MAC của máy nhận để truyền thông tin Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 50 ARP và RARP Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 51 Position of ARP and RARP in TCP/IP protocol suite Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 52 ARP ©The McGraw-Hill Companies, Inc., 001 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 53 ARP • Là giao thức được dùng để hỏi địa chỉ vật lý một máy khi đã biết địa chỉ IP • Cần cho lớp Network Interface để đóng gói một Ethernet Frame • Khi cần địa chỉ vật lý, máy sẽ broadcast trên mạng để hỏi địa chỉ vật lý tương ứng với địa chỉ IP, máy có địa chỉ IP tương ứng sẽ reply thông tin Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 54 Các thành phần chính trong ARP • ARP table: bảng thông tin được lưu trữ trong bộ nhớ, nếu không tìm được thông tin trong bảng này thì phần tử gởi sẽ broadcast ARP request để hỏi thông tin • ARP request: gởi broadcast để hỏi địa chỉ vật lý • ARP reply: gởi lại máy hỏi thông tin địa chỉ IP của máy mình • ARP reply caching: lưu thông tin vào ARP table trong một khoảng thời gian (5 phút) Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 55 Phân giải ngược địa chỉ RARP • Dùng cho việc liên kết giữa lớp Network Interface và lớp Internet • Sử dụng khi máy biết địa chỉ Ethernet nhưng không biết địa chỉ IP. Thường dùng trong các trường hợp: – Các hệ thống diskless – Các hệ thống JumpStartTM • Kèm với các giao thức DHCP, BOOTP Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 56 RARP operation Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 57 RARP packet Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 58 Lớp transport • Có hai dạng dịch vụ: – TCP (Transmission Control Protocol) – UDP (User Datagram Protocol) application transport network data link physical application transport network data link physical network data link physical network data link physical network data link physical network data link physicalnetwork data link physical l o g i c a l e n d - e n d t r a n s p o r t Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 59 Lớp transport • Cung cấp sự truyền nhận luận lý giữa các process ứng dụng giữa các máy trong mạng • Các giao thức lớp transport hoạt động ở các hệ thống đầu cuối • Lớp transport so với lớp network: – network layer: dữ liệu truyền nhận giữa các hệ thống – transport layer: dữ liệu được truyền nhận giữa các processes, dựa trên các dịch vụ của lớp network và mở rộng một số chức năng Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 60 Lớp Transport • Lớp TCP/IP transport cung cấp cơ chế cho source process gởi dữ liệu destination process qua mạng • Định nghĩa một tập các kết nối mức khái niệm cho các processes gọi là protocol ports. Một protocol port là một điểm đích (buffer) dùng để lưu dữ liệu cho một process cụ thể Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 61 Transport layer • Việc quản lý giao tiếp giữa các processes và các ports tương ứng được hệ điều hành cung cấp • Các protocol lớp transport là port-to-port protocols, truyền dữ liệu giữa process gởi đên process nhận • Mỗi port được xác định bằng một số nguyên dương 16 bits nhị phân – 65,536 (0 to 65535) ports – Port 0? Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 62 Lớp Transport • Mở rộng cách đánh địa chỉ cho process. – Địa chỉ port : xác định ứng dụng mạng trên mỗi máy. – Địa chỉ của một ứng dụng mạng (IP,port) Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 63 Port Addresses McGraw-Hill ©The McGraw-Hill Companies, Inc., 2000 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 64 Transport-layer protocols Internet transport services: • reliable, in-order unicast delivery (TCP) – congestion – flow control – connection setup • unreliable (“best-effort”), unordered unicast or multicast delivery: UDP • services not available: – real-time – bandwidth guarantees – reliable multicast Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 65 User Datagram Protocol (UDP) • User datagram protocol (UDP) là protocol đơn giản trong hai protocol ở lớp transport • Chỉ thêm thông tin về các địa chỉ port, điều khiển lỗi checksum và độ dài thông tin length information • UDP chỉ cung cấp các chức năng cơ bản cho cơ chế truyền end-to-end, không cung cấp các chức năng xử lý lỗi và truyền lại dữ liệu bị hỏng hoặc mất. • Có cơ chế báo lỗi nếu kèm với giao thức ICMP Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 66 UDP Datagram Format McGraw-Hill ©The McGraw-Hill Companies, Inc., 2000 Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 67 Transmission Control Protocol (TCP) • Cung cấp các dịch vụ đầy đủ cho các ứng dụng • Là giao thức port-to-port tin cậy, connection- oriented: kết nối phải được thiết lập trước khi dữ liệu được truyền • Khi thiết lập kết nối, TCP tạo một mạch ảo (virtual circuit ) giữa bên gởi và bên nhận trong suốt quá trình truyền nhận • Có sự thông báo khi truyền dữ liệu đến phần tử nhận. Sau khi kết thúc việc truyền nhận thì đóng kết nối Lập trình mạng – Chương 1 © 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 68 TCP • IP và UDP xem các datagrams trong một single transmission là các đơn vị hoàn toàn độc lập, không liên quan với nhau. Mỗi datagram đến phần tử nhận cũng là các đơn vị phân biệt, và không có sự thông báo cho phần tử nhận • Khác với IP và UDP, TCP là dịch vụ connection- oriented, cung cấp cơ chế truyền tin cậy cho toàn bộ stream chứa trong message mà ứng dụng gởi đ

Các file đính kèm theo tài liệu này:

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