Thứ Hai, 15 tháng 5, 2017

TRỜI SINH IP SAO CÒN SINH MAC?

** Lời dẫn: Bài dịch về để giải thích về một câu hỏi mà những người khi mới làm quen với môn học Mạng máy tính hay gặp phải, tiêu đề lấy cảm hứng "Du - Lượng" trong Tam quốc diễn nghĩa.
Xem bài gốc tại địa chỉ: Why do we have both MAC addresses and IP addresses? từ blog kỹ thuật fixedbyvonnie.com.
* Lưu ý về thuật ngữ: 

  • Để đảm bảo tính khách quan về mặt kỹ thuật, một số thuật ngữ như: host, frame, header, trailer sẽ được giữ nguyên trong bản dịch.
  • Thuật ngữ "layer" trong ngữ cảnh mô hình TCP/IP có thể được dịch là "tầng" hoặc "lớp". Trong bản dịch, hai từ dịch đích được dùng lẫn lộn với cùng một ý nghĩa.
Nội dung bản dịch:
Cớ sao trời sinh MAC lại còn sinh IP?
Đây là thực sự là một câu hỏi đã làm bận lòng tôi suốt một thời gian dài:
Tại sao máy tính lại cần đến cả địa chỉ vật lý – MAC lẫn địa chỉ IP? Tại sao máy tính cần tới 2 địa chỉ để kết nối mạng? Chỉ địa chỉ IP không đủ sao? Rốt cuộc MAC là địa chỉ như thế nào?
Nghe khoai thật nhưng lại cực kỳ thú vị đây. Tiếp tục đọc nhé, hi vọng tôi có thể giúp các bạn hiểu được.
Đầu tiên hãy nói về MAC, bởi anh chàng này kín tiếng hơn so với người anh em đại chúng IP của mình.
👉  NHỮNG ĐỊA CHỈ MAC KỲ DIỆU
Khi nhắc đến MAC, nhiều người lại dễ liên tưởng đến dòng máy tính đình đám là mơ ước của bao đứa trẻ và mất hồn bao người lớn.
Thật lòng mà nói, “địa chỉ MAC” lại là một khái niệm không được lung linh như thế. Địa chỉ MAC, còn được biết đến là địa chỉ vật lý, về bản chất là định danh – tên duy nhất của thiết bị. Nó là một số dài 6 byte, thường được viết dưới dạng số thập lục phân (Hexadecimal), đóng vai trò như một địa chỉ duy nhất phục vụ mục đích giao tiếp với các thiết bị khác trong mạng.
Bất kỳ thiết bị nào từ PC cho đến máy in, TV, lò nướng, máy Xbox, máy photo Xerox – nếu có khả năng giao tiếp với các thiết bị khác thì sẽ có địa chỉ MAC. Với máy tính, bạn có thể dễ dàng xem địa chỉ MAC của mình trong Windows. Dãy số này có nửa đầu để định danh nhà sản xuất, còn nửa sau có thể được ấn định bất kỳ tùy thuộc vào nhà sản xuất.
Như vậy về lý thuyết, mỗi địa chỉ MAC trên thế giới này là duy nhất, như kiểu dấu vân tay của con người vậy.
👉  VẬY, ĐỊA CHỈ IP THÌ SAO?
Thật thừa thãi khi sử dụng tận 2 loại địa chỉ, trong khi chúng đều là định danh duy nhất cho một thiết bị kết nối mạng. Các thiết bị kết nối mạng này được gọi là các host (trong tiếng Việt đôi khi dịch là máy trạm) và cần được cấp 1 địa chỉ IP để có thể kết nối đến các host khác.
Vậy nếu IP giúp host giao tiếp với nhau rồi… thì cần MAC để làm gì?
Để tự giải đáp cho mình, các bạn cùng tôi tìm hiểu một chút về TCP/IP.
👉  VỠ LÒNG VỀ TCP/IP
TCP/IP là một mô hình phân lớp giao thức mạng phổ biến nhất hiện hành.
Hài hước một chút, hãy nhìn TCP như thể những câu chuyện mà máy tính sẽ buôn với nhau nếu chúng tham dự một bữa tiệc cocktail hoặc một sự kiện nào đó. Tương tự như con người sử dụng các ngôn ngữ khác nhau để giao tiếp, máy tính cũng có cách của riêng chúng để trao đổi thông tin với nhau. Một “ngôn ngữ” như thế được gọi là một giao thức – định nghĩa nên các luật để giao tiếp giữa các máy tính với nhau.
Vào thời kỳ khởi thủy của Internet, dường như mỗi nhà sản xuất, mỗi công ty trên thế giới lại lập ra một ngôn ngữ riêng “nói chuyện” với máy tính. Đầu những năm 80, IBM có một cái riêng, Apple, Xerox cũng không chịu kém cạnh, mọi thứ rối rắm như canh hẹ!
Trong hoàn cảnh đó, một nhóm các nhà khoa học ưu tú của Bộ quốc phòng Mỹ và Tổ chức tiêu chuẩn quốc tế tiến hành độc lập, đồng thời, xây dựng một tiêu chuẩn giao tiếp thống nhất cho các máy tính. Kết quả là sự ra đời của 2 mô hình OSI và TCP/IP, nhưng vì OSI tiến những bước quá nặng nề và chậm chạp: mất quá nhiều thời gian để tiêu chuẩn hóa mô hình OSI, nên TCP/IP được chấp nhận và ưa chuộng.
👉  KHIÊU VŨ VỚI TCP/IP
TCP/IP là một bộ các giao thức có phân cấp, định nghĩa việc giao tiếp giữa các máy tính với nhau như thế nào.
“Có phân cấp” nghĩa là mỗi một nhóm giao thức, được gọi là một lớp (layer), lại cung cấp một dịch vụ nào đó cho lớp phía trên nó.
Có 5 lớp trong mô hình TCP/IP:
  • Lớp ứng dụng – Application
  • Lớp giao vận – Transport
  • Lớp Internet
  • Lớp liên kết dữ liệu – Data Link
  • Lớp vật lý – Physical

