TCP/IP~从数据链路到IP协议详解、IP协议辅助技术介绍(DNS、ARP、NAT、ICMP、IP隧道)

数据链路

  • TCP/IP中对于数据链路层和物理层没有准确的定义(因为介质不同,受太多物理因素影响)
  • 数据链路中常用的通信媒介:同轴电缆、光纤、电波、红外线等等
  • 数据链路中常用的中间设备(来中转数据):交换机、网桥、中继器等…
  • 物理层的作用是负责将二进制数据转换成光电信号,或者将光电信号转换成二进制数据
  • 数据链路层将数据按照数据帧的方式进行传输
  • 数据链路中的段:一个被分割的网络。不同的层级中含义不同,比如下图。在网络层中,虽然是两条网线,但属于同一个网络,所以是一个段。物理层中认为两条网线是两个段.

在这里插入图片描述

MAC地址
  • MAC地址(Media Access Control Address)也叫局域网地址、以太网地址。其实就是设备的物理地址
  • MAC地址的作用是标识数据链路中的节点
  • MAC地址长48位,每一个网卡(NIC)或者叫网络适配器都有一个MAC地址。每个网卡的MAC地址都是唯一的
  • 数据包在传输时,主机会一次获取所有数据包,并检查是不是自己的MAC地址,不是就丢弃
    在这里插入图片描述
网络分类

根据介质的使用方法的不同,可以分为共享型和非共享型

共享型网络

多个设备共享一个通信介质(用同一根线)
共享型网络是半双工通信,发送数据的同时不能接受数据,接受的同时不能发送

共享型网络中介质访问方式
争用方式
多个设备争夺在线路中传输数据的权力,也叫CSMA(载波监听多个访问)

CSMA/CD具体流程:

  • 如果载波信道上没有数据流动,任何一个数据链路中的节点都可以发送数据
  • 检查其他链路节点是否同时也在发送数据,也就是检查是否冲突,有冲突就放弃发送,随机等待一段时间后继续发送

令牌方式

  • 让多个数据链路节点成环,然后在环中传递令牌报文
  • 获得令牌的数据链路节点才能发送数据,数据发送成功后,令牌传递给下一个数据链路节点

在这里插入图片描述

非共享型网络

不共享介质,每一个数据链路中的节点直接连接交换机,让交换机转发数据。计算机和交换机接口之间形成一对一的连接。

非共享型是全双工通信,发送数据的同时可以接受数据

以太网

  • 以太网是众多数据链路中的一种
  • 以太网的网帧格式:目标MAC地址+源MAC地址+类型+数据+FCS(检测数据帧是否损坏)
无线通信
  • 无线通信不需要网线或电缆
  • 在局域网范围内的高速连接就是无线通信
  • 无线通信分为无线LAN、无线WAN、RAN等.
  • 无线WAN就是我们通常用的手机通信、无线LAN就是我们常说的Wi-Fi

IP协议

  • TCP/IP中最重要的就是互联网层
  • 互联网层主要有IP协议IMCP协议组成
  • 网络层的作用是实现两个终端节点之间的通信
  • 数据链路层主要作用在互连的同一种的数据链路之间进行包传递。如果跨越多种数据链路,就需要网络层
  • 主机:并不单指计算机的主机,而是指配有IP地址,但不进行路由控制的设备。路由器:配有IP地址又具有路由控制能力。
  • 网络传输中的节点即可以指主机,也可以指路由器
  • 数据链路负责在两个互相连接的设备之间提供通信功能。而网络层更多的是在两个没有互相连接的网络之间提供通信功能。
  • 网络层和数据链路层的关系就像是一个是行程表和具体的车票船票之间的关系。没有车票船票只有行程表无法到达目的地。同理,只有车票船票也不可能到达目的地,因为无法知道到什么位置换乘以及在哪里换乘。
    在这里插入图片描述
