IP Header Checksum tính toán checksum IP là một trường 16-bit trong header IP được sử dụng để phát hiện lỗi cho IP header. Nó tương đương với của một bổ sung của các của một bổ sung tổng của tất cả các từ 16 bit trong header IP. Các lĩnh vực kiểm tra được khởi tạo cho tất cả các số không ở tính toán. Một bù tiền được tính toán bằng cách tổng hợp tất cả các số và thêm các carry (hoặc thực) để kết quả. Và một người được xác định bổ sung bằng cách đảo ngược tất cả 0 và số 1 ở bit đại diện của số. Ví dụ, nếu một IP header là 0x4500003044224000800600008c7c19acae241e2b. Chúng ta bắt đầu bằng cách tính toán của một bổ sung hoàn tiền. Đầu tiên, chia hex đầu vào 16 bit mỗi và tổng hợp, lập 4500 + 0030 + 4422 + 4000 + 8006 + 0000 + 8c7c + 19ac + ae24 + 1e2b = 2BBCF Tiếp gấp kết quả vào 16 bit bằng cách thêm các carry để kết quả , 2 + BBCF = BBD1 Bước cuối cùng là tính toán của một bù của tổng các chữ số của một sự bổ sung của, BBD1 = 1011101111010001 IP checksum = một của bổ sung (1011101111010001) = 0100010000101110 = 442E Lưu ý rằng IP tiêu đề cần được phân tích tại mỗi hop, vì IP địa chỉ cần thiết để định tuyến các gói tin. Để phát hiện các sai sót tại IP header, tổng kiểm tra được xác nhận tại mỗi hop. Việc xác nhận được thực hiện bằng cách sử dụng cùng một thuật toán. Nhưng lần này giá trị checksum khởi tạo là 442E. 2BBCF + 442E = 2FFFD, sau đó 2 + FFFD = FFFF Lấy ai bù của FFFF = 0. Tại xác nhận, tính toán checksum nên đánh giá 0 nếu tiêu đề IP là đúng. TCP Checksum Tính toán TCP Checksum là một trường 16-bit trong TCP tiêu đề được sử dụng để phát hiện lỗi. Nó được tính trên các phân đoạn TCP (sức mạnh cộng với một số padding) và một 12-byte TCP giả tiêu đề tạo trên bay. Tương tự như IP checksum, TCP checksum cũng là một trong những nhân bổ sung của các của một bổ sung tổng của tất cả các từ 16 bit trong dữ liệu tính toán. Dưới đây là một con số để minh họa các dữ liệu được sử dụng để tính toán TCP checksum, Hình 1. TCP Checksum tính toán dữ liệu Như trong con số này, tiêu đề giả bao gồm 5 lĩnh vực, địa chỉ nguồn: 32 bits / 4 byte, được chụp từ IP header địa chỉ đích: 32bits / 4 byte, được chụp từ IP header resevered: 8 bit / 1 byte, tất cả các số giao thức: 8 bit / 1 byte, được chụp từ IP header. Trong trường hợp của TCP, điều này luôn luôn nên là 6, là số được gán cho giao thức TCP. TCP Length: Chiều dài của các phân đoạn TCP, bao gồm TCP header và dữ liệu TCP. Lưu ý rằng lĩnh vực này không có sẵn trong TCP header, do đó được tính trên bay. Lưu ý rằng tiêu đề TCP giả không thực sự tồn tại, và nó không được truyền qua mạng. Nó được xây dựng trên bay để tính toán tổng kiểm tra. Nếu một phân đoạn TCP chứa một số lẻ các octet được checksummed, các octect cuối cùng được đệm trên đúng với số không để tạo thành một từ 16-bit. Nhưng padding không phải là một phần của các phân đoạn TCP và do đó không được truyền. Cũng lưu ý các trường checksum của tiêu đề TCP cần phải được khởi tạo số không trước khi tính toán checksum. Và đó là thiết lập các giá trị tính toán sau khi tính toán. Khi gói tin TCP được nhận tại các điểm đến, các mã TCP nhận cũng thực hiện các tính toán TCP và xem nếu có một không phù hợp. Nếu có, nó có nghĩa là có lỗi trong các gói tin và nó sẽ bị loại bỏ. Các logic xác nhận cùng sử dụng cho IP xác nhận tiêu đề kiểm tra có thể được sử dụng. UDP Checksum Calcuation tính UDP Checksum tương tự như TCP Checksum tính toán. Nó cũng là một lĩnh vực 16-bit của một người bù của một bù tổng của một giả UDP header + UDP datagram. Các Pseudo UDP header cũng bao gồm 5 lĩnh vực, địa chỉ nguồn: 32 bits / 4 byte, được chụp từ IP header địa chỉ đích: 32 bit / 4 byte, được chụp từ IP header Ltd.: 8 bit / 1 byte, thiết lập tất cả các số 0. protocol: 8 bit / 1 byte, được lấy từ tiêu đề IP dài: Bởi vì UDP header có một trường chiều dài mà chỉ ra chiều dài của toàn bộ datagram, kể cả UDP header và dữ liệu, giá trị từ UDP header được sử dụng. Lưu ý rằng điều này là khác nhau từ tiêu đề TCP giả, được tính trên bay. Nhưng cả hai đều cho thấy chiều dài đầu + tải trọng. Lưu ý rằng UDP checksum là tùy chọn. Nếu nó không được tính, đó là thiết lập cho tất cả các số 0. Điều này có thể gây ra vấn đề là đôi khi các kiểm tra có thể được tính như tất cả 0s. Để tránh nhầm lẫn, nếu checksum được tính là tất cả các số 0, đó là thiết lập cho tất cả các 1s (tương đương trong một số học của bổ sung).
đang được dịch, vui lòng đợi..
