LẬP TRÌNH MẠNG.Bùi Trọng Tùng.Bộ môn Truyền thông và Mạng máy tính.Viện CNTT – TT, Đại học BKHN

32 109 0
LẬP TRÌNH MẠNG.Bùi Trọng Tùng.Bộ môn Truyền thông và Mạng máy tính.Viện CNTT – TT, Đại học BKHN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LẬP TRÌNH MẠNG Bùi Trọng Tùng Bộ mơn Truyền thơng Mạng máy tính Viện CNTT – TT, Đại học BKHN Thơng tin học phần • Mã học phần: IT4060 • Khối lượng: 2(2-1-0-4) • Học phần học trước: IT3080 - Mạng máy tính • Mục tiêu: Trang bị cho sinh viên kiến thức kỹ lập trình mạng TCP/IP • Đánh giá: • Q trình(30%): Bài tập tuần, Chuyên cần (Điều kiện: Trung bình cộng điểm tập tuần >=3.0) • Cuối kỳ(70%): Hồn thành tập lớn • Website: http://users.soict.hust.edu.vn/tungbt/it4060 Quy định nộp tập tuần • Thời hạn: theo tập Nộp sau thời hạn từ 0-24 trừ 20%, từ 24-48 trừ 40%, 48 trừ 100% • Cách thức nộp: Đóng gói file mã nguồn vào thư mục có tên theo định dạng: HoTenSV_MSSV_X Trong X số thứ tự tập tuần (có ghi file đề bài) Ví dụ: BuiTrongTung_20101234_1 • Nén thư mục gửi email đính kèm file nén vào địa ltm.it4060@gmail.com Tiêu đề: Nộp tập tuần X • Không trung thực làm tập: điểm học phần F Giảng viên Bùi Trọng Tùng, Email: tungbt@soict.hust.edu.vn Địa chỉ: Phòng 405 – Nhà B1 – Đại học BKHN Website: https://users.soict.hust.edu.vn/tungbt FB: /groups/FAQ.TungBT BÀI MỞ ĐẦU Nội dung • Cơ mạng máy tính • Ngun lý tầng ứng dụng • Ngun lý tầng giao vận • Địa IPv4 • Thư viện lập trình WinSock CƠ BẢN VỀ MẠNG MÁY TÍNH Mạng máy tính gì? • Tập hợp máy tính kết nối với mobile network dựa kiến trúc để trao đổi liệu global ISP • Máy tính: máy trạm, máy chủ, định tuyến • Kết nối phương tiện truyền • Theo kiến trúc mạng home network regional ISP institutional network Mạng máy tính gì? • Phương tiện truyền: đường truyền vật lý: • Hữu tuyến: cáp đồng, cáp quang • Vơ tuyến: sóng hồng ngoại, sóng radio • Kiến trúc mạng: • Hình trạng mạng: cách thức máy tính kết nối đường truyền vật lý với • Giao thức mạng: cách thức máy tính trao đổi liệu với nào? • Hoạt động hệ thống mạng máy tính: truyền thơng tin từ máy tính sang máy tính khác • Tương tự người trao đổi thư tín qua hệ thống bưu điện • Máy nguồn: gửi liệu • Máy đích: nhận liệu Phân loại mạng máy tính • Mạng cá nhân (PAN – Personal Area Network) • Phạm vi kết nối: vài chục mét • Số lượng người dùng: vài người dùng • Thường phục vụ cho cá nhân • Mạng cục (LAN – Local Area Network): • Phạm vi kết nối: vài ki-lơ-mét • Số lượng người dùng: vài đến hàng trăm nghìn • Thường phục vụ cho cá nhân, hộ gia đình, tổ chức 10 Phân loại mạng máy tính • Mạng thị (MAN – Metropolitian Area Network) • Phạm vi kết nối: hàng trăm ki-lô-mét • Số lượng người dùng: hàng triệu • Phục vụ cho thành phố, khu vực • Mạng diện rộng (WAN – Wide Area Network) • Phạm vi kết nối: vài nghìn ki-lơ-mét • Số lượng người dùng: hàng tỉ • GAN – Global Area Network: phạm vi tồn cầu (Ví dụ: Internet) 11 Trao đổi thơng tin nút mạng • Dữ liệu tổ chức nào? • Định danh – đánh địa chỉ: Phân biệt máy với mạng? • Tìm đường cho liệu qua hệ thống mạng nào? • Làm để phát lỗi liệu (và sửa)? • Làm để liệu gửi không làm tải đường truyền, tải máy nhận? • Làm để chuyển liệu thành tín hiệu? • Làm để biết liệu tới đích?  Phân chia nhiệm vụ cho thành phần, tổ chức thành phần thành tầng (layer) 12 Phân tầng • Mỗi tầng: • Có thể có nhiều chức • Triển khai dịch vụ để thực chức • Cung cấp dịch vụ cho tầng • Sử dụng dịch vụ tầng • Độc lập với tầng cịn lại • Mỗi dịch vụ có nhiều cách triển khai khác nhau, cho phép tầng lựa chọn dịch vụ phù hợp • Lợi ích: • Dễ dàng thiết kế, triển khai • Dễ dàng tái sử dụng • Dễ dàng nâng cấp 13 Truyền thông kiến trúc phân tầng • Bên gửi: thêm tiêu đề chứa thông tin phục vụ cho việc xử lý liệu tầng tương ứng chuyển cho tầng (Đóng gói liệu – Encapsulation) • Bên nhận: xử lý liệu theo thông tin phần tiêu đề, tách tiêu đề chuyển liệu cho tầng PDUN HN-1 Gửi Tầng (N-1) Tầng (N-1) H1 Tầng N H2 Tầng N Tầng Tầng Tầng1 Tầng1 PDUN HN-1 H2 H1 Nhận 14 Chồng giao thức (Protocol stack) • Giao thức: Là tập hợp quy tắc quy định khuôn dạng, ngữ nghĩa, thứ tự thông điệp gửi nhận nút mạng hành vi trao đổi thơng điệp chức  sinh giao thức khác chồng giao thức: ngăn xếp giao thức truyền thông kiến trúc phân tầng Các giao thức tầng N-1 • Mỗi tầng có nhiều cách thức để thực Các giao thức tầng N Các giao thức tầng Các giao thức tầng 15 Truyền thông kiến trúc phân tầng (tiếp) Tầng N Tầng (N-1) Giao thức PN Giao thức PN-1 Tầng1 Tầng (N-1) Tầng Tầng N Giao thức P2 Giao thức P1 Tầng Tầng1 • Các tầng đồng cấp bên sử dụng chung giao thức để điều khiển q trình truyền thơng logic chúng • cách thức để giao thức điều khiển truyền thông logic tầng đồng cấp: hướng liên kết hướng không liên kết 16 Mơ hình OSI mơ hình TCP/IP Mơ hình OSI Mơ hình TCP/IP Tầng ứng dụng Tầng ứng dụng Tầng trình diễn Web, Email, Chat… Tầng phiên Tầng giao vận Tầng giao vận Tầng mạng Tầng liên mạng Tầng liên kết liệu Tầng liên kết liệu Tầng vật lý Tầng vật lý 17 Triển khai kiến trúc phân tầng Application Transport Application Transport Network Network Network Datalink Datalink Datalink Physical Physical Physical Nút mạng đầu cuối Nút mạng trung gian Nút mạng đầu cuối • Nút mạng đầu cuối (end-system): PC, server, smartphone • Nút mạng trung gian: thiết bị mạng chuyển tiếp liệu 18 Định danh kiến trúc phân tầng • Tầng ứng dụng : tên miền định danh cho máy chủ cung cấp dịch vụ • Tên miền: chuỗi ký tự dễ nhớ với người dùng Thiết bị mạng không dùng tên miền truyền tin • Ví dụ: mps.gov.vn (máy chủ Web Bộ CA) • Tầng giao vận: số hiệu cổng định danh cho dịch vụ khác • Số hiệu cổng: từ 0-65535 • Ví dụ: Web-80, DNS-53, Email(SMTP-25, POP-110, IMAP-143) • Tầng mạng: địa IP định danh cho máy trạm, máy chủ, định tuyến • Có thể dùng mạng nội mạng Internet • Địa IPv4: số có giá trị từ 0-255, dấu ‘.’ • Ví dụ: 123.30.9.222 (máy chủ Web Bộ CA) • Tầng liên kết liệu: địa MAC định danh cho máy trạm, máy chủ, thiết bị mạng • Chỉ dùng mạng nội 19 NGUYÊN LÝ TẦNG ỨNG DỤNG 20 10 Đặc điểm giao thức • Giao thức hướng liên kết • Bắt tay ba bước • Giao thức truyền liệu theo dòng byte, tin cậy • Sử dụng vùng đệm • Truyền theo kiểu pipeline • Tăng hiệu • Kiểm sốt luồng • Bên gửi không làm tải bên nhận (thực tế: q tải) • Kiểm sốt tắc nghẽn • Việc truyền liệu không nên làm tắc nghẽn mạng (thực tế: ln có tẵc nghẽn) 35 TCP socket ứng dụng mạng application application P4 P5 application P6 P3 P3 P2 transport transport link link physical physical client: IP address A transport network network network link server: IP address B source IP,port: B,6000 dest IP,port: A,9157 source IP,port: A,9157 dest IP, port: B,6000 physical source IP,port: C,5775 dest IP,port: B,6001 client: IP address C source IP,port: C,9157 dest IP,port: B,6002 36 18 TCP socket ứng dụng mạng multi-thread application application P1 application P4 P3 P2 transport transport network link link physical physical client: IP address A transport network network link server: IP address B source IP,port: B,80 dest IP,port: A,9157 source IP,port: A,9157 dest IP, port: B,80 physical source IP,port: C,5775 dest IP,port: B,80 client: IP address C source IP,port: C,9157 dest IP,port: B,80 37 TCP cung cấp dịch vụ tin cậy ntn? • Kiểm sốt lỗi liệu: checksum • Kiểm sốt gói tin: phát lại có time-out • Kiểm sốt liệu nhận chưa: • Seq # Cơ chế báo nhận • Ack • Chu trình làm việc TCP: • Thiết lập liên kết • Bắt tay ba bước • Truyền/nhận liệu • Đóng liên kết 38 19 Thiết lập liên kết TCP : Giao thức bắt tay bước • Bước 1: A gửi SYN cho B A • giá trị khởi tạo seq # A B • khơng có liệu • Bước 2: B nhận SYN, trả lời SYN/ACK • B khởi tạo vùng đệm • giá trị khởi tạo seq # B established • Bước 3: A nhận SYNACK, trả lời established ACK, kèm theo liệu 39 Cơ chế báo nhận TCP Seq #: • Số hiệu byte đoạn tin dòng liệu ACK: • Số hiệu byte mong muốn nhận từ đối tác Host A User types ‘C’ host ACKs receipt of echoed ‘C’ Host B host ACKs receipt of ‘C’, echoes back ‘C’ time 40 20 Đóng liên kết A B A state B state ESTAB ESTAB close(socket) FIN_WAIT_1 không gửi tiếp nhận liệu FIN_WAIT_2 FIN, seq=x CLOSE_WAIT ACK, ACKnum=x+1 đợi nhận FIN từ server tiếp tục gửi liệu LAST_ACK FIN, seq=y ngừng gửi liệu TIMED_WAIT đợi x thời gian gửi MSS ACK, ACKnum=y+1 CLOSED CLOSED 41 NGUYÊN LÝ CHUNG TẦNG MẠNG 42 21 Mơ hình TCP/IP - Tầng mạng • Cung cấp chế để kết nối hệ thống mạng với (internetworking) • Mạng mạng • Giao thức IP : Internet Protocol • Định danh: sử dụng địa IP để gán cho nút mạng (máy trạm, máy chủ, định tuyến) • Khn dạng liệu • Định tuyến(chọn đường): tìm tuyến đường tốt qua hệ thống trung gian để gửi thơng tin • Chuyển tiếp: định gửi liệu qua tuyến đường 43 Định tuyến chuyển tiếp Giao thức định tuyến xác định đường ngắn bên truyền tin Giao thức định tuyến Bảng chuyển tiếp dest address outgoing port net Address1 /net.mask net Address2 /net.mask net Address3 /net.mask Bảng chuyển tiếp xác định cổng (outgoing port) để chuyển liệu tới đích Gói tin (tiêu đề chứa địa đích) 44 22 Địa IP (IPv4) • Địa IP: Một số 32- bit để định danh cổng giao tiếp mạng nút đầu cuối (PC, server, smart phone), định tuyến • Mỗi địa IP gán cho cổng • Địa IP có tính mạng 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 223.1.3.1 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 145 Biểu diễn địa IPv4 Ví dụ: 203.178.136.63 259.12.49.192 133.27.4.27 bits – 255 integer o x o Sử dụng phần bits để miêu tả địa 32 bits 1 0 1 1 1 0 1 0 1 1 1 0 0 203 178 143 100 46 23 Địa IPv4 • Địa IP có hai phần • Host ID – phần địa máy trạm • Network ID – phần địa mạng Network ID Host ID 1 0 1 1 1 0 1 0 1 1 1 0 0 203  178 143 100 Làm biết phần cho máy trạm, phần cho mạng?   Phân lớp địa Không phân lớp – CIDR 47 Phân lớp địa IP(Classful Addressing) 8bits Class Class Class Class Class A B C D E 1 1 1 8bits 8bits 8bits bit H H H bit N H H bit N N H Multicast 1 Reserve for future use # of network # of hosts Class A 128 2^24 - Class B 16384 65534 Class C 2^21 254 48 24 Các dạng địa • Địa mạng (Network Address): • Định danh cho mạng • Tất bit phần HostID • Địa quảng bá (Broadcast Address) • Địa dùng để gửi liệu cho tất máy trạm mạng • Tất bit phần HostID • Địa máy trạm • Gán cho cổng mạng • Địa nhóm (Multicast address): định danh cho nhóm 49 Khơng gian địa IPv4 • Theo lý thuyết • Có thể 0.0.0.0 ~ 255.255.255.255 • Một số địa đặc biệt • Địa IP đặc biệt (RFC1918) Private address 10.0.0.0/8 172.16.0.0/16  172.31.0.0/16 192.168.0.0/24  192.168.255.0 /24 Loopback address 127.0.0.0 /8 Multicast address 224.0.0.0 ~239.255.255.255 • Địa liên kết nội bộ: 169.254.0.0/16 50 25 Quản lý địa IP cơng cộng • Internet Corporation for Assigned Names and Numbers (ICANN): quản lý toàn tài nguyên địa IP • Regional Internet Registries: quản lý địa IP theo vùng (châu Á-Thái Bình Dương, châu Âu Trung Đông, châu Phi, Bắc Mỹ, Nam Mỹ) • Cơ quan quản lý quốc gia • Việt Nam: VNNIC • Nhà cung cấp dịch vụ (ISP) • Cơ quan, tổ chức • Ví dụ ICANN  APNIC  VNNIC  HUST 51 Network Address Translation • NAT : Network Address Translation • Chuyển đổi địa gói tin từ IP cục sang IP cơng cộng • Và ngược lại • PAT : Port Address Translation • NAT with overloading sử dụng thêm số hiệu cổng ứng dụng q trình chuyển đổi • Lợi ích: • Tiết kiệm địa IP công cộng • Che giấu địa riêng • Giảm chi phí cấu hình thay đổi ISP • Trên thực tế, sử dụng NAT để chuyển đổi địa IP từ mạng LAN sang mạng LAN khác 52 26 Hoạt động NAT • Gói tin từ mạng ngồi • Gói tin từ ngồi vào mạng 53 Các chế độ hoạt động NAT • Static NAT(NAT tĩnh): địa IP mạng bên ánh xạ tới địa IP mạng bên ngồi • Ánh xạ ln trì bảng NAT • Thường sử dụng cho máy chủ cung cấp dịch vụ 54 27 Dynamic NAT 55 PAT 56 28 Vấn đề NAT traversal • Client muốn kết nối tới server có địa 10.0.0.1 • Địa server địa LAN (client sử dụng địa địa đích) • Địa công cộng: 138.76.29.7 10.0.0.1 client • Giải pháp 1: cấu hình chuyển tiếp yêu cầu thiết lập kết nối tới cổng server Ví dụ: ? 10.0.0.4 138.76.29.7 NAT router • Clien gửi yêu cầu kết nối tới địa (123.76.29.7:2500) • Trên router, gói tin gửi tới địa (123.76.29.7:2500) chuyển tiếp tới địa (10.0.0.1:25000) 57 Vấn đề NAT traversal • Giải pháp 2: Sử dụng giao thức Universal Plug and Play (UPnP) Internet Gateway Device (IGD) Protocol Cho phép máy trạm NAT: địa IP công cộng (138.76.29.7)  Yêu cầu thêm xóa ánh xạ bảng NAT 10.0.0.1 IGD  Học NAT router 58 29 Vấn đề NAT traversal • Giải pháp 3: NAT hole punching VD: giao thức STUN 59 THƯ VIỆN LẬP TRÌNH WINSOCK 60 30 Kiến trúc • Windows Socket (WinSock) • Bộ thư viện liên kết động Microsoft • Cung cấp API dùng để xây dựng ứng dụng mạng hiệu cao Application Winsock DLL ( WS2_32.DLL) Layered/Base Provider RSVP Proxy Default Provider MSAFD.DLL Winsock Kernel Mode Driver (AFD.SYS) Transport Protocols 61 Kiến trúc • Windows Socket (WinSock) • Phiên WinSock 2.2 • Các ứng dụng giao tiếp với thư viện liên kết động tầng cùng: WS2_32.DLL • Provider nhà sản xuất giao thức cung cấp Tầng bổ sung giao thức tầng mạng khác cho WinSock TCP/IP, IPX/SPX, AppleTalk, NetBIOS tầng chạy UserMode • WinSock Kernel Mode Driver (AFD.SYS) driver chạy KernelMode, nhận liệu từ tầng trên, quản lý kết nối, đệm, tài nguyên liên quan đến socket giao tiếp với driver điều khiển thiết bị 62 31 Kiến trúc • Windows Socket (WinSock) • Transport Protocols driver tầng thấp nhất, điều khiển trực tiếp thiết bị Các driver nhà sản xuất phần cứng xây dựng, giao tiếp với AFD.SYS thơng qua giao diện TDI ( Transport Driver Interface) • Việc lập trình Socket thao tác với đối tượng SOCKET • Mỗi ứng dụng cần có SOCKET trước muốn trao đổi liệu với ứng dụng khác • Liên kết logic nối SOCKET kênh truyền liệu hai ứng dụng 63 Lập trình WinSock • Chuẩn bị mơi trường • Hệ điều hành Windows XP/2003/Vista/7/8 • Visual Studio C++ Community 2015 • Thêm tiêu đề WINSOCK2.H vào đầu tệp mã nguồn • Thêm thư viện WS2_32.LIB vào Project cách Project => Property => Configuration Properties=> Linker=>Input=>Additional Dependencies • Hoặc thêm khai báo tiền xử lý #pragma comment(lib, "Ws2_32.lib") 64 32 ... ĐẦU Nội dung • Cơ mạng máy tính • Ngun lý tầng ứng dụng • Nguyên lý tầng giao vận • Địa IPv4 • Thư viện lập trình WinSock CƠ BẢN VỀ MẠNG MÁY TÍNH Mạng máy tính gì? • Tập hợp máy tính kết nối với... ISP • Máy tính: máy trạm, máy chủ, định tuyến • Kết nối phương tiện truyền • Theo kiến trúc mạng home network regional ISP institutional network Mạng máy tính gì? • Phương tiện truyền: đường truyền. .. Kiến trúc mạng: • Hình trạng mạng: cách thức máy tính kết nối đường truyền vật lý với • Giao thức mạng: cách thức máy tính trao đổi liệu với nào? • Hoạt động hệ thống mạng máy tính: truyền thơng

Ngày đăng: 18/11/2020, 11:05

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan