1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng lập trình mạng chapter 1 introduction

59 497 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 1,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

◦ Đối tượng sử dụng làm chủ kênh dẫn trong suốt quá trình trao đổi tin ◦ Hiệu suất thấp vì có lúc cả 2 bên đều hết thông tin để truyền ◦ Lãng phí thời gian do có giai đoạn thiết lập kên

Trang 1

Chapter 1

Introduction

GV: Nguyễn Thị Thanh Vân - CNTT

1

Trang 2

Trao đổi dữ liệu giữa các máy tính

Giới thiệu kỹ thuật socket

Nội dung

Trang 3

Java Simplified / Session 22 / 3 of 45

còn thích hợp với nhu cầu thực tế.

 ứng dụng: tích hợp và triệu gọi lẫn nhau trên mạng Intranet, Internet một cách hiệu quả và an toàn:

kỹ thuật lập trình mạng.

chuyên sâu hơn để tạo giao tiếp và trao đổi dữ liệu giữa các máy tính với nhau.

Giới thiệu

3

Trang 4

phục vụ cho một mục đích riêng nào đó.

Giới thiệu

Trang 5

Java Simplified / Session 22 / 5 of 45

 Thực hiện được nhiều chức năng:

Trang 7

Java Simplified / Session 22 / 7 of 45

3 Các khái niệm cơ bản:

 Mạng máy tính:

là một tập hợp các máy tính được nối với nhau bởi

các đường truyền vật lý theo một kiến trúc nào đó

 Đường truyền vật lý:

 Kiến trúc mạng: Thể hiện cách nối các máy tính 

với nhau ra sao và tập hợp các qui tắc, qui ước  mà tất cả các thực thể tham gia truyền thông trên mạng phải tuân theo

 Hình trạng/đồ hình mạng – Topology: Topo

Point to point, Broadcast

 Giao thức mạng – Protocol

7

Network: Các khái niệm cơ bản

Trang 8

 Phân loại theo khoảng cách địa lý:

◦ LAN, WAN, MAN…

 Phân loại theo đồ hình mạng (Topo):

◦ Point to point,

◦ Broadcast

 Phân loại theo cách truyền tin

◦ Chuyển mạch kênh (circuit-switched),

◦ Chuyển mạch gói (packet-switched)

 Phân loại theo kiến trúc quản lý:

◦ Peer to peer,

Phân loại mạng

Trang 9

Java Simplified / Session 22 / 9 of 45

 Đặc điểm:

◦ Thực hiện sự trao đổi thông tin giữa hai đối tượng theo thời gian thực.

◦ Đối tượng sử dụng làm chủ kênh dẫn trong suốt quá trình trao đổi tin

◦ Hiệu suất thấp vì có lúc cả 2 bên đều hết thông tin để truyền

◦ Lãng phí thời gian do có giai đoạn thiết lập kênh và giải phóng kênh

◦ Nội dung thông tin không mang thông tin địa chỉ

◦ Phù hợp với dịch vụ thoại

◦ Khi lưu lượng tăng đến một mức ngưỡng nào đó thì một số cuộc gọi

có thể bị khoá, mạng từ chối mọi yêu cầu kết nối cho đến khi có thể

Chuyển mạch kênh – Circuit switched

9

Trang 10

Chuyển mạch gói (packet-switched)

Trang 11

Java Simplified / Session 22 / 11 of 45

a Môi trường truyền dẫn

cáp, sóng điện từ, sóng vi ba, tia hồng ngoại

b Thiết bị phần cứng:

 Kết nối các môi trường truyền: Card mạng (NIC hay

Adapter), Hub, Switch, Router

 Điều khiển quá trình truyền dữ liệu

Trang 12

Xuất phát từ ý tưởng Kiến trúc phân tầng:

 Mục đích: giảm độ phức tạp của việc thiết kế và cài đặt mạng

Kiến trúc mạng

Tầng n

Tầng i+1 Tầng i Tầng i-1

Tầng n

Tầng i+1 Tầng i Tầng i-1

Giao thức tầng i

Giao diện tầng i

và tầng

Trang 13

Java Simplified / Session 22 / 13 of 45

- Mỗi mức được thiết kế để cung cấp một số dịch vụ xác

định cho mức trên nó

Kiến trúc phân tầng

Một số NSX:

• SNA của IBM (6 layer)

• DECnet của Digital Equipment Corporation (8)

• Appletalk của Apple,

• Netware của Novell Inc

Trang 14

 Không thống nhất về kiến trúc giữa các hệ thống

mạng, gây ra sự khác nhau về:

- Phương pháp truy nhập đường truyền

- Giao thức giữa các mạng.

 OSI : Reference Model for Open Systems

Interconnection – Mô hình tham chiếu cho việc nối kết

các hệ thống mở:

• Xuất phát từ kiến trúc phân tầng

• Xây dựng một khung chuẩn về kiến trúc mạng, làm căn

cứ cho các nhà thiết kế và chế tạo các sản phẩm về mạng

OSI Model

Trang 15

Java Simplified / Session 22 / 15 of 45

OSI Model

15

 OSI 7 layers

Trang 17

