Tong Quan Ve Giao Thuc Internet1

  • Uploaded by: HocLieuMo
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tong Quan Ve Giao Thuc Internet1 as PDF for free.

More details

  • Words: 2,582
  • Pages: 6
12/6/2007

Nội dung bài học

Tổng quan về giao thức mạng

Khái niệm và các yêu cầu về giao thức mạng Nguyên tắc thiết kế giao thức Internet

1. 2.

Nguyên tắc cuối cuối (End-to-end arguments) Nguyên tắc phân tầ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

4.

Giao thức mạng là gì?



Giao thức là “quy ước giữa hai bên truyền tin về cách thức truyền tin”



Độ phức tạp truyền tin thể hiện bằng số lượng các bên tham gia truyền tin quyết định độ phức tạp của giao thức 

Ví dụ Cuộc nói chuyện giữa hai người, phát thanh truyền hình, …



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



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 





Network programming





Chất lượng dịch vụ mà ứng dụng của họ cần 

 





Thiết kế hiệu quả 

Mạng công cộng kết nối các mạng máy tính 

Đả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ụ: 

Giao thức trên Internet  

Đả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

Quy mô toàn cầu Mục đích chung, công cộng Công nghệ đa dạng Sử dụng giao thức TCP/IP Chuẩn mở: 

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 Network programming

4

Network programming

Internet

Phía người dùng 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, …

3

Yêu cầu với các giao thức mạng 

2

Network programming

1

Giao thức là gì? 

Giao thức tầng mạng Giao thức tầng giao vận

3.

Network programming

Mô hình mạng OSI Mô hình mạng TCP/IP



5

HTTP,FTP, RTP, … TCP, UDP IP Ethernet, ATM,…

được chuẩn hoá bởi Internet Engineering Task Force (IETF) http://www.ietf.org Phát triển bởi cộng đồng nghiên cứu Network programming

6

1

12/6/2007

Giao thức Internet được thiết kế và xây dựng như thế nào?(2)

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



Nguyên tắc phân tầng: 



A function can only be completely and correctly implemented with the knowledge and help of the applications standing at the communication endpoints



Ưu điểm của việc phân tầng 



Internet

Telephone network

“The network is fool, the terminal is clever”

“The network is clever, the terminal is fool”







 

Che dấu thông tin – Giảm hiệu quả trong việc thực thi giao thức

7

Mô hình mạng 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 

Network programming

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

8

Network programming

Ví dụ về 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

Application

Transport

Network

Toi yeu VN

J’aime le Vn

Application

L: Eng I love VN

I Love VN L:Eng

Transport

DHost L:Eng I love VN

I love VN L:Eng DHost

Network

DHost = Destination service host

Network programming

9

Viết tắt của Open System Interconnection 



Application



 



Ứng dụng mạng như truyền file, email, truy cập từ xa,…

Được chuẩn hóa vào năm 1983 Presentation

Quy tắc phân tầng 

10

The OSI network model (2)

Mô hình mạng OSI 

Network programming

Nên phân một tầng mới khi cần một mức độ trừu tượng hóa mới Mỗi tầng nên thực hiện một chức năng được định nghĩa rõ ràng Chức năng của mỗi tầng cần dễ dàng chuẩn hóa Cần giảm thiểu thông tin chuyển qua giao diện giữa các tầng xuống ít nhất Số lượng các tầng nên đủ nhỏ để đảm bảo hiệu quả Network programming

11

Session Transport Network Data Link Physical

Định dạng dữ liệu và mã hóa Thiết lập và duy trì phiên Cung cấp dịch vụ truyền tin tin cậy điểm cuối-cuối Vận chuyển, định tuyến các gói tin Vận chuyển gói tin, đóng gói và kiểm tra lỗi Truyền dữ liệu nhị phân trong môi trường truyền

Network programming

12

2

12/6/2007

Mô hình mạng TCP/IP(1) 

Mô hình mạng TCP/IP(2)

Lịch sử phát triển 





Application

Đượ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 )

HTTP

Transport

FTP

Telnet

Ping

TCP IP (ICMP)

Internet

Network interface

Network Device Controller/Drivers Ethernet or other physical medium

13

OSI vs. TCP/IP  

Ví dụ về giao thức TCP/IP Sending host

Receiving host

“Xin chào”

“Xin chào”

Application

Router

“Xin TCP IP chào” Header Header

Session Transport

TCP

“Xin chào”

TCP Header

IPv4, IPv6, ICMP

Datalink

Network interface

Physical

Hardware

OSI

TCP/IP

“Xin TCP IP Ethernet chào” Header Header Header

15

Network programming

Ví dụ về giao thức TCP/IP(2) Dst Src Protcl Src Dst Protcl Src Dst MAC MAC Type IP IP Type = Port = Port = addr addr =0800 Addr Addr 6 11111 110

Data = “Xin chào” charset=UTF-8

Network programming

 FCS