Lớp liên kết dữ liệu quy định các đặc tính tiêu chuẩn cho việc tạo frame Ethernet trong khi lớp Internet định nghĩa giao thức IP có nhiệm vụ đánh địa chỉ.
Nhân tiện, “tạo frame” là một thuật ngữ ám chỉ việc lớp liên kết dữ liệu đóng gói nội dung bằng một header và trailer Ethernet. Gọi là “frame” hay “khung” vì tải dữ liệu được thêm thông tin vào cả hai đầu.
Khi một host liên lạc với một host khác, dữ liệu chạy dọc từ trên xuống qua các lớp TCP/IP và nhận thêm header ở mỗi lớp.
Vì thế khi bạn đi đến fixedbyvonnie.com, trình duyệt của bạn bàn giao lại việc xử lý đường dẫn này cho giao thức HTTP thuộc tầng ứng dụng.
Tầng ứng dụng thêm vào header của riêng nó, trong trường hợp này là header HTTP chứa các thông tin về website fixedbyvonnie.com. Nếu bạn đang sử dụng Chrome, header HTTP nôm na như sau:
Này! Tớ là Chrome và tớ muốn file index.php từ fixedbyvonnie.com
Về mặt kỹ thuật, đây là yêu cầu kiểu HTTP GET, nói với web server rằng bạn muốn lấy một tài liệu nào đó.
Tiếp đó, TCP/IP chuyển dữ liệu xuống tầng giao vận, ở đó có 2 giao thức là UDP và TCP. Do chúng ta đang lấy ví dụ vể duyệt web nên header TCP sẽ được thêm vào tạo nên một segment mới, chuyển đơn vị này xuống lớp Internet. Tại tầng này, segment được gắn tiếp một header nữa. Có hàng tá thứ trong header ở lớp Internet, nhưng để đơn giản, tôi chỉ quan tâm đến địa chỉ IP nguồn và đích. Xử lý xong, ta có một gói tin – packet Internet ở lớp Internet.
Ngay khi được đưa xuống lớp liên kết dữ liệu, packet lúc nào được đóng khung ở hai đầu bởi một “mớ” thuộc giao thức Ethernet. Tôi cố tình tỏ ra mơ màng khi sử dụng từ “mớ” bởi sợ đầu óc sẽ quay cuồng nổ tung khi cố giải thích tường tận “mớ” gồm những gì. Xin phép không đi vào quá chi tiết.
Vậy cái gì nằm trong header Ethernet? Đó là địa chỉ MAC nguồn và đích, còn trailer Ethernet chỉ là một con số dài giúp host đích biết được frame có nguyên vẹn hay không(checksum).
 Vậy là rất nhiều header được thêm vào làm cho đơn vị dữ liệu của chúng ta, ban đầu chỉ là một yêu cầu HTTP GET gọn nhẹ, lớn dần lên theo dọc theo chiều xuống của mô hình TCP/IP. Đến khi xuống lớp vật lý, dữ liệu được mã hóa thuần túy vật lý vào dây đồng thành các mức điện áp hoặc vào cáp quang thành các xung ánh sáng.
