12 Steps To Become A Hacker!

Here we bring to you 12 steps to become a hacker, together with all the books, tutorials and resources that you need to learn in the process. So pack your bags and get set for the journey!
Hacking is a fascinating field but it definitely isn't easy. Here we have listed 12 of the most important steps essential to become a hacker, together with all the resources that you need for learning.
Here we focus on the skills and attitude needed to become a hacker. Breaking the security system and entering into the system is not the only thing a hacker does. One requires knowledge of a wide variety of subjects and in depth knowledge of programming languages and operating systems. And needless to say, learning is essential in the journey...

Here are the 12 steps:
It is not an easy task to become a hacker. As a hacker, you need to have an attitude and curiosity. Reading the hacking manifesto can teach you the attitude of a hacker. Nurturing the hacker attitude is more about developing competence in the languages rather than having a stereotypical attitude.
Though a lot of people consider that a hacker is a criminal, in real life, they are hired by big companies for protecting information and minimizing potential damage. The act of hacking actually is that of being over-curious and outwitting authority. As a hacker, you should be hell bent on breaching authoritarian rules, secrecy and censorship. Deception is another arsenal which will allow you to dodge the vigilant eyes of authority.
The act of stealing something or doing harm to someone is not hacking. Such people are commonly called crackers in the community. Crackers are involved in illegal activities and we do not recommend you to get involved into such activities.

Các cách thức nghe gói tin trên mạng

Bắt gói tin không đơn giản chỉ là gắn 1 laptop vào 1 cổng mạng và "chụp" lại toàn bộ traffic. Trên thực tế, đôi khi việc đặt 1 công cụ bắt gói tin ở đâu trên 1 hệ thống mạng còn khó hơn việc phân tích các gói tin.
Hình dưới đây minh họa 1 tình huống đặc biệt. Bởi vì 3 thiết bị hay được dùng nhất trên 1 mạng hiện nay (Hub, Switch, Router), mỗi thiết bị có cách xử lý traffic khác nhau, cho nên ta phải nắm rõ được cấu trúc vật lý của mạng mà ta đang phân tích.


Chúng ta sẽ cùng đi vào nghiên cứu 1 số mạng thực tế để chỉ ra cách tốt nhất để bắt các gói tin trong từng môi trường mạng sử dụng Hub, Switch và Router.

Người Cha trong Văn chương và Nghệ thuật

Người Cha như một biểu tượng của chủ quyền lãnh thổ, của minh triết, của kinh nghiệm, đồng thời là một nguồn cảm hứng và nơi nương tựa của tinh thần cho thế hệ sau.


Theo Hoàng Ngọc Tuấn


Bài đối Hai sắc hoa Ti-gôn

Hai tiếng tình yêu cõi nhân gian
Đan bằng sợi nhớ, chuyện hợp tan
Yêu là mong đợi người yêu dấu
Là khóc chia ly lệ rơi tràn

Cõi tình thơ mộng thuở vừa yêu
Đón đưa, hờn dỗi, nhớ thương nhiều
Một ngày không gặp hồn ngơ ngẩn
Mây gió cũng buồn, nắng đìu hiu

Thế rồi sánh bước mỗi hoàng hôn
Nhặt hoa màu trắng sắc tigôn
Loài hoa có dáng như tim vỡ
Hai tiếng tình yêu... chẳng chút buồn

Những kiến thức cơ bản về phân tích gói tin và mạng máy tính

Giới thiệu
Hàng ngày, có hàng triệu vấn đề xảy ra trong 1 mạng máy tính, từ việc đơn giản là nhiễm Spyware cho đến việc phức tạp như lỗi cấu hình Router, và các vấn đề này không thể giải quyết tất cả ngay lập tức được. Tốt nhất chúng ta có thể hi vọng thực hiện các công việc đó bằng cách chuẩn bị đầy đủ các kiến thức và các công cụ chúng ta cần có để xử lý những dạng vấn đề như trên.
Tất cả các vấn đề trên mạng đều xuất phát ở mức gói tin, nơi mà không có gì có thể che giấu đối với chúng ta, không có thứ gì bị ẩn đi bởi các cấu trúc menu, các hình ảnh bắt mắt hoặc là các nhân viên không đáng tin cậy. Ở mức gói tin, không có gì bí mật, chúng ta có thể điều khiển được mạng và giải quyết các vấn đề. Đây chính là thế giới của phân tích gói tin.
Chúng tôi sẽ bắt đầu viết loạt bài về kỹ thuật phân tích gói tin với công cụ tiêu biểu mà chúng tôi muốn giới thiệu ở đây là Wireshark. Khi kết thúc loạt bài này, bạn sẽ có thể thực hiện các kỹ thuật phân tích gói tin ở trình độ advanced, lúc đó bạn sẽ có thể giải quyết các vấn đề khó ở trong mạng của chính mình.
Trong bài đầu tiên này, chúng ta sẽ khởi đầu với những kiến thức căn bản, tập trung vào truyền thông mạng máy tính.

