IP总结
- 网络层向上只提供无连接的、尽最大努力支付的数据报服务
- IP地址,32位,分为两部分,网络和主机标示
- IP地址分类:
- A类:0开头,1~8位为网络标示
- B类:10开头,1~16位为网络标示
- C类:110开头,1~24位为网络标示
- D类:1110开头,1~32位为网络标示(用于多播)
- IP地址和硬件地址:物理地址数据链路层和物理层使用的地址,IP地址是网络层及以上层使用的地址,是一种逻辑地址。使用IP地址的IP数据报交给数据链路层之后就被封装成MAC帧,MAC帧中源地址和目的地址都是硬件地址
- 地址解析协议ARP:根据IP地址找到相应硬件地址。ARP只是转换局域网中的IP地址到硬件地址
- 在每一个主机中存放有一个ARP高速缓存,里面有本局域网上各主机和路由器的IP地址到硬件的映射表,
- 当主机刚刚启动或者ARP表中没有相应IP地址时:在局域网中广播发送ARP请求分组,此局域网中所有主机的ARP进程都能收到此请求分组,当与某主机IP地址一致时响应,再将此记录写入高速缓存中
- 高速缓存中的每一项都要设置一个生存时间,硬件地址更新
- IP数据报格式:32位,固定部分20字节
- 版本:IPv4还是IPv6
- 协议:指出此数据报携带的数据使用的是哪种协议,以使目的主机IP层知道需要将数据交给那个处理过程
- 首部校验和:使用CRC校验码,只是校验首部部分,不包括数据
- 源地址,目的地址
- IP层转发流程:使用路由表,每一行对应一个网络(目的网络地址:下一条地址)
- IP数据报根据目的主机找到下一条路由器,间接交付
- 到达最后一个路由器时,向主机直接交付
- 分组转发算法:
- 根据首部中IP地址得到目的网络地址
- 若此路由器与网络直接相连,则直接交付
- 若路由表中有到达目的网络的路由,则间接交付
- 若路由表中有默认路由,则交付默认路由
- 报告分组转发错误
- 路由表:因特网中主机数大于路由器数量,属于效率考虑,主机不和连接在互联网上的路由器定期交换路由信息。在主机刚开始工作时,一般在路由表中先设置一个默认路由,不管要把数据报发送到哪里,都先直接发送到默认路由中,而这个默认路由知道每一个目的网络的最佳路径,如果到达某一个目的网络不需要经过默认路由,则将此信息告诉主机,在主机路由表中加上一条记录
- 划分子网:
- 地址空间利用率低,路由表过大,两级地址不够灵活(比如需要在其他地方新建子网)
- 划分方式:
- 将所属物理网络划分为若干个子网,但对外仍表现为一个网路
- 网络的主机号借用若干位作为子网号
- 发送IP数据报时仍然是根据目的网络号发送,在路由器收到数据报时,再按目的网络号和子网号找到子网交付
- 子网掩码:将源网络分为多个物理网络
- IP网络地址部分全为1,主机部分全为0
- 无分类编址CIDR:消除了网络IP地址类别及划分子网的概念,从三级地址改为两级:IP地址/网络前缀所占位数(后面为子网掩码位数)
- 网际控制报文协议ICMP:为了更高效转发IP数据报和提高支付成功机会。ICMP报文存在IP数据报的数据部分
- 分类:
- 差错报告报文:当交付出现问题(如终点不可达,时间超过,参数问题)
- 询问报文:回送请求回答,时间戳请求回答
- 应用举例:
- PING:测试两个主机的连通性,没有通过传输层。如果目的主机正常工作则发回回送请求报告
- traceroute:数据报中封装的是无法交付的UDP用户数据报。路途中每经过一个路由器,相应路由器就会向源主机发送时间超过的差错报告报文。就可以知道经过的路由信息。
- 分类:
- 路由选择协议:因特网一般采用动态的路由协议。因特网将整个互联网划分为多个较小的自治系统,因此路有选择协议划分为
- 内部网关协议:在一个自治系统内部使用的路有选择协议,RIP、OSPF
- 外部网关协议:不同自治系统之间
- 内部网关协议RIP工作原理:要求网络中每一个路由器都要维护一个从他自己到下一个目的网络的距离纪录,能直接到达的网络记为1,每经过一个路由器加1。
- 需要不断和其他的路由器交换信息,要求:
- 仅和相邻路由器交换信息
- 交换当前路由器所知道的全部信息
- 按固定时间间隔交换路由信息
- 路由表中的内容:目的网路,距离,下一条地址
- 距离向量算法:
- 将收到的相邻路由器X发送来的信息,下一条都改为X,距离加1
- 对于每一条信息,如果目的网络不存在原路由表中,加上
- 如果原路由表中对应目的主机行,下一跳是X,则更新
- 如果原路由表中对应目的主机行,下一跳是不X,比较距离若更小,则更新
- 需要不断和其他的路由器交换信息,要求:
- 内部网关协议OSPF
- 特点:
- 与RIP不同,将路由信息发送到所有路由器而不是相邻路由器
- 不采用UDP而是直接用IP数据报
- 特点:
- 外部网关协议BGP:
- 不使用内部网关协议原因:
- 因特网规模太大,自治系统之间选择困难
- 原则路由时不是选择最短路径,需要考虑网络性能,安全性
- 自治系统管理员需要为自治系统选择一个路由器作为‘发言人’,当需要交换路由信息时,先建立TCP连接,在此连接上建立会话。
- 不使用内部网关协议原因:
- 虚拟网络VPN
- 由于IP地址紧缺,在一个机构内部可以自行分配其IP地址,仅在机构内部有效,因特网中的路由器对目的地址是专用地址的数据报不能转发,因此内网中主机不能作为服务器
- 当一个机构不同部门在不同地点时,可以利用因特网作为专用网之间的通信载体,这样的网络称为虚拟专用网,通过因特网传输的数据需要加密,每个专用网需要有一个具有全球IP地址的路由器
- 网络地址转换NAT:
- 当专用网中的主机想要访问互联网中的主机,需要将本地地址转换为全球IP地址
- NAT地址转换表:源IP地址(本地地址)、目的主机地址(互联网IP地址)
- 可以利用运输层端口号,使得多个拥有本地地址的主机共用一个NAT路由器的全球IP地址,叫做NAPT网络地址与端口号转换
IP总结的更多相关文章
- Tcp/ip 报文解析
在编写网络程序时,常使用TCP协议.那么一个tcp包到底由哪些东西构成的呢?其实一个TCP包,首先需要通过IP协议承载,而IP报文,又需要通过以太网传送.下面我们来看看几种协议头的构成 一 .Ethe ...
- 网站定位之---根据IP获得区域
记得以前做一个培训机构网站时候需要定位,那时候用的搜狐的api,不是很精准. demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetC ...
- 通过 floating IP 访问 VIP - 每天5分钟玩转 OpenStack(126)
前面我们是直接用 curl 测试 VIP,在更为真实的场景中通常会使用 floating IP 访问 VIP. 下面我们给 VIP 关联一个 floating IP,再进行测试. 访问 Project ...
- PHP获取客户端IP
/** * 获取客户端IP */ function getClientIp() { $ip = 'unknown'; $unknown = 'unknown'; if (isset($_SERVER[ ...
- 获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)
前面我们已经讨论了 DHCP agent 的配置以及 namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程. 在创建 insta ...
- Java获取本机的IP与MAC地址
有些机器有许多虚拟的网卡,获取IP地址时会出现一些意外,所以需要一些验证: // 获取mac地址 public static String getMacAddress() { try { Enumer ...
- 根据ip判断返回城市名称查询当地天气
<?phpheader("content-type:text/html;charset=utf-8");date_default_timezone_set("Asi ...
- TCP/IP基础
TCP/IP 是用于因特网 (Internet) 的通信协议. 计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述. 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的 ...
- CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)
原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...
- TCP/IP之TCP_NODELAY与TCP_CORK
TCP/IP之Nagle算法与40ms延迟提到了Nagle 算法.这样虽然提高了网络吞吐量,但是实时性却降低了,在一些交互性很强的应用程序来说是不允许的,使用TCP_NODELAY选项可以禁止Nagl ...
随机推荐
- spring约束
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 【索引】位图BitMap索引
位图(BitMap)索引 前段时间听同事分享,偶尔讲起Oracle数据库的位图索引,顿时大感兴趣.说来惭愧,在这之前对位图索引一无所知,因此趁此机会写篇博文介绍下位图索引. 1. 案例 有张表名为ta ...
- I - Nice to Meet You
传送门 和10-17 B 君的第三题 类似,应该算是简化版,给出了固定的点. f[s]表示只考虑连端都在s集合中的边,s中的固定点(1或者2)能到达整个集合的方案数. 预处理c[s]表示s集合中的总边 ...
- js 读取本地文件(必须通过input控件才能实现) 及 下载文件
js 操作 文件的实现原理: 1.js是不能直接操作(读写)文件的,html的 input[type="file"] 控件是可以读取文件数据(获取文件数据流)的.js可以获取这个 ...
- D. Who killed Cock Robin--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 题目描述 由于系统限制,C题无法在此评测,此题为现场赛的D题 Who killed Cock Robin? I, ...
- vue中记录页面的滚动距离
业务需求:pageOne页面是一个商品列表页面,在这个页面点击商品,就会跳转到pageTwo商品详细页面.此时再从pageTwo页面返回到pageOne页面时,pageOne页面需要做到:1.记录pa ...
- DNF游戏币拼团
DNF游戏币拼团活动方案 活动目的: 通过拼团的方式来实现老拉新和现实新用户转换,可以通过有需求的用户来告知好友来进行用户裂变 活动时间:预计时间2018.11.11-2018.11.23 SLOGA ...
- 关于js的地址跳转
一.基本的地址跳转 解说: window.open 弹出新窗口的命令: page.html' 弹出窗口的文件名: 'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空'代 ...
- USACO2007 The Bale Tower /// DFS oj21160
题目大意: 给出N个捆包,每个捆包有相应的长度和宽度,要求堆叠捆包,使下方的捆包长宽永远大于上方的捆包的长宽. Input Multiple test case. For each case: * L ...
- web APP 开发之踩坑手记
屏蔽输入框怪异的内阴影 -webkit-appearance:none 禁止自动识别电话和邮箱 <meta content="telephone=no" name=" ...