Java Simplified / Session 22 / 17 of 45

Trang 18

 Có 4 tầng:

Giao tiếp với thiết bị phần cứng 1 cách phù hợp

Trang 19

Java Simplified / Session 22 / 19 of 45

TCP/IP và OSI Các giao thức

19

Trang 20

Đóng gói và mở gói dữ liệu

Trang 21

Java Simplified / Session 22 / 21 of 45

 Địa chỉ là thông tin giúp gói tin đi đến đích

đúng

Địa chỉ

21

Trang 22

 TCP (Transmission Control Protocol) là giao thức truyền thông cơ bản giúp trao đổi dữ

liệu qua lại giữa 2 hay nhiều máy tính một

cách tin cậy và chính xác

Giao thức TCP

Trang 23

Java Simplified / Session 22 / 23 of 45

 TCP đòi hỏi thiết lập kết nối trước khi bắt đầu

gửi dữ liệu và kết thúc kết nối khi việc gửi dữ

liệu hoàn tất

 Cụ thể, các kết nối TCP có ba pha:

◦ thiết lập kết nối

◦ truyền dữ liệu

◦ kết thúc kết nối

23 1

TCP – Hoạt động

Trang 24

Three-Way Handshake in Establishing

a Connection

1

2 3

Trang 25

Java Simplified / Session 22 / 25 of 45

Hủy kết nối trong TCP (4 bước)

1

2

4

3

Trang 26

Báo nhận dữ liệu từ trạm đích;

Có cơ chế để phát hiện mất gói tin hoặc các gói tin đến không theo thứ tự;

 Có cơ chế tự động gởi lại những gói tin bị mất;

 Có cơ chế điều khiển luồng dữ liệu,

Chậm

Đặc điểm

Trang 27

Java Simplified / Session 22 / 27 of 45

UDP (User Datagram Protocol) là giao thức

truyền nhận dữ liệu dưới dạng các gói tin độc lập giữa các máy tính với nhau nhưng không đảm bảo sự toàn vẹn dữ liệu (không tin cậy) UDP là giao thức phi kết nối

Giao thức UDP

27

Trang 28

 Mô hình được phổ biến nhất trong các hệ

thống phân tán là mô hình client/server

 Mô hình truyền tin client/server hướng tới

việc cung cấp dịch vụ

Quá trình trao đổi dữ liệu bao gồm:

 Truyền một yêu cầu từ tiến trình client tới tiến

trình server

 Truyền đáp ứng cho client

Mô hình client/server

Trang 29

Java Simplified / Session 22 / 29 of 45

Mô hình client/server thường được cài đặt dựa trên các thao tác cơ bản là gửi (send)

và nhận (receive)

Quá trình trao đổi dữ liệu theo client/server

29

Trang 30

 Kiến trúc client/server đơn giản nhất là kiến trúc hai

tầng

 Một ứng dụng hai tầng cung cấp nhiều trạm:

◦ tầng trình diễn (client): xử lý các công việc

◦ tầng lưu trữ dữ liệu tập trung (server) kiểm soát luồng vào ra giữa ứng dụng và dữ liệu

 Hầu hết các ứng dụng Internet như là email, telnet, ftp, Web là các ứng dụng hai tầng

 Hạn chế:

◦ hiệu năng ứng dụng giảm do hạn chế tại CLient

◦ dữ liệu truyền trên mạng tăng

Client/Server 2 tầng (two-tier client/server)

Trang 31

Java Simplified / Session 22 / 31 of 45

Client/Server 2 tầng (two-tier client/server)

31

Trang 32

 Một ứng dụng được chia thành ba tầng tách biệt nhau về mặt logic:

các giao diện đồ họa

◦ Tầng thứ hai, còn được gọi là tầng trung gian hay tầng tác nghiệp

hiện các lời gọi hàm để tìm kiếm dữ liệu cần thiết Tầng trình diễn nhận dữ liệu và định dạng nó để

hiển thị.

Client/Server 3 tầng (three-tier client/server)

Trang 33

Java Simplified / Session 22 / 33 of 45

Client/Server 3 tầng (three-tier client/server)

33

Trang 34

 Kiến trúc n-tầng được chia thành các tầng như

◦ Tầng logic tác nghiệp: Mô hình hóa các quy tắc tác

nghiệp,

