IP协议是TCP/IP协议族中最为核心的协议。所有的TCP、IP、ICMP、IGMP数据都以IP协议数据报格式发送。IP协议提供无连接、不可靠的数据报传送服务。
- 不可靠:它不保证数据能成功地发送到目的地,IP协议仅提供最好地传输服务。如果发生某种错误,如路由器暂时用完缓冲区,IP协议的处理算法是:丢弃该数据报,然后发送ICMP消息给发送源(告诉发送源为什么丢弃).任何要求的可靠性都需要在上层实现(如TCP)
- 无连接:IP协议并不维护后序数据报的状态信息,每个数据报的处理是独立的。举例:A向B依次发送1、2两个数据报,这两个数据报在网络上选择的路由线路可能不同,因此很有可能先收到报文2,后收到报文1。对于此种情况,IP协议并没有做处理
介绍两个常用的命令(在Linux系统下)
- ifconfig:配置和显示Linux内核中网络接口的网络参数。
- netstat:查看网络中系统状态信息
IP报头
1、4位版本:指明协议的版本,IPv4、IPv6
2、4位首部长度:IP报头的长度。4位就是最大可以表示到15,这个15对应的每一个1为4个字节。则说明IP报头最多60个字节
3、8位服务器类型:这8个位分为3个部分。
- 第一部分:前三个字节,指明IP优先级
- 第二部分:中间4个字节,即(4,5,6,7位)。这四个位是标记位,依次表示:需要最小延时、需要最大的吞吐量、需要最高的可靠性、最小的费用。比如某个报文需要最小的延时,则将第4位置为1。不过这些标记只是用户对网络的请求,网络并不保证实现。
- 第三部分:最后一个字节,没有被用到
4、16位总长度:IP头部加