IP/DHCP/NAT/ICMP

IP数据报

IP编址

IP分组:源地址(SA)-从哪儿来,目的地址(DA)-到哪儿去

接口(interface): 主机/路由器与物理链路的连接
1.实现网络层功能
2.路由器通常有多个接口
3.主机通常只有一个或两个接口 (e.g.,有线的以太网接口,无线的802.11接口)

IP地址: 32比特(IPv4)编号标识主机、路由器的接口
IP地址与每个接口关联
如何为接口分配IP接口

IP地址:
网络号(NetID) – 高位比特
主机号(HostID) – 低位比特

IP地址

IP子网

IP子网:
IP地址具有相同网络号的设备接口
不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口


私有网络IP地址

子网划分

IP地址:
网络号(NetID) – 高位比特
子网号(SubID) – 原网络主机号部分比特
主机号(HostID) – 低位比特


image.png
子网掩码

子网掩码确定是否划分了子网,利用多少位划分子网
形如IP地址: 32位, 点分十进制形式
取值:NetID、SubID位全取1,HostID位全取0
A网的默认子网掩码为:255.0.0.0
B网的默认子网掩码为:255.255.0.0
C网的默认子网掩码为:255.255.255.0
借用3比特划分子网的B网的子网掩码为:255.255.224.0

子网地址+子网掩码→准确确定子网大小

将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址

目的IP地址:172.32.1.112,子网掩码:255.255.254.0



子网地址:172.32.0.0(子网掩码:255.255.254.0)
地址范围:172.32.0.0~172.32.1.255
可分配地址范围:172.32.0.1~172.32.1.254
广播地址:172.32.1.255

CIDR

无类域间路由(CIDR: Classless InterDomain Routing)

  • 消除传统的 A 类、B 类和 C 类地址界限
    NetID+SubID→Network Prefix (Prefix)可以任意长度
  • 融合子网地址与子网掩码,方便子网划分
    无类地址格式:a.b.c.d/x,其中x为前缀长度


  • 提高IPv4 地址空间分配效率
  • 提高路由效率
    将多个子网聚合为一个较大的子网
    构造超网(supernetting)
    路由聚合(route aggregation)

DHCP

一个主机如何获得IP地址?

  • 硬编码
    静态配置


    image.png

默认网关:当前子网内数据报离开该子网时转发的接口(IP),这个接口所在路由器接入该子网的IP就是默认网关

  • 动态主机配置协议-DHCP: Dynamic Host Configuration Protocol
    DHCP(端口号67)在应用层实现
    “即插即用”
    允许地址重用
    支持在用地址续租
    支持移动用户加入网络
    从服务器动态获取:

• IP地址
• 子网掩码
• 默认网关地址
• DNS服务器名称与IP地址



四个255:受限广播地址
yiadrr:与分配给客户端地址为:223.1.2.4
第三次还是广播:可以告诉其他的DHCP服务器,收回他们所预分配的地址

DHCP协议在应用层实现
请求报文封装到UDP数据报中
IP广播
链路层广播(e.g. 以太网广播)

DHCP服务器构造ACK报文包括分配给客户的IP地址、子网掩码、默认网关、DNS服务器地址

NAT(网络地址转换)(工作在网络层涉及到了传输层)

动机:

  • 只需/能从ISP申请一个IP地址( IPv4地址耗尽)
  • 本地网络设备IP地址的变更,无需通告外界网络
  • 变更ISP时,无需修改内部网络设备IP地址
  • 内部网络设备对外界网络不可见,即不可直接寻址(安全)

实现:

  • 替换:利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号)
  • 记录:将每对(NAT IP地址, 新端口号) 与(源IP地址, 源端
    口号)的替换信息存储到NAT转换表中
  • 替换:根据NAT转换表,利用(源IP地址, 源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址, 新端口号)

NAT主要争议:

  • 路由器应该只处理第3层功能
  • 违背端到端通信原则(应用开发者必须考虑到NAT的存在,e.g., P2P应用)
  • 地址短缺问题应该由IPv6来解决

