Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP...

43
Chương 6 Transport Layer Tài liệu : Forouzan , Data Communication and Networking 1

Transcript of Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP...

Page 1: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Chương 6

Transport Layer

Tài liệu : Forouzan , Data Communication and Networking

1

Page 2: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Transport Layer Nội dung

• Đặc trưng của tầng transport

– Port number

– Multiplexing và Demultiplexing

– Connectionless Service và Connection-Oriented Service

– Unreliable và Reliable

• Giao thức UDP

• Giao thức TCP

2

Page 3: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Transport Layer

• Nằm giữa tầng Application và Network

• Chịu trách nhiệm chuyển một message từ một process tới một process khác

• Tầng Transport thực hiện :– Xác định process nguồn và process đích– Phân chia 1 message ở đầu gửi thành các segment, sau đó

ghép nối lại ở đầu nhận. Gán sequence number cho từng segment .

– Thực hiện chuyển packets ở chế độ connection-oriented hoặc connectionless

– Flow control và error control để đảm bảo toàn bộ message đến đích nguyên vẹn và đúng thứ tự

3

Page 4: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

• Tầng Transport thực hiện truyền process-to-process

– Khác biệt với host-to-host ở tầng Network

Client Process Server Process

192.168.1.1 222.201.1.1

2200130352432

802325

4

Page 5: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Port number

• Tại một thời điểm có nhiều process cùng sử dụngdịch vụ của tầng transport => để phân biệt, mỗiprocess được nhận diện bằng một số nguyên : Port number

• Một process trên một host được nhận diện bằng :

IP address : Port number

(hay còn gọi là socket address)

5

Page 6: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Port number

• Port number trong mô hình Internet– Một số nguyên 16bit (0-65535)

– Port number của 1 client process là một số phát sinhngẫu nhiên trong khoảng 49152 – 65535 (qui địnhcủa IANA)

– Port number của 1 server process là một số nguyênấn định trước, nằm trong khoảng 0 - 1023 (qui địnhcủa IANA) , gọi là well-known port

Một số well-known port : 23 (Telnet), 25 (SMTP), 53 (DNS), 80 (HTTP), …

6

Page 7: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Port number

• Nhận xét :

– Port number của client process : chương trình trên máy gửi phát sinh ngẫu nhiên và tạm thời, sử dụng trong mỗi lần kết nối

– Port number của server process : cần phải được phổ biến, ấn định và công bố trước, và tồn tại lâu dài

7

Page 8: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Port number

8

Page 9: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Port number

Gán cho Server Processes

port portSử dụng cho Client Processes

9

Page 10: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Port number

10

Page 11: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Multiplexing và Demultiplexing

• Multiplexing – Tại một thời điểm , giao thức tầng transport có

khả năng nhận các message của nhiều process khác nhau (từ tầng application)

Mỗi segment được thêm header có chứa port number của process mà segment thuộc về

• Demultiplexing– Ở bên nhận, tầng transport nhận các message

thuộc nhiều process, nhận diện và chuyển giaomessage đến đúng process mà nó thuộc về, dựatrên port number

11

Page 12: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

A B C D A B C D

12

Page 13: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Connectionless Service và Connection-Oriented Service

• Connectionless Service – không kết nối

– Không thiết lập kết nối trước khi truyền data

– Không xác định kết thúc của truyền data

– Packet không được đánh số

• Connection-Oriented Service – có kết nối

– Thiết lập kết nối trước khi truyền data

– Kết thúc kết nối sau khi trao đổi data hoàn tất

– Packet được đánh số

Connectionless Service Độc lập giữa các packet

Connection-Oriented Service Phụ thuộc giữa các packet13

Page 14: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Reliable và Unreliable

• Unreliable – không tin cậy– Packet không được đánh số

– Không có phản hồi từ phía nhận

– Không cung cấp kiểm soát luồng và kiểm soát lỗi

Packet có thể đến trễ, mất, hoặc đến không đúng thứ tự

Dịch vụ nhanh và đơn giản

• Reliable - tin cậy– Packet được đánh số

– Có phản hồi từ phía nhận

– Cung cấp cơ chế kiểm soát luồng và kiểm soát lỗi

Packet không mất, đúng thứ tự

Dịch vụ chậm và phức tạp14

Page 15: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Giao thức UDP và TCP

UDP TCP

Connectionless Unreliable

Connection-OrientedReliable

15

Page 16: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

UDP(The User Datagram Protocol)

• UDP là giao thức connectionless và unreliable– Không kết nối và không kết thúc không có mối liên

hệ giữa các datagram của cùng một process

– Datagram không đánh số

– Không tin cậy : datagram có thể mất, trùng lặp khôngđến đúng thứ tự

– Flow và error control : chỉ có checksum

• Dịch vụ nhanh và đơn giản, phù hợp với ứngdụng gửi gói tin nhỏ và không quan tâm đến độtin cậy

16

Page 17: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

UDP(The User Datagram Protocol)

