gửi dữ liệu cho đến khi nó chắc chắn rằng phía nhận đã nhận đúng gói dữ liệu đã gửi.3.môi trường truyền tin có lỗi bit và mất gói tin Dữ liệu trên kênh truyền không những bị lỗi mà còn c
Trang 1Câu 1: Mô hình OSI và chức năng của từng từng và so sánh TCP và OSI:
Tầng 7: Tầng ứng dụng (Application layer) Nó cung cấp phươngtiện cho người dùng truy nhập các thông tin và dữ liệu trên
mạng thông qua chương trình ứng dụng Một số ví dụ về các ứng dụng trong tầng này bao gồm Telnet, giao thức truyền tập tin FTP và giao thức truyền thư điện tử SMTP, DNS …
Tầng 6: Tầng trình diễn (Presentation layer) Tầng trình diễn biếnđổi dữ liệu để cung cấp một giao diện tiêu chuẩn cho tầng ứng dụng Nó thực hiện các tác vụ như mã hóa dữ liệu, nén dữ liệu Tầng 5: Tầng phiên (Session layer) Tầng phiên kiểm soát các (phiên) hội thoại giữa các máy tính Tầng này thiết lập, quản lý
và kết thúc các kết nối giữa trình ứng dụng địa phương và trình ứng dụng ở xa Tầng 4: Tầng giao vận (Transport Layer) Tầng giao vận cung cấp dịch vụ chuyên dụng chuyển dữ liệu giữa các người dùng tại đầu cuối, nhờ đó các tầng trên không phải quan tâm đến việc cung cấp dịch vụ truyền dữ liệu đáng tin cậy và hiệu quả Tầng giao vận kiểm soát độ tin cậy của một kết nối được cho trước Một số giao thức có định hướng trạng thái và kết nối (state and connection orientated) Có nghĩa là tầng giao vận có thể theo dõi các gói tin và truyền lại các gói bị thất bại Một ví dụ điển hình của giao thức tầng 4 là TCP Tầng này là nơicác thông điệp được chuyển sang thành các gói tin TCP hoặc UDP Ở tầng 4 địa chỉ được đánh là address ports, thông qua address ports để phân biệt được ứng dụng trao đổi
Tầng 3: Tầng mạng (Network Layer) Tầng mạng cung cấp các chức năng và qui trình cho việc truyền các chuỗi dữ liệu có độ
Trang 2dài đa dạng, từ một nguồn tới một đích Tầng mạng thực hiện chức năng định tuyến, Các thiết bị định tuyến (router) hoạt
động tại tầng này
Tầng 2: Tầng liên kết dữ liệu (Data Link Layer) Tầng liên kết
dữ liệu cung cấp các phương tiện có tính chức năng và quy trình
để truyền dữ liệu giữa các thực thể mạng, phát hiện và có thể sửa chữa các lỗi trong tầng vật lý nếu có Cách đánh địa chỉ
mang tính vật lý, nghĩa là địa chỉ (địa chỉ MAC) được mã hóa cứng vào trong các thẻ mạng (network card) khi chúng được sảnxuất Tầng liên kết dữ liệu có thể được chia ra thành 2 tầng con: tầng MAC (Media Access Control - Điều khiển Truy nhập
Đường truyền) và tầng LLC (Logical Link Control - Điều khiển Liên kết Lôgic)
Tầng 1: Tầng vật lí (Physical Layer) Tầng vật lí định nghĩa tất
cả các đặc tả về điện và vật lý cho các thiết bị Trong đó bao gồm bố trí của các chân cắm (pin), các hiệu điện thế, và các đặc
tả về cáp nối (cable) Các thiết bị tầng vật lí bao gồm Hub, bộ lặp (repeater), thiết bị tiếp hợp mạng (network adapter)
Các điểm giống nhau:
- Cả hai đều là phân lớp
- Cả hai đều có lớp ứng dụng, qua đó chúng có nhiều dịch vụ khác nhau
- Cả hai có các lớp mạng và lớp vận chuyển có thể so sánh được
- Kỹ thuật chuyển mạch gói được chấp nhận
Trang 3- Chuyên viên lập mạng cần phải biết cả hai.
- TCP/IP tập hợp các lớp trình bày và lớp phiên vào trong lớp ứng dụng của nó
- TCP/IP tập hợp lớp vật lý và lớp liên kết dữ liệu trong OSI thành một lớp
- Các giao thức TCP/IP là các chuẩn cơ sở cho Internet phát triển, như vậy mô hình TCP/IP chiếm được niềm tin chỉ vì các giao thức của nó Ngược lại, các mạng thông thường không
được xây dựng dựa trên nền OSI, ngay cả khi mô hình OSI đượcdùng như một hướng dẫn Nói cách khác nó là một văn phạm nghèo và có thiếu sót
Câu 2 : Mô tả Giao thức truyền tin tin cậy dừng và chờ
(stop-and-wait) trong các trường hợp sau:
Trang 4a môi trường truyền tin tin cậy b môi trường truyền tin có lỗi bit c môi trường truyền tin có lỗi bit và mất gói tin
1. môi trường truyền tin tin cậy
đặc điểm: bit trong gói tin không bị lỗi, gói tin không bị mất.FSM cho bên gửi và bên nhận độc lập với nhau: Phía gửi truyền gói tin qua kênh truyền phía dưới, phía nhận đọc gói tin từ kênh truyền bên dưới
Với rdt 1.0, việc gửi đơn giản chỉ là nhận dữ liệu từ tầng trênthông qua sự kiện rdt_send(data), tạo ra gói dữ liệu (bằng hànhđộng make_data (packet,data)) và gửi gói dữ liệu (packet) lênkênh truyền Trên thực tế, sự kiện rdt_send(data) là kết quả củamột thủ tục (ví dụ khi ứng dụng phía trên sử dụng hàmrdt_send())
Ở phía nhận, rdt nhận gói dữ liệu (packet) từ kênh truyền bằng
sự kiện rdt_rcv(packet), lấy dữ liệu ra khỏi gói dữ liệu (bằnghành động extract (packet,data)) và đưa dữ liệu lên tầng trên.Trên thực tế, sự kiện rdt_rcv(packet) là kết quả của một thủ tục(ví dụ khi ứng dụng phía trên sử dụng hàm rdt_rcv()
Trang 52.Môi trường truyền tin lỗi bit:
Kênh truyền bên dưới có thể khiến bit trong gói tin lỗi
Các khắc phục: bên nhận tích cực(ACK) bên nhận thông báotường min cho bên gửi mình nhận đúng và chính xác gói tin
Bên nhận tiêu cực( NAK) bên nhận thông báo tường minh chobên gửi mình nhận đúng gói tin mình nhận lỗi., phía gửi sẽ gửilại gói tin khi nhận được NAK
Mô hình
Trong giao thức rdt 2.0, phía gửi có hai trạng thái Ở trạng thái thứ nhất, phía gửi đợi dữ liệu từ tầng trên Trong trạng thái thứ hai, phía gửi đợi phản hồi ACK hoặc NAK từ phía nhận Nếu nhận được ACK (rdt_rcv(rcvpkt ) && isACK(rcvpkt) trong hình3.10 tương ứng với sự kiện này), phía gửi biết được gói dữ liệu chuyển đến đích an toàn, vì vậy nó trở về trạng thái đợi dữ liệu
từ tầng trên để chuyển tiếp Nếu nhận được NAK, phía gửi gửi lại gói dữ liệu rồi quay lại trạng thái đợi phản hồi ACK hoặc NAK cho gói dữ liệu vừa gửi lại Chú ý rằng khi phía gửi ở
trong trạng thái chờ phản hồi (ACK hoặc NAK), nó không thể nhận thêm dữ liệu từ tầng trên đưa xuống Nó chỉ chấp nhận dữ liệu khi nhận được ACK và chuyển trạng thái Phía gửi không
Trang 6gửi dữ liệu cho đến khi nó chắc chắn rằng phía nhận đã nhận đúng gói dữ liệu đã gửi.
3.môi trường truyền tin có lỗi bit và mất gói tin
Dữ liệu trên kênh truyền không những bị lỗi mà còn có thể bịmất, đây là tình huống không phải không phổ biến trong mạngmáy tính ngày nay, kể cả Internet Lúc này giao thức cần phảigiải quyết hai vấn đề: làm thế nào để phát hiện gói dữ liệu bịmất và làm gì khi mất gói dữ liệu Sử dụng cơ chế phát hiện lỗinhờ checksum, số thứ tự, biên nhận ACK và truyền lại gói dữliệu - đã được phát triển trong giao thức rdt 2.2 - cho phépchúng ta giải quyết được vấn đề thứ hai Để giải quyết vấn đềthứ nhất, chúng ta cần đến một cơ chế mới
Giải pháp
Phía gửi đợi phản hồi trong một khoảng thời gian hợp lý, truyền lại nếu trong khoảng thời gian này không nhận được ACK Nếu gói tin hay ACK chỉ bị trễ thì truyền lại có thể trùng lặp nhưng STT có khả năng giải quyết vấn đề này hoặc nếu bên nhận phải tường minh gói nào nhận đúng Trong giải pháp này cần có bộ định thời đếm ngược
Câu 3: Mô tả cơ chế truyền tin tin cậy kiểu đường ống
(pipelined protocol): Go-back-N và Selective Repeat
Trang 7Giao thức kiểu đường ống: phia gửi đồng thới gửi nhiều gói tin
mà không cần biên nhận
Tăng khoảng số thứ tự
Cần bộ đệm dữ liệu tại bên gửi/ nhận
Có 2 giao thức chính là go back n và selective repeat
Go back n:
Trong giao thức Go-Back-N, phía gửi cho phép truyền đi đồng
thời nhiều gói dữ liệu mà không phải đợi biên nhận Tuy nhiên tổng số gói dữ liệu không phải là vô hạn mà bị giới hạn bởi giá trị N - tổng số gói dữ liệu tối đa chưa được biên nhận trong
đường ống Hình dưới là khoảng số thứ tự trong giao thức Back-N Định nghĩa base là số thứ tự của gói dữ liệu đã được
Go-truyền đi lâu nhất chưa được biên nhận và nextseqnum là số thứ
tự nhỏ nhất chưa được sử dụng (là số thứ tự của gói tiếp theo sẽ gửi) Có bốn khoảng số thứ tự như sau: Khoảng [0,base-1] ứng với số thứ tự của các gói dữ liệu đã được truyền đi và đã được biên nhận Khoảng [base, nextseqnum-1] ứng với các gói dữ liệu
đã được gửi đi nhưng chưa được biên nhận Khoảng
[nextseqnum, base +N- 1] có thể được sử dụng làm số thứ tự cho
Trang 8các gói sẽ được gửi nếu như có dữ liệu từ tầng trên chuyển
xuống Khoảng từ [base+n] trở lên chưa được sử dụng cho đến khi các gói tin đợi biên nhận được biên nhận Trong hình,
khoảng cho phép số thứ tự của những gói dữ liệu đã được gửi nhưng chưa được biên nhận có thể xem là một “cửa sổ” kích thước N nằm trong phạm vi số thứ tự Khi giao thức vận hành, cửa sổ này có thể “trượt” trên toàn bộ khoảng số thứ tự Vì vậy,
N thường được xem là độ lớn cửa sổ (window size) và giao thức GBN là giao thức cửa sổ trượt (sliding-window)
ACK (n) : biên nhận tất cả các gói tin có STT <= n – “biên nhận tích lũy”
Có thể bỏ qua các ACK trùng lặp (xem bên nhận)
Bộ định thời cho các gói tin gửi đi nhưng chưa biên nhận
Timeout (n) : truyền lại gói n và tất cả các gói có STT cao hơn trong cửa sổ
Trang 9GBN: FSM mở rộng của phía gửi
Có dữ liêu từ trên chuyển xuống : khi rdt_send() được phía trên
sử dụng để chuyển dữ liệu xuống, phía gửi phải kiểm tra xem cửa sổ đã đầy chưa (tức là đã có N gói dữ liệu gửi đi chưa được biên nhận không) Nếu cửa sổ chưa đầy, phía gửi tạo ra và sau
đó gửi gói dữ liệu đồng thời cập nhật các biến Nếu cửa sổ đầy, phía gửi không chấp nhận dữ liệu từ tầng trên và thông báo cửa
sổ đã đầy Khi đó, tầng trên sẽ phải gửi lại Trên thực tế, phía gửi
sẽ đưa dữ liệu vào vùng đệm (nhưng chưa gửi ngay) hoặc có cơ chế đồng bộ (sử dụng semaphore hay cờ) chỉ cho phép tầng ứng dụng sử dụng rdt_send() khi cửa sổ chưa
Nhân được một ACK: trong giao thức GBN, giá trị biên nhận
gói tin có số thứ tự n sẽ mang giá trị tích luỹ, nghĩa là toàn bộ gói dữ liệu có số thứ tự nhỏ hơn hoặc bằng n đều đã được phía
nhận nhận đúng Chúng ta sẽ quay lại vấn đề này khi xem xét
phía nhận trong giao thức GBN
Hết thời gian đợi (timeout): tên giao thức - “Go-Back-N” bắt
nguồn từ hành vi của phía gửi khi dữ liệu bị mất hay bị trễ
Giống như trong giao thức stop and wait, timer được sử dụng để
xử lý việc mất gói dữ liệu hay gói phản hồi Khi hết thời gian đợi (timeout), phía gửi sẽ gửi lại tất cả các gói dữ liệu đã được gửi đi trước đó nhưng chưa được biên nhận Trong hình 3.19, phía gửi chỉ sử dụng duy nhất một timer, có thể xem là timer củagói dữ liệu đã được truyền đi lâu nhất nhưng chưa được biên nhận Nếu ACK nào đó được nhận nhưng vẫn còn gói dữ liệu gửi đi chưa được biên nhận thì timer sẽ được khởi động lại Nếu tất cả các gói dữ liệu đã gửi đều được biên nhận thì có thể ngừngtimer
Trang 10GBN: FSM mở rộng của phía nhận
Chính sách biên nhận: luôn luôn biên nhận cho gói tin nhận đúng Biên nhận gói tin theo đúng thứ tự có STT lớn nhất
Có thể tạo ra biên nhận trùng lặp
Phải ghi nhớ giá trị mình muốn nhận
Gói tin không đúng STT
Loại bỏ (không lưu lại)
Biên nhận STT gói tin đúng thứ tự lớn nhất
Giao thức selective repeat
Phia nhận: biên nhận riêng lẻ từng gói tin nhận đúng
Có thể lưu lại tạm thời các gói tin không theo đúng STT để sau này dùng lại
Phia gửi: chỉ gửi lại các gói tin chưa có biên nhận
Phia gửi: mỗi gói tin có bộ định thời riêng
Cửa sổ phía gửi
STT liên tiếp có kich thước N
Hạn chế số lượng gói dữ liệu đã gửi đi nhưng chưa biên nhận
Trang 11Phia gửi:
1 Dữ liệu nhận được từ phía trên
Khi nhận được dữ liệu từ phía trên, bên gửi SR kiểm tra số thứ
tự sẽ gửi Nếu số thứ tự sẽ gửi nằm trong cửa sổ gửi, dữ liệu được đóng gói và gửi đi, ngược lại thì dữ liệu được lưu giữ trong bộ đệm hoặc gửi trả lên tầng trên để gửi sau, giống
GBN
2 Hết thời gian đợi - Timeout
Timer lại được sử dụng để phát hiện mất gói tin Tuy nhiên, mỗi gói tin gửi đi có một timer riêng, bởi vì chỉ có duy nhất một gói tin được gửi lại khi hết thời gian đợi Có thể sử dụng đồng hồ hệ thống giữ vai trò đồng bộ cho các timer
3 Nhận được ACK
Nếu nhận được ACK, bên gửi đánh dấu gói tin đã được
chuyển đúng Nếu số thứ tự của gói tin vừa được biên nhận bằng send_base, cánh cửa sổ sẽ trượt tới gói tin có số thứ tự
Trang 12nhỏ nhất chưa được biên nhận Nếu cửa sổ di chuyển và còn các gói tin chưa được truyền thì các gói tin đó sẽ được gửi.
2 Pkt n thuộc [rcvbase – N, rcvbase-1]
gửi biên nhận lại cho gói tin (mặc dù đã biên nhận từ
trước).ACK(n)
3 Các trường hợp :Bỏ qua gói tin đó đi
Sự xác định của bên gửi và bên nhận về cái gì đã được nhận, cái
gì chưa được nhận không phải luôn luôn giống nhau Với giao thức SR, điều này có nghĩa là cửa sổ bên gửi và bên nhận không bao giờ trùng khớp nhau Thiếu sự đồng bộ giữa cửa sổ bên gửi
và bên nhận có thể gây hậu quả nghiêm trọng khi khoảng số thứ
tự nhỏ
Trang 13Câu 4: Phương pháp điều khiển tắc nghẽn trong TCP là gì, nêu thuật toán (gồm 2 bước)
TCP (Transmission Control Protocol) là giao thức phổ biến nhất hiện nay cho truyền dữ liệu tin cậy trên Internet Ngoài điều khiển chống tắc nghẽn ra, nó còn thực hiện chức năng khôi phục
dữ liệu đã mất và quản lý kết nối Điều khiển chống tắc nghẽn trong TCP thuộc loại điều khiển vòng kín phản hồi ẩn, TCP dựa vào mất gói để phát hiện tắc nghẽn Nó có 2 cơ cấu để phát hiện
ra mất gói Đầu tiên, khi gói được gởi, phía gởi TCP khởi tạo bộ định thời Nếu bộ định thời hết hiệu lực trước khi gói được xác nhận, TCP xem như gói bị mất Thứ 2, khi phía nhận TCP nhận gói không đúng trật tự Nó gởi xác nhận ACK cho gói mà nó nhận gần nhất Ví dụ, giả sử phía nhận nhận gói từ 1 đến 5, và gói 6 bị mất Khi phía nhận nhận gói 7, nó gởi dupack cho gói 5.Phía gởi TCP xét các sự tới của 3 bản sao phúc đáp (3 dupack) như dấu hiệu của 1 gói mất
Có 2 giai đoạn :
Trang 15Câu 5:Phương pháp đánh địa chỉ IP và chia mạng con
Subnet
Địa chỉ IP là một số nguyên 32 bit, thường được biểu diễn dưới dạng một dãy 4 số nguyên cách nhau bởi dấu chấm (dotted
Trang 16format) Một số nguyên trong địa chỉ IP là một byte, thường được gọi là một octet.
Một địa chỉ IP gồm có 3 phần Phần đầu tiên là địa chỉ mạng (network address), phần thứ
cuối cùng là địa chỉ máy (host address) và phần còn lại (nếu có)
các nhà quản trị mạng thường phân chia mạng của họ ra thành nhiều mạng nhỏ hơn gọi là mạng con subnet Tương tự với địa chỉ mạng, địa chỉ mạng con cũng được quy định bởi một mask, gọi là subnet mask Subnet mask của một địa chỉ mạng có số bit
1 nhiều hơn hoặc bằng (trường hợp bằng có nghĩa là không có chia mạng ra thành subnet) số bit 1 trong network mask của địa chỉ đó Ví dụ subnet mask của một mạng thuộc lớp B sẽ có dạng255.255.xxx.xxx với xxx là số bất kỳ từ 0 -255
Subnet mask là một con số 32 bit bao gồm n bit 1 ( thường là các bit cao nhất ) dùng để đánh địa chỉ mạng con và m bit 0 dùng để đánh địa chỉ máy trong mạng con với n+m=32 Trong thực tế, để dễ dàng cho hoạt động quản lý các máy trong mạng, thường chia nhỏ các mạng lớn trong các lớp mạng (A, B, C) thành các mạng nhỏ hơn Quá trình này được thực hiện bằng cách lấy một số bit ở phần định danh host để sử dụng cho việc
Trang 17đánh địa chỉ mạng Tuỳ theo cách sử dụng của người quản trị mạng ( số subnet và số host trên mỗi subnet ) mà số lượng bit lấy ở phần host nhiều hay ít.
Câu 6: các cơ chế phát hiện lỗi và sửa lỗi.
1.Phương pháp kiểm tra bit chẵn lẻ (Parity bit)
Là phương pháp dùng để tìm các bit lỗi trong truyền bất đồng bộ
• Phát hiện được lỗi sai một số lẻ bit
• Dò được các lỗi sai một số chẵn bit, ngoại trừ những lỗi xảy rađồng thời trên cả hàng và cột
• Chỉ sửa được sai một bit đơn
- Khi các khối ký tự đang được truyền, xác suất một ký tự chứa lỗi bit gia tăng
Trang 18- Xác suất một khối ký tự bị lỗi bit được gọi là tỉ lệ lỗi bit BER
- Phương pháp này sử dụng một tập parity bit được tính từ toàn
bộ khối ký tự trong khung - Mỗi ký tự trong khung được phân phối một parity bit (parity hàng) Ngoài ra một bit mở rộng đượctính cho mỗi vị trí bit (parity cột) trong toàn bộ khung Tập các parity bit cho mỗi cột được gọi là ký tự kiểm tra khối BCC
(Block Check Character)
3 Kiểm tra CRC (cyclic redundancy check)
CRC (cyclic redundancy check) là một loại hàm băm, được
dùng để sinh ra giá trị kiểm thử, của một chuỗi bit có chiều dài ngắn và cố định, của các gói tin vận chuyển qua mạng hay một khối nhỏ của tệp dữ liệu
CRC là một loại mã phát hiện lỗi
CRC dựa chủ yếu vào phần bit bổ sung, kỹ thuật CRC dựa trên phép chia nhị phân
Các bước:
Bước thứ nhất, một chuỗi n bit được ghép vào đơn vị dữ liệu Số
n là một số nhỏ hơn số các bit trong số chia xác định tước có chiều dài n+1 bit
Bước thứ hai, đơn vị dữ liệu mới kéo dài chia cho số chia sử dụng một quá trình gọi là chia nhị phân Phần dư của phép chia
là CRC
Bước thứ 3, CRC của n bit dẫn ra từ bước 2 thay thế các bit 0 được ghép vào cuối đơn vị dữ liệu Chú ý là CRC có thể bao gồm tất cả các bit 0