0

Tìm hiểu về một số giao thức

DHCP

DHCP là giao thức mạng tự động động hóa quá trình gán địa chỉ IP và các thông tin cấu hình mạng khác cho các thiết bị trên mạng. DHCP là một thành phần thiết yếu của bộ giao thức Internet (IP), là một tập hợp các quy tắc chi phối cách các thiết bị giao tiếp trên mạng. Nó hoạt động ở lớp ứng dụng của mô hình OSI và sử dụng giao thức UDP làm giao thức truyền tải. DHCP sử dụng cổng UDP 67 cho các thông máy từ server và cổng UDP 68 cho các thông báo từ server Mục đích chính của DHCP là đơn giản hóa việc quản trị mạng và giảm thiểu công sức thủ công cần thiết để cấu hình thiết bị.
DHCP sử dụng mô hình client - server. Khi một thiết bị mới kết nối đến mạng, nó sẽ gửi yêu cầu cấp địa chỉ IP đến máy chủ DHCP. Máy chủ DHCP sẽ gán một địa chỉ IP từ một nhóm địa chỉ được xác định trước và cung cấp thêm thông tin cấu hình mạng như subnet mask, port mặc định và địa chỉ máy chủ DNS. Tổng quan ngắn gọn về quy trình DHCP:

  1. Khi một thiết bị kết nối với mạng, nó sẽ phát đi thông báo DHCPDISCOVER để tìm kiếm máy chủ DHCP
  2. Máy chủ DHCP nhận yêu cầu và phản hồi bằng thông báo DHCPOFFER bao gồm địa chỉ IP khả dụng và các thông tin cấu hình mạng khác
  3. Thiết bị nhận được thông báo DHCPOFFER và gửi lại thông báo DHCPREQUEST cho máy chủ yêu cầu địa chỉ IP được cung cấp và thông tin cấu hình
  4. Máy chủ DHCP xác nhận yêu cầu bằng thông báo DHCPACK, hoàn tất việc cấp phát địa chỉ IP và các thông tin cấu hình khác

image.png

ARP

ARP là giao thức phân giải địa chỉ được lớp liên kết dữ liệu sử dụng để ánh xạ địa chỉ IP sang địa chỉ MAC.

Trước khi đóng gói gói tin lớp mạng vào khung lớp liên kết dữ liệu, server gửi gói tin cần biết địa chỉ MAC của người nhận.
Nút nguồn sẽ phát sóng gói tin yêu cầu ARP hỏi về địa chỉ MAC của chủ sở hữu địa chỉ IP. Yêu cầu này đc tất cả các nút bên trong mạng LAN nhận được. Nút mà sở hữu địa chỉ IP này sẽ trả lời bằng địa chỉ MAC của nó.

Khi server nhận được phản hồi ARP, thông thường địa chỉ IP/MAC sẽ được lưu dưới dạng các mục trong một bảng gọi là bảng ARP. Bảng này được sử dụng như một bộ nhớ đệm, nơi nút sẽ chỉ gửi yêu cầu ARP nếu bảng ARP không chứa thông tin ánh xạ IP/MAC

Các bước trong yêu cầu ARP gồm có:

  • Kiểm tra bộ nhớ đệm ban đầu xem đã có địa chỉ MAC được liên kết với địa chỉ IP của người nhận hay chưa
  • Chuẩn bị yêu cầu ARP: nếu địa chỉ MAC không có trong bộ nhớ đệm, bên gửi sẽ chuẩn bị yêu cầu ARP. Gói tin này bao gồm địa chỉ MAC và IP của bên gửi và địa chỉ IP của bên nhận
  • Gửi đi yêu cầu ARP: bên gửi gửi đi yêu cầu ARP này khắp mạng cục bộ
  • Đánh giá yêu cầu ARP bởi các thiết bị trong mạng LAN: sau khi nhận được yêu cầu ARP, tất cả các thiết bị sẽ so sánh địa chỉ IP được máy chủ yêu cầu với địa chỉ IP của chính chúng
  • Phản hồi yêu cầu ARP: thiết bị có địa chỉ IP trùng khớp sẽ chuẩn bị phản hồi ARP, sẽ gửi lại máy gửi yêu cầu thông điệp có chứa địa chỉ IP và MAC của thiết bị
  • Cập nhật bộ nhớ đệm ARP với thông tin địa chỉ MAC mới
  • Sau khi đã biết địa chỉ MAC và ghi lại trong bộ nhớ đệm, bên gửi có thể gửi các gói dữ liệu trực tiếp đến bên nhận để trao đổi

ARP cache: mỗi thiết bị trên một mạng đều có cache riêng. Có 2 cách để lưu giữ entry trong cache để phân giải địa chỉ diễn ra nhanh. Đó là:

  • ARP cache tính: add địa chỉ một cách thủ công vào bảng cache và được duy trì lâu dài
  • ARP cache động: thực hiện phân giải địa chỉ, và giữ địa chỉ tạm thời sau khi hoàn thành và sau đó sẽ được gỡ bỏ

