tcp 的校验和到底怎么算啊?
我在学习tcp包的时候遇到了一个很大的问题,亟待大侠们解决,本人不胜感激!我们都知道,用winpcap捕获的包有四个部分,以tcp包为例:有以太网部首,IP部首,tcp部首和内容部分。
IP部首中的校验和非常好算,就是将IP部首内容除校验和内容之外的所有内容,相加取反就是校验和了。
但是计算tcp的校验和就好像有些麻烦了,我上网看了一下,有两种说法:
1.将tcp包中除校验和之外的全部内容相加,再加上一个伪部首,再移位取反,得到tcp校验和。
2.将tcp包中除校验和之外的全部内容相加,再加上一个伪部首,再加上tcp所含带的所有内容,再移位取反,得到tcp校验和。
各位大侠,到底哪个是对的?我两种方法都试过了,好像都不对,到底tcp 的校验和怎么算啊?