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

Bài giảng: Giao thức tầng giao vận ppt

44 1,1K 6

Đ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 44
Dung lượng 826,5 KB

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

Nội dung

Transport Layer Services & Principles Cung cấp phương tiện truyền thông logic logical  Transport protocol được thực thi tại các trạm cuối end system.. application transport network

Trang 1

Chương 1:

Giao thức tầng giao vận (Transport Layer Protocol)

Giảng viên: Từ Thanh Trí.

Computer Networking Services (Dịch vụ mạng) Khoa CNTT – Trường Trung Cấp Tây Bắc.

Trang 3

Ch1 The Transport Layer Protocol

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

Trang 4

Transport Layer Services & Principles

 Cung cấp phương tiện truyền

thông logic (logical

 Transport protocol được thực thi

tại các trạm cuối (end system).

application

transport

network data link physical

application

transport

network data link physical

network data link physical

network data link physical

network data link physical

network data link physical network

data link physical

log ica

l en d-e

nd t ran spo rt

Trang 5

Transport & Network layers

 Tạo phương thức truyền

thông logic giữa các ứng

Trang 6

Transport Protocols

 TCP (Transmission Control Protocol)

 Connection-oriented (có liên kết).

 Flow control (điều khiển luồng).

 Congestion control (điều khiển chống nghẽn mạng).

 reliable transport protocol (tin cậy)

 UDP (User Datagram Protocol)

 Connectionless.

 Không có kiểm soát luồng và kiểm soát nghẽn mạng.

 unreliable transport protocol.

Trang 7

Ch1 The Transport Layer Protocol

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

Trang 8

M P2

application transport network

Trang 9

Dồn và chia kênh thế nào?

 source port number: ứng

TCP/UDP segment format

Trang 10

Mux/demux: Ví dụ

host A source port: x dest port: 23 server B

source port:23 dest port: x

port use: simple telnet app

Web client

host A

Web server B

Web client host C

Source IP: C Dest IP: B source port: x dest port: 80

Source IP: C Dest IP: B source port: y dest port: 80

port use: Web server

Source IP: A Dest IP: B source port: x dest port: 80

Trang 11

Ch1 The Transport Layer Protocol

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

Trang 12

Connectionless Transport (UDP).

 User Datagram Protocol [RFC 768]

 “no frill”, “bare bones” Internet transport protocol.

 chỉ cần những thủ tục cơ bản nhất.

 thông tin điều khiển cũng chỉ cần cơ bản nhất.

 “best effort” service: dữ liệu có thể mất mát, sai sót nhưng luôn “cố gắng hết sức” để giảm thiểu.

 Connectionless:

 Không có cơ chế bắt tay (handshaking): thiết lập  truyền dữ liệu  kết thúc.

 Không nắm giữ trạng thái.

 Các segments được xử lý độc lập với nhau.

Trang 13

UDP: Segment structure

tra lỗi (phục vụ cho

cơ chế nhận biết lỗi

– error detection)

source port # dest port #

32 bits

Application data (message) UDP segment format

length checksum

Length, in bytes of

UDP segment, including header

Trang 14

UDP checksum

 Mã kiểm tra phục vụ cho cơ chế nhận biết lỗi.

 Sender:

 Coi segment như chuỗi các số nguyên 16-bit.

 checksum = số bù một (1’s complement) của tổng các

số nguyên đó.

 Receiver:

 Tính toán checksum của segment nhận được.

 So sánh với checksum chứa trong trường checksum của segment nhận được  nếu sai khác tức là có lỗi.

Trang 15

UDP checksum: example

 Phép cộng các số 16-bit liên tiếp là phép cộng có nhớ.

 Kiểm tra checksum: Lấy tổng các số 16-bit (có nhớ) cộng với checksum: Kết quả là 1111 1111 1111 1111 thì không

có lỗi, nếu khác là có lỗi.

m

(bù 1)

Trang 16

Ch1 The Transport Layer Protocol

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

Trang 17

Principles of Reliable Data Transfer (RDT)

 Truyền dữ liệu tin cậy là vấn đề vô cùng quan trọng (top

10 list of important networking topics).

 Cần thiết đối với app, transport, datalink layer.

Trang 18

send

rdt_send(): called from above,

(e.g., by app.) Passed data to

deliver to receiver upper layer

udt_send(): called by rdt,

to transfer packet over

unreliable channel to receiver

rdt_rcv(): called when packet arrives on rcv-side of channel

deliver_data(): called by

rdt to deliver data to upper

Trang 19

Finite State Machine (FSM)

state

event causing state transition actions taken on state transition

state: when in this

“state” next state

uniquely determined

by next event

event actions

Trang 20

RDT1.0: reliable data transfer over reliable channel

 Tầng dưới:

 Không có lỗi.

 Không mất mát dữ liệu (gói tin).

 Sender gửi dữ liệu xuống tầng dưới.

 Receiver nhận dữ liệu gửi từ tầng dưới lên.

Wait for call from below

rdt_rcv(packet)

Trang 21

RDT2.0: channel with bit errors

 Tầng dưới có thể có lỗi bit (0   1)

 UDP checksum có khả năng phát hiện lỗi bit.

 Khắc phục lỗi (error recover) thế nào?

acknowledgements (ACKs): receiver thông báo đã nhận gói dữ liệu tốt (không có lỗi).

negative acknowledgements (NAKs): receiver thông báo gói dữ liệu nhận được có lỗi.

 Nếu nhận được NAK, sender cần gửi lại gói tin bị lỗi.

 human scenarios using ACKs, NAKs? (telephone talking!)

 error detection

 receiver feedback: control msgs (ACK,NAK) rcvr->sender.

Trang 22

extract(rcvpkt,data) deliver_data(data) udt_send(ACK)

Wait for call from below

sender

receiver

rdt_send(data)

Λ

Trang 23

RDT2.0: operation with no errors

Wait for

call from

above

snkpkt = make_pkt(data, checksum) udt_send(sndpkt)

extract(rcvpkt,data) deliver_data(data) udt_send(ACK)

Wait for call from below rdt_send(data)

Λ

Trang 24

extract(rcvpkt,data) deliver_data(data) udt_send(ACK)

Wait for call from below rdt_send(data)

Λ

Trang 25

RDT2.0: problems

 Nếu ACK, NAK bị lỗi?

 Sender không biết kết quả gửi gói tin thế nào.

 Cũng chẳng thể gửi lại gói tin vì có thể gây hiện tượng lặp gói tin.

 Giải pháp:

 Sender truyền lại nếu như ACK/NAK bị lỗi.

 Kiểm soát lặp gói tin (duplicate handling)

 Thêm vào gói tin trường số thứ tự (sequence number).

 Căn cứ vào số thứ tự gói tin, receiver bỏ qua những gói tin bị lặp.

 Sender sẽ không gửi gói tin tiếp theo nếu như chưa chắc chắn receiver nhận được gói trước đó (stop and wait protocol).

Trang 26

RDT2.1: sender, handles garbled ACK/NAKs

Wait for call 0 from above

sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt)

