Tại sao DNS là một giao thức lớp ứng dụng?


7

Vai trò chính của DNS là dịch Tên miền sang địa chỉ IP tương ứng của chúng, vậy tại sao cần phải là giao thức lớp ứng dụng?

Tôi nghĩ rằng DNS là một giao thức lớp ứng dụng bởi vì nếu tôi muốn tạo kết nối TCP, tôi cần địa chỉ IP đích trong lớp 4, tôi có đúng không? Có câu trả lời nào khác không?

Cảm ơn!


@sergeyrar tóm tắt trường hợp (về cơ bản, DNS cao hơn TCP + UDP, vì vậy trên ngăn xếp Internet đơn giản hóa, nó là một giao thức ứng dụng, ngay cả khi thường bị ẩn khỏi chế độ xem) nhưng tại sao nó lại quan trọng đối với bạn? Bối cảnh là gì? Nó hoàn toàn là một câu hỏi lý thuyết? Ngoài ra DNS không chỉ là để dịch tên miền sang địa chỉ IP tương ứng, nó còn rộng hơn thế một chút.
Patrick Mevzek

Có câu trả lời nào giúp bạn không? Nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp và chấp nhận câu trả lời của riêng bạn.
Ron Maupin

Câu trả lời:


7

DNS là một giao thức lớp ứng dụng, bởi vì truy vấn và câu trả lời DNS là giao tiếp cấp ứng dụng. Lớp ứng dụng chỉ hiểu phần truy vấn và trả lời trong gói DNS. vì vậy truy vấn / câu trả lời DNS của lớp ứng dụng được gói gọn trong lớp 4 udp rồi lớp 3 IP ..... và cứ thế.


1
DNS sử dụng UDP TCP (vâng tôi đang lặp lại ở đây).
Patrick Mevzek

TCP nó chỉ sử dụng cho chuyển vùng, phải không?. nhưng truy vấn / câu trả lời bình thường sẽ là udp.
abdul_razak

Không, đây không phải là sự thật. TCP cũng có thể được sử dụng cho các truy vấn "bình thường". Xem RFC được trích dẫn bởi @RonMaupin ở trên hoặc ví dụ xem câu hỏi khác: serverfault.com/questions
404840 / giả

6

Các giao thức ở các lớp Vật lý, Liên kết dữ liệu, Mạng hoặc Giao thông không sử dụng tên. Chỉ các ứng dụng cần sử dụng tên, vì vậy DNS là giao thức lớp ứng dụng vì nó cho phép ứng dụng dịch tên thành địa chỉ mạng.


4

Tôi nghĩ rằng DNS là một giao thức lớp ứng dụng bởi vì nếu tôi muốn tạo kết nối TCP, tôi cần địa chỉ IP đích trong lớp 4, tôi có đúng không?

IP là giao thức lớp 3.

DNS chỉ là một dịch vụ dịch tên máy chủ thành địa chỉ IP, bạn cần điều này bởi vì con người nhớ tên tốt hơn số.

Vì vậy, khi bạn nhập tên trang web, trình duyệt của bạn có một số API để yêu cầu hệ điều hành đưa ra yêu cầu DNS cho tên bạn đã nhập.

Các yêu cầu DNS được truyền đến một địa chỉ IP máy chủ DNS cụ thể nằm ở đâu đó trên internet (Địa chỉ mà bạn đã cấu hình thủ công hoặc nhận được thông qua cập nhật DHCP). Để máy chủ đó biết dịch vụ nào bạn muốn cụ thể (vì máy chủ này cũng có thể là máy chủ HTTP chẳng hạn), bạn cũng cần chỉ định số cổng, DNS sử dụng cổng UDP 53. Vì vậy, vì lý do đó, nó phải là giao thức lớp ứng dụng.

Nếu máy chủ DNS của bạn luôn nằm trên mạng con cục bộ, bạn có thể có giao thức Lớp 4 để thực hiện việc này (máy chủ sẽ xác định yêu cầu đến bằng địa chỉ IP phát đa hướng duy nhất dành riêng cho dịch vụ này - ví dụ như cơ chế như OSPF).


Người đã bỏ phiếu cho tôi, xin vui lòng trình bày lập luận của bạn! rất thích nghe những hiểu biết của bạn.
sergeyrar

1
DNS sử dụng UDP TCP!
Patrick Mevzek

1
Tôi nghĩ ai đó thực sự không đồng ý rằng DNS là giao thức tầng ứng dụng vì tất cả các câu trả lời đã được bỏ phiếu.
Ron Maupin

@PatrickMevzek là chính xác, mặc dù nhiều triển khai chưa bắt kịp RFC 5966, Truyền tải DNS qua TCP - Yêu cầu triển khai : " Do đó, tài liệu này cập nhật các đặc tả giao thức DNS cốt lõi để hỗ trợ cho TCP là một phần BẮT BUỘC của giao thức DNS đầy đủ thực hiện. "
Ron Maupin

@RonMaupin điều này trở thành trường hợp hiếm hoi hiện nay khi triển khai wrt (vì dù sao nó cũng cần cho DNSSEC) hoặc bạn có một số vấn đề cụ thể không?, Nó vẫn còn quá nhiều thông tin sai lệch và mạng lọc TCP / 53 mà không có lý do chính đáng (chỉ vì họ đọc ở đâu đó rằng điều này chỉ cần thiết cho AXFR, đó là sai). RFC đã được thực hiện để có một cách để hiển thị một tài liệu nói rằng nó hiện ở trên NÊN, nếu không mọi người sẽ tự tha thứ bằng cách chỉ ra tài liệu trước đó.
Patrick Mevzek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.