Internet hoạt làm việc như thế nào?
Mạng Internet hoạt động thông qua mạng định tuyến các gói tin bằng giao thức Internet(IP), giao thức TCP và những giao thức khác.
Giao thức là gì?
Giao thức là một bộ các quy tắc chỉ định cách mà các máy tính giao thiếp với nhau qua mạng. Ví dụ: giao thức TCP có quy tắc là mỗi khi một máy tính gửi dữ liệu tới một máy tính khác, máy tính nhận sẽ phản hồi lại, xác nhận đã nhận gói để nếu máy gửi không có phản hồi nào từ máy nhận, nó sẽ gửi lại cho đến khi thấy phản hồi. Giao thức Internet(IP) chỉ định cụ thể cách mà máy tính gửi thông tin đến máy khác bằng cách gán địa chỉ vào dữ liệu mà nó gửi.
Gói tin(Packet) là gì?
Dữ liệu gửi qua Internet được gọi là message. Trước khi message được gửi thì nó được chia thành nhiều phần gọi là các gói tin. Những gói tin này được gửi độc lập với nhau. Packet có kích thước lớn nhất thường ở khoảng 1000 đến 3000 ký tự. Giao thức Internet chỉ định cách mà message được đóng gói.
Mạng định tuyến gói tin là gì?
Nó là một mạng mà định tuyến các gói tin từ một máy gửi đến một máy nhận. Mạng Internet được tạo thành từ một mạng lưới lớn các máy tính chuyên dụng được gọi là router. Công việc của mỗi router là biết được làm sao để truyền các gói tin từ nguồn cho đến đích của chúng. Một gói tin sẽ được di chuyển qua nhiều router trong hành trình của nó.
Khi một gói tin di chuyển từ một router sang router tiếp theo, nó được gọi là một hop. Bạn có thể dùng lệnh tracerouter
để xem các hop mà gói tin đi qua giữa máy bạn và một host nào đó
Giao thức Internet chỉ định cách mà địa chỉ mạng được gán vào header của gói tin, một không gian được chỉ định trong gói tin chứa metadata. Giao thức Internet cũng chỉ định cách mà router nên chuyển hướng gói tin dựa trên địa chỉ trong header.
Nguồn gốc của router.
Các bộ đính tuyến có nguồn gốc từ những năm 1960 với tên là ARPANET, một dự án quân sự với mục tiêu là một hệ thống mạng máy tính mà được phân cấp để chính phủ có thể truy cập và phân phối thông tin trong trường hợp có một sự thảm khốc. Từ đó, các nhà cung cấp dịch vụ mạng đã thêm router và những ARPANET router. Không có một người sở hữu duy nhất nào của router, mà có nhiều chủ sở hữu: Các cơ quan chính phủ, các trường đại học liên kết với ARPANET trong những ngày đầu và Các nhà mạng như AT&T và Verizon sau này.
Các gói tin có được gửi đi theo thứ tự? Nếu không thì làm sao mà các message tập hợp lại được?
Gói tin có thể di chuyển tới đích mà không theo thứ tự. Điều này sảy ra khi gói tin sau tìm thấy một đường đi nhanh hơn để đến đích so với gói tin trước. Nhưng header của gói tin chứa thông tin của thứ tự gói tin liên quan đến toàn bộ message. Giao thức TCP sử dụng thông tin này để tái cấu trúc message ở phía đich.
Gói tin có luôn đến đích của nó?
Internet protocol không đảm bảo rằng gói tin sẽ đến dúng đích của nó. Khi mà gói tin không đến đích, nó được gọi là gói tin bị mất ( packet loss). Điều này thường sảy ra khi router nhận một lượng gói tin lớn hơn số lượng mà nó có thể sử lý. Nó không còn lựa chọn nào khác ngoài drop một số gói tin.
Tuy nhiên, Giao thức TCP xử lý packet loss bằng cách gửi lại gói tin. Nó là điều này bằng các để cho các máy nhận gửi định kì các gói tin xác nhận trở lại máy gửi cho biết số lượng gói message mà nó đã nhận được và được xây dụng lại. Nếu máy nhận nhận thấy thiếu gói tin, nó sẽ gửi yêu cầu đến máy nhận để máy nhận gửi lại gói tin bị mất. Khi hai máy giao tiếp với nhau bằng giao thức TCP, chúng ta gọi nó là kết nối TCP.
Địa chỉ Internet trong như thế nào?
Những địa chỉ này được gọi là địa chỉ IP và nó có hai tiêu chuẩn. Tiêu chuẩn đầu tiên được gọi là và nó trông như thế này 123.25.169.99. Nhưng bởi vì IPv4 chỉ hỗ trợ 2^32^(Khoảng 4 tỷ) địa, thế nên một tiêu chuẩn mới cho địa chỉ mạng là IPv6, trông giống như 2fee:125a:134:f33:4:22f4:2345:234c. IPv6 hỗ trợ 2^128^ địa chỉ, cho phép nhiều thiết bị kết nối mạng hơn. Như vậy, có một ánh xạ một-một giữa các địa chỉ IPv4 và IPv6 . Lưu ý việc chuyển đổi từ IPv4 sang IPv6 vẫn đang được tiến hành và sẽ mất nhiều thời gian. Tính đến năm 2014, Google tiết lộ lưu lượng IPv6 của họ chỉ ở mức 3%.
Làm thế nào có thể có hơn 8 tỷ thiết bị được kết nối mạng trên Internet nếu chỉ có khoảng 4 tỷ địa chỉ IPv4?
Đó là bởi địa chỉ IP public và private. iều thiết bị trên mạng cục bộ được kết nối với Internet sẽ chia sẻ cùng một địa chỉ IP công cộng . Trong mạng nội bộ, các thiết bị được phân biệt với nhau bởi địa chỉ IP riêng , thường có dạng 192.168.x.x hoặc 172.16.x.x hoặc 10.x.x.x nơi x là một số từ 1 đến 255. Những địa chỉ IP riêng được sự phân công của Dynamic Host Configuration Protocol (DHCP) . Ví dụ: nếu cả máy tính xách tay và điện thoại thông minh trên cùng một mạng cục bộ đều yêu cầu www.google.com, trước khi các gói rời khỏi modem, nó sẽ sửa đổi các tiêu đề gói và gán một trong các cổng của nó cho gói đó . Khi máy chủ google đáp ứng các yêu cầu, nó sẽ gửi dữ liệu trở lại modem tại cổng cụ thể này, vì vậy modem sẽ biết liệu định tuyến các gói đến máy tính xách tay hoặc điện thoại thông minh. Theo nghĩa này, địa chỉ IP không dành riêng cho máy tính, nhưng nhiều hơn kết nối mà máy tính kết nối với Internet. Địa chỉ duy nhất cho máy tính của bạn là địa chỉ MAC , không bao giờ thay đổi trong suốt vòng đời của máy tính. Giao thức này lập bản đồ địa chỉ IP riêng để công chúng chỉ IP địa chỉ được gọi là Network Address Translation giao thức (NAT). Đó là những gì có thể hỗ trợ hơn 8 tỷ thiết bị được kết nối mạng chỉ với 4 tỷ địa chỉ IPv4 có thể .
Làm thế nào để router biết nơi gửi một Packet? Có cần biết tất cả các địa chỉ IP trên Internet không?
Mọi router không cần biết mọi địa chỉ IP ở đâu. Nó chỉ cần biết router hàng xóm của địa chỉ IP, được gọi là liên kết ngoài(outbound link), để định tuyến mỗi gói tin đến đó. Lưu ý rằng địa chỉ IP được chia thành 2 phần, phần network và phần mạng. Ví dụ:129.42.13,69 có thể được chia thành
Network Prefix: 129.42
Host Identifier: 13.69
Hầu hết các thiết bị mạng đều kết nối với internet thông qua một kết nốt đơn sẽ chia sẻ tất cả cùng một network prefix. router sẽ gửi tất cả các gói có dạng 129.42.x.x đến cùng một vị trí. Vì vậy, thay vì theo dõi hàng tỷ địa chỉ IP, router chỉ cần theo dõi ít hơn một triệu tiền tố mạng.
Nhưng một router vẫn cần biết rất nhiều tiền tố mạng. Nếu một router mới được thêm vào Internet, làm thế nào để biết cách xử lý các gói cho tất cả các tiền tố mạng này?
Một router mới có thể đi kèm với một vài tuyến đường được cấu hình sẵn. Nhưng nếu nó gặp một gói, nó không biết cách định tuyến, nó truy vấn một trong các router lân cận . Nếu hàng xóm biết cách định tuyến gói , nó sẽ gửi thông tin đó trở lại router yêu cầu . Các router yêu cầu sẽ lưu thông tin này để sử dụng trong tương lai. Theo cách này, một router mới xây dựng bảng định tuyến của riêng mình , một cơ sở dữ liệu gồm các tiền tố mạng cho các liên kết ngoài . Nếu router lân cận không biết, nó sẽ truy vấn hàng xóm của mình và cứ thế.
Làm thế nào để các máy tính nối mạng tìm ra địa chỉ IP dựa trên tên miền?
Chúng ta gọi việc phân giải địa chỉ IP của một tên miền có thể đọc được như google.com là phân giải địa chỉ ip .Máy tính phân giải địa chỉ IP thông qua Hệ thống tên miền ( DNS ), một cơ sở dữ liệu phi tập trung về ánh xạ từ tên miền đến địa chỉ IP .
Để giải quyết địa chỉ IP, trước tiên máy tính sẽ kiểm tra DNS cache cục bộ, nơi lưu trữ địa chỉ IP của các trang web mà nó đã truy cập gần đây. Nếu nó không thể tìm thấy địa chỉ IP ở đó hoặc bản ghi địa chỉ IP đó đã hết hạn , nó sẽ truy vấn các máy chủ ISP DNS chuyên dùng để giải quyết các địa chỉ IP. Nếu các máy chủ ISP DNS không thể tìm thấy giải quyết địa chỉ IP , họ sẽ truy vấn các root name server, có thể giải quyết mọi tên miền cho một top-level domain . Top-level domain là các từ ở bên phải của thời kỳ cực hữu trong một tên miền. .com .net .org là một số ví dụ về các tên miền cấp cao nhất .
Làm sao mà ứng dụng có thể giao tiếp qua internet?
Giống như nhiều dự án kỹ thuật phức tạp khác, Internet được chia thành các thành phần độc lập nhỏ hơn, hoạt động cùng nhau thông qua các giao diện được xác định rõ.
Các ứng dụng Internet hoạt động ở Lớp ứng dụng và không cần phải lo lắng về các chi tiết trong các lớp bên dưới. Ví dụ, một ứng dụng kết nối với một ứng dụng khác trên mạng thông qua TCP bằng cách sử dụng cấu trúc được gọi là socket , nó trừu tượng hóa các chi tiết nghiệt ngã của các gói định tuyến và lắp ráp lại các gói thành tin nhắn .
Mỗi lớp Internet này làm gì?
Ở cấp độ thấp nhất là Lớp Liên kết là lớp vật lý Internet. Lớp Liên kết liên quan đến việc truyền các bit dữ liệu thông qua một số phương tiện vật lý như cáp quang hoặc tín hiệu vô tuyến wifi Trên cùng của Lớp Liên kết là Lớp Internet . Lớp Internet liên quan đến việc định tuyến các gói đến đích của chúng. Các giao thức Internet đề cập trước đó sống trong lớp này (do đó cùng tên). Các Internet Protocol động điều chỉnh và tạo lại các gói tin dựa trên tải mạng hoặc cúp. Lưu ý rằng nó không đảm bảo các gói luôn đi đến đích, nó chỉ cố gắng tốt nhất có thể. Trên cùng của Lớp Internet là Lớp Transport. Lớp này là để bù đắp cho thực tế là dữ liệu có thể bị mất trong các lớp Internet và Liên kết bên dưới. Các Transport Control Protocol đề cập trước đó sống ở lớp này, và nó hoạt động chủ yếu để lắp ráp lại các gói dữ liệu vào ban đầu của họ thông điệp và cũng tái truyền các gói tin rằng đã mất. Lớp ứng dụng nằm trên cùng. Lớp này sử dụng tất cả các lớp bên dưới để xử lý các chi tiết phức tạp trong việc di chuyển các gói trên Internet. Nó cho phép các ứng dụng dễ dàng thực hiện kết nối với các ứng dụng khác trên Internet với các tóm tắt đơn giản như các . Các giao thức HTTP mà quy định cụ thể như thế nào trình duyệt web và máy chủ web nên tương tác sống trong lớp ứng dụng . Các giao thức IMAP trong đó xác định như thế nào khách hàng email nên lấy email sống trong lớp ứng dụng . Các giao thức FTP trong đó xác định một giao thức tập tin chuyển giao giữa khách hàng tập tin tải về và máy chủ tập tin lưu trữ sống trong lớp ứng dụng.
Client với server là gì?
Mặc dù client và server đều là các ứng dụng giao tiếp qua Internet, nhưng client lại gần gũi với người dùng hơn ở chỗ chúng là các ứng dụng hướng tới người dùng hơn như trình duyệt web, ứng dụng email hoặc ứng dụng điện thoại thông minh. Server là các ứng dụng chạy trên máy tính từ xa mà máy khách liên lạc qua Internet khi cần. Một định nghĩa chính thức hơn là ứng dụng khởi tạo kết nối TCP là máy khách , trong khi ứng dụng nhận kết nối TCP là máy chủ .
Làm thế nào để dữ liệu nhạy cảm như thẻ tín dụng được truyền an toàn qua Internet?
Ở thời kỳ đầu của Internet, đặt router và các bộ liên kết ở những vị trí vật lý an toàn là đủ. Nhưng với sự lớn lên của Internet, nhiều router hơn nghĩa là nhiều lỗ hổng hơn. Hơn nữa, với sự ra đời của các công nghệ như không , hacker có thể bắt gói tin ngay cả trong không khí; đảm bảo an toàn vật lý cho các thiết bị mạng là không đủ. Giải pháp cho điều này là sử dụng mã hóa và xác thực qua ssl/tls.
SSL/TLS là gì?
SSL viết tắt của Secured Sockets Layer. TLS viết tắt của Transport Layer Security. SSL được phát triển đầu tiên bởi MNetscape năm 1994 nhưng sau đó một phiên bản bảo mật hơn được phát hành và đổi tên là TLS. Chúng ta sẽ gọi chung nó là SSL/TLS. SSL / TLS là lớp tùy chọn nằm giữa Lớp vận chuyển và Lớp ứng dụng . Nó cho phép truyền thông Internet an toàn các thông tin nhạy cảm thông qua mã hóa và xác thực . Mã hóa có nghĩa là máy khách có thể yêu cầu kết nối TCP đến máy chủ được mã hóa. Điều này có nghĩa là tất cả các tin nhắn được gửi giữa máy khách và máy chủ sẽ được mã hóa trước khi chia nó thành các gói . Nếu tin tặc chặn các gói này , chúng sẽ không thể tái tạo lại tin nhắn ban đầu . Xác thực có nghĩa là khách hàng có thể tin tưởng rằng máy chủ là người mà nó tuyên bố. Điều này bảo vệ chống lại các cuộc tấn công trung gian , đó là khi một bên độc hại chặn kết nối giữa máy khách và máy chủ để nghe lén và giả mạo thông tin liên lạc của họ. Chúng tôi thấy SSL hoạt động bất cứ khi nào chúng tôi truy cập các trang web hỗ trợ SSL trên các trình duyệt hiện đại. Khi trình duyệt yêu cầu một trang web sử dụng httpsgiao thức thay vì http, nó nói với máy chủ web rằng nó muốn có kết nối được mã hóa SSL . Nếu máy chủ web hỗ trợ SSL , kết nối được mã hóa an toàn sẽ được tạo và chúng ta sẽ thấy biểu tượng khóa bên cạnh thanh địa chỉ trên trình duyệt.
Làm thế nào để SSL xác thực danh tính của một máy chủ và mã hóa thông tin liên lạc của họ?
Nó sử dụng mã hóa bất đối xứng và chứng chỉ SSL.
Mã hóa bất đối xứng là một sơ đồ mã hóa sử dụng khóa chung và khóa riêng. Các khóa này về cơ bản chỉ là số bắt nguồn từ các số nguyên tố lớn. Khóa riêng được sử dụng để giải mã dữ liệu và ký các tài liệu. Khóa công khai được sử dụng để mã hóa dữ liệu và xác minh các tài liệu đã ký. Không giống như mã hóa đối xứng , mã hóa bất đối xứng có nghĩa là khả năng mã hóa không tự động trao khả năng giải mã. Nó thực hiện điều này bằng cách sử dụng các nguyên tắc trong một nhánh toán học gọi là lý thuyết số .
Một giấy chứng nhận SSL là một tài liệu kỹ thuật số bao gồm một khóa công khai được gán cho một máy chủ web. Các chứng chỉ SSL này được cấp cho máy chủ bởi các cơ quan chứng nhận . Hệ điều hành, thiết bị di động và trình duyệt đi kèm với cơ sở dữ liệu của một số cơ quan cấp chứng chỉ để nó có thể xác minh chứng chỉ SSL.
Khi khách hàng yêu cầu kết nối được mã hóa SSL với máy chủ , máy chủ sẽ gửi lại chứng chỉ SSL . Khách hàng kiểm tra chứng chỉ SSL
- được cấp cho máy chủ này
- được ký bởi một cơ quan chứng nhận tin cậy
- chưa hết hạn Sau đó, khách hàng sử dụng khóa chung của chứng chỉ SSL để mã hóa khóa bí mật tạm thời được tạo ngẫu nhiên và gửi lại cho máy chủ . Vì máy chủ có khóa riêng tương ứng , nó có thể giải mã khóa bí mật tạm thời của khách hàng . Bây giờ cả khách hàng và máy chủ đều biết khóa bí mật tạm thời này , vì vậy cả hai có thể sử dụng nó để mã hóa đối xứng các tin nhắn họ gửi cho nhau. Họ sẽ loại bỏ khóa bí mật tạm thời này sau khi phiên của họ kết thúc.
##Điều gì xảy ra nếu tin tặc chặn phiên mã hóa SSL? Giả sử một hacker chặn mọi tin nhắn được gửi giữa máy khách và máy chủ . Tin tặc nhìn thấy chứng chỉ SSL mà máy chủ gửi cũng như khóa bí mật tạm thời được mã hóa của máy khách . Nhưng vì tin tặc không có khóa riêng nên nó không thể giải mã được khóa bí mật tạm thời . Và bởi vì nó không có khóa bí mật tạm thời , nó không thể giải mã bất kỳ tin nhắn nào giữa máy khách và máy chủ.