NAT穿透问题

客户期望连接内网地址为10.0.0.1的服务器

  • 客户不能直接利用地址10.0.0.1直接访问服务器
  • 对外唯一可见的地址是NAT地址: 138.76.29.7

解决方案1: 静态配置NAT,将特定端口的连接请求转发给服务器
e.g., (138.76.29.7, 2500) 总是转发给(10.0.0.1, 25000)

解决方案2: 利用UPnP(Universal Plug and Play)互联网网关设备协议 (IGDInternet Gateway Device )自动配置:(自动化解决方案1)
学习到NAT公共IP地址(138.76.29.7)
在NAT转换表中,增删端口映射

解决方案3: 中继(如Skype)
NAT内部的客户与中继服务器建立连接
外部客户也与中继服务器建立连接
中继服务器桥接两个连接的分组

ICMP(互联网控制报文协议)

  • 互联网控制报文协议 ICMP (Internet Control Message Protocol)支持主机或路由器:
    1.差错(或异常)报告
    2.网络探询

  • 两类ICMP 报文:
    差错报告报文(5种)
    1.目的不可达(无法成功交付到目的地,丢弃报文)使用ICMP向源主机报告
    2.源抑制(Source Quench)路由器缓存满后可使用ICMP向源主机报告(可以适用于拥塞控制,但并未使用)
    3.超时/超期(TTL超时)
    4.参数问题
    5.重定向 (Redirect)

  • 网络探询报文(2组)
    1.回声(Echo)请求与应答报文(Reply) Ping工具
    2.时间戳请求与应答报文

几种不发送 ICMP差错报告报文的特殊情况:

1.对ICMP差错报告报文不再发送 ICMP差错报告报文
2.除第1个IP数据报分片外,对所有后续分片均不发送ICMP差错报告报文
3.对所有多播IP数据报均不发送 ICMP差错报告报文
4.对具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP数据报不发送ICMP 差错报告报文

几种 ICMP 报文已不再使用

1.信息请求与应答报文
2.子网掩码请求和应答报文
3.路由器询问和通告报文

IPV6

最初动机:32位IPV4地址分配殆尽
其他动机:改变首部格式

  • 快速处理/转发数据报
  • 支持QoS

IPv6数据报格式:

  • 固定长度的40字节基本首部
  • 不允许分片

校验和(checksum): 彻底移除,以减少每跳处理时间

选项(options): 允许,但是从基本首部移出,定义多个选项首部,通过“下一个首部”字段指示

ICMPv6: 新版ICMP
附加报文类型,e.g. “Packet Too Big”
多播组管理功能

一般形式: 1080:0:FF:0:8:800:200C:417A
压缩形式: FF01:0:0:0:0:0:0:43 压缩→FF01::43
IPv4-嵌入形式: 0:0:0:0:0:FFFF:13.1.68.3或 ::FFFF:13.1.68.3
地址前缀: 2002:43c:476b::/48(注: IPv6不再使用掩码!)
URLs: http://[3FFE::1:800:200C:417A]:8000

单播地址:一对一通信 1<->1
多播地址:一对多通信 1->n
任意播地址:一对一组之一 1->1/n

不可能在某个时刻所有路由器同时被更新为IPv6
 不会有 “标志性的日期”
 IPv4和IPv6路由器共存的网络如何运行?

隧道(tunneling): IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • IPv4分组 IPv4,即现在普遍使用的IP协议(版本为4)。IP协议定义数据传送的基本单元——IP分组及其确切的...
    CodeKing2017阅读 1,854评论 0 0
  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 3,924评论 0 12
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 第二章 物理层 频分复用:频分复用的用户在同样的时间占用不同的带宽资源(频率带宽) 时分复用:时分复用的用户在不同...
    PramaWells阅读 3,556评论 1 3
  • 遇到的问题 最近遇到一个PHP大整数的问题,问题代码是这样的 上面的代码输出,会把$shopId转换成float类...
    hoohack阅读 627评论 1 0