I had a look in those replies, but those doesn't answered my questions, so I decide to ask one by myself.
1) The first I don't understand: why TCP/UDP should know something about the IP at all? It is absolutely different protocols, which operates on a different levels. Isn't an IP module crops down the IP header before transmitting the message to an UDP module?
2) The second: it is very hard to see how to use the pseudoheader in a checksum calculating. The RFC page of UDP says that I need to add a pseudoheader, and calculate it too. But isn't this impossible? Because there's only two variants:
A) I am create this pseudoheader and fill it with some values, but the RFC doesn't say what the values it should be: if I use one values, and receiver other ones, the checksum just wouldn't match! More over: in this case I can just neglect this step, and this doesn't hurt somehow (at least no more then the using different values for filling).
B) IP somehow gets an access to a higher-level protocol (i.e. UDP), and gives to me it's own filled header, which is I going to use in a checksum calculating step. But this way the header will not be "pseudo-", and the two protocols will be in fact one protocol.
The reason why I'm asking: I need to create a stable connection through a serial port(for some reason there could be somehow broken packets), and I am decided to make a TCP here, and I am absolutely don't need an IP protocol.