Cơ bản về phân tích gói tin
Phân tích gói tin, hay còn thường được gọi là lắng nghe gói tin hoặc phân tích giao thức, mô tả quá trình bắt và diễn giải dữ liệu sống như là các luồng đang lưu chuyển trong mạng với mục tiêu hiểu rõ hơn điều gì đang diễn ra trên mạng. Phân tích gói tin thường được thực hiện bởi 1 packet sniffer, là 1 công cụ được sử dụng để bắt dữ liệu thô đang truyền trên đường dây.

7 lời khuyên đáng suy ngẫm của Khổng Tử

1. Tâm còn chưa thiện, phong thủy vô ích.
2. Bất hiếu cha mẹ, phong thủy vô ích.
3. Anh em không hòa, bạn bè vô ích.
4. Làm việc bất chính, đọc sách vô ích.
5. Làm trái lòng người, thông minh vô ích.
6. Không giữ nguyên khí, thuốc bổ vô ích.
7. Thời vận không thông, mưu cầu vô ích.

ICMP - Time Exceeded Message Analysis

Giới thiệu
Thông điệp ICMP Time Exceeded là loại thông điệp được tạo ra bởi các gateway hoặc router. Để có thể nắm được 1 cách rõ nhất về loại thông điệp này, bạn phải có kiến thức về IP Header ở trong 1 gói tin. Khi nhìn vào IP Header, bạn sẽ thấy có các trường TTL và Fragment Flag, đây là 2 trường đóng 1 vai trò lớn trong việc hoạt động của thông điệp ICMP này. Hãy chắc chắn rằng bạn đã hiểu về 2 trường đó trước khi chúng ta tiếp tục bài này!
Thông điệp ICMP Time Exceeded được tạo ra khi Gateway đang xử lý datagram (hay packet) có trường Time to Live được thiết lập là 0 và khi trường đó được thiết lập là 0 thì datagram sẽ bị loại bỏ.
Thuật ngữ "fragment" (phân mảnh) có nghĩa là "cắt ra thành nhiều mảnh". Khi dữ liệu quá lớn và không thể cho vào cùng 1 packet, nó sẽ được cắt thành các mảnh nhỏ và gửi đến đích. Ở đầu bên kia, host đích sẽ nhận được các phần bị phân mảnh và ghép chúng lại với nhau để tạo ra gói dữ liệu ban đầu.

Phân tích
Dưới đây là cấu trúc của 1 thông điệp ICMP Time Exceeded:

ICMP - Redirect Message Analysis

Giới thiệu
Thông điệp ICMP Redirect luôn được gửi từ 1 gateway tới host và ví dụ dưới đây sẽ minh họa điều đó.
Trước khi vào ví dụ, ta hãy thử giả sử rằng thông điệp ICMP Redirect xảy ra khi 1 host gửi 1 datagram (hay packet) tới gateway của nó (điểm đến của datagram này là 1 mạng khác), sau đó nó sẽ chuyển datagram đó đến gateway tiếp theo và gateway thứ 2 này nằm cùng 1 mạng với host đích. Gateway thứ 2 sẽ tạo ra thông điệp ICMP này và gửi nó tới host nguồn đã gửi datagram.

Có 4 loại thông điệp ICMP Redirect khác nhau:


Ví dụ:

ICMP - Source Quench Message Analysis

