TCP/IP基础(三)
2016-03-02 20:59
387 查看
本节重点
IP数据报格式
网际校验和
路由
一、IP数据报格式
版本:
IP协议版本号,IPV4此字段值为4,IPV6此字段值为6。
首部长度:
以32位的字为单位,该字段长度为4位,最大值为15,所以首部最大为60个字节。范围为5~15。
区分服务:(服务类型TOS)
此字段包含3位的优先权(现已忽略),4位的服务类型子字段和1位的保留位(必须置0)。4位的服务类型分别为最大延迟(D)、最大吞吐量(T)、最高可靠性(R)、最小费用(F)。
总长度
该字段一字节为单位,该字段长度包含IP的头部和数据部分。IP数据报最大可达65535个字节。
标识
每当我们发送一个IP数据报,该值就会加1,加到65535后从0开始继续循环。如果IP数据报进行分片,那么各个分片共享的是同一个标识号。
标志与片偏移
3位的标志中第一位不使用,第二位为DF(Don’t Fragment),该位如果为1,如果传输的数据报超过了MTU(最大传输单元),该数据报会被丢弃,并发送一个ICMP差错报文。第三位为MF(More Fragment),表示是否有更多的片,该位为1,说明后续有分片。最后一片MF为0。
IP分片后每一个分组都具有自己的首部,但是片偏移值不同,通过片偏移值接收端可以重新组装IP包。
生存时间(TTL)
表示数据包最多可以经过的路由器的数量。数据报每经过一个路由器,TTL的值减1,减为0时丢弃,并发送ICMP报文通知源主机。
TTL避免了数据报在路由器之间不断循环。
协议类型
表示IP层承载的是哪一个高级协议。在封装和分用的过程中,协议栈知道该交给哪个层的协议进行处理。
头部校验和
保证数据报头部的数据完整性,但校验不包括数据部分。为了减少计算时间,一般不用CRC校验码,而是采用更简单的网际校验和。
二、网际校验和
发送方对发送的数据划分为许多16位字序列(如果数据的字节数为奇数,则在末尾补一字节0凑成偶数。)对这些序列反码求和,便可得到校验和。
如果数据在传输过程中没有出现差错,那么接收方计算校验和的结果应该为全1。否则为校验和错误。
具体计算请自行百度搜索,此处不详细解释。
三、路由
路由搜索的顺序:搜索匹配的主机地址->搜索网络地址->搜索默认表项。(这里的顺序是在上一步未能完成时在进行下一步)。
IP数据报格式
网际校验和
路由
一、IP数据报格式
版本:
IP协议版本号,IPV4此字段值为4,IPV6此字段值为6。
首部长度:
以32位的字为单位,该字段长度为4位,最大值为15,所以首部最大为60个字节。范围为5~15。
区分服务:(服务类型TOS)
此字段包含3位的优先权(现已忽略),4位的服务类型子字段和1位的保留位(必须置0)。4位的服务类型分别为最大延迟(D)、最大吞吐量(T)、最高可靠性(R)、最小费用(F)。
总长度
该字段一字节为单位,该字段长度包含IP的头部和数据部分。IP数据报最大可达65535个字节。
标识
每当我们发送一个IP数据报,该值就会加1,加到65535后从0开始继续循环。如果IP数据报进行分片,那么各个分片共享的是同一个标识号。
标志与片偏移
3位的标志中第一位不使用,第二位为DF(Don’t Fragment),该位如果为1,如果传输的数据报超过了MTU(最大传输单元),该数据报会被丢弃,并发送一个ICMP差错报文。第三位为MF(More Fragment),表示是否有更多的片,该位为1,说明后续有分片。最后一片MF为0。
IP分片后每一个分组都具有自己的首部,但是片偏移值不同,通过片偏移值接收端可以重新组装IP包。
生存时间(TTL)
表示数据包最多可以经过的路由器的数量。数据报每经过一个路由器,TTL的值减1,减为0时丢弃,并发送ICMP报文通知源主机。
TTL避免了数据报在路由器之间不断循环。
协议类型
表示IP层承载的是哪一个高级协议。在封装和分用的过程中,协议栈知道该交给哪个层的协议进行处理。
头部校验和
保证数据报头部的数据完整性,但校验不包括数据部分。为了减少计算时间,一般不用CRC校验码,而是采用更简单的网际校验和。
二、网际校验和
发送方对发送的数据划分为许多16位字序列(如果数据的字节数为奇数,则在末尾补一字节0凑成偶数。)对这些序列反码求和,便可得到校验和。
如果数据在传输过程中没有出现差错,那么接收方计算校验和的结果应该为全1。否则为校验和错误。
具体计算请自行百度搜索,此处不详细解释。
三、路由
路由搜索的顺序:搜索匹配的主机地址->搜索网络地址->搜索默认表项。(这里的顺序是在上一步未能完成时在进行下一步)。
相关文章推荐
- java网络编程
- Http请求报文和响应报文
- https对应的nginx配置
- 简单配置搞定 Nginx + Tomcat + HTTPS
- Android 网络通信框架Volley简介(Google IO 2013)
- Nginx配置SSL证书部署HTTPS网站
- 数据包分析——传输层(TCP和UDP)
- curl 不支持 https
- Fiddler的使用
- HttpURLConnection加载数据
- HttpApplication的处理管道19个事件。
- https://localhost:1158/em 页面无法打开的问题
- 创建一个简单的HTTP服务(自动查找未使用的端口)
- Tomcat的HTTP和AJP连接器
- 虚幻引擎网络架构——No.0概述
- 获取网络状态ios(2G、3G、4G、Wifi)
- android网络下载mp3文件不全问题
- python调试django-rest-framework API的小工具--httpie
- 杂记——ASIHTTPReques 学习
- 给libvirt创建的虚拟机指定固定IP