Professional Documents
Culture Documents
3-4
Các giao thức tầng transport trên
Internet
Tin cậy, truyền theo thứ tự application
transport
(TCP) network
data link
physical
kiểm soát tắc nghẽn network
data link
network
physical
kiểm soát dòng chảy data link
physical
dụng:
Đản bảo về chậm trễ
Đảm bảo về băng thông
3-5
Ứng dụng và dịch vụ giao vận
3-6
Nội dung:
4.1 Dịch vụ tầng giao 4.5 Vận chuyển hướng
vận kết nối: TCP
4.2 Multiplexing and Cấu trúc segment
demultiplexing (Ghép Truyền dữ liệu tin cậy
Giao thức
ứng dụng
HTTP FTP Chat HTTP FTP Chat
Giao thức
Multiplexing Demultiplexing
giao vận
= socket = process
application P3 P1
P1 application P2 P4 application
host 2 host 3
host 1
Demultiplexing hoạt động ntn?
3-10
Demultiplexing phi kết nối
Khi máy chủ nhận được phân
Tạo socket với số cổng:
đoạn UDP:
DatagramSocket mySocket1 = new
DatagramSocket(12534); Kiểm tra số cổng đích trong
DatagramSocket mySocket2 = new segment
DatagramSocket(12535); Hướng phân đoạn UDP đến
đúng với số cổng của socket đó
UDP socket được xác định bởi 2
yếu tố: Các khung dữ liệu
(dest IP address, dest port number) (datagram) IP với các địa chỉ
IP khác nhau cũng được
chuyển đến cùng 1 socket tại
máy đích.
3-11
Demultiplexing phi kết nối: ví dụ
DatagramSocket serverSocket = new DatagramSocket(6428);
P2 P3 P1
P1
3-13
Demux hướng kết nối: ví dụ
P1 P4 P5 P6 P2 P1P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
SP: 5775
DP: 80
S-IP: B
D-IP:C
3-17
UDP: segment header
3-18
UDP: segment header
source port và destination port(đều 32 bits
16 bit): cho phép định danh một
session của một ứng dụng nào đó source port # dest port #
chạy trên UDP. Có thể coi port chính
length checksum
là địa chỉ của tâng Transport
UDP length(16 bit): cho biết chiều
dài của toàn bộ UDP datagram tổng
cộng bao nhiêu byte. (16 bit thì sẽ
có tổng cộng 2^16 byte = 65536 giá
trị (từ 0 -> 65535 byte)). Application
UDP checksum(16 bit): sử dụng data
thuật toán mã vòng CRC để kiểm lỗi (message)
cho toàn bộ UDP datagram và chỉ
kiểm tra một cách hạn chế
Data: dữ liệu tầng trên được đóng UDP segment format
gói vào UDP datagram đang xét.
3-19
UDP checksum
Mục tiêu: phát hiện “lỗi”trong các segment đã được truyền
3-20
Checksum: ví dụ
Note
Khi cộng các số, bit nhớ ở phía cao nhất cần được
thêm vào kết quả
Ví dụ: công 2 số nguyên 16 bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Bit dư 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
Tổng 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
Các vấn đề của UDP
3-26
TCP cung cấp dịch vụ tin cậy ntn?
Kiểm soát dữ liệu đã được nhận chưa:
Seq. #
ACK
Chu trình làm việc của TCP
Thiết lập liên kết
Bắt tay 3 bước
Truyền/nhận dữ liệu
Đóng kết nối
3-27
Cấu trúc TCP header
32 bits
URG: dữ liệu khẩn cấp Đếm bằng bytes
(thường không dùng) source port # dest port #
dữ liệu
sequence number (not segments!)
ACK: ACK #
Hợp lệ acknowledgement number
head not
PSH: đẩy dữ liệu len used U A P R S F Receive window
(thường không dung) # số bytes bên
checksum Urg data pnter
nhận sẵn
RST, SYN, FIN: sàng nhận
Options (độ dài thay đổi)
Thiết lập kết nối
(setup, teardown
commands)
Dữ liệu ứng dụng
Internet (variable length)
checksum
(giống như UDP)
Cấu trúc TCP header
32 bits
❑ Source port và destination port (đều
dài 16 bit): được sử dụng để định source port # dest port #
danh cho session của giao thức nào sequence number
đó trên lớp ứng dụng đang được
acknowledgement number
truyền tải trong TCP segment đang head not
xét len used U A P R S F Receive window
❑ Sequence number (32 bit): dùng để checksum Urg data pnter
đánh số thứ tự gói tin (từ số
Options (độ dài thay đổi)
sequence nó sẽ tính ra được số byte
đã được truyền).
❑ Acknowledge number (32 bit): : dùng Dữ liệu ứng dụng
để báo đã nhận được gói tin nào và (variable length)
mong nhận được byte mang số thứ
tự nào tiếp theo.
❑ Header length (4 bit): cho biết toàn
bộ header dài bao nhiêu tính theo
đơn vị word(1 Word = 4 byte).
Cấu trúc TCP header
32 bits
❑ Các bit reserverd (4 bit): đều được
thiết lập bằng 0 source port # dest port #
❑ Các bit control (9 bit): các bit dùng sequence number
để điều khiển cờ (flag) ACK, cờ
acknowledgement number
Sequence ... head not
❑ Window size (16 bit): số lượng byte len used U A P R S F Receive window
được thiết bị sẵn sàng tiếp nhận checksum Urg data pnter
❑ Checksum (16 bit): kiểm tra lỗi của
Options (độ dài thay đổi)
toàn bộ TCP segment
❑ Urgent pointer (16 bit): sử dụng
trong trường hợp cần ưu tiên dữ liệu Dữ liệu ứng dụng
❑ Options (tối đa 32 bit): cho phép (variable length)
thêm vào TCP các tính năng khác
❑ Data: dữ liệu của lớp trên
Cơ chế báo nhận: TCP seq. #’s and
ACKs
Seq.#: Host A Host B
Số hiệu của byte
User
đầu tiên của gói tin types
trong dòng dữ liệu ‘C’ host ACKs
receipt of
ACKs: ‘C’, echoes
Số hiệu byte mong back ‘C’
muốn nhận từ đối
host ACKs
tác
receipt
Ngầm xác nhận đã of echoed
nhận tốt các byte ‘C’
trước đó.
time
simple telnet scenario
Nội dung:
4.1 Dịch vụ tầng giao 4.5 Vận chuyển hướng
vận kết nối: TCP
4.2 Multiplexing and Cấu trúc segment
demultiplexing (Ghép Truyền dữ liệu tin cậy
Receiver Sender
ACK ACKs
Stop-and-wait Pipeline
3-33
So sánh hiệu quả
sender receiver
0
L/R L/R
RTT RTT
RTT + L / R
RTT + L / R
time time
L: Size of data pkt time time
R: Link bandwidth
RTT: Round trip time 3*L/R
L/R Performance =
Performance =
RTT + L / R RTT + L / R
Nội dung:
4.1 Dịch vụ tầng giao 4.5 Vận chuyển hướng
vận kết nối: TCP
4.2 Multiplexing and Cấu trúc segment
demultiplexing (Ghép Truyền dữ liệu tin cậy
closed
3-38
Quản lý kết nối TCP
3-39
TCP server
lifecycle
TCP client
lifecycle
Nội dung:
4.1 Dịch vụ tầng giao 4.5 Vận chuyển hướng
vận kết nối: TCP
4.2 Multiplexing and Cấu trúc segment
demultiplexing (Ghép Truyền dữ liệu tin cậy