Sau khi receiver nhận được peerlist từ Tracker server, do kích thước của danh sách có thể khá lớn và receiver không thể kết nối đồng thời với tất cả các peer trong danh sách nên cần phải chọn ra một số peer cung cấp thích hợp. Cách thức lựa chọn như sau, ban đầu receiver gửi một thông báo truy vấn cho các peer trong danh sách (thông báo chứa mã videoID và số thứ tự của Segment). Mỗi peer nhận được thông báo này sẽ gửi thông báo trả lời cho receiver kèm theo các thông số Bwavail và EstimatedRTT. Trong
Phân mảnh mới nhất Phân mảnh cũ nhất Bộ nhớ chia sẻ StAvail seg_size
đó BwAvail là băng thông mà peer có khả năng upload và EstimatedRTT (Estimated Round Trip Time) là ước lượng thời gian truyền tải giữa receiver và peer. Receiver sẽ đợi cho đến khi hết thời gian chờ Tcollect để nhận các thông báo trả lời và thu thập thông tin. Sau khoảng thời gian Tcollect, receiver chọn ra một tập con của các peer cung cấp dựa trên giá trị Pot của chúng (Pot – Potentiality là khả năng của một peer trở thành một supplier). Giả sử rằng có m peer thành viên bao gồm {P1, P2, …, Pm}, giá trị Poti của peer Pi được tính theo công thức:
} { max } { max 1 1 i m i i i m i i i TT EstimatedR TT EstimatedR BwAvail BwAvail Pot
trong đó α, β là các hệ số trọng lượng cho các giá trị BwAvaili, EstimatedRTTi (α + β =1). Thiết đặt giá trị lớn hơn cho α nghĩa là thiên về các peer có băng thông sẵn sàng lớn hơn còn nếu đặt giá trị lớn hơn cho β nghĩa là thiên về chọn các peer ở gần hơn. Thông thường thì lựa chọn các peer ở gần là tốt hơn, bởi vì khi đó dữ liệu phải truyền qua ít chặng hơn giúp tiết kiệm được băng thông cho đường backbone và giảm được sự suy hao do nghẽn mạng. Do đó khi triển khai hệ thống thực tế cũng nên đặt cho giá trị của β lớn hơn so với α. Cũng theo như công thức nêu trên thì các peer ở gần receiver, có băng thông sẵn sàng cao hơn sẽ có giá trị Pot lớn hơn.
Sau khi xác định được tập tối ưu, receiver sẽ chọn ra M phần tử trong tập có giá trị Pot lớn nhất làm peer cung cấp (supplier). Số lượng các peer được chọn phải thỏa mãn điều kiện băng thông kết hợp từ các peer phải lớn hơn hoặc bằng so với tốc độ phát hình CBR (video playback bit rate). Các phần tử còn lại của tập không được chọn sẽ được đặt trong tập dự phòng (standby), dùng để thay thế trong trường hợp peer cung cấp rời hệ thống hoặc lỗi mất kết nối. Nếu như băng thông kết hợp từ tất cả các peer thành viên vẫn nhỏ hơn playback bit rate thì peer sẽ tạo kết nối đến video server để download về các block còn thiếu. Trường hợp băng thông phục vụ của server không còn đủ thì yêu cầu download của receiver sẽ bị từ chối, tiến trình video playback trên client bị tạm dừng. Receiver phải thực hiện lại việc truy vấn các peer trong peerlist như trên sau một khoảng thời gian TRetry tiếp đó.
Khi đã xác định được các peer cung cấp, receiver sẽ dành phần băng thông ưu tiên của mình để download. Giả sử có M peer cung cấp (P1, P2, …, PM) được chọn và tốc độ phát hình của video là Br. Receiver sẽ dành băng thông Bwri (băng thông dành riêng nên được đặt là bội số của băng thông đơn vị BwrU, giá trị của BwrU trong phần mô phỏng được đặt là 64Kbps) cho peer cung cấp Pi, thỏa mãn điều kiện:
Br Bwr M i i 1
Sau đó, receiver gửi thông báo Reserver_Bandthwidth<Bwri> (dành riêng băng thông) cho mỗi supplier. Nhận được thông báo này, supplier Pi sẽ giảm giá trị BwAvaili của mình một khoảng Bwri (BwAvaili = BwAvaili – Bwri) và tăng trở lại khi kết thúc phiên streaming.
Chú ý là ở đây việc "dành riêng băng thông" không có nghĩa là băng thông Bwri
của peer Pi thực sự được dành riêng và không thể sử dụng bởi các ứng dụng khác. Mạng Internet hiện nay không cung cấp dịch vụ dành riêng tài nguyên, như vậy băng thông đóng góp bởi peer cung cấp Pi có thể dao động lên xuống trong phiên streaming. Trong mô hình hiện tại, một receiver dành băng thông Bwri đối với peer Pi, chỉ có nghĩa là peer Pi giảm giá trị BwAvaili đi một khoảng Bwri. Theo một nghĩa khác, tiến trình dành riêng băng thông trong mô hình này chỉ có ý nghĩa điều khiển việc lựa chọn và xác định một peer đóng góp bao nhiêu cho phiên streaming chứ không đảm bảo chắc chắn là băng thông được thật sự dành riêng.