Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng

1. Mô hình OSI

Mô hình OSI đưa ra nhằm:

9 Cách thức cho các thiết bị mạng có thể truyền dữ liệu

được với nhau

9 Cách thức khi nào thiết bị được truyền dữ liệu khi nào

không được truyền dữ liệu

9 Phương pháp đảm bảo mức độ tin cậy, tốc độ truyền

dữ liệu.

9 Cách thức đảm bảo các thiết bị mạng duy trì tốc độ

truyền dữ liệu thích hợp

9 Cách thức thiết lập kết nối, truyền và sắp xếp dữ liệu

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 1

Trang 1

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 2

Trang 2

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 3

Trang 3

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 4

Trang 4

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 5

Trang 5

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 6

Trang 6

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 7

Trang 7

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 8

Trang 8

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 9

Trang 9

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 35 trang xuanhieu 5140
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng

Bài giảng Lập trình mạng - Chương 1: Tổng quan về lập trình mạng
 MÔN HỌC
 LẬP TRÌNH MẠNG 
-Thời gian 45 tiếtlíthuyết, 15 tiếtthực hành
-Thicuốikỳ: trắc nghiệm và tự luận
-Thực hành theo sự phân nhóm, có điểm danh và làm báo cáo
Tài liệu tham khảo:
- Slice môn lập trình mạng
- Network programming for Microsoft windows, Anthony jones, Jim Ohlund, 
 Microsoft Corporation 
- Computer Network, Andrew S. Tanenbaum, Prentice Hall, fourth edition
-Bộ CD MSDN của Microsoft. 
- Java lập trình mạng, Nguyễn Phương Lan, Hoàng Đức Hải, Nhà xuất bản 
 Giáo Dục
 MÔN HỌC
 LẬP TRÌNH MẠNG
Nội dung chương trình
1. Tổng quan về lậptrìnhmạng
2. Lậptrìnhmạng vớithư viện Winsock của Windows
3. Lập trình multicasting
4. Lậptrìnhmạng vớihệ thống Web
5. Lậptrìnhmạng vớihệ thống Email
6. Lậptrìnhmạng vớihệ thống truyềnFile
7. Chương trình multiuser chat
Chương 1: Tổng quan về lậptrìnhmạng
 Chương 1
1. Mô hình OSI
Mô hình OSI đưaranhằm:
 9 Cách thứcchocácthiếtbị mạng có thể truyềndữ liệu
 đượcvới nhau
 9 Cách thức khi nào thiếtbịđượctruyềndữ liệu khi nào
 không đượctruyềndữ liệu
 9 Phương pháp đảmbảomức độ tin cậy, tốc độ truyền
 dữ liệu.
 9 Cách thức đảmbảocácthiếtbị mạng duy trì tốc độ
 truyềndữ liệu thích hợp
 9 Cách thứcthiếtlậpkếtnối, truyềnvàsắpxếpdữ liệu.
 Chương 1
1. Mô hình OSI
 Mô hình 7 tầng OSI
 Chương 1
1. Mô hình OSI
9 Tầng 1 (tầng vật lý-Physical): cung cấp các phương tiệntruyếntin, 
 thủ tụckhởi động, duy trì huỷ bỏ các liên kếtvật lý cho phép truyền
 các dòng dữ liệu ở dạng bit.
9 Tầng 2 (tầng liên kếtdữ liệu-Data Link): thiếtlập, duy trì, huỷ bỏ các
 liên kếtdữ liệukiểmsoátluồng dữ liệu, phát hiệnvàkhắcphục các
 sai sót truyềntin.
9 Tầng 3 (tầng mạng-Network): chọn đường truyền tin trong mạng, thực
 hiệnkiểmsoátluồng dữ liệu, khắcphục sai sót, cắthợpdữ liệu.
9 Tầng 4 (tầng giao vận-Transport): kiểmsoátgiữa các nút củaluồng
 dữ liệu, khắcphục sai sót, có thể thựchiện ghép kênh và cắthợpdữ
 liệu.
