相关面试题:
1.检验和如何检验数据是否正确(TCP是如何做的?/UDP是如何做的)
UDP:1.在UDP用户数据报之前增加12个字节的伪首部
2.把全零放入检验和字段,把伪首部以及UDP用户数据报看成是由许多16位的字串接起来的
3.按二进制反码计算出这些16位字的和,将此和的二进制反码写入检验和字段后发送UDP用户数据报
4.接收方把收到的UDP用户数据报连同伪首部一起,按二进制反码求这些16位字的和,无差错时结果应为全1,否则有错
TCP:TCP在计算检验和时,与UDP用户数据报一样,要在TCP报文段的前面加上12字节的伪首部,伪首部的格式和UDP用户数据报的伪首部一样,但应把伪首部第4个字段中的17改为6(TCP的协议号是6),把第5字段中的UDP长度改为TCP长度。接收方收到此报文后,仍要加上伪首部来计算检验和。若使用IPv6,则相应的伪首部也要改变。
2.TCP默认首部大小是多大,都有哪些字段各是什么作用 各字段所占字节数
① TCP默认首部大小为20字节。
②(1)源端口和目的端口:各占2个字节,分别写入源端口号和目的端口号。
(2)序号:占4个字节,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。
(3)确认号:占4个字节,是期望收到对方下一个报文段的第一个数据字节的序号。
(4)数据偏移:占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。
ÿ