博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP/IP详解 卷1 IP基本介绍和IP数据报图文介绍
阅读量:4126 次
发布时间:2019-05-25

本文共 1194 字,大约阅读时间需要 3 分钟。

IP协议大体介绍

  1. TCP/IP族中最核心的协议
  2. 所有的TCP,UDPICMP,IGMP都是通过IP数据报格式传输
  3. 不保证IP数据报能成功送达目的地 他不在乎这个,只保证传输本身的快和好。如果数据报发生错误直接丢弃。具体的可靠性要求全部由上层协议搞定(如TCP)
  4. 各数据报相互独立没有连接性,发送顺序也不一定
  5. RFC791是IP的正是规范文件

IP数据报

在这里插入图片描述

  1. 首部长度20字节不包括选项
  2. 采用网络字节序也就是大端字节序
  3. 相对应的是小端字节序。如果主机是采用小端字节序存储数据。则在要发送前做好转换。

各字段介绍

版本: 目前IP的版本是4(已经有6了) 也就是IPV4(IPV6)。占4位

首部长度:首都长度单位是按照首部的字节长度/4字节(32bit)算1个单位。那因为他是4bit换成10进制就是15,15*4(32bit)就是60字节了

。那如果没有选项,普通的IP数据报 ,那就是5了(20字节/4字节)占4位

服务类型(TOS):总共8位,由3位优先权字段(弃)1位未用位(0)和4位TOS子字段组成。 这4位TOS子字段每个位分别代表最小延时,最大吞吐量,最高可靠性,最小费用。这4各位只有其中1个位能是1。如果都是0。那么表示是一般服务。下图是不同的应用服务对应的TOS子字段

在这里插入图片描述
TOS字段好像用的比较少

总长度:IP数据报的总长度(不包括首部)单位为字节。因为是字段长度为16bit 所以最大支持65535字节(16个1, 1代表1字节)。但是一般不会传这么大 受主机和协议影响,一般会做切片传输。

标识,标志和偏移是用于数据分片。等到说到数据分片的时候再说。

生存时间(TTL): 指该数据报可以经过的最多路由器数量。源主机设置,通常是32或64。每经过1台路由器,该值就减一。直到为0丢弃。

协议: 识别是哪个协议向IP传送数据报

首部检验和:根据IP首部计算检验和码。不计算数据部分。但是ICMP,IGMP,UDP和TCP都有同时覆盖首部和数据的检验和码

计算方法:
检验和字段设0, 首部每16bit进行二进制反码求和,然后将结果存储在检验和字段中。
接受到1份IP数据报时也是将首部每16bit进行二进制反码求和。这时候计算的内容是有包括发过来的ip数据报中的检验和字段。所以,当反码求和后是全1,如果不是全1则IP认为是有问题的数据报,丢弃并且不发送差错报文。只能通过上层协议去发现丢失的数据并且重传。
ICMP,IGMP,TCP和UDP都采用此方法(包括了数据报部分)
具体实现技术参考

32位源IP地址和32位目的IP地址:就是IP地址咯 32位。

任意项: 可以变长的可选项。包括

  1. 安全和处理限制(军事领域)
  2. 记录路径
  3. 时间戳
  4. 宽松的源站选路(为数据报指定一系列必须经过的IP地址)
  5. 严格的源站选路(只能经过一些列IP地址)
    选项以32bit作界限。不过用0填充

转载地址:http://lzepi.baihongyu.com/

你可能感兴趣的文章
阅读笔记《c++ primer》
查看>>
阅读笔记《C++标准程序库》
查看>>
基于mirror driver的windows屏幕录像
查看>>
C语言8
查看>>
Qt实现简单延时
查看>>
qml有关矩形说明
查看>>
在qt中使用QSplitter设置初始比例setStretchFactor失效的解决方法
查看>>
repeater的使用
查看>>
qt msvc编译中文乱码解决
查看>>
qt中TextField输入框无法输入中文解决办法
查看>>
qt实现点击出现窗口,点击其他任何地方窗口消失
查看>>
QML DropArea拖拉文件事件
查看>>
CORBA links
查看>>
读后感:>
查看>>
ideas about sharing software
查看>>
different aspects for software
查看>>
To do list
查看>>
Study of Source code
查看>>
如何使用BBC英语学习频道
查看>>
spring事务探索
查看>>