9 Tầng 5 (tầng phiên-Session): thiếtlập, duy trì đồng bộ hoá và huỷ bỏ
 các phiên truyền thông. Liên kết phiên phải đượcthiếtlập thông qua 
 đốithoại và các tham sốđiềukhiển.
9 Tầng 6 (tầng trình dữ liệu-Presentation): biểudiễn thông tin theo cú
 pháp dữ liệucủangườisử dụng. Loạimãsử dụng và vấn đề nén dữ
 liệu.
9 Tầng 7 (tầng áp dụng-Application): là giao diệngiữangườivàmôi
 trường hệ thống mớ. Xử lý ngữ nghĩa thông tin, tầng này cũng có
 chứcnăng cho phép truy cậpvàquản chuyểngiaotệp, thư tín điệntử
 Chương 1
1. Mô hình OSI
 Chương 1
1. Mô hình OSI
 Quá trình đóng gói tại các Layer củaOSI
 Chương 1
1. Mô hình OSI
 Quá trình đóng gói tại các Layer củaOSI
 Chương 1
2. GIAO THỨC TCP/IP
 Giao thức (protocol)
 Giao thứclàmộttậphợp các quy tắcgiaotiếpgiữahaihệ thống
 giúp chúng hiểuvàtraođổidữ liệu đượcvới nhau.
 Kiếntrúcgiaothức TCP/IP
 Chương 1
2. GIAO THỨC TCP/IP
 Giao thức TCP/IP
 Chương 1
2. GIAO THỨC TCP/IP
 Tầng 3 sử dụng giao thức IP, tầng 4 có thể sử dụng giao thức TCP ở chế độ 
 có nối kết hoặc UDP ở chế độ không nối kết
 Tầng 5 là tầng ứng dụng. Mỗi loại ứng dụng phải định nghĩa một loại giao 
 thức để các ứng dụng này trao đổi thông tin với nhau. Ví dụ
 ¾Ứng dụng Web sử dụng giao thức HTTP để tải các trang web từ webserver 
 về webbowser
 ¾Ứng dụng thư điện tử sử dụng giao thức SMTP để chuyển tiếp mail gửi đi 
 đến mail server của người nhận và dùng giao thức POP3 hoặc IMAP để nhận 
 mail về cho người đọc
 ¾Ứng dụng truyền tải tập tin sử dụng giao thức FTP để tải các tập tin từ các 
 FTP server ở xa về máy người dùng hay ngược lại
 ¾...
 Chương 1
3. MÔ HÌNH CLIENT – SERVER
 Theo mô hình client – server, mộtchương trình ứng dụng được chia làm 2 
 phần
 -Quátrìnhchuyêncungcấpmộtsố phụcvụ nào đóvídụ phụcvụ web, phục
 vụ tậptin, phụcvụ thưđiệntử gọi là server
 -Quátrìnhcóyêucầusử dụng các dịch vụ do server cung cấp đượcgọilà
 client
 Giao tiếpgiữa server và client đượcthựchiệndướihìnhthứctraođổi thông
 điệp (message). Request message từ client và Reply message từ phía
 server. 
 Chương 1
3. MÔ HÌNH CLIENT – SERVER
 Quá trình đang thựcthi
 Quá trình đang chờđợi
 Chương 1
4. CÁC CHẾ ĐỘ GIAO TIẾP
 Giao tiếpgiữa client và server có thể diễnraở hai chếđộlà blocked và non –
 blocked
 Chế độ blocked
 Chương 1
4. CÁC CHẾ ĐỘ GIAO TIẾP
Chế độ non-blocked
 Chương 1
5. SOCKET
 5.1 Giới thiệu socket
 - Socket là một giao diện lập trình ứng dụng (API – Application Programming 
 Interface) được giới thiệu đầu tiên trong ấn bản Unix – BSD 4.2 dưới dạng các 
 hàm hệ thống trong ngôn ngữ C. Ngày ngay, socket được hỗ trợ hầu hết trên 
 các hệ điều hành: Windows, Linux và trong nhiều ngôn ngữ lập trình như C, 
 C++, Java, VC++, Dot.net...
 - Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh được đánh 
 dấu bởi hai cổng (port). 
 Chương 1