Giới thiệu
Thông điệp ICMP Source Quench là loại thông điệp có thể được tạo ra bởi 1 gateway hoặc là 1 host. Bạn sẽ không thấy bất kỳ thông điệp nào như vậy hiện lên trên màn hình máy của bạn trừ khi bạn đang làm việc trên 1 gateway mà ở gateway đó sẽ xuất ra màn hình tất cả các thông điệp ICMP mà nó có. Tóm lại, 1 thông điệp ICMP Source Quench được tạo ra bởi 1 gateway hoặc 1 host đích để nói với người gửi giảm bớt tốc độ gửi tin bởi vì gateway hay host đó không thể theo kịp với tốc độ của dữ liệu mà nó nhận được.

Phân tích
Một gateway có thể loại bỏ các Internet datagram (hay packet) nếu nó không có 1 không gian đệm cần thiết để sắp xếp (lưu trữ tạm thời) những datagram đó cho đầu ra tới mạng tiếp theo trên tuyến đường tới mạng đích. Nếu 1 gateway loại bỏ 1 datagram, nó có thể gửi 1 thông điệp ICMP Source Quench tới host nguồn nơi gửi datagram đó.
Dưới đây là cấu trúc gói tin của thông điệp ICMP Source Quench:

ICMP - Destination Unreachable Message Analysis

Giới thiệu
Thông điệp 'ICMP Destination Unreachable' khá thú vị, bởi vì thực sự là nó không chỉ chứa 1 thông điệp mà có tới tận 6 thông điệp. Điều này có nghĩa là ICMP Destination Unreachable được chia thành 6 thông điệp khác nhau.
Bài này sẽ phân tích tất cả 6 thông điệp Destination Unreachable và giải thích mỗi thông điệp được sử dụng làm gì. Bảng dưới đây cho thấy 1 bảng tóm tắt ngắn gọn về các thông điệp sẵn có và giá trị của chúng có chứa trong ICMP Header.


Để khỏi lẫn lộn, thì các bạn hãy ghi nhớ rằng: ICMP Destination Unreachable là 1 thông điệp chung, các giá trị code khác nhau hoặc các thông điệp là 1 phần của nó là để làm rõ loại thông điệp "Destination Unreachable" nhận được là loại nào.

ICMP - Echo/Echo Reply (Ping) Message

Giới thiệu
Như đã được đề cập trong bài trước, 1 Echo chỉ đơn giản như hầu hết mọi người thường gọi là 1 "ping", Echo Reply là "ping reply". Các ICMP Echo được sử dụng chủ yếu để xử lý sự cố. Khi 2 host đang có vấn đề trong việc truyền thông với nhau, thì một vài yêu cầu ICMP Echo đơn giản sẽ cho ta thấy được liệu có vấn đề gì với các gói tin định tuyến trên đường truyền đến đích hay không.

Chúng ta hãy thử nhìn vào hình minh họa cho 1 gói ICMP Echo/Echo Reply:


Introduction to the ICMP Protocol

Internet Control Message Protocol, là 1 giao thức rất phổ biến và hỗ trợ cho sự hoạt động của giao thức IP. Vì giao thức IP được thiết kế để được hoàn toàn đáng tin cậy, nên ICMP sẽ được sử dụng để cung cấp thông tin phản hồi về các vấn đề đã tồn tại trong môi trường truyền thông.
ICMP là 1 trong những giao thức hữu ích nhất được cung cấp để khắc phục các vấn đề sự cố mạng như phân giải DNS, định tuyến, kết nối... Tuy nhiên bạn nên thận trọng vì bạn có thể phải dành ra nửa ngày chỉ để cố gắng tìm ra lý do tại sao bạn lại không nhận được 1 "ping trả lời" (thuật ngữ chính xác là 'echo reply') từ 1 máy chủ Web trong khi thực tế thì tường lửa của nó được cấu hình không trả lời 'pings' vì lý do an ninh. Điều này thường dẫn đến việc hầu hết các kỹ sư có kết luận không chính xác rằng các máy chủ từ xa có thể bị down.

Note
Một vài năm trước đây đã có 1 chương trình được phát hành, và hiện tại vẫn đang còn được chia sẻ trên Internet, gọi là Click. Click được thiết kế để chạy trên nền tảng Windows và chức năng của nó là để chống lại những người dùng mIRC. Chương trình sẽ sử dụng các thông điệp khác nhau có sẵn trong giao thức ICMP để gửi thông báo lỗi đặc biệt cho người dùng mIRC, làm cho những người dùng từ xa nghĩ rằng họ mất kết nối với IRC Server, và do đó ngắt kết nối chương trình tới máy chủ. Sự kì diệu không phải ở chỗ là những gì chương trình có thể làm, mà chính là làm thế nào để chương trình đó có thể làm như vậy. Đây là nơi mà 1 chuyên viên mạng thực sự sẽ có thể xác định và sửa chữa các điểm yếu an ninh mạng.

