- Arguments: mailbox name (tên hòm thư)
3.3.3 NNTP cho UN
Phần mềm NNTP cho hệ thống UNIX bao gồm một số chương trình C, và một số
shell script. Hai phần quan trọng nhất là nntpd, chương trình chạy ngầm NNTP (cũng có thể gọi là "NNTP server") và nntpsend. Hãy xem các chương trình này làm việc thế nào :
Chương trình chạy ngầm NNTP, nntpd, là phần chính của NNTP. Nó nhận tất cả kết nối tới, cho phép người dùng từ xa đọc và gửi tin và các địa điểm khác gửi tin. Các mẩu tin tới đi qua NNTP daemon, rồi nó gửi tiếp qua rnews (cho hệ thống B News) hay là đóng gói vào trong các gói có kích thước thích hợp (cho hệ thống C News).
nntpsend và chương trình bổ trợ của nó là nntpxmit tương đương với các chương
trình sendbatch và sendbatches (tương ứng với B và C News); chúng xử lý các file gói được tạo bởi hệ thống news thành các mẩu tin để sẵn sàng gửi tới các vùng lân cận. nntpsend được đặt chạy một cách chu kỳ trong crontab. Script nntpsend được phân phối trong bản C shell hay Bourne shell.
Trong cách thức truyền tin ở trên, mỗi địa điểm tiếp xúc với điểm lân cận một cách tuần hoàn và đưa ra các mẩu tin cho các điểm đó. Cách thức đó đôi khi được gọi là phương thức truyền "đẩy" (push method), khi người gửi khởi đầu việc truyền dẫn.
nntpxfer, một chương trình khác trong bộ NNTP, thay vào đó đưa ra một phương
thức truyền "kéo" (pull method); địa điểm cục bộ chạy một cách tuần hoàn
nntpxfer, nói cho nó hệ thống ở xa biết nối tới đâu và mẩu tin nào ta muốn nó
truyền tới hệ thống nội bộ.
NNTP cung cấp một danh sách các lệnh tương tác có thể được trao đổi giữa news
client và news server. Ví dụ như:
NEWNEWS Yêu cầu gửi một danh sách các mẩu tin mới HEAD Yêu cầu gửi phần header của một mẩu tin ARTICLE Yêu cầu gửi mẩu tin đã hỏi bằng số
NEXT Yêu cầu gửi mẩu tin tiếp theo trong nhóm tin hiện tại LIST Yêu cầu gửi danh sách các nhóm tin hợp lệ
POST Chuyển mẩu tin tiếp theo phần header của nó IHAVE Có một mẩu tin riêng biệt, có muốn không ?
Khi nntpxfernối tới một NNTP server, trước tiên nó yêu cầu một danh sách các tin mới trong bất cứ nhóm tin nhận được ở điểm nội bộ. Sau khi nhận được danh sách đó, nó yêu cầu tiếp những mẩu tin mà chưa có, thực hiện bằng cách việc gửi và nhận các thông điệp tương tác. (Ðiều này rất khác với cách thức truyền tin chuẩn, trong đó toàn bộ các gói tin được truyền, và những mẩu tin trùng lặp bị bỏ đi).
nntpxmit cũng thi hành một phiên làm việc tương tác, nhưng là một cách đơn giản
hơn, trong đó nntpxmit nói "IHAVE <article_id" (tôi có các <chỉ số mẩu tin>) và
nntpd nhận nói rằng "OK send it " (OK gửi đi) hay "Không, tôi có nó rồi".
Trong khi cách thức "kéo" (pull) nghe có vẻ có thể hiệu quả hơn, nntpxfer có khuynh hướng rất khó thực hiện trên các vùng xa cung cấp news. Nhiều vùng tải nặng có thể cung cấp cho vùng của chúng ta năm trăm nhóm tin bằng kiểu thường gấp mười lần bằng nntpxfer.
Cách thức "kéo" cũng có thể được các chương trình đọc tin hỗ trợ NNTP dùng, nhưng bởi vì chúng không thường truyền nhiều mẩu tin trong cùng một thời gian, nó không gây ra điều gì giống như cùng một hệ thống tải. Ðó là nơi thật sự NNTP rực sáng.