《图解TCP/IP》之IP协议相关技术

1.仅凭IP无法完成通信

在访问Web站点和发送、接收电子邮件时,我们通常会直接输入Web网站的地址和邮件地址等那些由应用层提供的地址,而不会使用由十进制数字组成的某个IP地址。因此,为了能让主机根据实际的IP包进行通信,就有必要实现一种功能--将应用中使用的地址映射为IP地址。
此外,在数据链路层也不使用IP地址。在以太网的情况下只使用MAC地址传输数据。而实际上将众多IP数据包在网络上进行传送的就是数据链路本身,因此,必须了解发送端MAC地址。如果不知道MAC地址,那么通信也就无从谈起。
由此可知,在实际通信中,仅凭IP远远不够,还需要众多支持IP的相关技术才能实现最终通信。

2.DNS

我们平常在访问某个网站时不使用IP地址,而是用一串罗马字和点号组成的字符串。而一般用户在使用TCP/IP进行通信时也不使用IP地址。能够这样做是因为有了DNS功能的支持。DNS可以将那串字符串自动转换为具体的IP地址。

1.IP地址不便于记忆

在进行应用操作时,用户必须指定对端的接收地址,此时如果使用IP地址的话应用就会有很多不便之处。因此IP地址是由一串数据序列组成,并不好记。

2.DNS的产生

在上述背景下,产生了一个可以有效管理主机名和IP地址之间对应关系的系统,那就是DNS系统。在这个系统中主机的管理机构可以对数据进行变更和设定。也就是说,它可以维护一个用来表示组织内部主机名和IP地址之间对应关系的数据库。

3.域名的构成

域名是指为了识别主机名称和组织机构名称的一种具有分层的名称。


屏幕快照 2019-01-23 下午2.33.23.png
  • 域名服务器
    域名服务器是指管理域名的主机和相应的软件,它可以管理所在分层的域的相关信息。其所管理的分层叫做ZONE。
  • 解析器
    进行DNS查询的主机和软件叫做DNS解析器。用户所使用的工作站或个人电脑都属于解析器。一个解析器至少要注册一个以上域名服务器的IP地址。通常,它至少包括组织内部的域名服务器的IP地址。
4.DNS查询
屏幕快照 2019-01-23 下午2.49.57.png
5.DNS如同互联网中的分布式数据库

DNS所管理的信息不仅仅是这些主机名和IP地址之间的映射关系。它还要管理众多其他信息。


屏幕快照 2019-01-23 下午2.52.47.png

3.ARP

只要确定了IP地址,就可以向这个目标地址发送IP数据报。然而,在底层数据链路层,进行实际通信时却有必要了解每个IP地址所对应的MAC地址。

1.ARP概要

ARP是一种解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。如果目标主机不在同一链路上时,可以通过ARP查找下一跳路由器的MAC地址。不过ARP只适用于IPv4,不能用于IPv6.IPv6中可以用ICMPv6替代ARP发送邻居探索消息。

2.ARP的工作机制

ARP是借助ARP请求与ARP响应两种类型的包确定MAC地址。


屏幕快照 2019-01-23 下午3.12.33.png

4.ICMP

1.辅助IP的ICMP

架构IP网络需要特别注意两点:确认网络是否正常工作,以及遇到异常时进行问题诊断。
ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。有了这些功能以后,就可以获得网络是否正常、设置是否有误以及设备有何异常等信息,从而便于进行网络上的问题诊断。


屏幕快照 2019-01-23 下午4.20.28.png
2.主要的ICMP消息
  • 目标不可到达消息
    IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标不可达的ICMP消息,并在这个消息中显示不可达的具体原因。


    屏幕快照 2019-01-23 下午4.39.15.png
  • ICMP重定向消息
    如果路由器发现发送端主机使用了次优的路径发送数据,那么它会返回一个ICMP重定向的消息给这个主机。在这个消息中包含了最合适的路由信息和源数据。这主要发生在路由器持有更好的路由信息的情况下。路由器会通过这样的ICMP消息发送端主机一个更合适的发送路由。
  • ICMP超时消息
    IP包中有一个字段叫做TTL(Time To Live,生存周期),它的值随着每经过一次路由器就会减1,直到见到0时该IP包就会被丢弃。此时,IP路由器将会发送一个ICMP超时的消息给主机,并通知该包已被丢弃。
    设置IP包生存周期的主要目的,是为了在路由控制遇到问题发生循环状况时,避免IP包无休止地在网络上被转发。此外,有时可以用TTL控制包的到达范围,例如设置一个较小的TTL值。
  • ICMP回送消息
    用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达对端的一种消息。可以向对端主机发送回送请求的消息,也可以接收对端主机发回来的回送应答消息。
3.其他ICMP消息
  • ICMP原点抑制消息
    在使用低速广域线路的情况下,连接WAN的路由器可能会遇到网络拥堵的问题。ICMP原点抑制消息的目的就是为了缓和这种拥堵情况。当路由器向低速线路发送数据时,其发送队列的残存变为零而无法发送出去时,可以向IP包的源地址发送一个ICMP原点抑制消息。收到这个消息的主机借此了解在整个线路的某一处发送了拥堵的情况,从而打开IP包的传输间隔。
  • ICMP路由探索消息
    主要用于发现与自己相连网络中的路由器。当一台主机发出ICMP路由器请求时。路由器则返回ICMP路由器公告消息给主机。
  • ICMP地址掩码消息
    主要用于主机或路由器想要了解子网掩码的情况。可以向那些目标主机或路由器发送ICMP地址掩码请求消息,然后通过接收ICMP地址掩码应答消息获取子网掩码的信息。