rdt_send(data)

Wait for ACK or NAK 0 udt_send(sndpkt)

Wait for ACK or NAK 1

Λ Λ

Trang 27

RDT2.1: receiver, handles garbled ACK/NAKs

Wait for

0 from below

sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt)

rdt_rcv(rcvpkt) &&

not corrupt(rcvpkt) &&

has_seq0(rcvpkt)

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt)

extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)

Wait for

1 from below

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt)

extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)

rdt_rcv(rcvpkt) &&

(corrupt(rcvpkt)

sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)

Trang 28

RDT2.2: a NAK-free protocol

Wait for call 0 from above

sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt)

sender FSM fragment

Wait for

0 from below

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt)

extract(rcvpkt,data) deliver_data(data)

Λ

Trang 29

RDT3.0: channels with errors and loss

 Tầng dưới:

 Có thể có lỗi.

 Có thể gây mất mát gói tin.

 Giải pháp:

 Sender truyền lại gói tin nếu như chờ ACK một thời

gian nhất định nào đó mà không thấy (cần countdown timer).

 Nếu ACK hay gói tin chỉ bị chậm thôi?

Trang 30

RDT3.0 sender

sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt)

start_timer rdt_send(data)

Wait for ACK0

rdt_rcv(rcvpkt) &&