TCP/UDP header

Header & data of application protocol

Give the type of Give the type of upper protocol upper protocol

The order of processing data

16

Vận chuyển thông báo điểm cuối-cuối dựa trên địa chỉ IP 

IP header

“Xin TCP IP Ethernet chào” Header Header Header

Giao thức tầng mạng

Session Presentation Application

Transport

Network

“Xin TCP IP chào” Header Header

UDP

Network

Give the type of upper protocol

TCP Header

“Xin chào”

Application

Presentation

Ethernet header

14

Network programming

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

Data link

RTP

UDP

Hardware

Network programming

H.323

Ethernet’s Frame Check Sequence



 

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

The order to creating data

Network programming

17

Network programming

18

3

12/6/2007

Địa chỉ IP 

Địa chỉ IP riêng

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









Network programming

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)

19

Tiêu đề của gói tin IP

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 */ };

Network programming

21

Chúng ta đã học 1. 2.



3.

Network programming



22

Giao thức TCP 

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

 

23

Thiết lập kết nối TCP Khái niệm số hiệu cổngConcept of port number Tiêu đề gói tin TCP header



Giao thức UDP



Mô hình chủ/khách



Giao thức tầng Internet

Network programming

#include char packetBuffer[1500]; struct ip *ipPkt; ipPkt = (struct ip *)packetBuffer;

Tiếp theo …

Khái niệm và các yêu cầu về giao thức mạng Nguyên tắc thiết kế giao thức Internet 

20

Network programming

Tiêu đề gói tin UDP

Network programming

24

4

12/6/2007

Giao thức TCP

Thiết lập kết nối 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) 



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





Truyền theo dòng:



Điều khiển luồ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 4915265535)  Máy chủ thường sử dụng well-known ports 

NTP daemon

Web server

port 123

port 80

TCP/UDP

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 

IP



Máy khách thường sử dụng dynamic ports 

Máy khách bắt đầu một kết nối đến máy chủ

Time flows down

26

Network programming

Well-known port numbers

Khái niệm số hiệu cổng



Máy chủ chờ kết nối đến từ máy khách

25

Network programming

listen

Synchronize (SYN) Acknowledge (ACK)

Mở chủ động 

Điều khiển chống tắc nghẽn

Server

Mở thụ động 

Đảm bảo việc truyền thông tin theo thứ tự của dòng bytes

Client

J,K

Kiểu thông báo 



Truyền và nhận gói tin cùng lúc

Active open

Số thứ tự



Full-duplex:







Tin cậy:



Passive open

Bắt tay 3 bước

Ethernet Adapter

được gán bởi hệ thống khi khởi tạo 27

Network programming

Trạng thái kết nối TCP

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

123

UDP

domain

Domain Name Server

ntp

Network Time Protocol

Network programming

28

Tiêu đề TCP

BEGIN CLOSED Server Passive Open rcv SYN send SYN,ACK rcv RST

Client Active Open send SYN

LISTEN

rcv SYN send SYN,ACK

SYN RCVD rcv ACK of SYN send FIN

send FIN

FIN WAIT-1 rcv ACK

ESTABLISHED rcv FIN send ACK CLOSING

rcv FIN send ACK

TIME_WAIT

SYN SENT

rcv SYN,ACK send ACK rcv FIN send ACK

rcv FIN,ACK send ACK

FIN WAIT-2

Active Open send SYN

rcv ACK

CLOSE_WAIT send FIN LAST_ACK

rcv ACK

timer ~ 1 min

29

Network programming

30

5

12/6/2007

Khai báo tiêu đề TCP

Giao thức UDP

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 */ };

Network programming

 

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 



Truyền không giới hạn 



Không đảm bảo việc truyền tin đến đúng địa chỉ và không bị trùng lặp Không có điều khiển luồng

Yêu cầu xử lý nhỏ

31

Tiêu đề UDP

Network programming

Khai báo tiêu đề UDP struct udphdr { u_int16_t uh_sport; u_int16_t uh_dport; u_int16_t uh_ulen; u_int16_t uh_sum; };

Network programming

33







Client

 

Client









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





Client

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ủ  

35

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ủ 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: 

Bắt đầu mộtkết nối Đợi trả lời từ máy chủ

Network programming

Xử lý tuần tự: 

Máy khách 

34

Mô hình dịch vụ 

Máy khách gửi yêu cầu Máy chủ gửi trả lời

Máy chủ 

Server

Network programming



Truyền tin bất đối xứng 

/* source port */ /* destination port */ /* udp length */ /* udp checksum */

Mô hình truyền tin khách chủ(2)

Mô hình truyền tin khách/chủ Client

32

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ó

Network programming

36

6

Related Documents


More Documents from ""

Ltdt6
October 2019 9
Dstt05
October 2019 7
Otmat08
October 2019 10
Otmat04
October 2019 11
Sthc04
October 2019 10
Pluatdc5
October 2019 7