DNS Response Message Format

Giới thiệu
Bài trước chúng ta đã được giới thiệu về định dạng của thông điệp truy vấn DNS. Chúng ta đã phân tích khá chi tiết và cho thấy cách 1 máy sử dụng cờ Flags/Parameters để lựa chọn những tùy chọn (Option) khác nhau.
Trong bài này, chúng ta sẽ xem và phân tích những đáp ứng nhận được từ những truy vấn ở bài trước. Những đáp ứng của 1 truy vấn, trong trường hợp của 1 truy vấn đệ quy, đến trực tiếp từ máy chủ DNS mà chúng ta đã gửi truy vấn và trong trường hợp của 1 truy vấn không đệ quy sẽ đến từ các máy chủ DNS gần đây nhất mà các máy khách liên hệ để có được thông tin cần thiết.
Bài này là sự tiếp nối của bài trước đó, vì vậy hãy chắc chắn rằng các bạn đã hiểu được những bài trước của loạt bài DNS này để khi đọc bài này chúng ta có thể hiểu được 1 cách sâu sắc.

Phân tích DNS - Server Response
Đây là câu trả lời (được tô màu xanh) của truy vấn trước đó gửi đến 1 máy chủ DNS ở Úc (139.130.4.4), là nơi tôi yêu cầu phân giải tên miền www.firewall.cx:


Có 1 chi tiết đáng chú ý là thời gian để truy vấn này trở lại với máy của tôi. Thời gian từ lúc mà máy của tôi gửi gói tin cho đến khi nhận được câu trả lời 0.991 giây.
Trong 1 thời gian ngắn mà gói tin di chuyển từ Hy Lạp đến Úc, truy cập máy chủ DNS và máy chủ DNS đó đã gửi các truy vấn của nó cho đến khi tìm được câu trả lời và sau đó tạo ra 1 đáp ứng DNS để gửi trở lại Hy Lạp (nơi mạng gia đình của tôi).
Có rất nhiều yếu tố góp phần nên phản ứng khá nhanh này. Giao thức vận chuyển UDP, là giao thức không yêu cầu quá trình bắt tay 3 bước; tải trọng của máy chủ DNS mà tôi đã gửi truy vấn; tải trọng của các máy chủ DNS khác mà nó đã gửi yêu cầu; tốc độ của tất cả các máy chủ và của chính mạng gia đình và tải trọng chung giữa các router mà gói tin đã phải di chuyển qua để đến được các địa điểm khác nhau.

DNS Query Message Format

Giới thiệu
Bài này chúng ta sẽ đi vào phân tích các gói dữ liệu DNS (DNS packet). Chúng ta sẽ được thấy cách mà các thông điệp DNS được định dạng nên cùng với các các tùy chọn (Option) và các biến chứa trong những thông điệp đó. Để hiểu 1 giao thức, bạn phải hiểu thông tin mà giao thức đó mang từ 1 máy đến máy khác.
Bởi vì các định dạng thông điệp DNS có thể khác nhau, tùy thuộc vào đó là truy vấn hay là câu trả lời, nên tôi sẽ chia bài phân tích này thành 2 phần. Phần 1 phân tích định dạng DNS của 1 truy vấn, nói cách khác là sẽ cho thấy gói dữ liệu trông như thế nào khi chúng ta yêu cầu 1 máy chủ DNS phân giải 1 tên miền. Phần 2 phân tích định dạng DNS của 1 câu trả lời, chính là trả lời của máy chủ DNS về truy vấn của chúng ta.

Phân tích DNS - Host Query
Như đã đề cập trong bài trước, 1 truy vấn DNS được tạo ra khi 1 máy cần phải phân giải 1 tên miền thành 1 địa chỉ IP. Kết quả này có được là do việc bạn nhập "www.firewall.cx" trong thanh địa chỉ ở trên trình duyệt web của bạn hoặc chỉ đơn giản là bằng cách chạy 1 chương trình sử dụng Internet và từ đó tạo ra các truy vấn DNS để có thể giao tiếp thành công với máy chủ cần thiết.
Bây giờ tôi sẽ đưa ra 1 ví dụ để các bạn có thể hiểu rõ hơn. Hãy thử xem 1 gói tin có chứa truy vấn DNS trông sẽ như thế nào khi đang được truyền trên mạng:


