DNS

TCPIP世界从一开始就有一个叫做主机识别码的东西 这种识别方式是指为每台计算机赋予唯一的主机名 在进行网络通信时可以直接使用主机名而无需使用一大串的IP 此时需要将主机名字转换为具体的IP地址 此时主机往往会用到一个叫做hosts的数据库文件

在上述背景之下 产生了一个可以有效管理主机名和IP地址之间对应关系的系统 那就是DNS系统

当然了DNS不仅仅只记录了这些信息 其他更多信息见P164 比如IP解析出主机域名的PTR信息

ARP

ARP是一种解决地址问题的协议 以目标IP地址为线索 用来定位下一个应该接收数据分包的网络设备对应的MAC地址 如果目标不在同一个链路时可以用ARP查找下跳路由器的MAC地址
在IPv6中使用ICMPv6代替ARP

机制很简答 使用一个ARP请求报和响应包进行邻居探索就可以知道一个链路的MAC地址了 获取的MAC地址会缓存一段时间 避免在链路上存在过多的ARP包

RARP

RARP是一种从MAC定位到IP的一种协议 比如没有任何输入接口或无法通过DHCP动态获取IP时的某些设备就会用到 需要架设一个RARP服务器

代理ARP

通常ARP包会被路由器隔离但是采用代理ARP的路由器可以将ARP请求转发给相邻网段

ICMP

之前章节有说有些网络环境为了安全考虑会屏蔽ICMP包 不能过分依赖ICMP
主要功能分两类

  • 同之出错原因的错误消息
  • 用于诊断的查询消息

下面介绍一些主要的ICMP消息

  • 目标不可达 类型3

    • 实际通信中常返回错误代码1表示主机不可达
    • 错误代码4表示之前说的路径MTU探索
  • 重定向或者改变路由 类型5
    • 如果路由器发现发送端主机采用了次优的路径发送数据那么会返回一个ICMP重定向消息给这个主机.信息中包含了最合适的路由和源数据

    • 不过多数情况这种重定向会引发问题 所以往往不进行这种设置

    • 具体如下图

  • 超时消息 类型11
    • 第三章讲到的TTL 为0丢弃该包时会返回一个超时消息 错误号为0
    • 有一款利用超时消息的应用 traceroute 显示出由执行程序的主机到达特定的主机之前经历过多少路由器 在windows中叫做tracert
  • 回送消息 类型0(回送应答) 类型8(回送请求)
    • ping 就是用这个消息实现的
  • 原点抑制消息 类型4
    • 使用低速广域网线路时的情况下 连接WAN的路由器可能拥堵
    • 拥堵时 路由器可以向IP包源主机发送一个原点抑制消息 让主机开启IP包的传输间隔 但是可能会引起不公平的网络通信 一般不被使用
  • 路由探索消息 类型9(路由器公告) 类型10(路由器请求)
  • 地址掩码消息 类型17(地址子网请求) 类型18(地址子网应答)

ICMPv6

ICMP在IPv4中仅仅作为辅助支持IPv4 在IPv6中没有ICMPv6无法正常通信 尤其在IPv6中 IPv4的ARP转为了ICMP的邻居探索消息

这种邻居探索融合了IPv4的ARP ICMP重定向以及ICMP路由器选择消息等功能于一体 甚至还提供了自动设置IP地址的功能 (IPv6中没有DNS服务器的通知功能所以需要HDCPv6才能实现自动设置IP)

DHCP

  • 一般该网段的路由器充当DHCP服务器
  • 发送DHCP请求报和发现包时 DHCP即插即用的IP地址还未确定因为发现包的地址为广播地址255.255.255.255源地址为0.0.0.0表示未知
  • DHCP服务器故障时可能会无法上网因此经常设置两台或以上的DHCP服务器但是这样会有一个问题每个DHCP服务器都记录了IP的分配可能会冲突
  • 避免这种可以对分配的地址进行分段
  • 第二种分配之后进行检查避免冲突
    • DHCP服务器在分配IP之前 对其发送ICMP回送请求包 确认没有应答
    • DHCP客户端收到服务器分配的IP之后 对此IP发送ARP请求包 确认没有应答
  • 大型网络多个路由器可以选择一个作为DHCP代理统一管理

NAT

前面的章节有介绍 NAT是用于在本地网络使用私有地址 在连接互联网时转而使用全局IP地址的技术
还有可以转换TCP UDP端口号的NAPT技术等

在NAT内部有一个自动生成的转换IP端口的转换表

  • 在TCP时 建立TCP的首次握手的SYN包一经发出就生成这个表 在收到关闭连接时发出FIN包的确认应答从表中删除
  • 在UDP时 两端应用通信时启止时间不一致生成转化表比较困难

潜在问题

  • 无法从NAT的外部向内服服务器建立连接 其实这点很容易解决P181
  • 转换表的生成有开销
  • 一旦NAT异常需要重新启动时所有的TCP连接都会被重置
  • 即使备至两台NAT做容灾备份 TCP连接还是会断开

IP隧道

可以连接IPv4和IPv6两个不同的网络 P183自行阅读

其他IP相关技术

多播

任播

通信质量控制

显示拥塞通知

Mobile IP

  • Q 通常手机或电脑设备每连接大不同的子网 都会有DHCP或手动的方式分配不同的IP地址 那么有什么问题呢
  • A 通常与移动设备进行通信时 所连接的子网一旦发生变化 则无法通过TCP继续通信
  • Mobile IP技术在主机所连接的子网IP发生变化时 主机IP地址仍然保持不变 应用不需要做任何改动通信也能继续
  • P191见图