image.png

TCP

Là giao thức truyền tin. Giao thức TCP là giao thức truyền tải hướng kết nối, nghĩa là phải thiết lập kết nối với đầu xa trước khi thực hiện truyền dữ liệu

Giao thức TCP là giao thức điều khiển truyền dẫn) là một giao thức mạng cốt lõi, đáng tin cậy, đảm bảo dữ liệu được truyền đi một cách chính xác, đầy đủ và theo đúng thứ tự giữa các ứng dụng trên mạng, nằm ở tầng 3 - transport trong mô hình OSI.

Hoạt động cùng với Giao thức Internet (IP) (TCP/IP) để định tuyến gói tin đến đúng địa chỉ.

TCP chia dữ liệu thành các gói nhỏ (segments), thiết lập kết nối (three-way handshake), đánh số thứ tự, kiểm tra lỗi, yêu cầu gửi lại nếu mất (acknowledgement), và sắp xếp lại dữ liệu tại đích, là nền tảng cho HTTP, email, FTP, và truy cập từ xa. Cấu trúc gói tin TCP:

image.png

  • Source port và destination port (đều dài 16 bit): được sử dụng để định danh cho session của giao thức nào đó trên lớp ứng dụng đang được truyền tải trong TCP segment đang xét
  • Sequence number (32 bit): dùng để đánh số thứ tự gói tin (từ số sequence nó sẽ tính ra được số byte đã được truyền).
  • Acknowledge number (32 bit): : dùng để báo đã nhận được gói tin nào và mong nhận được byte mang số thứ tự nào tiếp theo.
  • Header length (4 bit): cho biết toàn bộ header dài bao nhiêu tính theo đơn vị word(1 Word = 4 byte).
  • Các bit reserved (4 bit): đều được thiết lập bằng 0
  • Các bit control (9 bit): các bit dùng để điều khiển cờ (flag) ACK, cờ Sequence ...
  • Window size (16 bit): số lượng byte được thiết bị sẵn sàng tiếp nhận
  • Checksum (16 bit): kiểm tra lỗi của toàn bộ TCP segment
  • Urgent pointer (16 bit): sử dụng trong trường hợp cần ưu tiên dữ liệu
  • Options (tối đa 32 bit): cho phép thêm vào TCP các tính nănG
  • Data: dữ liệu của lớp trên

Hoạt động theo tiến trình bắt tay 3 bước: image.png

  • Bước 1: Host A gửi cho B một gói tin có cờ SYN được bật lên, với số thứ tự được đánh là 100. Segment đầu tiên này không chứa phần dữ liệu nên không có phần data, tuy nhiên số lượng byte dữ liệu vẫn được tính là một byte cho hoạt động gửi cờ SYN.
  • Bước 2: Host B nhận được gói tin thì B gửi lại gói tin có cờ SYN được bật lên, kèm theo đó là cờ ACK để xác nhận.
  • Bước 3: Sau khi kết nối đã được thiết lập thì A gửi lại gói tin để đáp ứng nhu cầu của B. Gói tin được đánh số SEQ = 101 để đáp ứng nhu cầu của B. ACK =301 dùng để báo là đã nhận được gói tin có SEQ = 300.

UDP

Là giao thức truyền tin
Ngược lại với TCP thì UDP là giao thức truyền tải không hướng kết nối, Nó sẽ không thực hiện thao tác xây dựng kết nối trước khi truyền dữ liệu mà thực hiện truyền ngay lập tức khi có dữ liệu cần truyền.
● không có cơ chế đảm bảo tính tin cậy khi truyền dữ liệu
● không có cơ chế phục hồi dữ liệu
● không thực hiện đánh số thứ tự cho các đơn vị dữ liệu ● không cung cấp kiểm tra lỗi khi truyền gói tin. Nhanh và hiệu quả hơn đối với các dữ liệu có kích thước nhỏ và yêu cầu khắt khe về thời gian
Bản chất không trạng thái nên hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu
Cấu trúc gói tin UDP:

image.png

  • source port và destination port(đều 16 bit): cho phép định danh một session của một ứng dụng nào đó chạy trên UDP. Có thể coi port chính là địa chỉ của tầng Transport
  • UDP length(16 bit): cho biết chiều dài của toàn bộ UDP datagram tổng cộng bao nhiêu byte. (16 bit thì sẽ có tổng cộng 2^16 byte = 65536 giá trị (từ 0 -> 65535 byte)).
  • UDP checksum(16 bit): sử dụng thuật toán mã vòng CRC để kiểm lỗi cho toàn bộ UDP datagram và chỉ kiểm tra một cách hạn chế - Data: dữ liệu tầng trên được đóng gói vào UDP datagram đang xét

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí