15 张图,了解一下 TCP/IP 必知也必会的 10 个问题


15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图
作者:Ruheng 来源:

15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图
15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图
一、TCP/IP模型TCP/IP协议模型(Transmission Control Protocol/Internet Protocol) , 包含了一系列构成互联网基础的网络协议 , 是Internet的核心协议 。
基于TCP/IP的参考模型将协议分成四个层次 , 它们分别是链路层、网络层、传输层和应用层 。 下图表示TCP/IP模型与OSI模型各层的对照关系 。
15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图
TCP/IP协议族按照层次由上到下 , 层层包装 。 最上面的是应用层 , 这里面有http , ftp 等等我们熟悉的协议 。 而第二层则是传输层 , 著名的TCP和UDP协议就在这个层次 。 第三层是网络层 , IP协议就在这里 , 它负责对数据加上IP地址和其他的数据以确定传输的目标 。 第四层是数据链路层 , 这个层次为待传送的数据加入一个以太网协议头 , 并进行CRC编码 , 为最后的数据传输做准备 。
15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图
上图清楚地表示了TCP/IP协议中每个层的作用 , 而TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程 。 入栈的过程 , 数据发送方每层不断地封装首部与尾部 , 添加一些传输的信息 , 确保能传输到目的地 。 出栈的过程 , 数据接收方每层不断地拆除首部与尾部 , 得到最终传输的数据 。
15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图
上图以HTTP协议为例 , 具体说明 。
二、数据链路层物理层负责0、1比特流与物理设备电压高低、光的闪灭之间的互换 。 数据链路层负责将0、1序列划分为数据帧从一个节点传输到临近的另一个节点,这些节点是通过MAC来唯一标识的(MAC,物理地址 , 一个主机会有一个MAC地址) 。
15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图

  • 封装成帧: 把网络层数据报加头和尾 , 封装成帧,帧头中包括源MAC地址和目的MAC地址 。
  • 透明传输:零比特填充、转义字符 。
  • 可靠传输: 在出错率很低的链路上很少用 , 但是无线链路WLAN会保证可靠传输 。
  • 差错检测(CRC):接收者检测错误,如果发现差错 , 丢弃该帧 。
三、网络层1、IP协议IP协议是TCP/IP协议的核心 , 所有的TCP , UDP , IMCP , IGMP的数据都以IP数据格式传输 。 要注意的是 , IP不是可靠的协议 , 这是说 , IP协议没有提供一种数据未传达以后的处理机制 , 这被认为是上层协议:TCP或UDP要做的事情 。
1.1 IP地址在数据链路层中我们一般通过MAC地址来识别不同的节点 , 而在IP层我们也要有一个类似的地址标识 , 这就是IP地址 。
32位IP地址分为网络位和地址位 , 这样做可以减少路由器中路由表记录的数目 , 有了网络地址 , 就可以限定拥有相同网络地址的终端都在同一个范围内 , 那么路由表只需要维护一条这个网络地址的方向 , 就可以找到相应的这些终端了 。
A类IP地址: 0.0.0.0~127.0.0.0
B类IP地址:128.0.0.1~191.255.0.0
C类IP地址:192.168.0.0~239.255.255.0
1.2 IP协议头
15 张图,了解一下 TCP/IP 必知也必会的 10 个问题文章插图
这里只介绍:八位的TTL字段 。 这个字段规定该数据包在穿过多少个路由之后才会被抛弃 。 某个IP数据包每穿过一个路由器 , 该数据包的TTL数值就会减少1 , 当该数据包的TTL成为零 , 它就会被自动抛弃 。
这个字段的最大值也就是255 , 也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了 , 根据系统的不同 , 这个数字也不一样 , 一般是32或者是64 。
2、ARP及RARP协议ARP 是根据IP地址获取MAC地址的一种协议 。
ARP(地址解析)协议是一种解析协议 , 本来主机是完全不知道这个IP对应的是哪个主机的哪个接口 , 当主机要发送一个IP包的时候 , 会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存) 。
如果查询的IP-MAC值对不存在 , 那么主机就向网络发送一个ARP协议广播包 , 这个广播包里面就有待查询的IP地址 , 而直接收到这份广播的包的所有主机都会查询自己的IP地址 , 如果收到广播包的某一个主机发现自己符合条件 , 那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的主机 。