我只是想知道爲什麼sockaddr_storage是128字節。我知道必須至少有28個字節的IPv6,但這似乎有點過分,比sockaddr_in6大100個額外的字節。這僅僅是爲了將來證明存儲結構,還是有一個它現在需要的理由?128字節的sockaddr_storage大小
4
A
回答
3
你會在rfc 2553的§3.10和這SO post找到你的問題的答案。
原因是的的組合應至少保持效率對準 IP6和其他協議數據和64位。
從RFC的相關部分:
一個簡單的除了套接字API,可以幫助應用程序
作家是「結構struct sockaddr_storage的」。這種數據結構可以簡化跨多個地址族和
平臺的便攜式代碼編寫。這個數據結構的設計具有以下目標。- It has a large enough implementation specific maximum size to store the desired set of protocol specific socket address data structures. Specifically, it is at least large enough to accommodate sockaddr_in and sockaddr_in6 and possibly other protocol specific socket addresses too. - It is aligned at an appropriate boundary so protocol specific socket address data structure pointers can be cast to it and access their fields without alignment problems. (e.g. pointers to sockaddr_in6 and/or sockaddr_in can be cast to it and access fields without alignment problems). - It has the initial field(s) isomorphic to the fields of the "struct sockaddr" data structure on that implementation which can be used as a discriminants for deriving the protocol in use. These initial field(s) would on most implementations either be a single field of type "sa_family_t" (isomorphic to sa_family field, 16 bits) or two fields of type uint8_t and sa_family_t respectively, (isomorphic to sa_len and sa_family_t, 8 bits each).
2
可能有系統想要能夠適應此結構中的struct sockaddr_un
。後者具有大約100到110個字符的系統相關路徑長度。 128是一個非常漂亮的偶數。
相關問題
- 1. 128千字節或128千字節? 128 kB或128 kB?
- 2. 大小以字節
- 3. NSDictionary的字節大小
- 4. Java:Char與字節字節大小。
- 5. MQTT客戶端的node.js playloads大於128個字節
- 6. 如何在JavaCard中存儲大於128字節的數據
- 7. Java二進制文字 - 字節值-128
- 8. C#字符串字節表示128-255
- 9. BufferedImage字節數組大小
- 10. 位/字節adressing - 小/大-endnian
- 11. 大小字節邊界
- 12. 不同字節大小
- 13. Python布爾字節大小
- 14. ajax響應字節大小
- 15. 具有256個字符密鑰大小的Java AES 128
- 16. 斯卡拉字節類型可以包含-128但不是128
- 17. 通過反轉字節將小字節轉換爲大字節
- 18. Android:字節分配超出字節最大堆大小
- 19. 命令外殼和128字節
- 20. WebSocket key1 + key2 + 8_byte_data!= 16字節(128位)?
- 21. 邏輯鏡像字節值約128
- 22. Java字節變量如何成爲128?
- 23. AES密鑰長度無效:128字節?
- 24. 使用AES-128加密/解密字節數組> 256字節
- 25. 128位(16字節)GUID被壓縮到多少位或字節?
- 26. Elasticsearch存儲大小是文檔字節大小的1000倍
- 27. 的Rijndael加密有效字節大小
- 28. (千兆字節)大小的文件
- 29. C++類空類的大小1字節
- 30. 數據包的字節大小
有多大是一個'結構sockaddr_atmsvc'?我也不知道,但我敢打賭它大於28字節。 – 2013-02-25 20:30:00