Câu chuyện về PING

Bài viết được dịch từ blog Coding Horror

Mọi người đều yêu quý ping. Nó đơn giản và thực dụng. Và nó thực hiện chính xác như cái tên của thiết bị phát hiện tàu ngầm mà nó được truyền cảm hứng. Ping cho bạn biết liệu một máy tính ở xa có đang trả lời một network request hay không.

Câu chuyện về tiện ích PingTiện ích ping được viết bởi Mike Muuss, một nhà khoa học cao cấp tại phòng thí nghiệm & nghiên cứu của quân đội Hoa Kỳ (U.S. Army Research Laboratory). Mike cũng đã viết ra ttcp, cái mà tôi là một fan hâm mộ lớn. Tôi đã sử dụng PC port của ttcp rất nhiều lần để kiểm tra thông lượng mạng.

Mike đã ra đi trong một vụ tai nạn xe hơi bi thảm vào 7 năm trước, nhưng di sản của ông sống mãi trong Ping:

Vào tháng 12 năm 1983, tôi đã gặp phải một số hành vi kỳ lạ của mạng IP tại BRL. Nhớ lại những ý kiến của tiến sĩ Mills, tôi nhanh chóng viết ra chương trình PING, xoay quanh việc mở một socket() ICMP kiểu SOCK_RAW AF_INET Berkeley-style. Phần code đó biên dịch tốt, nhưng nó không chạy được – vì lúc đó chưa có nhân hỗ trợ cho các socket raw ICMP! Điên tiết lên, tôi đã lập trình luôn cả phần nhân hỗ trợ và mọi thứ chạy ngon lành trước khi trời sáng. Cũng không có gì ngạc nhiên, khi Chuck Kennedy (còn được gọi là “Kermit”) đã tìm thấy và sửa phần cứng mạng trước khi tôi có thể khởi chạy gói “ping” đầu tiên của mình. Nhưng tôi chỉ sử dụng nó một vài lần kể từ đó. Nếu tôi biết được rằng sau này nó sẽ là thành tựu nổi tiếng nhất của tôi trong cuộc đời mình, thì tôi có thể đã làm việc trên nó thêm một hoặc hai ngày để bổ sung một số tính năng nữa.

Ping không còn quá hữu ích trên mạng Internet ngày nay bởi vì hầu hết các router và các host đã chặn nó. Nhưng nó vẫn còn khá hữu ích trên các mạng cục bộ; không tháng nào mà tôi không sử dụng để ping một cái gì đó. Ping luôn là một điểm khởi đầu vững chắc, nhưng đôi khi bạn cũng sẽ cần phải thực hiện những chẩn đoán mạng sâu sắc hơn.

Tất nhiên, chúng ta không thể nói về ping mà không nhắc đến một trong những đánh giá sách nổi tiếng nhất trên Amazon.

Cuốn sách về PINGPING! Con vịt kỳ diệu!

Sử dụng phép ẩn dụ khéo léo, các tác giả đã cung cấp một lời giải thích sâu sắc và trực quan về một trong những tiện ích mạng đáng kính nhất của Unix. Thậm chí tuyệt vời hơn nữa là rõ ràng họ đã làm việc với một phiên bản beta đầu tiên của chương trình, như cuốn sách của họ xuất bản lần đầu vào năm 1933, nhiều năm (nhiều thập kỷ!) trước khi hệ điều hành và các cơ sở hạ tầng mạng được hoàn thành.

Cuốn sách mô tả về mạng theo cách mà thậm chí một đứa trẻ cũng có thể hiểu, bằng cách lựa chọn để nhân cách hóa các gói tin. Gói tin ping được mô tả như một con vịt, cùng với các gói tin khác (những con vịt khác), dành một khoảng thời gian nhất định trên máy chủ (con thuyền nơi nó chào đời). Đồng thời mỗi ngày, các gói tin nhỏ (những con vịt) thoát khỏi máy chủ (con thuyền) qua một cái cầu. Từ đó các gói tin di chuyển lên Internet (ở đây thể hiện bằng sông Dương Tử).

Nhân vật chính – gói tin, được gọi là Ping. Ping đi lang thang trên dòng sông trước khi được tiếp nhận bởi một host khác (thuyền khác). Cậu ta dành một khoảng thời gian ngắn trên con thuyền khác đó, nhưng cuối cùng sẽ trở về host machine ban đầu của mình (con thuyền nơi nó sinh ra).

Nếu bạn cần một tài liệu tốt giới thiệu tổng quan về tiện ích ping, thì đây chính là cuốn sách dành cho bạn. Tôi không thể đề xuất các nhà quản lý đọc cuốn sách này, vì các khía cạnh kỹ thuật có thể là quá nhiều và các khái niệm cơ bản dễ làm nản chí họ.

Cũng như mọi cuốn sách khác, “Câu chuyện về Ping” cũng không tránh khỏi những thiếu sót. Trong một cuốn sách duy nhất về Ping, tôi mong đợi sẽ có một cái nhìn tổng quan chi tiết hơn về cấu trúc gói tin ICMP.

Mặc cho còn những thiếu sót này, cuốn sách “Câu chuyện về Ping” đã giành được một vị trí trên kệ sách của tôi, ngay giữa cuốn Advanced Programming in the Unix Environment của tác giả Stevens, và cuốn Dante’s seminal work on MS Windows, Inferno.

Đó là một đánh giá sách của một người yêu công nghệ và có óc hài hước. Nội dung gốc đã được đăng vào tháng 3 năm 1999 bởi một người nặc danh từ “Upper Volta, Uzbekistan”. Nó bị xóa bởi Amazon, bởi vì trang web này đã cài đặt lại hệ thống đánh giá vào cuối năm 2000.

Bạn có thể đã quen thuộc với phiên bản command line của Ping, và thậm chí có thể cả cuốn sách này, nhưng bạn đã bao giờ xài một phiên bản hoành tráng và màu mè của Ping chưa?

Có một PING khácHình ảnh về PING ở trên có lẽ đã mang lại vài giây vui vẻ cho cả nhà rồi nhỉ?

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s