Thứ tự byte truyền dữ liệu nào xảy ra trên mạng? Có Little Endian hay lớn endian? Làm thế nào nó được chuyển đổi sang thứ tự byte tương ứng khi dữ liệu đến được host?Big endian hoặc Little endian trên mạng?
Trả lời
"Thứ tự byte mạng" là Big Endian và các giao thức như TCP sử dụng cho trường số nguyên (ví dụ: số cổng). Các hàm như hton và ntoh có thể được sử dụng để thực hiện chuyển đổi.
Bản thân dữ liệu không có bất kỳ sự kết thúc nào, nó hoàn toàn được ứng dụng xác định, trừ khi bạn đang sử dụng Presentation Layer chẳng hạn như XDR.
Được chuyển theo thứ tự bạn gửi.
Theo truyền thống, các giao thức internet sử dụng kết thúc lớn, bởi vì các máy thực hiện hầu hết các giao tiếp là lớn cuối cùng.
Tuy nhiên, nếu bạn xác định cấu trúc của riêng bạn để gửi qua mạng, không cần phải tuân theo quy ước đó.
Với lập trình C, thông thường, người ta thường sử dụng macro hton hoặc macro ntoh để thực hiện chuyển đổi.
nếu bạn đang sử dụng tcp bằng cách sử dụng hton ((ngắn) cổng) cho phép bạn sử dụng giao thức an toàn mạng (về cơ bản lớn cuối) và không quan tâm đến nhỏ so với lớn endian.
nếu bạn cần phải chuyển đổi sử dụng http://www.codeguru.com/forum/showthread.php?t=292902
nó giải thích cũng
bạn có thể giải thích thêm một chút? tcp/udp? –
đến máy chủ từ đâu/như thế nào? –