По второму вопросу могу предположить, что стековая архитектура TCP/IP изолирует верхние уровни о знании деталей реализации нижних уровней. В том числе и данные о SYN/ACK значениях. В общем-то, приложению совсем не нужно знать, что там внизу происходит, иначе уровни стека TCP/IP будут зависеть от реализации соседних уровней, а этого быть не должно.