• Cấu trúc của User Datagram

17

Page 18: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

UDP(The User Datagram Protocol)

18

Page 19: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

UDP (The User Datagram Protocol)

19

Page 20: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

TCP

• Nội dung tìm hiểu :

Cấu trúc segment

Kết nối TCP

Truyền data tin cậy

20

Page 21: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

TCP segment

21

Page 22: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

TCP segment

• Source port address và Destination port address : mỗi vùng này có kích thước 16 bit, chứa số source port và destination port.

• Sequence number : vùng chứa seq number có kích thước 32 bit chứa số gán cho byte đầu của data được truyền trong segment .

• Acknowledgment number : vùng chứa ACK number này có kích thước 32 bit, chứa sequence number của segment kế tiếp mà bên nhận đang chờ gửi tới.

• Header length : kích thước 4 bit, lưu độ lớn của TCP header.

• Checksum : giống UDP checksum

22

Page 23: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

TCP segment

• Control : vùng chứa 6 bit điều khiển. Một hay nhiều bit có thể được bật tại một thời điểm. Trạng thái của các bit dùng để điều khiển luồng, thiết lập và ngắt kết nối, báo hiệu mode truyền data…

23

Page 24: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kết nối TCP

• Một kết nối TCP gồm 3 giai đoạn :

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

– chuyển dữ liệu

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

Sử dụng 2 loại segment :

segment điều khiển (không chứa dữ liệu)

segment dữ liệu

24

Page 25: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kết nối TCPThiết lập kết nối

25

• 3 bước bắt tay (Three-Way Handshaking) 3 segment điều khiển :

– SYN

– SYN-ACK

– ACK

Page 26: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kết nối TCPThiết lập kết nối

• Tấn công SYN Flooding

Làm sập server, bằng cách gửi số lượng lớn các SYN segment từ nhiều địa chỉ IP khác nhau => khiến server tiêu tốn tài nguyên quá mức

26

Page 27: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kết nối TCP

Truyền data

• Truyền data bắt đầu sau khi kết nối được thiết lập (sau 3 bước bắt tay)

• Client/Server gửi đi các data segment và Server/Client gửi trả lại các segment báo nhận , hay ACK segment

27

Page 28: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kết nối TCPTruyền data

• Mỗi data segment , bao gồm :

• data

• Sequence number

• ACK number

• Mỗi ACK segment , chỉ bao gồm :

• ACK number

28

Page 29: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kết nối TCP

Truyền data– Mỗi byte data truyền đi trong một kết nối

được đánh số

– Data : Một chuỗi các byte dữ liệu

– Sequence number : số thứ tự của byte đầu tiên trong segment• Sequence number của segment data đầu tiên trong phiên

kết nối là một con số phát sinh ngẫu nhiên , và khác biệt trong mỗi hướng truyền

– ACK number : thông tin xác nhận – là số thứ tự của byte kế tiếp mà nó mong chờ nhận tiếp

29

Page 30: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

30

Page 31: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

• Cần truyền một file 5000 byte, byte đầu tiên được đánh số 15001 => liệt kê sequence number của mỗi segment nếu file được truyền trong 3 segment , mỗi segment truyền 2000 byte ?

• Segment1 (truyền bytes từ 15,001 to 17,000)

SequenceNumber: 15,001

• Segment2 (truyền bytes từ 17,001 to 19,000)

SequenceNumber: 17,001

• Segment3 (truyền bytes từ 19,001 to 20,000)

SequenceNumber: 19,001

31

Page 32: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

32

Page 33: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kết nối TCPĐóng kết nối

Bất kỳ bên nào đều có thể đóng kết nối mặcdù thường là từ client.

TCP sử dụng 2 phương pháp để đóng kết nối :

Ba bước (three-way handshaking)

Bốn bước (four-way handshaking with a half-close option)

33

Page 34: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

34

• Đóng kết nối : three-way handshaking

Page 35: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

• Đóng kết nối : Half-Close

35

Page 36: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kiểm soát lỗi

• TCP sử dụng 3 công cụ để kiểm soát và sửa lỗi:

– Checksum

– Acknowledgment

– Retransmission

36

Page 37: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Kiểm soát lỗi

• TCP sử dụng cơ chế Retransmission để gửi lại các segment bị mất, hỏng, hay trễ

• Truyền lại xảy ra nếu bộ đếm thời gian hết hạn (timeout) hoặc nhận được ba lần tín hiệu ACK

37

Page 38: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

38

Page 39: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

39

Page 40: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

40

Page 41: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

41

Fast retransmission

Page 42: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Thực hành

• Liệt kê các port đang mở

netstat –abf 5

42

Page 43: Transport Layer - Nguyễn Văn Quang IT · 2016-09-19 · Giao thứcUDP và TCP UDP TCP Connectionless Unreliable Connection-Oriented Reliable 15. UDP (The User Datagram Protocol)

Thực hành

• Xem địa chỉ IP

nslookup vnexpress.net

43