IP具体功能:IP寻址、路由、IP分包和组包
IP地址
  • 在数据链路中 ,MAC地址用来表示同一链路中不同计算机的一种识别码
  • 网络层的是IP地址
  • TCP/IP通信中所有的计算机和路由器都必须设定自己的IP地址
  • 连接互联网就必须有IP地址
  • IP地址由两个部分组成:网络标识和主机标识
  • 网络标识在数据链路的不同段配置不同的值,同一个段内的主机网络标识相同,主机标识不同.
  • IP地址由32位二进制组成,8位一组,共组.
  • IP地址分为ABCD四类,每个类用不同的二进制位来表示网络标识。A类前8位、B类前16位、C类前24位、D类前32位.

IP地址中的子网和子网掩码

  • 子网地址:将原来IP地址的ABC类中的主机地址部分作为子网地址
  • 然后通过子网掩码这种标识码来对IP地址进行一个粒度更小的划分
  • 有了子网后,IP地址就有了两种识别码:IP地址本身、子网掩码
  • 子网掩码用二进制的32位数字标识,将IP地址中的网络标识全部改为1,主机标识全部改为0就是子网掩码
  • 如IP地址172.20.100.52的子网掩码是255.255.255.192
  • 分类的IP地址过于复杂,人们开始放弃IP地址的分类采用任意长度分割IP地址的网络标识和主机标识,这种方式就是CIDR(无类型域选路)

全局IP与私有IP

私有IP的出现是为了解决IP地址耗尽的危险

  • 私有IP:私有网络的IP,配置了私有网络的IP后,会通过NAT技术和全局IP通信
  • 全局IP:普通的IP,除了私有IP剩下的那部分
  • 全局IP需要在全网范围内保持唯一,但是私有IP不需要,只需要在统一个域内相同的即可,不同的域中出现相同的私有IP也不影响使用
路由控制
  • 路由控制的功能就是将分组数据发送到最终目标地址
  • 传输过程:IP数据包来到路由器,路由器确定下一个路由地址,然后将数据包传递过去。下一个路由器进行相同操作,重复多次,将数据包送到最终地址。
  • 可以类比发送包裹。主机A给B发送数据,就是卖家给买家发货,中间一个个的路由器就菜鸟驿站,包裹从A出发,用以太网运输(具体工具)到第一个路由,每个路由中有路由控制表,记录了主机和网络之间对应关系,告诉包裹下一站应该被发送到那个路由。
  • IP地址对底层的数据链路进行了抽象化,无论底层的数据链路是以太网还是无线LAN还是PPP,都一视同仁。就像送快递的时候,不同的数据链路类似于交通工具不同,电动车、大货车、等…
IP协议是面向无连接型
  • IP数据包在发送前,不需要与目标主机建立连接。
  • 上层遇到需要发送给IP的数据,会立马压缩成IP包发送出去
  • IP数据包采用无连接的方式是为了简化和提速
  • IP只负责把数据发送出去,TCP会负责保证对面收到数据
