{"id":472,"date":"2013-07-25T17:16:19","date_gmt":"2013-07-25T09:16:19","guid":{"rendered":"http:\/\/blog.marvelplanet.tk\/?p=472"},"modified":"2013-07-25T17:16:19","modified_gmt":"2013-07-25T09:16:19","slug":"general-design-issues-of-the-internet","status":"publish","type":"post","link":"https:\/\/marvelliu.space\/?p=472","title":{"rendered":"General Design Issues of the Internet"},"content":{"rendered":"<p>\u521a\u521a\u770b\u5230RFC1958\u4e0a\u9762\u5173\u4e8eInternet\u8bbe\u8ba1\u7684\u4e00\u4e9b\u539f\u5219\uff0c\u89c9\u5f97\u5bf9\u73b0\u5728\u7684\u7cfb\u7edf\u8bbe\u8ba1\u90fd\u5f88\u6709\u542f\u53d1\uff0c\u6458\u5f55\u5982\u4e0b\uff1a<\/p>\n<p>   3.1 Heterogeneity is inevitable and must be supported by design.<br \/>\n   Multiple types of hardware must be allowed for, e.g. transmission<br \/>\n   speeds differing by at least 7 orders of magnitude, various computer<br \/>\n   word lengths, and hosts ranging from memory-starved microprocessors<br \/>\n   up to massively parallel supercomputers. Multiple types of<br \/>\n   application protocol must be allowed for, ranging from the simplest<br \/>\n   such as remote login up to the most complex such as distributed<br \/>\n   databases.<\/p>\n<p>   3.2 If there are several ways of doing the same thing, choose one.<br \/>\n   If a previous design, in the Internet context or elsewhere, has<br \/>\n   successfully solved the same problem, choose the same solution unless<br \/>\n   there is a good technical reason not to.  Duplication of the same<br \/>\n   protocol functionality should be avoided as far as possible, without<br \/>\n   of course using this argument to reject improvements.<\/p>\n<p>   3.3 All designs must scale readily to very many nodes per site and to<br \/>\n   many millions of sites.<\/p>\n<p>   3.4 Performance and cost must be considered as well as functionality.<\/p>\n<p>   3.5 Keep it simple. When in doubt during design, choose the simplest<br \/>\n   solution.<\/p>\n<p>   3.6 Modularity is good. If you can keep things separate, do so.<\/p>\n<p>   3.7 In many cases it is better to adopt an almost complete solution<br \/>\n   now, rather than to wait until a perfect solution can be found.<\/p>\n<p>   3.8 Avoid options and parameters whenever possible.  Any options and<br \/>\n   parameters should be configured or negotiated dynamically rather than<br \/>\n   manually.<\/p>\n<p>   3.9 Be strict when sending and tolerant when receiving.<br \/>\n   Implementations must follow specifications precisely when sending to<br \/>\n   the network, and tolerate faulty input from the network. When in<br \/>\n   doubt, discard faulty input silently, without returning an error<br \/>\n   message unless this is required by the specification.<\/p>\n<p>   3.10 Be parsimonious with unsolicited packets, especially multicasts<br \/>\n   and broadcasts.<\/p>\n<p>   3.11 Circular dependencies must be avoided.<\/p>\n<p>      For example, routing must not depend on look-ups in the Domain<br \/>\n      Name System (DNS), since the updating of DNS servers depends on<br \/>\n      successful routing.<\/p>\n<p>   3.12 Objects should be self decribing (include type and size), within<br \/>\n   reasonable limits. Only type codes and other magic numbers assigned<br \/>\n   by the Internet Assigned Numbers Authority (IANA) may be used.<\/p>\n<p>   3.13 All specifications should use the same terminology and notation,<br \/>\n   and the same bit- and byte-order convention.<\/p>\n<p>   3.14 And perhaps most important: Nothing gets standardised until<br \/>\n   there are multiple instances of running code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u521a\u521a\u770b\u5230RFC1958\u4e0a\u9762\u5173\u4e8eInternet\u8bbe\u8ba1\u7684\u4e00\u4e9b\u539f\u5219\uff0c\u89c9\u5f97\u5bf9\u73b0\u5728\u7684\u7cfb\u7edf\u8bbe\u8ba1\u90fd\u5f88\u6709\u542f\u53d1\uff0c\u6458\u5f55\u5982\u4e0b\uff1a 3.1 Heterogeneity is inevitable and must be supported by design. Multiple types of hardware must be allowed for, e.g. transmission speeds differing by at least 7 orders of magnitude, various computer word lengths, and hosts ranging from memory-starved microprocessors up to massively parallel supercomputers. Multiple types of application protocol must be allowed for, ranging &hellip; <a href=\"https:\/\/marvelliu.space\/?p=472\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;General Design Issues of the Internet&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-472","post","type-post","status-publish","format-standard","hentry","category-tech"],"_links":{"self":[{"href":"https:\/\/marvelliu.space\/index.php?rest_route=\/wp\/v2\/posts\/472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marvelliu.space\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marvelliu.space\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marvelliu.space\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/marvelliu.space\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=472"}],"version-history":[{"count":1,"href":"https:\/\/marvelliu.space\/index.php?rest_route=\/wp\/v2\/posts\/472\/revisions"}],"predecessor-version":[{"id":473,"href":"https:\/\/marvelliu.space\/index.php?rest_route=\/wp\/v2\/posts\/472\/revisions\/473"}],"wp:attachment":[{"href":"https:\/\/marvelliu.space\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marvelliu.space\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marvelliu.space\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}