Tại host đích là web server, quá trình ngược lại diễn ra: tín hiệu dữ liệu thô ở lớp vật lý, các header được loại bỏ dần theo chiều từ dưới lên trong mô hình TCP/IP, cho đến khi bóc tách được dữ liệu cốt lõi nhất là yêu cầu HTTP GET của host nguồn.
Vẫn còn ngờ ngợ khó tin phải không? Nghĩ mà xem:
Khi server nhận được yêu cầu HTTP GET, nó là một chuỗi dài các ký hiệu ‘0’ và ‘1’. Nhưng vì cả máy của bạn và server của tôi đều hiểu TCP/IP, server của tôi sẽ biết phải dịch chuỗi nhị phân đó như thế nào để hiểu thông điệp muốn nói gì.
👉  GIỜ CẦN QUAN TÂM ĐẾN ĐỊA CHỈ MAC ĐÂY
Sau khi nhập vào thanh địa chỉ nội dung fixedbyvonnie.com, máy tính của bạn sẽ cố để làm rõ cái máy tính với tên gọi fixedbyvonnie.com nằm ở trong mạng cục bộ hay chỗ quái quỷ nào trên thế giới.
Nó sử dụng giao thức DNS để làm việc đó. Không đi quá sâu vào mặt kỹ thuật, một cách dễ hiểu, máy tính của bạn sẽ biết fixedbyvonnie.com không nằm trong mạng cục bộ LAN vì địa chỉ IP của trang web này nằm khác nhóm với IP máy tính của bạn.
Chẳng hạn, fixedbyvonnie.com có IP là 198.57.208.223. Giá trị 198.57.208 nói cho máy tính của bạn biết bạn nằm ở mạng khác với website của tôi vì những giá trị tương tự trong IP của bạn khác giá trị trên (vai trò của subnet mask).
Do đó khi yêu cầu HTTP GET của bạn đang trên hành trình trượt dọc ngăn xếp TCP/IP, đến lớp liên kết dữ liệu, máy tính của bạn sẽ lẩm bẩm:
Mặc dù tao biết fixedbyvonnie.com nằm ở mạng khác, nhưng tao chẳng biết đi đường nào đến đó cả. Hmm… làm thế nào giờ? À, chờ chút, cái router biết nhiều hơn tao. Tao sẽ gửi yêu cầu này đến default gateway bằng cách gửi frame tới địa chỉ MAC của default gateway gắn với tao!
Sau đóng gói, dữ liệu này đưa thẳng đến router của nhà bạn. Các thông tin của các lớp trên vẫn giữ nguyên, kể cả địa chỉ IP đích là 198.57.208.223 trong header IP.
Đây là nguyên tắc trị giá triệu đô mà bạn phải nắm được:
Địa chỉ IP nguồn và đích trong header IP không bao giờ thay đổi trong suốt hành trình của gói tin. Nói cách khác, khi gói tin dịch chuyển trong mạng, địa chỉ IP nguồn và đích là tĩnh. Chúng không thay đổi.
Nhưng các địa chỉ MAC thì luôn thay đổi.
Cứ mỗi lần gói tin chuyển từ router này sang router khác, header và trailer được bóc đi và thay mới. Các thông tin mới luôn bao gồm địa chỉ MAC nguồn là MAC của router vừa nhận gói tin và MAC đích là MAC của router kế tiếp.
Bạn đã rút ra được gì chưa?
Trong khi địa chỉ MAC giúp các gói tin đến thiết bị kế tiếp, thì địa chỉ IP gánh trách nhiệm giúp gói tin vượt qua cả hành trình và đến được đích cuối cùng của nó.
👉  VÍ DỤ MINH HỌA NHO NHỎ
Giả sử có 3 routers giữa máy tính của bạn và server của tôi.
Gọi tên các thiết bị như sau:
  • A là máy tính của bạn
  • B là Router 1
  • C là Router 2
  • D là Router 3
  • E là fixedbyvonnie.com