( corrupt(rcvpkt) ||

isACK(rcvpkt,1) )

Wait for call 1 from above

sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt)

start_timer rdt_send(data)

udt_send(sndpkt) start_timer

Wait for ACK1

Λ

rdt_rcv(rcvpkt)

Λ Λ

Λ

Trang 31

RDT3.0 in action

Trang 32

RDT3.0 in action (cont)

Trang 33

Ch1 The Transport Layer Protocol

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

Trang 34

TCP Overview

 Transmission Control Protocol [RFCs: 793,1122,

1323, 2018, 2581]

 Point-to-point: 1 sender, 1 receiver.

 Giao thức tin cậy (reliable).

 Kiểm soát luồng (flow control).

 Kiểm soát nghẽn mạng (congestion control).

 full duplex: truyền nhận trên cùng một liên kết.

 send/receive buffers

Trang 35

TCP segment structure

32 bits

application data (variable length)

sequence number acknowledgement number

rcvr window size ptr urgent data checksum

F S R P A U

head len used not

Options (variable length)

URG: urgent data

(generally not used)

to accept

counting

by bytes

of data (not segments!)

Internet checksum (as in UDP) Header length

(by 32-bit word)

Trang 36

TCP: Reliable Data Transfer (retransmission)

Trang 37

TCP flow control

 Các apps có thể xử lý dữ liệu chậm, các gói tin nhận về được đưa vào bộ đệm (receiver buffer).

 Flow control: kiểm soát không để cho receiver buffer bị tràn vì

sender gửi nhiều gói tin quá.

 Receiver: Thông báo cho sender biết kích thước của RcvWidow

(free buffer): trường rcv window size trong TCP segment headers.

 Sender: Luôn nắm được kích thước tối đa của gói tin có thể truyền tiếp.

Trang 38

Three way handshaking:

 Bước 1: client gửi TCP

SYN control segment tới

server.

Bước 2: server nhận SYN

segment rồi trả lời bằng SYNACK segment.

 Bước 3: client nhận

SYNACK segment và trả

lời bằng ACK segment (có

thể có dữ liệu đi kèm).

Trang 39

TCP Connection management: ngắt liên kết

 Bước 1: client (phía muốn

ngắt liên kết) gửi TCP FIN

segment.

 Bước 2: server (phía còn

lại) nhận được FIN, gửi

ACK, ngắt liên kết, gửi

tiếp FIN segment.

 Bước 3: client nhận FIN,

trả lời bằng ACK timed

wait (chờ một lúc nữa cho

tới khi liên kết đóng hẳn).

 Bước 4: server nhận ACK,

Trang 40

Ch1 The Transport Layer Protocol

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

Trang 41

Congestion control

 Nghẽn mạng là điều khó tránh khỏi!!!

 Khi mạng bị nghẽn, các gói tin có thể bị trễ hay bị mất.

 Hai hướng tiếp cận:

 End-end congestion control: Thông tin về mức độ nghẽn mạng được suy ra từ lượng tin bị mất mát trong quá trình truyền.

 Network-assited congestion control: Routers cung cấp các thông tin phản hồi về tình trạng nghẽn mạng tới end systems.

 Bit thông báo nghẽn mạng  đừng gửi nữa hoăc xin chờ một lát.

 Tốc độ tối đa cho phép gửi (maximum rate allowed).

 TCP sử dụng phương pháp end-end congestion control.

Trang 42

Ch1 The Transport Layer Protocol

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

5 Connection-oriented Transport (TCP).

6 Congestion Control.

7 Sử dụng TCP hay UDP

Trang 43

 Không giới hạn tốc độ truyền.

Ngày đăng: 09/08/2014, 14:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w