TCP/IP数据包在互联网传输过程中,有哪些头会保持不变?
Posted 车小胖谈网络
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP/IP数据包在互联网传输过程中,有哪些头会保持不变?相关的知识,希望对你有一定的参考价值。
根据TCP/IP协议和常见实现,两者的哪些头可以在传输过程中保持不变?即对方可以收到哪些确保相同的TCP头字段和IP头字段?那么有哪些可能会在传输中变化?
正文
大型的互联网公司,比如亚马逊、 Google,为了选拔人才,通常会在面试环节选择一些开放性的问题,用于深度考察候选人的技术深度。
这是一个非常好的面试题,无法在教科书里找到全部答案,甚至在互联网上也无法找到全部的答案。所以依靠临时突击背题的候选者,在这道问题之前要彻底歇菜了。
要想完美回答这道题,需要候选者有非常清晰的概念与积累,这完全凭的是实力!
初级工程师的回答
IP协议头:
归纳一下,可能变化的协议字段:
Type of Service
企业网内部、或互联网上运营商,可能会修改该字段(IP Precedence),以实现IP报文的优先级的差异化,进而影响被IP路由器处理该IP报文的优先级。
Time To Live (TTL)
IP报文每经过一台三层设备,包括路由器、三层交换机,会将TTL -1。
为何TTL要减去1?
为了防止IP网络的三层环路,通过不断的减1操作,可以将IP报文的TTL最终减到0。
当TTL = 0时,IP报文小命还在吗?
不在了!IP路由器用皇上一般的口吻对IP报文幽幽地说:朕赐你死!
于是,IP报文就被砍了,消失得无影无踪,再也祸害不了网络环路上的IP路由器!
如果IP报文不消失,会一直在环路里绕圈圈,与日月同辉!最苦的就是环路上的路由器,永远都无法到达目的地的IP报文,无休止地占用自己的硬件处理资源!
当三层环路发生时,TTL减1操作,是保护路由器的最后一根稻草!
Source IP Address
当企业/家庭内网IP报文,在奔向互联网的时候,需要将内网IP,修改成互联网IP,或公网IP、或全球IP。
Destination IP Address
在企业网里,当不愿意将互联网上服务器的公网IP,出现在企业网里,往往通过修改该字段来实现。
此外,当负载均衡设备将流量分配给某台服务器时,也是通过修改该字段来实现的。
Header Checksum
IP Checksum用于校验IP协议头,只要IP协议头有任何字段的变化,Checksum都会相应变化!
TCP协议头:
Source Port
Destination Port
同Source Port。
TCP Checksum
TCP Checksum 需要校验保护的字段包括:
1. TCP报文头
2. TCP报文选项
3. TCP报文数据
4. TCP伪首部
只要以上4部分有任何字段的变化,TCP Checksum都会相应变化!
让人迷惑的是,TCP伪首部是几个意思?
图片就是TCP伪首部的成员组成:
中级工程师的回答
变化字段的归纳:
IP Header Length
这个字段代表IP Header + IP Option 长度总和,以4个字节为单位。
IPHeader Length = 5,意味着是20个字节,只有20字节的IP Header。
IPHeader Length = 15,意味着是60个字节。其中20字节的IP Header,40字节的IP Option。
为何这个字段要变?
路由器有可能增添或去除IP Option,比如增添“Router Alert”Option,毫无疑问会修改IP Header Length。
“Router Alert”Option
接收到设置该选项的路由器,会更仔细地检查该IP报文,一般会使用软件来检查IP报文。
IP Total Length
当IP报文需要分片时,会修改IP报文的总长度。
IP ECN Flag
当路由器遭遇拥塞时,通过设置该标志位通知发送方,当前的网络遭遇拥堵状态。
IP Flags
当IP报文需要分片时,会修改IP Flags,比如Last /More Flags来完成分片。
IP Fragment Offset
当IP报文需要分片时,一定会修改该值,该值的单位为8个字节。
TCP Option
路由器有可能增添、去除、修改TCP Option,比如修改“TCP MSS”Option。
TCP Window
路由器为了控制双方发送速率,可以通过修改Window来实现。
高级工程师的回答
如果读者喜欢这篇文章,请帮助转发,也许我会把这部分的回答放出来。:)
愿我的文章帮助更多的同学!
以上是关于TCP/IP数据包在互联网传输过程中,有哪些头会保持不变?的主要内容,如果未能解决你的问题,请参考以下文章