Để gói tin chạy được từ A đến B, lớp 2 của TCP/IP đóng khung gói tin với header Ethernet chứa địa chỉ MAC đích là B và địa chỉ MAC của A là địa chỉ nguồn (ND: đã nói đến “địa chỉ” ở lớp 2 thì phải hiểu ngay là địa chỉ MAC, lớp 3 là địa chỉ IP ).
Nhớ lại phần trên, mô hình TCP/IP gồm 5 lớp, lớp Internet thêm một header có chứa IP nguồn và IP đích vào gói tin. Sau đó gói tin đưa xuống lớp 2, đóng frame Ethernet có đại chỉ MAC như đã nói rồi đưa lên truyền ở lớp vật lý.
Nếu tôi có năng lực đọc được ý nghĩ của Router 1, chắc hẳn nó sẽ nghĩ như này:
Chà, mình có biết nhóm IP nào mà chứa địa chỉ IP của thằng fixedbyvonnie.com này không nhỉ? Um… không biết rồi, thôi để hỏi thằng hàng xóm Router 2.
Để đưa frame đến được Router 2, Router 1 bóc header chứa MAC cũ là địa chỉ máy tính của bạn và thay địa chỉ MAC của nó vào phần địa chỉ nguồn. Đồng thời, thay thế địa chỉ đích bằng địa chỉ MAC của Router 2. Suốt quá trình đó, địa chỉ IP nguồn và đích bất khả xâm phạm.
Kịch bản tiếp diễn như vậy ở các chặng sau cho đến khi gói tin dến được đích, với địa chỉ MAC liên tục thay đổi.
Địa chỉ IP giữ vai trò trong bức tranh lớn, nhưng MAC mới là thứ đưa gói tin đi từng bước một. Nếu chỉ có mỗi địa chỉ IP, máy tính của bạn thực sự chẳng biết làm gì với gói tin cả.
Đây hiển nhiên chỉ là cách giải thích tinh gọn về cách hoạt động của MAC và IP, nhưng thực sự rất cơ bản. Nếu bạn muốn biết thêm chi tiết hoặc có thắc mắc, hãy comment xuống dưới. Xin cảm ơn!


Thứ Năm, 13 tháng 4, 2017

LÝ GIẢI SỨC TÀN PHÁ KHỦNG KHIẾP CỦA THẢM HỌA "NGỌT NGÀO" NHẤT LỊCH SỬ BOSTON

Năm 1919, một bể chứa 2,3 triệu gallon (tương đương 8706 m3 hay 8,7 tỷ lít) mật rỉ đường đột ngột vỡ tung, gây nên thảm họa chết người. Các nhà khoa học giờ đã hiểu tại sao cơn sóng thần si-rô này lại chết chóc đến như vậy.


Thoạt nghe thì như chuyện trẻ con nhưng trận Đại hồng thủy mật rỉ đường là một trong những sự kiện thàm khốc và gây ra thiệt hại nặng nề nhất trong lịch sử thành phố Boston.
Vào ngày 15 tháng 1 năm 1919, nhiều cư dân tại thành phố nghe thấy một tiếng nổ vang rền. Một bể chứa si-rô quy mô công nghiệp bị vỡ tung, phóng ra một con sóng thần dịch mật bao trùm quận North End gần bến cảng của thành phố.
Con sóng cao 5 mét di chuyển ào ạt với tốc độ 56km/h nhấn chìm nhiều nhà cửa và phương tiện, cướp đi mạng sống của 21 người và gây thương tích cho 150 người khác.
Cho đến nay các nhà khoa học mới tổng hợp được các bằng chứng, cho phép phân tích và chứng minh sự nguy hiểm của mật rỉ đường thông qua tính chất vật lý của chúng.

 Tại hội nghị thường niên của Hiệp hội Thành tựu thúc đẩy Khoa học Hoa Kỳ diễn ra vào trung tuần tháng 2 năm 2017 tại Boston, khám phá này được công bố, trong đó nhấn mạnh điểm mấu chốt đó là: độ nhầy của mật rỉ đường sẽ tăng lên rất nhanh khi nhiệt độ giảm xuống. Điều này có nghĩa là ai đó sẽ càng khó thoát ra khỏi đám mật rỉ đường đó hơn khi trời càng tối!
Phát biểu tại hội nghị, Nicole Sharp, kỹ sư hàng không vũ trụ đồng thời là tác giả của blog Fuck Yeah Fluid Dynamics, cho biết: “Mặt trời bắt đầu lặn khi các nhân viên cứu hộ vẫn đang tích cực tìm kiếm và giúp đỡ các nạn nhân. Song mật rỉ đường càng lúc càng cô đặc lại khiến cho các cư dân mắc kẹt trong đống đổ nát càng trở nên khó khăn trong việc ngoi lên để thở”.