Đây là gói tin đã được chụp lại và chúng ta sẽ chuẩn bị phân tích nó. Để tạo ra gói tin này, tôi đã gõ "ping www.firewall.cx". Dòng lệnh tạo ra gói tin này, bắt nguồn từ mạng của tôi và điểm đến của nó là 1 name server có địa chỉ ở Úc. Chú ý là cổng đích của gói tin này được thiết lập là 53, chính là cổng mà DNS hoạt động, và giao thức được sử dụng cho truy vấn DNS đó là UDP.

DNS Queries & Resolution Process

Giới thiệu
Bài này sẽ giúp các bạn hiểu được các truy vấn DNS hoạt động trên Internet và mạng gia đình của bạn như thế nào. Có 2 cách sử dụng hệ thống tên miền để phân giải 1 host hoặc 1 tên miền sang 1 địa chỉ IP và chúng ta sẽ xem xét từng cách một.

Các loại truy vấn và cách giải quyết
Như đã đề cập trong phần giới thiệu, có 2 cách cho 1 client sử dụng hệ thống tên miền.
Cách thứ nhất, client liên hệ với các máy chủ tên (điều này tương đương với 1 truy vấn không đệ quy) cùng 1 lúc cho tới khi nó tìm thấy máy chủ có chứa những thông tin mà nó yêu cầu. Cách khác là yêu cầu hệ thống máy chủ tên thực hiện bản dịch đầy đủ (điều này tương đương với 1 truy vấn đệ quy), trong trường hợp này, client sẽ gửi truy vấn và nhận được phản hồi có chứa địa chỉ IP của tên miền đang tìm kiếm.
Thật sự rất thú vị khi tìm hiểu về cách mà truy vấn DNS hoạt động như thế nào. Trong khi phân tích những gói tin được gửi và nhận từ các máy chủ DNS, tôi sẽ chỉ cho bạn cách mà client lựa chọn phương pháp mà client muốn truy vấn của nó sẽ được giải quyết.

Ví dụ về DNS Resolution
Chúng ta hãy cùng xem ví dụ sau:
Khi ai đó muốn truy cập trang web của Cisco (www.cisco.com), họ sẽ dùng trình duyệt web và gõ "http://www.cisco.com" hoặc "www.cisco.com" và sau 1 vài giây, trang web sẽ được hiển thị. Nhưng những gì xảy ra đằng sau những thao tác đó không phải ai cũng biết. Đó là những gì mà chúng ta sẽ tìm hiểu ngay bây giờ.

The DNS Protocol

Giới thiệu
Bạn đã bao giờ tự hỏi DNS đến từ đâu? Đây sẽ là những bài mà tôi và bạn sẽ cùng tìm hiểu về giao thức này. Bản tóm lược ngắn gọn về lịch sử DNS cũng sẽ giúp bạn hiểu lý do tại sao các máy chủ DNS đang chạy chủ yếu trên các hệ thống Linux và UNIX. Sau đó chúng ta có thể thấy DNS làm việc ở những tầng nào trong mô hình OSI và ở cuối bài này, tôi và bạn sẽ cùng tìm hiểu các Domain (tên miền) và các máy chủ DNS có cấu trúc như thế nào và làm sao để chúng đảm bảo được thời gian hoạt động và hiệu quả.

Lịch sử
DNS được sử dụng trong những ngày đầu khi Internet chỉ là 1 mạng nhỏ được tạo ra bởi Bộ Quốc Phòng Mỹ cho các mục đích nghiên cứu. Do đó mạng chỉ cần 1 file HOSTS chứa tất cả các thông tin cần thiết về máy tính ở trong mạng và giúp các máy tính chuyển đổi được thông tin địa chỉ và tên mạng cho tất cả các máy tính trong mạng một cách dễ dàng. Và đó chính là bước khởi đầu của hệ thống tên miền gọi tắt là DNS (Domain Name System).
Nhưng khi mạng máy tính ngày càng phát triển thì việc quản lý thông tin chỉ dựa vào 1 file HOSTS là rất khó khăn và không khả thi. Vì thông tin bổ sung và sửa đổi vào file HOSTS ngày càng nhiều và nhất là khi hệ thống máy tính được phát triển dựa trên bộ giao thức TCP/IP dẫn đến sự phát triển tăng vọt của máy tính:
- Lưu lượng và trao đổi trên mạng tăng lên.
- Tên miền trên mạng và địa chỉ ngày càng nhiều.
- Mật độ máy tính ngày càng cao do đó đảm bảo phát triển ngày càng khó khăn.
Đến năm 1984, Paul Mockpetris thuộc viện USC's Information Sciences Institute phát triển 1 hệ thống quản lý tên miền mới gọi là DNS và ngày nay nó ngày càng được phát triển và hiệu chỉnh bổ sung tính năng để đảm bảo yêu cầu ngày càng cao của hệ thống.

