协议详解3——IP
1. 特点:
所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输。 提供不可靠,无连接服务。
不可靠:
不能保证IP数据报能成功到达目的。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃数据报,然后 发送ICMP消息给信源端。任何要求的可靠性必须由上层提供(如TCP);
无连接:
IP不维护任何关于后续数据报的转态信息。每个数据报的处理是相互独立的。即,IP数据报可以不按发送顺序接收。如果一个信源向相同的信宿发sing两个连续的数据报 (先A后B),每个数据报都是独立进行路由选择,B可能比A先到达。
2. IP首部
版本目前大部分为4.也称为IPV4.
首部长度指首部占32 bit的数目.因此IP首部最长为60 Byte,且为4 Byte的倍数.
服务类型(TOS)包括3bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位但必须置0.4 bit的TOS分别代表:最小时延,最大吞吐量,最高可靠性和最小费用.
总长度字段指整个数据报的长度.以Byte为单位.该字段16 bit,所以IP数据报的最大长度可达65535 Byte.
标识字段唯一地标识主机发送的每一份数据.标志位和片偏移字段与分片重组有关.
TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数.
协议字段表示那个协议向IP传送数据报.1为ICMP协议,2为IGMP协议,6为TCP协议,17为UDP协议.
首部检验和字段是根据IP首部计算的检验和码.它不对首部后面的数据进行计算.
选项字段是一个可变长的可选信息.但必须为32 bit的倍数(首部长度字段所要求).
IP地址为32 bit.
服务类型(TOS):包括3bit的优先权字段(已被忽略),4bit的TOS子字段和1bit未用位但必须置0。4bit的TOS分布代表:最小延迟,最大吞吐量,最高可靠性,最小费用。4bit只能置其中1bit。如果4bit均为0,意味着是一般服务。Te l n e t和R l o g i n这两个交互应用要求最小的传输时延,因为人们主要用它们来传输少量的交互数据。另一方面, F T P文件传输则要求有最大的吞吐量。最高可靠性被指明给网络管理(S N M P)和路由选择协议。用户网络新闻( Usenet news, NNTP)是唯一要求最小费用的应用。
3. IP路由选择
在一般情况下,IP从TCP,DUP,ICMP和IGMP接收数据报(即本地生成的数据)并进行发送,或者从其他接口接收数据(待转发的数据)进行转发或接收.
当数据报来自某个接口:
1).IP首先判断IP地址是否为本地地址或者广播地址,如果是就送到首部协议段所指定的协议模块进行处理.
2).如果不不满足这些地址,且IP层设置为了路由功能,那么就对数据进行转发,否则数据报被丢弃.
IP路由选择顺序:
1)搜索路由表,寻找与目地IP完全匹配的表目.(网络号和主机号)
2)搜索路由表,寻找与目地IP网络号相同的表目.
3)搜索路由表,寻找默认(default)表目.
以上3步依次执行,成功即跳出,如果都不成功,该数据报就不能被转发.
从bsdi到ftp.uu.net(192.48.96.9)的初始路径:
主机bsdi有一份IP数据报要传到ftp.uu.net主机上,它的IP地址是192.48.96.9。经过的前三个路由器如图所示。首先,主机bsdi搜索路由表,但是没有找到与主机地址或网络地址相匹配的表目,因此只能用默认的表目,把数据报传给下一站路由器,即主机sun。当数据报从bsdi被传到sun主机上以后,目的IP地址是最终的信宿机地址(192.48.96.9),但是链路层地址却是sun主机的以太网接口地址.
当sun收到数据报后,它发现数据报的目的IP地址并不是本机的任一地址,而sun已被设置成具有路由器的功能,因此它把数据报进行转发。经过搜索路由表,选用了默认表目。根据sun的默认表目,它把数据报转发到下一站路由器netb,该路由器的地址是140.252.1.183。数据报是经过点对点SLIP链路被传送的。这里,我们没有给出像以太网链路层数据帧那样的首部,因为在SLIP链路中没有那样的首部。当netb收到数据报后,它执行与sun主机相同的步骤:数据报的目的地址不是本机地址,而netb也被设置成具有路由器的功能,于是它也对该数据报进行转发。采用的也是默认路由表目,把数据报送到下一站路由器gateway(1 4 0 . 2 5 2 . 1 . 4)。位于以太网1 4 0 . 2 5 2 . 1上的主机netb用ARP获得对应于1 4 0 . 2 5 2 . 1 . 4的48 bit以太网地址。这个以太网地址就是链路层数据帧头上的目的地址。路由器gateway也执行与前面两个路由器相同的步骤。它的默认路由表目所指定的下一站路由器I P地址是140.252.104.2。
说明:
1) 该例子中的所有主机和路由器都使用了默认路由。事实上,大多数主机和一些路由器可以用默认路由来处理任何目的,除非它在本地局域网上。
2) 数据报中的目的I P地址始终不发生任何变化(只有使用源路由选项时,目的I P地址才有可能被修改,但这种情况很少出现)。所有的路由选择决策都是基于这个目的IP地址。
3) 每个链路层可能具有不同的数据帧首部,而且链路层的目的地址(如果有的话)始终指的是下一站的链路层地址。在例子中,两个以太网封装了含有下一站以太网地址的链 路层首部,但是S L I P链路没有这样做。以太网地址一般通过A R P获得。
4. 子网寻址
子网编制:不是吧IP地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分为一个子网号和一个主机号。
这样做的原因是因为A类和B类地址为主机号分配了太多的空间,可分别容纳的主机数为224-2 和 216-2。事实上,在一个网络中人们并不安排这么多的主机。由于全0或全1的主机号都是无效的(有其他用途),因此我们把总数减去 2。 在InterNIC获得某类I P网络号后,就由当地的系统管理员来进行分配,由他(或她)来决定是否建立子网,以及分配多少比特给子网号和主机号。例如,这里有一个 B类网络地址(1 4 0 . 2 5 2) ,在剩下的16 bit中,8 bit用于子网号,8 bit用于主机号,格式如图所示。这样就允许有2 5 4个子网,每个子网可以有2 5 4台主机。
5. 子网掩码
协议详解3——IP的更多相关文章
- TCP/IP协议详解笔记——IP协议
简介 TCP/IP协议族中最核心的协议,提供不可靠.无连接的数据报传输服务. 不可靠:不能保证IP数据报能成功送达. 无连接:并不维护后续数据报的状态信息,每个数据报的处理都是相互独立.数据报可能不会 ...
- TCP/IP协议详解概述
TCP/IP协议详解卷1--第一章概述--读书笔记 作者:vpoet 日期:2015/06/25 注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大 ...
- IP协议详解(转)
本文转载自博文协议森林05 我尽力 (IP协议详解).这篇博文写的很有趣味,特转载! IPv4与IPv6头部的对比 我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
- TCP/IP协议详解---概述
工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...
- 第二章 IP协议详解
第二章 IP协议详解 2.1 IP服务的特点 它为上层协议提供了无状态,无连接,不可靠的服务 名称 简介 优点 缺点 对付缺点的方法 无状态 IP通信双方不同步传输数据的状态信息 无须为保持通信的状态 ...
- TCP /IP协议详解【转】
转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...
- linux高性能服务器编程 (二) --IP协议详解
第二章 IP协议详解 什么是IP协议:IP 协议是TCP/IP协议族的动力,它为上层提供了无状态.无连接.不可靠的服务. IP 头部信息:头部信息会出现在每一个IP数据报上,便于记录IP通信的源端IP ...
- (转)协议森林05 我尽力 (IP协议详解)
协议森林05 我尽力 (IP协议详解) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! IPv4与IPv6头部的对比 我们已经在I ...
随机推荐
- QDUOJ 来自xjy的签到题(bfs+状压dp)
来自xjy的签到题 Description 爱丽丝冒险来到了红皇后一个n*n大小的花园,每个格子由'.'或'#'表示,'.'表示爱丽丝可以到达这个格子,‘#’表示爱丽丝不能到达这个格子,爱丽丝每1 ...
- ue4 创建简易动画
这个功能本来是在原动画基础上做调整用的,所以直接用来做动画并不是很合适,如果要做复杂动画,叠加的轨迹会非常多,不好用 (蒙皮好的)模型右键,创建一个动画合成 点开这个动画合成,创建动画序列(就是普通动 ...
- 51nod1060(反素数&dfs)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1060 题意:中文题诶- 思路: 这里用到了反素数的性质: 对 ...
- Eureka 代码详解
看过之前文章的朋友们,相信已经对Eureka的运行机制已经有了一定的了解.为了更深入的理解它的运作和配置,下面我们结合源码来分别看看服务端和客户端的通信行为是如何实现的.另外写这篇文章,还有一个目的, ...
- 洛谷P2018 消息传递
P2018 消息传递 题目描述 巴蜀国的社会等级森严,除了国王之外,每个人均有且只有一个直接上级,当然国王没有上级.如果A是B的上级,B是C的上级,那么A就是C的上级.绝对不会出现这样的关系:A是B的 ...
- 剑指Offer的学习笔记(C#篇)-- 包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 一 . 题目该怎么想 1 . 定义栈的数据结构:实现Push.Pop.Top.Min方 ...
- Windwos10环境下的Geany的安装与新手使用
相信学习Python的小伙伴都会接触到Geany这个轻量级的python文本编辑器吧,下面就是我对于安装Geany的一些小经验分享. 1:安装geany很简单,进入geany官网download下载相 ...
- Mac终端操作移动硬盘文件命令
桌面上看到的硬盘都挂载在 /Volumes目录下 例如移动硬盘名为ZTB,有System目录,则应输入命令: cd /Volumes/ZTB/System 注意:进入Volumes目录命令为cd /V ...
- Nacos深入浅出(五)
四中标色的代码 result = ConfigService.dump(dataId, group, tenant, cf.getContent(), lastModified); 我们看下这个方法 ...
- MySQL的ibdata1文件占用过大瘦身
处理MySQL的ibdata1文件过大问题本人在对数据库进行大量的数据插入和删除的时候,发现ibdata1的占了将近一个T ibdata1文件是什么? ibdata1是一个用来构建innodb系统表空 ...