Vũng si-rô loãng ra một cách chậm chạp, để lại các nạn nhân như những con muỗi vặt nằm trong đám hổ phách nâu màu cánh gián, nằm chờ chết không thể cô độc và lạnh lẽo hơn. Một người đàn ông bị mắc kẹt trong gạch đá của một trạm cứu hỏa vừa đổ sập, thậm chí đã buông xuôi khi không còn sức để gạt dịch mật khỏi mặt nữa.
Thật khủng khiếp khi trời ngày càng lạnh, họ càng cạn dần sức lực và hi vọng di chuyển khỏi khối mật rỉ đường càng trở nên mong manh”, ông Sharp nói thêm.
Ngay trước khi thảm hỏa xảy ra, Boston đón một đợt rét bất thường và nhiệt độ lúc đó là -16 độ C. Bể thép chứa mật tại cảng, vốn chỉ có độ dày bằng một nửa so với thiết kế kỹ thuật, đã xuất hiện những dấu hiệu cong méo. Hai ngày trước thảm họa, bể chứa đầy khoảng 70%, thì một đợt vận chuyển mới mang theo mật rỉ đường nóng từ Ca-ri-bê cập cảng và đổ đầy bể chứa.
Một chi tiết được miêu tả mỗi khi có một lượng mật mới xuống tàu đó là bể chứa sẽ phát ra những âm thanh kéo dài u ám. Mọi người cảm thấy lo lắng bởi những âm thanh khi đổ mật vào bể chứa”.
Tình hình tiếp tục xấu đi khi bể chứa bị dò mật, tuy nhiên công ty chủ quản lại lấp liếm bằng cách sơn bể chứa thành màu nâu của mật!
Sharp và một đội ngũ chuyên gia của đại học Harvard đã thực hiện nhiều thí nghiệm để mô phỏng lại phản ứng của si-rô ngô (đại diện cho mật rỉ đường) ở một tủ lạnh cỡ lớn trong điều kiện nhiệt độ biến thiên, nhằm kiểm chứng lại các báo cáo thời đó về thảm họa.
Ông Sharp phân tích: “Các ghi chép lịch sử ước tính đợt sóng đầu tiên dịch chuyển với tốc độ 56 km/h. Khi xây dựng mô hình thí nghiệm … và cài đặt các tham số vật lý của mật rỉ đường, chúng tôi thu được những con số tương đương vậy. Loài ngựa không thể chạy thoát khỏi nó. Ngựa, người, tất cả mọi thứ đều bị con sóng đó cuốn đi.
Đợt sóng mật khổng lồ tuân theo các định luật vật lý của một hiện tượng được gọi là “dòng trọng lực” (gravity current), ở đó một luồng chất lỏng đặc hầu như chỉ lan ra theo phương ngang thành một dòng loãng hơn. “Dòng nham thạch như vậy, tuyết lở cũng như vậy, và những con gió đông lùa dưới khe cửa nhà bạn cũng chính là như vậy”.
Nhóm nghiên cứu sử dụng một mô hình địa vật lý được phát triển bởi giáo sư Herbert Huppert của đại học Cambridge, người chuyên nghiên cứ về các dòng trọng lực đang hiện hữu như các luồng nham thạch và các tảng băng trôi ở Nam cực.
Mô hình thí nghiệm giả thuyết rằng quá trình mật rỉ đường diễn ra theo ba giai đoạn chính.
Dòng mật đầu tiên di chuyển theo chế độ tụt nhanh”, Huppert nói, mô tả cách dịch mật tròng trành ào ra khỏi bể chứa theo khối khổng lồ.
(“The current first goes through a so-called slumping regime,” said Huppert, outlining how the molasses would have lurched out of the tank in a giant looming mass.)
Tiếp đến là chế độ mà quán tính đóng vai trò chính”. Ở giai đoạn này, thể tích của dòng trào ra là nhân tố quan trọng nhất quyết định ngọn đầu sóng quét nhanh đến mức nào.
(“Then there’s a regime where inertia plays a major role,” he said. In this stage, the volume of fluid released is the most important factor determining how rapidly the front of the wave sweeps forward.)
Chế độ nhầy diễn ra sau đó,” ông kết luận. Đây là giai đoạn quyết định dòng mật khổng lồ lan ra từ từ hay nhanh chóng – và từ đó giải thích hậu quả kinh hoàng của thảm họa Boston.
(“Then the viscous regime generally follows,” he concluded. This is what dictates how slowly the fluid spreads out – and explains the grim consequences of the Boston disaster.)
Cứu người khác là một chuyện, còn bản thân có thể sống sót cho đến khi được cứu, lại là một chuyện hoàn toàn khác,” ông Sharp nhấn mạnh.


>> Các câu tiếng Anh là câu trong văn bản gốc, gây ra khó khăn cho tôi nhất để dịch thoát ý. Cụ thể là các từ cụm danh từ của regime (thể chế, chế độ, chính thể). Any ideas?

Analog flash clock widget