Ôn tập cuối kỳ I Nhập môn mạng máy tính • Nguyễn Thành Nhân MMTT2022.2 • Nguyễn Phi Học KTPM2022.1 • Lê Hoàng Vũ MMTT2022.3 1 Nội dung ôn tập 01. Giới thiệu Tầng ứng dụng Tầng vận chuyển 04. Tầng mạng Tầng liên kết Giải bài tập 2 III.TẦNG VẬN CHUYỂN 1.TCP là gì? • TCP(Transmission Control Protocol) là một giao thức mạng quan trọng được sử dụng trong việc truyền dữ liệu qua mạng. • TCP đảm bảo rằng các byte được truyền theo thứ tự mà chúng được gửi mà không có lỗi hoặc thiếu sót nào.TẦNG VẬN CHUYỂN 1.Cấu trúc của TCP - Source port (16 bit): Số cổng của thiết bị gửi.
- Destination port (16 bit): Số cổng của thiết bị nhận. - Sequence number (32 bit): Dùng để đánh số thứ tự gói tin. - Acknowledgment number (32 bit): Dùng để báo đã nhận được gói tin nào và mong nhận được byte mang số thứ tự nào tiếp theo.TẦNG VẬN CHUYỂN 1.Cấu trúc của TCP - Flags (9 bit): Được sử dụng để thiết lập kết nối, gửi dữ liệu và chấm dứt kêt nối. + URG: Ưu tiên dữ liệu này hơn các dữ liệu khác.
+ ACK: Được sử dụng để xác nhận. + PSH: Segment yêu cầu chức năng push. + RST: Thiết lập lại kết nối. + SYN: Được sử dụng để đặt số thứ tự ban đầu.
+ FIN: Kết thúc kết nối TCP. - Windows (16 bit): Số lượng byte được thiết bị sẵn sàng tiếp nhận. - Urgent pointer (16 bit): Sử dụng trong trường hợp cần ưu tiên dữ liệu. - Checksum (16 bit): Kiểm tra lỗi của toàn bộ TCP - Options (tối đa 32 bit): Cho phép thêm vào TCP các tính năng khác.TẦNG VẬN CHUYỂN 1.Cấu trúc của TCP 6 III.TẦNG VẬN CHUYỂN 1.TCP truyền dữ liệu đáng tin cậy -Truyền theo thứ tự: Sequence number, ACK -Truyền lại: +Segment lỗi: ACK +Segment mất: timeout 7 III.TẦNG VẬN CHUYỂN 1.TCP truyền dữ liệu đáng tin cậy -Trong đó: + EstimatedRTT: RTT ước tính + SampleRTT: RTT mẫu +DevRTT: biên độ an toàn +TimeoutInterval: khoảng thời gian chờ +Giá trị tiêu biểu : α=0.125 +Thông thường β=0.TẦNG VẬN CHUYỂN 1.TCP truyền dữ liệu đáng tin cậy - Sự kiện tại bên gửi: khi timeout - Sự kiện tại bên gửi: khi nhận dữ liệu từ tầng + Gửi lại segment bị timeout application +Bắt đầu tính lại thời gian + Tạo segment với STT seq # +seq #: STT của byte đầu tiên trong segment +Bắt đầu tính thời gian với segment cũ nhất - Sự kiện tại bên gửi: khi nhận được ACK + Nếu ACK xác nhận cho các segment chưa được ACK.
+Cập nhật trạng thái. +tính thời gian với các segment chưa được ACK.TẦNG VẬN CHUYỂN 1.TCP truyền dữ liệu đáng tin cậy 10 III.TẦNG VẬN CHUYỂN 1.TCP truyền dữ liệu đáng tin cậy 11 III.TẦNG VẬN CHUYỂN 1.TCP truyền dữ liệu đáng tin cậy 12 III.TẦNG VẬN CHUYỂN 1.TCP điều khiển luồng 13 III.TẦNG VẬN CHUYỂN 1.TCP điều khiển luồng - Bên gửi thông báo bộ đệm trống bằng thông tin rwnd trong TCP header. - Bên gửi giới hạn lượng dữ liệu được gửi khi nhận được rwnd để đảm bảo bên nhận không bị quá tải.TẦNG VẬN CHUYỂN 1.TCP điều khiển luồng - Bên gửi thông báo bộ đệm trống bằng thông tin rwnd trong TCP header. - Bên gửi giới hạn lượng dữ liệu được gửi khi nhận được rwnd để đảm bảo bên nhận không bị quá tải.TẦNG VẬN CHUYỂN 1.TCP bắt đầu kết nối bằng bắt tay 3 bước - Trước khi trao đổi dữ liệu, bên gửi/bên nhận “handshake – bắt tay”: + Đồng ý thiết lập kết nối (mỗi bên đều biết bên kia sẵn sàng thiết lập kết nối) + Đồng ý về các thông số kết nối (ví dụ: bắt đầu từ seq #s) 16 III.TẦNG VẬN CHUYỂN 1.TCP đóng kết nối -Client, server đóng kết nối cho mỗi bên +Gửi TCP segment có FIN bit = 1 -Phản hồi khi nhận segment có FIN với ACK + Khi nhận FIN, ACK có thể kết hợp với FIN của nó + có thể xử lý các trao đổi FIN đồng thời 17 III.TẦNG VẬN CHUYỂN 1.
Giả sử rằng giá trị ước tính hiện tại estimatedRTT = 240 ms và độ lệch RTT DevRTT = 10ms, ba giá trị đo tiếp theo của RTT lần lượt là 360, 320 và 390. Tính giá trị mới của estimatedRTT, DevRTT và TCP timeout sau mỗi ba giá trị RTT đo được này. Sử dụng các giá trị của α = 0,125 và β = 0,25.TẦNG VẬN CHUYỂN 1.Ôn tập Giả sử rằng giá trị ước tính hiện tại estimatedRTT = 240 ms và độ lệch RTT DevRTT = 10ms, ba giá trị đo tiếp theo của RTT lần lượt là 360, 320 và 390. Tính giá trị mới của estimatedRTT, DevRTT và TCP timeout sau mỗi ba giá trị RTT đo được này.
Sử dụng các giá trị của α = 0,125 và = 0,25. RTT thứ nhất: estimatedRTT= 255 ms, DevRTT= 37.5 ms, TCP timeout= 280 ms RTT thứ hai: estimatedRTT= 250 ms, DevRTT= 27.5 ms, TCP timeout= 280 ms RTT thứ ba: estimatedRTT= 258.75 ms, DevRTT= 45 ms, TCP timeout= 280 ms 19 III.TẦNG VẬN CHUYỂN 1. Tính SEQ và ACK 20 III.TẦNG VẬN CHUYỂN 1. Tính SEQ và ACK ở gói tin cuối Đáp án: Seq= 92, ACK=109 21 III.TẦNG VẬN CHUYỂN 2.TCP điều khiển tắc nghẽn -Ký hiệu + Cwnd(n) - congestion windows: số segment được gửi trong cùng một window.
+ Ssthresh (slowstart threshold): ngưỡng kết thúc giai đoạn slowstart và chuyển sang congestion avoidance. Slow start -khi bắt đầu, tăng tốc độ theo cấp số nhân cho đến khi xảy ra sự kiện mất đầu tiên : + Ban đầu cwnd = 1 MSS. + Nhân đôi cwnd sau mỗi RTT. + được thực hiện bằng cách tăng cwnd cho mỗi ACK nhận được.TẦNG VẬN CHUYỂN 2.TCP điều khiển tắc nghẽn 23 III.TẦNG VẬN CHUYỂN 2.Ôn tập tắc nghẽn gói tin: Câu 1: Thời điểm nào bên gửi nhận ra có sự tắc nghẽn do nhận được 3 ACKs trùng? A.TẦNG VẬN CHUYỂN 2.Ôn tập tắc nghẽn gói tin: Câu 1: Thời điểm nào bên gửi nhận ra có sự tắc nghẽn do nhận được 3 ACKs trùng? A.TẦNG VẬN CHUYỂN 2.Ôn tập tắc nghẽn gói tin: Câu 2: Giá trị ssthresh tại thời điểm t=24 là bao nhiêu? A.TẦNG VẬN CHUYỂN 2.Ôn tập tắc nghẽn gói tin: Câu 2: Giá trị ssthresh tại thời điểm t=24 là bao nhiêu? A.TẦNG VẬN CHUYỂN 2.Ôn tập tắc nghẽn gói tin: Câu 3: Xác định giai đoạn Slow Start.
Tất cả đều đúng 28 III.TẦNG VẬN CHUYỂN 2.Ôn tập tắc nghẽn gói tin: Câu 3: Xác định giai đoạn Slow Start. Tất cả đều đúng 29 Nội dung ôn tập 01. Giới thiệu Tầng ứng dụng Tầng vận chuyển 04. Tầng mạng Tầng liên kết Giải bài tập 30 Giới thiệu Forwarding và Routing Tầng mạng có 2 chức năng chính + Forwarding (chuyển tiếp): di chuyển các gói tin từ đầu vào đến đầu ra thích hợp của router + Routing (định tuyến): xác định đường đi cho gói tin từ nguồn tới đích => Thuật toán định tuyến lựa chọn đường đi tốt nghiệp giữa 2 đầu cuối dựa vào bảng chuyển tiếp trong mỗi router trong network 31 Internet Protocol (IP) Cấu trúc gói tin giao thức IP 32 Internet Protocol (IP) Cấu trúc gói tin giao thức IP 33 Phân mảnh và tổng hợp IP - Các đường link mạng khác nhau có kích thước frame lớn nhất (MTU) có thể gửi khác nhau - Các IP datagram lớn cần được phân mảnh tại nơi gửi và tổng hợp lại trước khi gửi cho bên nhận 34 Phân mảnh và tổng hợp IP Các trường Identification, Flag và Fragmentation offset hỗ trợ trong việc phân rã và tổng hợp IP datagram + Identification: Khi một gói tin IP được tạo, bên gửi sẽ đánh dấu bằng số ‘identification’ và địa chỉ gửi/nhận.
Với mỗi lần gói tin được phân mảnh, trường Identification của gói tin phân mảnh sẽ giống với trường Identification của gói tin gốc + Flag: Đối với gói tin IP được phân mảnh cuối cùng, flag bit được đặt bằng 0. Các gói tin phân mảnh còn lại có flag bằng 1 + Fragmentation offset: Được sử dụng để xác định vị trí gói tin phân mảnh trong gói tin gốc và kiểm tra mất mát gói tin (offset * 8 = vị trí cần ghép vào) 35 Phân mảnh và tổng hợp IP Ví dụ: Cần gửi một datagram có kích thước 2400 byte qua một đường link có MTU bằng 700 byte. Biết trường ‘Identification’ của datagram gốc có giá trị 422. Hỏi có bao nhiêu phân mảnh được tạo ra? Giá trị của các trường liên quan tới việc phân mảnh của mỗi gói tin? Datagram gốc: Datagram gốc có kích thước 2400 byte => 20 byte header và 2380 byte data Đường link có MTU bằng 700 byte => 20 byte header và 680 byte data Số phân mảnh được tạo ra = ⌈2380/680⌉ = 4 36 Phân mảnh và tổng hợp IP Ví dụ: Giả sử đường link giữa host A và B giới hạn datagram có kích thước tối đa 1500 byte (header + data).
Biết header IP datagram có kích thước 20 byte, cần bao nhiêu datagram để gửi gói tin MP3 có kích thước 5 * 106 byte Cần gửi gói tin MP3 => Sử dụng giao thức TCP => Datagram gồm 20 byte header IP và 20 byte header TCP, còn lại 1460 byte dữ liệu MP3 => Số datagram cần tạo: ⌈ 5 * 106 / 1460⌉ = 3425 datagram Các datagram có kích thước 1500 byte Datagram cuối có kích thước 1000 byte Lưu ý: không xảy ra phân mảnh IP datagram do các datagram đều nhỏ hơn hoặc bằng MTU của đường link => Các datagram có trường identification khác nhau 37 Địa chỉ IPv4 Mỗi địa chỉ IP có độ dài 32 bit (4 byte) chia thành 4 cụm 8 bit (gọi là các octet) dùng để phân biệt các host, router interface - Interface: Kết nối giữa host/router và đường kết nối vật lý + Router thường có nhiều interface + Host thường có 1 hoặc 2 interface => Mỗi địa chỉ được kết nối với mỗi interface - Được biểu diễn dưới dạng dotted – decimal – notation, mỗi byte của địa chỉ IP được viết dưới dạng số thập phân và chia cách bằng dấu “.” VD: Địa chỉ IPv4 có dạng nhị phân “11000001 00100000 11011000 00001001” có thể được viết lại thành “193.9” 38 Địa chỉ IPv4 39 Subnet 40 Subnet Địa chỉ IP được chia làm 2 phần: - Subnet: các bit bên trái - Host: các bit bên phải Subnet là các interface của thiết bị có phần subnet của địa chỉ IP giống nhau Các thiết bị trong cùng một subnet có thể giao tiếp vật lý với nhau mà không cần router trung gian can thiệp Phương pháp xác định subnet: - Tách mỗi interface từ host hoặc router của nó, tạo thành vùng các mạng độc lập - Mỗi mạng độc lập được gọi là một subnet 41 Subnet 42 Phân lớp địa chỉ IPv4 43 Classless InterDomain Routing (CIDR) Sử dụng thay thế cho phương pháp phân lớp địa chỉ IP Đặc điểm: - Phần subnet có độ dài bất kỳ - Định dạng địa chỉ: a.