◦ Tầng các dịch vụ hạ tầng: Cung cấp một chức năng bổ trợ cần thiết cho ứng dụng như các thành phần (truyền

Client/Server n tầng (n-tier client/server)

Trang 35

Java Simplified / Session 22 / 35 of 45

Client/Server n tầng (n-tier client/server)

35

Trang 36

 Khi kết nối vào máy chủ ta có thể yêu cầu máy chủ nhiều

dịch vụ khác nhau: HTTP, mail, DNS, FTP

 Mỗi dịch vụ đều có cách gửi nhận dữ liệu theo quy ước

riêng => quy định bởi cổng (hay port).

 Mỗi chương trình dịch vụ sẽ sử dụng một cổng khác để truy xuất thông tin Cổng là một số nguyên dương có giá trị từ 1 đến 16383

 Server sẽ quy định cổng được sử dụng cho mỗi loại dịch vụ

 Thông tin giữa Client và Server phải sử dụng cổng tương

ứng nhau thì mới trao đổi được với nhau.

Dịch vụ từ phía máy chủ Port

Trang 37

Java Simplified / Session 22 / 37 of 45

Giao tiếp trên mạng theo mô hình

Client/Server

37

Trang 38

Làm thế nào để

truyển dữ liệu từ máy

này đến máy kia?

Trang 39

Java Simplified / Session 22 / 39 of 45

 Cho phép các ứng dụng trong các máy tính liên lạc bên trong LAN

 Được dùng trong các mạng Ethernet và Token Ring và coi

như là một phần của NetBIOS Extended User Interface

(NetBEUI), trong Windows Được phát triển bởi IBM.

 Cung cấp các dịch vụ session và transport (OSI)

 NetBIOS cung cấp 2 kiểu liên lạc là session và datagram

◦ Session: là kiểu liên lạc giữa 2 máy tính thông qua thủ tục kết nối,

nó cho phép truyền được các messages kích thước lớn, xác định lỗi

và sửa lỗi.

◦ Datagram là kiểu liên lạc không cần thủ tục kết nối messages nhỏ,

và nó hỗ trợ kiểu truyên quảng bá một message đến mỗi máy tính trên mạng LAN.

NetBIOS (Network Basic Input/Output System)

39

Trang 41

Java Simplified / Session 22 / 41 of 45

Liên lạc kiểu datagram

Trang 42

 Pipe:

◦ là một bộ đệm dữ liệu được thực hiện trong bộ nhớ hệ thống,

◦ được sử dụng như là chuyển dòng dữ liệu liên tục giữa các tiến trình hoặc giữa các máy tính.

 Các Pipe làm việc như là các file giả Do đó, một số hàm I/O API về file có thể áp dụng (không phải là tất cả)

 Có 2 kiểu pipe: anonymous và named pipes

- Anonymous pipes : kiểu unidirectional, được sử dụng để

liên lạc giữa các tiến trình

- Named pipes: có thể là bi directional và thường được sử

dụng để liên lạc giữa các trạm trên mạng.

Pipe

Trang 43

Java Simplified / Session 22 / 43 of 45

pipe

43

Trang 44

Named pipe

Trang 45

Java Simplified / Session 22 / 45 of 45

 khi yêu cầu một dịch vụ trên máy chủ thực

hiện điều gì đó, Client phải có khả năng kết

nối được với máy chủ => Thực hiện thông

qua cơ chế socket (ổ cắm)

 Socket là một API => ta có thể lập trình điều khiển truyền thông giữa 2 máy sử dụng các

giao thức TCP, UDP

 Kết nối theo socket cần: IP và port

Lập trình mạng thông qua Socket

45

Trang 46

 Socket API – Socket Application

Programming Interface

 Dùng cơ chế client/server

 Cung cấp hai dịch vụ chuyển dữ liệu thông

qua socket API:

◦ reliable, byte stream-oriented (TCP)

Giới thiệu Socket

Trang 47

Java Simplified / Session 22 / 47 of 45

Socket

47

Trang 49

Java Simplified / Session 22 / 49 of 45

Các loại Socket

49

Trang 50

 Stream Socket: dùng cho

connection-oriented protocol như TCP

protocol như UDP

một số ứng dụng đặc biệt, dùng các dịch vụ trực tiếp của lớp IP

Các loại Socket

Trang 51

Java Simplified / Session 22 / 51 of 45

 Hàm bind() để đăng ký với hệ thống

 Hàm connect() để kết nối đến server

 Hàm listen() đặt socket ở trạng thái chờ, lắng nghe kết nối từ phía client

 Hàm accept() : chấp nhận kết nối từ client đến

 Hàm read() để đọc dữ liệu từ socket

 Hàm write() để ghi dữ liệu

 Hàm sendto() để gởi dữ liệu đến một địa chỉ socket từ xa

 Hàm recvfrom() để nhận dữ liệu đến một địa chỉ

socket từ xa

Các hàm socket

51

Trang 52

TCP socket - hoạt động

Trang 53

Java Simplified / Session 22 / 53 of 45

UDP socket – hoạt động

53

Trang 54

 Một trong 2 quá trình phải công bố số hiệu

Trang 55

Java Simplified / Session 22 / 55 of 45

Trang 56

 Socket API dựa trên nền Berkeley socket.

sockets được cung cấp dưới dạng các thư

Trang 57

Java Simplified / Session 22 / 57 of 45

 Trong BSD Unix, socket là một phần trong

kernel của hệ điều hành Nó cung cấp các

dịch vụ IPC cục bộ hoặc giữa các tiến trình

trên mạng

Socket trên BSD Unix

57

Trang 58

 WinSock hiện thực Berkeley Sockets

Interface trên môi trường Windows

Berkeley Sockets

socket trên Windows

Trang 59

Java Simplified / Session 22 / 59 of 45

Sockets Application Programming Interface )

để hiện thực

Ngày đăng: 24/10/2014, 01:17

TỪ KHÓA LIÊN QUAN