5. SOCKET
 5.1 Giới thiệu socket
 Có hai kiểu socket
 - AF_UNIX: chỉ cho phép giao tiếp giữa các quá trình trong cùng một máy tính
 - AF_INET: cho phép giao tiếp giữa các quá trình trên những máy tính khác 
 nhau
 Chương 1
5. SOCKET
 5.2 Khái niệm cổng (port)
 Để thực hiện các cuộc giao tiếp, quá trình cần có cổng của socket mà mình sử 
 dụng. Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong hệ thống, 
 Chương 1
5. SOCKET
 5.2 Khái niệm cổng (port)
 Số hiệu cổng gán cho socket phải duy nhất trên máy tính, có giá trị trong 
 khoảng 0 – 65535 (16 bit), các cổng từ 1 tơi 1023 được dành riêng cho các quá 
 trình của hệ thống.
 Một số cổng thông dụng
 Chương 1
5. SOCKET
 5.2 Khái niệm cổng (port)
 Số hiệu cổng gán cho socket phải duy nhất trên máy tính, có giá trị trong 
 khoảng 0 – 65535 (16 bit), các cổng từ 1 tơi 1023 được dành riêng cho các quá 
 trình của hệ thống.
 Một số cổng thông dụng
 Chương 1
5. SOCKET
 5.2 Khái niệm cổng (port)
 Số hiệu cổng gán cho socket phải duy nhất trên máy tính, có giá trị trong 
 khoảng 0 – 65535 (16 bit), các cổng từ 1 tơi 1023 được dành riêng cho các quá 
 trình của hệ thống.
 Một số cổng thông dụng
 Chương 1
5. SOCKET
 5.2 Khái niệm cổng (port)
 Số hiệu cổng gán cho socket phải duy nhất trên máy tính, có giá trị trong 
 khoảng 0 – 65535 (16 bit), các cổng từ 1 tơi 1023 được dành riêng cho các quá 
 trình của hệ thống.
 Một số cổng thông dụng
 Chương 1
5. SOCKET
 5.3 Giao tiếp TCP và UDP
 Giao tiếp có kết nối sử dụng giao thức TCP
 Giao tiếp không có kết nối sử dụng giao thức UDP
 Giao tiếp có kết nối TCP Giao tiếp không kết nối UDP
 Tồn tại kênh giao tiếp giữa hai bên Không tồn tại kênh giao tiếp ảo giữa 
 giao tiếp hai bên giao tiếp
 Dữ liệu được gửi đi theo chế độ đảm Dữ liệu được gửi đi theo chế độ 
 bảo: có kiểm tra lỗi, truyền lại gói tin không đảm bảo
 lỗi hay mất, đảm bảo thứ tự đến của Dữ liệu không chính xác, tốc độ 
 các gói tin... truyền nhanh
 Dữ liệu chính xác, tốc độ truyền chậm Thích hợp cho các ứng dụng cần tốc 
 độ không cần chính xác cao...
 Chương 1
5. SOCKET
 5. 4 Mô hình Client – Server sử dụng TCP 
 Chương trình server ở chế độ lặp
 Giai đoạn 1: Server tạo socket, gán số hiệu cổng và lắng nghe yêu cầu kết nối
 -socket() server yêu cầu một socket để có thể sử dụng các dịch vụ của tầng vận 
 chuyển
 -bind() server yêu cầu gán số hiệu cổng cho socket
 -listen() server lắng nghe các yêu cầu kết nối từ các client trên cổng đã được gán
 Chương 1
5. SOCKET
 5. 4 Mô hình Client – Server sử dụng TCP
 Giai đoạn 2: client tạo socket, yêu cầu thiết lập một kết nối tới server
 -socket() client yêu cầu tạo một socket để có thể sử dụng các dịch vụ của tầng vận 
 chuyển, thông thường hệ thống tự động gán một số hiệu cổng còn rảnh cho socket 
 của client
 -connect() client gửi yêu cầu connect tới server có địa chỉ IP và port xác định
 -accept() server chấp nhận kết nối của client khi đó một kênh giao tiếp ảo được 
 hình thành, client và server có thể trao đổi thông tin qua kênh giao tiếp ảo này 
 Chương 1
