• Tại một thời điểm có nhiều process cùng sử dụng dịch vụ của tầng transport => để phân biệt, mỗi process được nhận diện bằng một số nguyên :.. Port number.[r]
(1)Chương 6
Transport Layer
Tài liệu : Forouzan , Data Communication and Networking
(2)Transport Layer Nội dung
• Đặc trưng tầng transport
– Port number
– Multiplexing Demultiplexing
– Connectionless Service Connection-Oriented Service
– Unreliable Reliable
• Giao thức UDP
(3)Transport Layer
• Nằm tầng Application Network
• Chịu trách nhiệm chuyển message từ process tới process khác
• Tầng Transport thực :
– Xác định process nguồn process đích
– Phân chia message đầu gửi thành segment, sau ghép nối lại đầu nhận Gán sequence number cho segment
– Thực chuyển packets chế độ connection-oriented connectionless
(4)• Tầng Transport thực truyền process-to-process
– Khác biệt với host-to-host tầng Network
Client Process Server Process
(5)Port number
• Tại thời điểm có nhiều process sử dụng dịch vụ tầng transport => để phân biệt, mỗi process nhận diện số nguyên :
Port number
• Một process host nhận diện :
IP address : Port number
(hay gọi socket address)
(6)Port number
• Port number mơ hình Internet
– Một số ngun 16bit (0-65535)
– Port number client process là số phát sinh ngẫu nhiên khoảng 49152 – 65535 (qui định
của IANA)
– Port number server process là số nguyên
ấn định trước, nằm khoảng 0 - 1023 (qui định IANA) , gọi well-known port
(7)Port number • Nhận xét :
– Port number client process : chương trình máy gửi phát sinh ngẫu nhiên tạm thời, sử dụng lần kết nối
– Port number server process : cần phải phổ biến, ấn định công bố trước, tồn lâu dài
(8)(9)Port number
Gán cho Server Processes
port port
Sử dụng cho Client Processes
(10)(11)Multiplexing Demultiplexing • Multiplexing
– Tại thời điểm , giao thức tầng transport có khả nhận message nhiều process khác (từ tầng application)
Mỗi segment thêm header có chứa port number process mà segment thuộc
• Demultiplexing
– Ở bên nhận, tầng transport nhận message thuộc nhiều process, nhận diện chuyển giao message đến process mà thuộc về, dựa port number
(12)(13)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 truyền data
– Không xác định kết thúc truyền data
– Packet không đánh số
• Connection-Oriented Service – có kết nối
– Thiết lập kết nối trước truyền data
– Kết thúc kết nối sau trao đổi data hoàn tất
– Packet đánh số
Connectionless Service Độc lập packet
(14)Reliable Unreliable • Unreliable – khơng tin cậy
– Packet khơng đánh số
– Khơng có phản hồi từ phía nhận
– Khơng cung cấp kiểm sốt luồng kiểm sốt lỗi
Packet đến trễ, mất, đến không thứ tự
Dịch vụ nhanh đơn giản
• Reliable - tin cậy
– Packet đánh số
– Có phản hồi từ phía nhận
– Cung cấp chế kiểm soát luồng kiểm soát lỗi
Packet không mất, thứ tự
(15)Giao thức UDP TCP
UDP TCP
Connectionless Unreliable
Connection-Oriented Reliable
(16)UDP
(The User Datagram Protocol) • UDP giao thức connectionless unreliable
– Không kết nối khơng kết thúc khơng có mối liên hệ datagram process
– Datagram không đánh số
– Khơng tin cậy : datagram mất, trùng lặp không đến thứ tự
– Flow error control : có checksum
• Dịch vụ nhanh đơn giản, phù hợp với ứng
(17)UDP
(The User Datagram Protocol) • Cấu trúc User Datagram
(18)UDP
(19)UDP
(The User Datagram Protocol)
(20)TCP • Nội dung tìm hiểu :
Cấu trúc segment
Kết nối TCP
(21)TCP segment
(22)TCP segment
• Source port address Destination port address :
vùng có kích thước 16 bit, chứa số source port 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 data truyền segment
• Acknowledgment number : vùng chứa ACK number
này có kích thước 32 bit, chứa sequence number segment mà bên nhận chờ gửi tới
• Header length : kích thước bit, lưu độ lớn TCP
header
(23)TCP segment
• Control : vùng chứa bit điều khiển Một hay nhiều bit bật thời điểm Trạng thái bit dùng để điều khiển
luồng, thiết lập ngắt kết nối, báo hiệu mode truyền data…
(24)Kết nối TCP
• Một kết nối TCP gồm giai đoạn :
– thiết lập kết nối
– chuyển liệu
– kết thúc kết nối
Sử dụng loại segment :
(25)Kết nối TCP
Thiế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
(26)Kết nối TCP
Thiết lập kết nối
• Tấn công SYN Flooding
Làm sập server, cách gửi số lượng lớn các SYN segment từ nhiều địa IP khác
(27)Kết nối TCP
Truyền data
• Truyền data bắt đầu sau kết nối thiết lập (sau bước bắt tay)
• Client/Server gửi data segment
Server/Client gửi trả lại segment báo nhận , hay ACK segment
(28)Kết nối TCP Truyền data • Mỗi data segment , bao gồm :
• data
• Sequence number
• ACK number
• Mỗi ACK segment , bao gồm :
(29)Kết nối TCP
Truyền data
– Mỗi byte data truyền kết nối được đánh số
– Data : Một chuỗi byte liệu
– Sequence number : số thứ tự byte segment
• Sequence number segment data phiên kết nối số phát sinh ngẫu nhiên , khác biệt hướng truyền
– ACK number : thông tin xác nhận – số thứ tự byte mà mong chờ nhận tiếp
(30)(31)• Cần truyền file 5000 byte, byte đánh số 15001 => liệt kê sequence number segment file truyền 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
(32)(33)Kết nối TCP
Đóng kết nối
Bất kỳ bên đóng kết nối mặcdù thường từ client
TCP sử dụng 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)
(34)(35)• Đóng kết nối : Half-Close
(36)Kiểm soát lỗi
• TCP sử dụng cơng cụ để kiểm soát sửa lỗi:
– Checksum
– Acknowledgment
(37)Kiểm sốt lỗi
• TCP sử dụng chế Retransmission để gửi lại các segment bị mất, hỏng, hay trễ
• Truyền lại xảy đếm thời gian hết hạn (timeout) nhận ba lần tín hiệu ACK
(38)(39)(40)(41)41
(42)(43)(44)(45)(46)• Liệt kê port mở
(47)• Xem địa IP
nslookup vnexpress.net