IP分割处理和再构成处理
  • 不同的数据链路有不同的最大传输单元(MTU
  • 以太网默认的MTU是1500字节,当IP数据报大于1500时,无法在一个数据帧中发送,就会被路由器进行分片处理
  • 路由器只要只认为有必要就会周而复始进行分片处理
  • 分片的IP数据报只有到达目标主机中才会被重组,不会在中间过程组装

IPv6简单了解

  • IPv6的出现是为了解决IPv4地址耗尽的问题而被标准化的IP协议
  • IPv6的地址是IPv4地址的4倍,由128比特构成,每16个为一组
  • IPv6的IP数据报分片处理由发送主机进行,不再是由路由器进行,减少路由器负担.(分片处理时借助路径MTU发现功能,先确定线路上最小的传输单元,然后进行分片)
  • IPv6的地址和IPv4相同,也通过前几位标识IP地址的种类

IPv4的首部

在这里插入图片描述

  • 版本号(version:表示IP地址是哪个版本,IPv4还是IPv6或其他
  • 首部长度:表示首部长度是多少,最小20个字节,最大60个字节
  • 区分服务:表示服务质量,像最大吞吐、最大安全等,可以忽略这个字段,实际意义不大
  • 总长度:表示IP首部+数据包的长度,最大是65535个字节
  • 标识ID):同一份数据报下的所有分片的标识相同,用于最后进行组装。确定那些分片是同一个数据报里的。不是同一份数据报中的标识不同
  • 标志:3个比特,表示包被分片的相关信息(包是否可以分片等)
  • 片偏移FO):13位比特。标识每一个数据报片在原始数据报中的位置
  • 生存时间TTL):实际中指可以中转多少个路由器,每经过一个路由器,TTL的值就减1,直到变成0就丢弃这个包
  • 协议:8位比特,表示IP传输层的上层协议编号。
  • 首部校验和:16位比特。校验数据报的首部部分,来确保IP数据报是完整的,没有被破坏。
  • 源地址:发送端的IP地址,32位比特
  • 目标地址:接受端的IP地址,32位比特。
  • 可选项:长度可变。用于某些特殊诊断中,包含的信息有:安全级别、路径信息、时间戳等
  • 填充:如果IP数据包有可选项,会出现不是32的倍数的情况,通过填充0来确保。
一些IP协议的辅助技术

仅仅凭借IP协议是无法完成通信的,需要有很多的IP辅助技术。
比如我们上网时输入的不是具体的IP地址,而是URL。如何将URL转化成IP地址?
在数据链路中,传输时用的是MAC地址,如何将MAC地址转化成IP地址?
IP数据包传输过程中出现了异常情况如何处理?

还有很多的功能是IP协议的辅助技术实现的,有DNSARPICMPDHCP等等。

DNS

DNS全名Domain Name System,域名系统。功能是解析URL转化为IP地址。可以转化成IP4,也可以转化为IP6的地址。

  • DNS本质上是一个数据库,用来管理主机名和IP地址之间的对应关系
  • 通过唯一的主机名就可以快速检索到对应的IP地址
  • 我们输入主机名(域名),DNS就会自动转化成对应的IP地址

域名

  • 域名本质上是IP地址的一个映射(直接使用IP地址不方便记忆,所以用域名代替)

  • 域名是某台计算机或计算机组的名称,由一串字符组成,并用点分割

  • DNS系统管理域名时,使用的是分层的树结构.
    在这里插入图片描述

  • 域名在书写时,最低级的域名在左边,最高级的域名在右边。比如mail.cctv.com中,com就是顶级域名,cctv是二级域名,mail是三级域名

  • 最顶级的域名由ICANN管理,最顶级的域名(TLD,Top Level Domain)分为三大类:
    1.国家顶级域名nTLD:如cn代表中国,us代表美国,uk代表英国
    2.通用顶级域名gTLD:最常见的通用顶级域有7个,即com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国政府部门),mil(美国军事部门)
    3.基础顶级域名:只有一个apra,用于域名反向解析

  • DNS结构中,对于不同域名的解析请求都会有一个域名服务器,从根域名服务器开始,一层一层的往下分担,每一个域都有一个域服务器,每一层的域服务器都了解该层以下分层中所有域服务器的IP地址

DNS查询机制

  • 每一个用户的电脑都可以认为是一个DNS解析器
  • 在访问一个网站时,DNS解析器需要将URL解析成IP地址,会先找到上一层的域名服务器发出请求
  • 收到请求的域名解析器会现在本地数据库中查找对应的IP地址,如果查询不到,会将这个请求再发送给上一层域名服务器进行处理,直到找到这个IP地址
  • 每层的域名服务器或解析器都会将最新查询到的信息保存到缓存中,减少查询的性能消耗
  • 总结:DNS就是通过主机名(域名)检索IP地址的系统,管理两者之间的映射关系。
ARP

