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

Chương 3. Giao thức tầng giao vận (transport layer) ĐH CNTT

22 586 2

Đ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 22
Dung lượng 675,01 KB

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

Nội dung

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

Trang 1

Chương 3.

Giao thức tầng giao vận (transport layer)

Mạng Máy Tính

Nguyễn Duy Khoa Mạng Máy Tính và Truyền Thông Trường ĐH Công Nghệ Thông Tin

Trang 2

duyn@uit.edu.vn 9/30/2011

Ch3 The Transport Layer

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.

3 of 44

Transport Layer Services & Principles

thông logic (logical communication) giữa các applications.

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

Trang 3

duyn@uit.edu.vn 9/30/2011

Transport & Network layers

 Tạo phương thức truyền thông logic giữa các ứng dụng (application/process).

 Nhận các gói tin từ tầng Network gửi lên.

5 of 44

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 4

duyn@uit.edu.vn 9/30/2011

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

được chia nhỏ và đóng thành các segments.

gửi tới apps tương ứng (P3, P4).

applicationtransportnetwork

applicationtransportnetworkreceiver

Ht

Hn segment

segment M

applicationtransportnetwork

application-layerdata

Trang 5

duyn@uit.edu.vn 9/30/2011

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

 source port number: ứng dụng gửi dữ liệu.

 destination port number:

ứng dụng nhận dữ liệu.

 Port number:

 0-1023: well-known port number (đã được giữ cho các apps phổ biến).

 1024 – 65535.

source port # dest port #

32 bits

application data (message) other header fields

TCP/UDP segment format

9 of 44

Mux/demux: Ví dụ

host A source port: xdest port: 23 server B

source port:23dest port: x

port use: simple telnet app

Web client host A

Web server B

Web client host C

Source IP: CDest IP: Bsource port: xdest port: 80

Source IP: CDest IP: Bsource port: ydest port: 80

port use: Web server

Source IP: ADest IP: Bsource port: xdest port: 80

Trang 6

duyn@uit.edu.vn 9/30/2011

Ch3 The Transport Layer

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.

11 of 44

Connectionless Transport (UDP).

 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.

luôn “cố gắng hết sức” để giảm thiểu.

 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 7

duyn@uit.edu.vn 9/30/2011

UDP: Segment structure

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

13 of 44

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 8

duyn@uit.edu.vn 9/30/2011

UDP checksum: example

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.

15 of 44

Ch3 The Transport Layer

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 9

duyn@uit.edu.vn 9/30/2011

Principles of Reliable Data Transfer (RDT)

10 list of important networking topics).

17 of 44

RDT

send side

receive side

rdt_send(): called from above, (e.g., by app.) Passed data to deliver to receiver upper layer

Trang 10

duyn@uit.edu.vn 9/30/2011

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

19 of 44

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 above packet = make_pkt(data)

udt_send(packet)

rdt_send(data)

extract (packet,data)deliver_data(data)

Wait for call from below

rdt_rcv(packet)

Trang 11

duyn@uit.edu.vn 9/30/2011

RDT2.0: channel with bit errors

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

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!)

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

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

Wait for call from below

sender

receiver

rdt_send(data)

Trang 12

duyn@uit.edu.vn 9/30/2011

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

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

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

Wait for call from belowrdt_send(data)

Trang 13

duyn@uit.edu.vn 9/30/2011

RDT2.0: problems

 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.

 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).

25 of 44

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 14

duyn@uit.edu.vn 9/30/2011

RDT2.1: receiver, handles garbled ACK/NAKs

Wait for

0 from below

sndpkt = make_pkt(NAK, 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)

rdt_rcv(rcvpkt) &&

not corrupt(rcvpkt) &&

has_seq1(rcvpkt)rdt_rcv(rcvpkt) && (corrupt(rcvpkt)

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

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

27 of 44

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)

sndpkt = make_pkt(ACK1, chksum)

rdt_rcv(rcvpkt) &&

(corrupt(rcvpkt) ||

has_seq1(rcvpkt)) udt_send(sndpkt)

receiver FSM fragment

Trang 15

duyn@uit.edu.vn 9/30/2011

RDT3.0: channels with errors and loss

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

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_timerrdt_send(data)

udt_send(sndpkt)start_timertimeout

udt_send(sndpkt)start_timertimeout

rdt_rcv(rcvpkt)

Wait for call 0from above

Wait for ACK1

Trang 16

duyn@uit.edu.vn 9/30/2011

RDT3.0 in action

31 of 44

RDT3.0 in action (cont)

Trang 17

duyn@uit.edu.vn 9/30/2011

Ch3 The Transport Layer

1 Transport Layer Services & Principles.

2 Multiplexing/Demultiplexing.

3 Connectionless Transport (UDP).

4 Principles of Reliable Data Transfer (RDT).

 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 socket

door

TCP send buffer

TCP receive buffer

socket door

segment application application

reads data

Trang 18

duyn@uit.edu.vn 9/30/2011

TCP segment structure

source port # dest port #

32 bits

application data (variable length)

sequence number acknowledgement number

rcvr window size ptr urgent data checksum

FSRPA

headlen

notused

Options (variable length)

URG: urgent data (generally not used) ACK: ACK # valid

PSH: push data to app immediately (generally not used) RST, SYN, FIN:

connection estab (setup, teardown commands)

# bytes rcvr willing

to accept

counting

by bytes

of data (not segments!)

Internet checksum (as in UDP)

Header length (by 32-bit word)

Trang 19

duyn@uit.edu.vn 9/30/2011

Three way handshaking:

SYN control segment tới

server.

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

SYNACK segment và trả lời bằng ACK segment (có

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

Trang 20

duyn@uit.edu.vn 9/30/2011

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

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

lại) nhận được FIN, gửi ACK, ngắt liên kết, gửi tiếp FIN segment.

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).

Ch3 The Transport Layer

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 21

duyn@uit.edu.vn 9/30/2011

Congestion control

 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).

41 of 44

Ch3 The Transport Layer

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 22

duyn@uit.edu.vn 9/30/2011

Streaming multimedia proprietary typically UDP Internet telephony proprietary typically UDP

Ngày đăng: 10/02/2017, 06:02

TỪ KHÓA LIÊN QUAN

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