TCP Data

Giới thiệu
Cuối cùng, chúng ta đã đi đến bài cuối trong loạt bài phân tích về giao thức vận chuyển TCP. Bài này để dành riêng cho phần dữ liệu nằm tiếp sau TCP Header.

The Data
Chúng ta hãy cùng xem sơ đồ dưới đây:


Khi gói tin trên đến với người nhận, 1 quá trình mở gói là cần thiết để loại bỏ các phần được đóng gói thêm vào khi đi qua từng lớp của mô hình OSI. Sau đó, phần dữ liệu sẽ được đưa cho ứng dụng đang chờ đợi nó. Như vậy, khi gói tin được nhận đầy đủ bởi card mạng, nó được trao cho lớp 2 (Data Link), sau khi thực hiện kiểm tra lỗi ở trên gói tin, nó sẽ loại bỏ các thành phần liên quan đến lớp 2 (Data Link), có nghĩa là các khối màu vàng sẽ được loại bỏ.
Phần còn lại đó là IP Header, TCP Header, và dữ liệu, có thể gọi 3 phần đó là 1 IP Datagram, sẽ được đưa qua lớp 3 của mô hình OSI (Network) nơi các kiểm tra khác sẽ được thực hiện và nếu không phát hiện ra lỗi, IP Header sẽ bị tước bỏ và phần còn lại (bây giờ gọi là 1 Segment) sẽ được đưa lên lớp thứ 4 của mô hình OSI.
Giao thức TCP sẽ chấp nhận Segment và thực hiện kiểm tra lỗi trên Segment này. Giả sử không tìm thấy lỗi, thì TCP Header sẽ được gỡ bỏ và sẽ được đưa lên các lớp trên để đến với các ứng dụng đang chờ nó.

Tổng kết
Cuối cùng thì loạt bài về phân tích giao thức TCP đã xong. Sau khi đọc tất cả những bài này, tôi chắc chắn bạn sẽ có 1 sự hiểu biết tốt hơn về mục đích của giao thức TCP và quá trình diễn ra nó, và bạn có thể thực sự đánh gia cao chức năng của giao thức này.

Lược dịch từ bài gốc: Click Here

Analysing TCP Header Options

Giới thiệu
TCP Options (MSS, Window Scaling, Selective Acknowledgements, Time Stamps, Nop) có vị trí nằm ở cuối TCP Header.
Truyền thông dữ liệu càng ngày càng trở nên phức tạp hơn, ít chấp nhận sai sót và độ trễ, rõ ràng là các tính năng mới này đã được tích hợp cho TCP transport để giúp khắc phục nhiều vấn đề.
Ví dụ, Window Scaling, đã được đề cập đến ở bài trước và được giới thiệu ở đây, có thể sử dụng trường TCP Options bởi vì trường Window nguyên thủy của nó chỉ dài có 16 bits, cho phép một số thập phân tối đa là 65.535. Rõ ràng đây là con số quá nhỏ so với việc chúng ta muốn biểu thị giá trị 'Window Size' sử dụng những con số trong phạm vi kích thước hàng ngàn đến 1 triệu như 400.000 hay 950.000.
Trước khi đi phân tích chi tiết, chúng ta hãy xem qua trường TCP Options ở dưới hình sau:


Nằm ở cuối Header và ngay trước phần dữ liệu, nó cho phép chúng ta sử dụng những cải tiến mới được khuyến nghị bởi các kỹ sư đã giúp thiết kế nên các giao thức mà chúng ta đang sử dụng trong truyền thông dữ liệu ngày nay.