ARP协议的作用是根据目标IP地址来确定下一个接受数据报的网络设备的MAC地址

ARP工作机制

  • 主机A想向同一个链路中的主机B发送数据包,但不知道主机B的MAC地址.只知道目标IP地址(主机B的地址)。此时主机A会通过广播发送一个ARP请求包,并将目标IP地址放入包中。同一个链路上的所有主机都能接收到并解析这个ARP包,如果解析后发现包中的目标IP地址与自己的IP地址相同,那么这个主机就会响应一个APR数据包,并把自己的MAC地址放入包中。主机A接受到主机B的响应包后,就能知道B的MAC地址了。
  • 每一次发送IP包都需要先响应一次获取MAC地址,多次后会造成网络流量浪费。为了避免这个问题,每一次响应后,都会将IP地址和MAC地址之间的对应关系缓存起来,下次再发送时就无需响应直接发送。
ICMP
  • ICMP的作用是确认IP包是否到达目标地址,如果发送失败,通知发送失败的原因.
  • 工作流程:主机A向主机B发送IP数据,中间进过路由器2,因为某种原因主机B无法接受消息,那么路由器2就会发送一个ICMP包返回给主机A,通知发送失败及原因

主要的ICMP消息
主要包括两类:通知错误原因的消息、用于诊断的查询消息.具体的消息类型有18种,这里只介绍重点的几种

  • ICMP消息不可达:IP路由器无法将IP数据包发送给目标地址,会发送一个目标不可达的ICMP消息,消息中包含不可达原因。常见的有主机不可达、网络连接失败等
  • ICMP重定向消息:在有更好的发送路径时,路由器会通知发送端重新用最优路径发送数据。
  • ICMP超时消息:IP数据包首部中,有字段TTL生存周期,当TTL为0时,数据包会被丢弃。此时路由器会发送一个ICMP超时消息给发送端。(TTL存在的意义是防止数据包在发送时因为某种情况陷入死循环)
  • ICMP回送消息:相互通信的两个主机或路由之间,用来判断数据包是否到达。发送端可以发送回送请求消息,也可以接受接收端发送的回送应答消息。网络延迟ping命令就是基于这个消息实现的
DHCP
  • DHCP协议的功能是自动设置IP地址、统一管理IP地址分配
  • 如果没有DHCP协议,每次从不同地方连接互联网时,都要手动设置IP地址、子网掩码、默认路由等很多信息,还要保证唯一性,非常复杂
  • DHCP中继代理:家庭网络中只有一个以太网网段,连接的主机数量也很少,通常情况下由宽带路由器充当DHCP服务器的作用,来自动分IP地址。学校企业等组织机构中,一般有多个以太网网段,每个网段设置一个服务器不现实,通常是每个网段设置一个DHCP中继代理,多个中继代理和DHCP服务器之间交互处理请求。
NAT
  • NAT的作用:将私有IP转换为全局IP
  • 工作机制:局域网内多台主机使用私有IP地址,在和外部通信时,包括外部主机和局域网内主机通信时,都需要通过NAT服务器作为中介进行转发消息。在NAT服务器中,有自动生成的私有-全局IP映射表,根据这张表来进行私有IP和全局IP地址的转换。
  • NAT协议只能转换IPv4的地址,NAT-PT协议可以将IPv6的地址转换为IPv4的地址(通过转换首部)来实现私有和全局IP的转换。
IP隧道
  • 假如有两个网络A、B,使用IPv6地址,在中间有网络C,使用IPv4,AB之间如果想要通信,必须通过网络C,但因为地址不兼容,所以必须使用IP隧道来进行转换通信。
  • IP隧道会将网络A发送的数据作为一个包,并加上一个IPv4的首部,发送给网络C,在网络C上进行传递,然后通过解析首部,就可以将网络C的数据转发给网络B,这样就实现了通信。

在这里插入图片描述

  • 如上图,在网络层首部后继续添加网络层首部的方法就叫IP隧道
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值