>в винде реализация tcp стека взята из bsd изначально, это если что
Слышал я подобные слухи как и то, что винда в общем-то родственник полуоси, да и вообще зачатки перекроенного POSIX-а наблюдаются, а сама оконность у них слизана не то с мака, не то еще откуда. Ничуть не сомневаюсь что Билли в свое время активно позанимался, как бы это выразиться помягче, плагиатом. Но вот на практике попрагромировав и там и там скажу однозначно - разница коллосальная, и то что там откуда-то взято далеко не факт что оно соответствует оригиналу.
Теперь далее по поводу абстракций.
потому что абстракция всегда абстрагирует конкретное нечто, в данном случае ненадежность и неупорядоченность ip датаграмм.
Как-то искаженно и действительно "абстрактно" выглядит твое утверждение. Абстракция - это выход на определенный уровень детализации. Замечу, меньший уровень детализации, а не больший, как можно вывести из твоих слов. И на каждом уровне абстракции имеют смысл определенные характеристики. Обратное то же верно - конкретные характеристики имеют смысл только на определенном уровне абстракции.
Например, колесо является элементом средств передвижения. Но это не означает, что все средства передвижения оборудованы колесами. Характеристики, касаемые колес, такие как радиус, ширина, и т.п. имеют смысл, только когда мы говорим о конкретных средствах передвижения, таких как телега, велосипед, автомобиль и т.п - то есть уровень абстракции "колесные средства передвижения".
Но когда речь идет о транспортном средстве как о способе доставки чего-либо, обсуждать колеса просто не имеет смысла. Обсуждая средства передвижения пассажиров нас интересуют грубо говоря комфорт и скорость передвижения. Для грузов - объем груза и так же скорость. Это может быть следующим уровнем абстракции после колесных ТС. А есть ли собственно колеса или нет - это пятое дело прямого отношения к уровню ТС не имеющее. Скорее всего имеет значение такая характеристика как стоимость перевозки или обслуживания, но вот колеса вовсе нас не интересуют. Может это ракета или дельтаплан у которых нет колес.
Так вот возвращаясь к TCP совершенно верно замечено, что протокол более высокого уровня это абстракция. Но это абстракция более выского уровня и меньшего уровня детализации. Используя TCP не важно знать ни про пакеты ни про их потерю - абстракция подразумевает что на уровне протокола эти характеристики не существенны или не имеют значения. Абстракция подразумевает что пакеты не теряются. Примем это как должное и избавимся от головной боли по этому поводу. Но если пакеты все-же теряются - это не имеет никакого отношения к абстракции, это явно глюки реализации.
А по поводу мышки, которая кабель перегрызла, так на это есть древняя программерская отмазка: проблема аппаратная, программным путем не решается. Какое отношение к реализации протокола имеет мышка - никакого. Иначе нас кругом окружают дырявые абстракции в виде проколотых шин, незакрытых кранов и прочего. И что теперь - абстракция в виде канализации нам не нужна?
Абстракции бывают кривыми. Это наглядно не видно на жизненных примерах, например когда для транспортного средства не учитывается характеристика типа скорости (не реально), и труднее заметно в коде, когда из одних классов торчат непонятно каким боком оносящиеся отростки более мелких (с большей степенью детализации) абстракций, либо в классы, необоснованно объединяющие разные уровни абстракции и из-за этого превращающиеся в помойку и прочее подобное.
Очень важно программисту правильно видеть нужный уровень, для того что бы выделять элементы программы более удачно, а вот об этом у Джоэла ничего. По этому-то я собственно и сказал, что особо ориентироваться на него не стоит. Его статьи не учат программировать, он на более высоком уровне абстракции (с меньшей степенью детализации

и в основном рассказывает о проектах в целом, как организовать работу, как продать и т.п.
-~{}~ 08.11.06 21:29:
ys И к чему сказано? Еще начни мне доказывать что это не ICMP.