5. SOCKET
 5. 4 Mô hình Client – Server sử dụng TCP
 Giai đoạn 3: trao đổi thông tin giữa client và server
 -Sau khi chấp nhận yêu cầu kết nối,thông thường server thực hiện lệnh read và 
 nghẽ (blocked) cho tới khi có thông điệp từ client gửi tới
 -Server phân tích và thực thi yêu cầu, kết quả sẽ được gửi về cho client bằng lệnh 
 write()
 -Sau khi gửi yêu cầu bằng lệnh write(), client chờ nhận thông điệp từ server bằng 
 lệnh read() 
 Chương 1
5. SOCKET
 5. 4 Mô hình Client – Server sử dụng TCP
 -Việc trao đổi thông tin giữa client và server phải tuân thủ theo giao thức của 
 ứng dụng
 Giai đoạn 4: Kết thúc phiên làm việc
 Chương 1
5. SOCKET
 5. 4 Mô hình Client – Server sử dụng TCP
 -Các câu lệnh read(), write() có thể được thực hiện nhiều lần
 -Kênh ảo sẽ mất đi khi server hoặc client thực hiện đóng socket bằng lệnh 
 close()
 Chương 1
5. SOCKET
 5. 4 Mô hình Client – Server sử dụng TCP
 Toàn bộ quá trình
 Chương 1
5. SOCKET
 5. 5 Mô hình Client – Server sử dụng UDP
 Chương trình server ở chế độ lặp
 Giai đoạn 1: Server tạo socket, gán số hiệu cổng 
 -socket() server yêu cầu một socket để có thể sử dụng các dịch vụ của tầng vận 
 chuyển
 -bind() server yêu cầu gán số hiệu cổng cho socket
 Chương 1
5. SOCKET
 5. 5 Mô hình Client – Server sử dụng UDP
 Giai đoạn 2: client tạo socket
 -socket() client yêu cầu tạo một socket để có thể sử dụng các dịch vụ của tầng vận 
 chuyển, thông thường hệ thống tự động gán một số hiệu cổng còn rảnh cho socket 
 của client
 Chương 1
5. SOCKET
 5. 5 Mô hình Client – Server sử dụng UDP
 Giai đoạn 3: trao đổi thông tin giữa client và server
 -Sau khi tạo socket(), client và server có thể trao đổi thông tin với nhau thông qua 
 hai hàm sendto() và recvfrom(), 
 Chương 1
5. SOCKET
 5. 6 Mô hình Client – Server sử dụng TCP/UDP
 Chương trình server ở chế độ đồng thời sử dụng TCP
-Tạo socket(), đăng ký địa chỉ socket với hệ thống, 
- Đặt socket ở trạng thái chờ, lắng nghe kết nối
- Khi có request từ client, chấp nhận kết nối, tạo một process con để xử lý. Quay 
lại trạng thái chờ, lắng nghe kết nối mới
- Công việc của proccess mới gồm:
 •Nhận thông tin kết nối của client
 •Giao tiếp với client theo giao thức đã thiết kế
 •Đóng kết nối và kết thúc proccess con 
 Chương 1
5. SOCKET
 5. 6 Mô hình Client – Server sử dụng TCP/UDP
Chương trình server ở chế độ đồng thời sử dụng UDP
-Tạo socket
-Lặp việc nhận dữ liệu từ client, đối với một dữ liệu nhận tạo proccess (quá trình) 
để xử lý, tiếp tục nhận dữ liệu từ client
-Công việc của proccess mới:
 •Nhận thông tin của proccess cha truyền đến, lấy thông tin socket
 •Xử lý và gửi thông tin về cho client theo giao thức lớp ứng dụng đã thiết kế
 •Kết thúc

File đính kèm:

  • pdfbai_giang_lap_trinh_mang_chuong_1_tong_quan_ve_lap_trinh_man.pdf