图解TCPIP---第五章---IP协议相关技术相关推荐

  1. 计算机网络 | IP协议相关技术与网络总结 :DNS、ICMP、DHCP、NAT/NAPT、通信流程

    IP协议相关技术与网络总结 DNS DNS与域名 域名服务器 域名的解析流程 ICMP ping NAT/NAPT NAT NAPT NAT的缺陷 代理服务 DHCP 通信流程 浏览器中输入url后, ...

  2. IP协议相关技术终极详解

    IP协议相关技术终极详解 DNS域名解析协议 概述 域名的层级关系 域名的解析流程 ARP地址解析协议 概述 为什么需要ARP协议? ARP协议是属于哪一层呢? ARP协议和DNS协议的区别 ARP协 ...

  3. TCP/IP(三):IP协议相关技术

    在前两篇文章中,我分别介绍了数据链路层和网络层的IP协议.虽然这个系列教程的重点是搞定 TCP/IP,不过不用着急,本文简要介绍完与 IP 协议相关的技术,下一篇文章就会正式.详细的介绍 传输层与 T ...

  4. 【网络篇】第十八篇——IP协议相关技术

    目录 DNS DNS背景 域名的层级关系 域名解析过程 使用dig工具分析DNS过程 ARP DHCP NAT NAT IP转换过程 NAPT NAT技术的缺陷 如何解决NAT潜在问题 ICMP IC ...

  5. 5 网络层----IP协议相关技术

    5.1 DNS(域名解析协议) 5.1.1 域名服务器 域名是分层结构,域名服务器也是对应的层级结构. 有了域名结构,还需要有一个东西去解析域名,域名需要由遍及全世界的域名服务器去解析,域名服务器实际 ...

  6. 第五章 有关IP协议的技术

    目录 概述 重要提示 DNS  域名系统服务 DNS 的产生 域名结构 ARP 地址解析协议 ARP 何方神圣 ARP工作机制 ICMP 网络控制报文协议 辅助IP的 ICMP 主要的ICMP 消息 ...

  7. 深入浅出Zabbix 3.0 -- 第十五章 Zabbix 协议与API

    第十五章 Zabbix 协议与API 本章将介绍和开发相关的Zabbix协议和API的内容,通过对Zabbix协议和API的深入了解,你可以利用Zabbix协议编写客户端程序并将其嵌入的产品或系统中, ...

  8. 异步fifo_正点原子开拓者FPGA开发板资料连载第十五章 IP核之FIFO实验

    1)实验平台:正点原子开拓者FPGA 开发板 2)摘自<开拓者FPGA开发指南>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载地址:http://www.o ...

  9. 【正点原子FPGA连载】第十五章 IP核之FIFO实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  10. 第十五章 - 垃圾回收相关算法

    第十五章 - 垃圾回收相关算法 文章目录 第十五章 - 垃圾回收相关算法 1.标记阶段:引用计数算法 1.1 垃圾标记阶段:对象存活判断 1.2 引用计数算法 1.3 小结 2.标记阶段:可达性分析算 ...

最新文章

  1. python 列表多行_Python Pandas list列表数据列拆分成多行的方法实现
  2. [批处理]使用Log.io监控日志变化
  3. netty 游戏服务器框图_基于Netty和WebSocket协议实现Web端自动打印订单服务方法与流程...
  4. sql数据导入错误代码: 0x80004005_PL/SQL 非预定义异常、自定义异常处理、RAISE_APPLICATION_ERROR...
  5. springcloud记录篇6-分布式配置中心
  6. linux的can通信busoff,socketCAN内核源码分析是否支持busoff自恢复--Apple的学习笔记
  7. CSS3中的过渡、动画和变换
  8. HDOJ 1505 City Game
  9. 图片如何转PDF格式?这些方法值得收藏
  10. 史上最全计算机毕业设计题目4(10万套,大部分全国唯一)
  11. LaTeX安装CJK-- 添加中文支持
  12. maven--Element ‘resource‘ cannot have character [children], because the type‘s content type is eleme
  13. 《单片机原理及应用(魏洪磊)》第七章第8题
  14. SpringBoot_01_初窥门径
  15. VSCode-解决中文乱码和Run in terminal问题控制台不能输入
  16. Facebook将对视频进行人物识别及身份标注
  17. 阿里云Linux服务器上安装dubbo-admin管理控制台
  18. mysql mybatis分表查询_mybatis 自动分表
  19. HTML动态爱心代码
  20. SEO搜索引擎优化方式

热门文章

  1. 你专属的程序员春节“大礼包”
  2. 炼油化工常用英文缩写
  3. dsoframer java_(二)   内嵌WORD/OFFICE的WINFORM程序——DSOFRAMER使用小结
  4. HTML5基础学习-表格标签
  5. 【转载】APP通用测试用例大全
  6. [目标检测系列]ATSS: Bridging the Gap Between Anchor-based and Anchor-free Detection via ATSS(CVPR2020)
  7. 2022 年“泰迪杯”数据分析技能赛——竞赛作品的自动评判(Python代码实现)
  8. CentOS7.5搭建ELK6.2.4集群与简单测试
  9. linux 联机游戏下载,星露谷物语多人联机版
  10. php 和 java 美刀,通过GOOGLE(谷歌) API获取实时货币汇率(人民币和美金)的PHP代码