5.DHCP

1.DHCP实现即插即用

为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP(Dynamic Host Configuration Protocol)协议。有了DHCP,计算机只要连接到网络,就可以进行TCP/IP通信。

2.DHCP的工作机制

使用DHCP之前,首先要架设一台DHCP服务器。然后将DHCP所要分配的IP地址设置到服务器上。此外,还需要将相应的子网掩码、路由控制信息以及DNS服务器的地址等设置到服务器上。


屏幕快照 2019-01-27 上午11.20.06.png

6.NAT

1.NAT定义

NAT(Network Address Translator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。除转换IP地址外,还出现了可以转换TCP、UDP端口号的NAPT(Network Address Ports Translator)技术,由此可以实现用一个全局IP地址与多个主机的通信。

2.NAT的工作机制

屏幕快照 2019-01-27 下午1.21.28.png

7.IP隧道

网络A、网络B使用IPv6,如果处于中间位置的网络C支持使用IPv4的话,网络A与网络B之间将无法直接进行通信。为了让它们之间正常通信,这时必须得采用IP隧道的功能。


屏幕快照 2019-01-27 下午1.31.52.png

IP隧道中可以将那些从网络A发过来的IPv6的包统和为一个数据,再为之追加一个IPv4的首部以后转发给网络C。
一般情况下,紧接着IP首部的是TCP或UDP的首部。然而,现在的应用当中“IP首部的后面还是IP首部”或者“IP首部的后面是IPv6的首部”等情况与日俱增。这种在网络层的首部后面继续追加网络层首部的通信方法就叫做“IP隧道”。

8.其他IP相关技术

1.IP多播相关技术

在多播通信中,确认接收端是否存在非常重要。如果没有接收端,发送多播消息将会造成网络流量的浪费。
而确认是否有接收端,要通过MLD实现。它是IPv4中IGMP和IPv6中ICMPv6的重要功能之一。
IGMP(MLD)主要有两大功能:
1.向路由器表明想要接收多播消息。
2.向交换集线器通知想要接收多播的地址。

2.IP任播

IP任播主要用于报警电话110和消防电话119。IP任播是指为那些提供同一种服务的服务器配置同一个IP地址,并与最近的服务器进行通信的一种方法。

3.通信质量控制
  • 通信质量的定义
    IP协议的设计和开发初衷是作为一个“尽力服务”型的协议,是一款“没有通信服务质量保证”的协议。在“尽力服务”型的通信中,如果遇到通信线路拥堵的情况,可能会导致通信性能下降。
    通信线路上的拥塞也叫做收敛。当网络发生收敛时,路由器和集线器的队列溢出,会出现大量的丢包现象,从而极端影响通信性能。
  • 控制通信质量的机制
    对于需要保证通信质量的包,路由器会进行特殊处理,并且在力所能及的范围内对其进行优先处理。
    通信质量包括带宽、延迟、时延波动等内容。路由器在内部的队列中可以优先处理这些要求保证通信质量的包,有时甚至不得不丢弃那些没有优先级的包以保证通信质量。
4.显式拥塞通知

当发生网络拥塞时,发送主机应该减少数据包的发送量。作为IP上层协议,TCP虽然也能控制网络拥塞,不过它是通过数据包的实际损坏情况来判断是否发生拥塞。然而这种方法不能在数据包损坏之前减少数据包的发送量。
为了解决这个问题,人们在IP层新增了一种使用显式拥塞通知的机制,即ECN。
ECN为实现拥塞通知的功能,将IP首部的TOS字段置换为ENC字段,并在TCP首部的保留位追加CWR标志和ECE标志。
ECN的机制概括起来就是在发送包的IP首部中记录路由器是否遇到拥塞,并在返回包的TCP首部中通知是否发生过拥塞。拥塞检查在网络层进行,而拥塞通知则在传输层进行,这两层的互相协助实现了拥塞通知的功能。

5.Mobile IP
  • Mobile IP的定义
    Mobile IP技术在主机所连接的子网IP发生变化时,主机IP地址仍保持不变。应用不需要做任何改动,即使是在IP地址发生变化的环境下,通信也能继续
  • IP隧道与Mobile IP


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

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,054评论 0 8
  • IPv4分组 IPv4,即现在普遍使用的IP协议(版本为4)。IP协议定义数据传送的基本单元——IP分组及其确切的...
    CodeKing2017阅读 1,875评论 0 0
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,477评论 0 6
  • # 图解TCP/IP 标签(空格分隔): 2018招聘 --- ##第1章 网络基础知识 ### ### 1.1 ...
    Kai_a3da阅读 1,441评论 0 2
  • 0. 介绍 本文源自《图解TCP/IP》第四、五章读书笔记。一篇文章让你了解IP协议。阅读的时候,注意一般知识点结...
    天才木木阅读 5,149评论 0 14