深入解析:TCP/IP协议详解图解教程

更新:10-28 民间故事 我要投稿 纠错 投诉

各位老铁们,大家好,今天由我来为大家分享深入解析:TCP/IP协议详解图解教程,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

##第1章 网络基础知识

###

### 1.1 计算机出现的背景

* **主机**:能够在TCP/IP中设置IP地址的计算机称为主机。

* **局域网与广域网**

* 广域网(WAN)

* 局域网(LAN)

###1.2 计算机和网络发展的7个阶段

* **计算机和网络发展的七个阶段**

* 1 批处理

*2 分时系统(TSS):只有终端访问服务器计算机,但服务器计算机(此时实际上还不是服务器)彼此之间无法通信。

*3 计算机之间的通信:计算机之间通过通信线路连接。此时,服务器计算机之间就可以进行通信了。

* 4 计算机网络的诞生

* 分组交换技术

* 窗口系统

*5 互联网的普及

* 不仅能够内部互连

* 并可以访问整个世界

*6 IP时代:以互联网技术为中心的时代

* 电话网络-IP(Internet Protocol)网络

* IP网络通过IP协议实现通讯和播放的统一

* 7 TCP/IP时代:从“简单建立连接”到“安全建立连接”

###1.3 协议

* **协议**

* 协议:计算机之间通过网络通信时事先达成的协议。

* 协议的作用:不同的设备或结构可以直接通信。

* 协议就像人与人之间的交谈

* 示例:A、B、C 聊天。 A只会说中文,B会说英语,C会两者都说。

* 协议:中文、英文

* 通讯方式:聊天

* 数据:演讲内容

**协议1:数据包交换协议**

分组交换是指将大数据分成称为分组的更小的单元进行传输的方法。

这里的包其实就是组,每个包就是一个组。

这里的数据包发送时,为了告诉其他设备要去哪里,需要在数据包中添加一个“消息头”。 (类似于邮寄包裹时的收件人和发件人地址)

消息头=源主机地址+目的主机地址+组序号+其他。 (主机地址指的是IP地址)

###1.4 协议由谁制定?

* 计算机通信的诞生和标准化

发展之初,各个公司的计算机系统采用不同的网络结构,支持不同的协议。导致不同厂家的计算机无法正常通信,使得网络设备的灵活性和扩展性非常差。

不同厂家之间的协议就像方言一样,无法互相沟通,而TCP/IP就像普通话一样,让网络设备可以无障碍地沟通。

* 协议标准化

*OSI 标准:由ISO(国际标准化组织)制定

*TCP/IP协议:由IETF制定(行业标准)

###1.5 **协议分层和OSI参考模型**

* 协议分层

* OSI参考模型将通信协议中必要的功能分为7层。

* 每层接收下一层提供的特定服务,并负责向上层提供特定服务。

* 上下层交互遵循的约定称为**“接口”**;同一层之间交互遵循的约定称为**“协议”**。

* **OSI 参考模型**

|序列号|分层|功能|

|:-:|:---:|:---|

|7|应用层|特定应用的协议|

|6|表示层|数据格式转换/标准化:设备本身固有数据格式与网络标准数据格式的转换|

|5|会话层|通信**管理**。负责建立和断开通信连接(数据流的逻辑路径) |

|4|传输层|管理节点之间的数据传输|

|3|网络层|地址管理和路由|

|2|数据链路层|互连设备之间传输和识别数据帧(将0 1序列分成有意义的数据帧)|

|1|物理层|定义连接器和网线的规格|

###1.6 OSI参考模型分析

* 传输层之上:**表示层**主要负责数据的表示,即数据的标准化。 **Session**层主要负责管理连接,即管理何时建立连接、何时发送数据等,但它不具备实际传输数据的功能。

注:**会话层**负责确定建立和断开连接的时机,**传输层**负责实际的建立和断开操作。

* 会话层以下:主要传输数据。

**网络层**负责端到端的数据传输,但在传输过程中,可能会出现数据丢失等问题。这时,**传输层**需要负责提供正确的传输数据处理。

**网络层**和**数据链路层**都是根据目标地址向接收端发送数据,但是网络层负责将整个数据发送到最终地址,而数据链路层负责用于发送段内的数据之一。

*注:**MAC地址**:物理地址或硬件地址(媒体访问控制)

###1.7 传输方式分类

* 面向连接和面向无连接

* 对于连接:类似于打电话,必须建立通信连接;不一定是包交换

* 对于无连接:类似于发送包裹,无论对方是否存在,都可以自由发送;主要是分组交换

* 电路交换和分组交换

* 根据接收数量分为:

* 单播(Unicast):等早期电话技术

*广播(Broadcast):如电视广播

* 组播(Muticcast):与广播类似,但接收端必须限制某一组主机。例如,视频会议。

* Anycast(任播):等DNS根域名解析服务器

###1.8 地址

* 地址是唯一的

* 地址是分层的

* MAC地址不分等级

* IP地址是分层的

* IP=网络号+ 主机号(网络号由子网掩码标识)

MAC寻址:参考地址转发表(自学自动生成)

IP地址寻址:参考路由控制表(根据路由协议自动生成)

###1.9 网络的组成部分

*组网主要设备及其功能

|设备|功能|

|:--|:--|

|网卡(NIC)|将计算机连接到互联网的设备|

|中继器/集线器(多端口中继器)|在物理层扩展网络的设备|

|桥接器/二层交换机|在数据链路层转发数据帧的设备,基于:MAC地址|

|路由器/三层交换机|在网络层转发分组数据的设备,基于:IP地址|

|网关|协议转换的设备,负责数据转发、传输层及以上|

|4~7层交换机|负载均衡器;执行宽带控制;传输层及以上|

示例:图1.49

**集线器与交换集线器**

Hub:是一个多端口中继器,工作在物理层

交换集线器:是一种多端口网桥,工作在数据链路层,也称Hub

实现负载均衡:

1.**4~7层交换机**:负载均衡器;执行宽带控制

2.**DNS技术的循环复用**:为多个IP地址配置同一个域名。

* 概念:

*传输速率:又称带宽

* 指数据传输过程中两个设备之间数据流动的物理速度,称为传输速率。

*传输速率是指单位时间内传输的数据量。

* 单位为bps(Bits Per Second,比特每秒)

*吞吐量:

* 主机之间的实际传输速率

* 单位为bps(Bits Per Second,比特每秒)

* 测量带宽还可以测量诸如主机CPU处理能力、网络拥塞以及数据包中数据字段的份额等信息。

###1.10 现代网络现实

* 网络组成

* 核心网(骨干网)-接入层(汇聚层)

*物理线路和逻辑通道

* 逻辑通道相当于物理线路的虚拟化

*虚拟化和云

##第二章TCP/IP基础知识

###2.1 TCP/IP出现的背景和历史

* 分组交换技术

多个用户可以同时共享一条通信线路,提高线路使用效率,降低线路建设成本。

###2.2 TCP/IP 标准化

###2.3 互联网基础知识

*互联网定义

*互联网:互联网

*互联网:互联网

* 互联网的结构

*ISP:互联网服务提供商

*IX:互联网交换机

*NOC:网络运营中心

###2.4 **TCP/IP协议分层模型**

|序列号|分层|功能|

|:-:|:---:|:---|

|4|应用层||

|3|传输层||

|2|网络层||

|1|互联网接口层||

*互联网接口层

* 网络层

* IP协议:从源IP地址向目标IP地址发送数据。一种用于数据包交换的协议,但没有重传机制。即使分组数据包没有到达对端主机,也不会被重传。数据不可靠传输协议。

* 当ICMP: IP数据包发送过程中出现异常,无法到达对端目的IP地址时,需要向发送端发送异常通知。 ICMP 就是为此功能而设计的。它还可用于诊断网络健康状况(例如“ping”)。

* ARP(地址解析协议): 从数据包的IP 地址中解析出MAC 地址。

* 传输层

*TCP

* 可靠的面向连接的传输协议

* 正确处理传输过程中丢包、传输顺序混乱等问题。

* 有效利用带宽,缓解网络拥塞。

* 不适合视频会议。

*UDP

* 无连接的不可靠传输协议

*应用层

*电子邮件

* SMTP:简单邮件传输协议。

* MIME协议:将电子邮件从文本格式扩展到多格式(表示层)

* 文件传输

* FTP: 文件传输协议。

*二进制

* 文本格式

* FTP需要建立2个TCP连接

* 控制连接:发出传输请求

* 数据连接:实际传输数据时。

* 这2个连接都是会话层

* 远程登录

*远程登录

*SSH

* 网络管理

* SNMP:简单网络管理协议,管理网络

###2.5 TCP/IP分层模型和通信示例

|序列号|层次结构|数据单元|地址|

|:-:|:---:|:---|---|

|1|数据链路层|数据帧|MAC地址:确定路由器|

|2|网络层|数据报|IP地址:确定主机|

|3|传输层|数据段|端口号:确定应用|

|4|应用层|留言||

* 数据包:可以指数据帧、数据报、数据段、消息。

* 数据包的头部:包含协议的规范。

*数据传输流程如图2.18所示

*数据包如图2.19所示

##第3章数据链路层

###3.1 数据链的作用

* 物理层与数据链路层的作用(续)

* 物理层:将电压等模拟信号转换为二进制0和1

* 数据链路层:将二进制0和1封装成帧进行传输。

* 数据链路层相关技术

*MAC寻址

* 媒体分享

*非公共网络

* 包交换

* 循环检测

* VLAN(虚拟局域网,虚拟局域网)

* 以太网

* WLAN(无线局域网、无线局域网)

* PPP(点对点协议,点对点协议)

* 数据链路段

* 网络拓扑

*巴士类型

* 环型

* 星星

*杂交种

###3.2 数据链相关技术

*MAC寻址

* 功能:MAC地址用于识别数据链路中互连的节点

* 规格:

* IEEE802.3(以太网(CSMA/CD)规范)

* IEEE802.11(无线局域网)

*MAC地址:

* 48位二进制/12位十六进制

* 根据MAC地址转发

* 交换式集线器(也称为以太网交换机)

* 开关自学习原理

*交换机转发方式:

* 存储和转发

* 直接转发

* 共享媒体网络

* 概念:多个设备共享通信介质的网络。 (常用半双工)

*媒体访问控制方法:

* 竞争模式

* 理念:争夺数据传输权,即CSMA(Carrier Sense Multiple Access)

* 原则:占用通道发送数据,先到先得。

* 改进:CSMA/CD

*令牌传递方法

**技术1:CSMA/CD方法**

1. 如果载波信道上没有数据流动,任何站点都可以发送数据。

2. 检查是否存在冲突。一旦发生冲突,首先发送阻塞消息,然后放弃数据帧,经过随机延迟后重传数据帧。

* 非共享媒体网络

* 概念:采用介质专用的传输控制方法。网络中的每个站点都直接连接到交换机,交换机负责转发数据帧。 (常用全双工)

* 环路检测技术

* 问题:数据帧会在循环中不断转发。当数据帧积累到一定程度时,就会导致网络瘫痪。因此,需要构建合适的环路来分散网络流量,提高容灾能力。

* 环路检测技术(消除环路):

* 生成树模式:禁用某个端口,并在出现问题时启用该端口的旁路。

* 源路由方法

*VLAN

*原理:网桥(实现VLAN技术的二层交换机)根据端口划分不同的网段,区分广播数据传输的范围,减轻网络负载,提高网络安全性。

*本质:网络在数据链路上是分层的。

**下面介绍几个数据链接**

###3.3 以太网

**协议2:什么是以太网? **

以太网是一种规范。指定数据链路所需的传输介质、传输速度等。

* 以太网帧格式

* 组成:前导码+目的MAC+源MAC+类型+数据(46~1500字节)+FCS(帧校验序列)

* Preamble:表示帧的开始,也是对端网卡能够保证与其同步的标志。

* Type:上层协议类型

* 0800:IP

*0806:ARP

*8035:RARP

* 86DD: IPv6

* FCS: 检查帧是否损坏。

数据链路层可细分为:MAC(媒体访问控制层)、LLC(逻辑链路控制层)

###3.4 无线通讯

* 分类

*标准:IEEE 802.11

###3.5 购买力平价

**协议3:PPP(Point-to-Point协议,点对点协议)**

PPP是纯数据链路层协议,与物理层无关。 (以太网是一个同时涉及物理层和数据链路层的协议,规定了物理层解释什么样的电子信号0和1)PPP协议的使用要求物理层通畅,但无论物理层使用什么介质,使用什么协议。

例如:ADSL/PPPoE(以太网上的PPP)

*包括2 个协议:

* LCP(链路控制协议):不依赖于上层;主要负责建立断开连接、设置最大接收单元(MRU)、设置验证协议、设置是否监控通信质量。

* NCP(网络控制协议):依赖于上层;负责IP地址设置、是否执行TCP/IP头压缩等设备。

* PPP帧格式:标志码(字节)+地址+控制+类型+数据(0~1500)+FCS+标志

###3.6 其他数据链接

*ATM、FDDI 等

##第四章IP协议

IP协议主要负责将数据包发送到最终目标计算机。

###4.1 IP: 互联网协议

主机和节点

-**主机:**配置了IP地址但没有路由控制的设备

-**路由器:**配置了IP地址用于路由控制的设备

-**节点**:主机和路由器的统称。

-**注意:** 我们简单地将具有IP 地址的设备称为主机。

* 数据链路层与网络层

* 网络层的作用:实现终端节点之间的通信。 (点对点通信)

* 数据链路层的作用:在同一数据链路上的节点之间传输数据包

* 区别:数据链路层:负责同一区段内的通信,而网络层负责多个不同区段内的通信。

* 数据链路层:提供两个直接连接的设备之间的通信功能。

* 网络层:负责两个非直接连接的网络之间的通信传输。

示例:图4.2:行程与机票和火车票

行程(网络层):告诉人们怎么走、坐哪趟车、到哪里换乘。

机票、火车票(数据链路层):实现某一航段内的移动,无论是飞机还是火车。

###4.2 IP基础知识

IP分为三大功能模块:IP寻址、路由(转发到最终节点)、IP打包和分组。

*IP地址

* 1 IP地址属于网络层地址

*2 MAC 地址与IP 地址

* MAC地址:用于识别同一链路上不同计算机的识别码。

* IP地址:用于标识所有连接到网络的主机之间进行通信的目标地址。因此,TCIP/IP通信中的所有节点(主机或路由器)都需要设置IP地址。

* 路由控制

* 概念:将分组数据发送到最终目的地址的功能。

* Hop: hop 是指网络中的一个区间。

* 多跳路由:也称为IP路由,是指一个路由器或主机在发送IP数据包时只指定下一个路由器或主机,而不指定到达最终目的地的所有路径。

*IP数据包的传输:

示例2:快递:

IP数据包:如包裹。

数据链:如卡车。

*路由表:记录IP数据包下一跳的路由器。

* 数据链接的抽象

*IP是多个数据链路之间通信的协议。

* IP的一个重要作用:抽象不同数据链路之间的不同特征。例如,数据链路的地址可以抽象为IP地址。

* 不同数据链路层之间有一个最大的区别:最大传输单元(Maximum Transmission Unit,MTU)不同。就像人们在邮寄包裹时有自己的尺寸限制一样。

* IP抽象数据链路:IP层解决这个问题时,进行分片处理。将超过某个数据链路的MTU的数据包分割成多个较小的数据包。然后到达目标地址后,再组合回去。再看IP上层,图中每条数据链路上数据包的MTU完全被忽略,只需要按照源地址发送的长度来接收数据包即可。这种情况下,IP就不受不同数据链路的MTU的限制。 (由于不同数据链路层的MTU不同,IP的抽象能力屏蔽了不同的MTU,这种屏蔽是通过切割MTU来实现的。)

*IP 用于无连接

* IP是面向无连接的:在发送数据包之前不需要与目标地址建立连接。

* 为什么?

* 简化

* 加快速度

* 注:当需要连接时,可以委托上层来实现,如TCP

- IP 提供尽力服务:尽最大努力将数据包发送到最终目的地址。 (没有“最终收据验证”)。可能会出现丢包、错位、数据量翻倍等问题。

- TCP 确保对等主机实际接收到数据。

为什么要分层?

-实施简单,有利于实施

- 易于扩展和优化性能

###4.3 IP地址的基础知识

IP 地址用于识别主机和路由器。

*IP地址定义

* IP地址(IPv4地址)

* 32位正整数表示

* 在计算机内部以二进制形式处理

* **点乘小数:** 32 位- 一组8 位,以`.` 分隔- 分别转换为十进制

* IP地址总数:$2 ^{32}=4294967296$,这意味着最多可以允许43亿台主机连接到网络。

* 通常,每台主机必须为每个网卡(NIC) 设置一个IP 地址。

* 一台主机至少可以设置一个IP地址。

* 一台路由器可设置2个以上IP地址

* 一张网卡可设置2个以上IP地址

*IP地址组成

* IP地址=网络标识+主机标识=网络地址+主机地址

* 同一网段的网络标识符必须一致

* 不同网段必须不同

* **网络地址表示子网在整个网络中的位置。 **

* IP地址的分类

* A B C D 四类

|类型|特点|网络地址|范围|

|--|--|--|--|--|

|A类地址|0xxx xxxx|前8位数字|0.0.0.0~127.0.0.0|

|B 类地址|10xx xxxx|前16 位数字|128.0.0.1~191.255.0.0|

|C 类地址|110x xxxx|前24 位数字|192.168.0.0~239.255.255.0|

|D 类地址|1110 xxxx|前32 位数字|224.0.0.0~239.255.255.255|

笔记:

1. ABC类地址的网络地址之后的所有内容都是主机地址。

2. D类地址没有主机地址,主要用于**组播**。

3、分配主机地址时,主机地址不能全为0或1,因为:

当对应的网络地址或IP地址未知时,使用全0。

全为1 的主机地址通常用于广播。

4、主机地址个数:$count=2 ^{主机地址位数}$

* 播送

* 功能:用于在同一链路上相互连接的主机之间发送数据。

* 广播地址:主机地址均为1,例如网络地址为192.168.0.0/24,广播地址为:192.168.0.255/24。

* 分类

* 本地广播:不会通过路由器转发

* 直接广播:通过路由器转发

*IP组播

* 功能:用于向特定组中的所有主机发送包

*协议:IP协议(不可靠传输)

* IP 多播与广播

* 广播:发送给该网段内的所有主机,路由器不转发广播包

* 组播:发送到特定组中的主机,路由器复制组播数据包

* 组播地址

* 多播使用D 类地址。组播地址+组号=(1110)+组号

* 子网掩码

* 功能:对ABCD类IP地址进行细分。灵活指定网络地址长度,不再受分类限制。

* 2个表达式

|地址|表示1|

表示2:后缀法     |--|--|--|     |IP地址|172.20 .100. 52|172.20 .100. 52 /26|     |子网掩码|255.255.255.192|     |网络地址|172.20 .100. 0|172.20 .100. 0 /26|     |子网掩码|255.255.255.192|     |广播地址|172.20 .100. 63|172.20 .100. 63 /26|     |子网掩码|255.255.255.192| * 全局地址与私有地址     * 全局IP(公网IP)     * 私有IP     * NAT(转换公有和私有IP)     * 解决IPv4地址耗尽的问题:         * 私有IP+NAT技术 ###4.4 路由控制 >发送数据包时,所使用的地址是IP地址。但是光有IP地址,不足以实现将数据包发送到对端目标地址的目的,在数据发送过程中,还需要类似于“指明路由器或者主机”的信息。保存这种信息的是**路由控制表。** >路由控制表的形成方式有2种: 1.手动设置(静态路由控制) 2.路由器之间相互交换信息时,自动刷新(动态路由控制) 注:在交换信息时,路由器之间要设置好**路由协议**,保证正常获取路由控制信息。 >路由控制表: 记录 IP地址 ->下一个路由器 的匹配信息 * IP地址与路由控制     * IP地址的网络地址由于进行路由控制。     * 默认路由         * 标记:default/ 0.0.0.0/0         * 注:0.0.0.0的IP地址是:0.0.0.0/32,注意二者不同         * 路由表中任何一个地址都能与之匹配     * 主机路由         * 标记:IP地址/32         * 用于不希望通过网络地址路由的情况     * 环回地址         * 同一台计算机上的程序之间进行网络通信时所使用的的默认地址。         * 127.0.0.1 / localhost(主机名)     * 路由控制表的聚合         * 减少负载,提高效率 ### 4.5 IP分割处理与再构成处理 * **IP抽象化**     * IP抽象化:屏蔽了数据链路层MTU不同的限制。     * 如何实现:IP报文分片 * IP报文分片与重组     * 执行者:路由器 * 路径MTU发现     * IP报文分片机制的缺陷:         * 路由器负荷太重         * 分片处理中,一旦某个分片丢失,则会造成整个IP数据包作废     * 路径MTU发现技术         * 路径MTU(Path MTU): 指从发送端主机到接收端主机之间不需要分片时最大MTU的大小。(即路径中存在的所有数据链路层中最小的MTU)         * 路径MTU发现:发送主机按照Path MTU的大小将数据包分片后进行发送。     * 路径MTU发现实现原理 ###4.6 IPv6 * 作用:解决IPv4地址即将耗尽的问题 * 组成:128位=8组16进制数 * 分类:     * 全局单播地址     * 链路本地单播地址     * 唯一本地地址 * 分段处理 ###4.7 IPv4首部 >通过IP通信时,需要在数据的前面加入IP首部信息。 IP首部中包含用于IP协议进行发包控制时所有的必要信息。

* IP数据报 = IP首部+IP载荷(数据) * IP首部     * 版本     * 首部长度     * 区分服务(TOS:Type of Service):表明服务质量(没有建树)     * 总长度:IP数据报的长度($max = 2^{16} = 65535$ 字节)     * 标识:用于分片重组,表示不同分片     * 标志:表示包被分片的相关信息。     * 片偏移:用于标识每一个分片的顺序     * 生存时间(TTL:Time To Live):实际中,表示可以中转多少个路由器。     * 协议:表明上一层隶属于哪个协议。     * 首部校验和:确保IP数据报不被破坏。     * 源地址     * 目标地址     * 可选项     * 填充 ###4.8 IPv6首部 * IPv6数据报 = IP首部+载荷 * IPv6首部     * 版本     * 通信量类:相当于TOS     * 流标号:服务质量控制     * 有效载荷长度:包的数据部分长度     * 下一个首部:相当于协议字段。表示上一层协议是TCP还是UDP。但是在IPv6中表示扩展首部的协议类型     * 跳数限制:相当于TTL.     * 源地址     * 目标地址     * 扩展首部 ##第五章 IP协议相关技术 >IP协议旨在让最终目标主机收到数据包,但是仅有IP协议是无法通信的。还需要解析主机名称和MAC地址的功能,以及数据包在发送过程中异常处理的功能。 ###5.1 仅凭IP无法完成通信 ###5.2 DNS >平常访问网站时,一般不使用用IP地址,而使用域名。**DNS则将域名转换为IP地址**。 * IP地址不便记忆     * 主机识别码:为每一台计算机赋予唯一的主机名,网络通信时,就可以直接使用主机名称,而不需要IP地址。     * 系统能将主机名转换为具体的IP地址。这个功能的实现,依赖于一个名为**hosts**的数据库文件。 * DNS系统     * DNS系统:管理主机名(域名)和IP地址之间对应关系的系统。     * 原理:用户输入域名时,DNS会自动检索注册了域名和IP地址的数据库,定位对应的IP地址。 * 域名的构成     * 域名:为了识别主机名称和组织机构名称的一种具有分层的称呼。     * DNS分层结构         * 树形结构             * root                 * 1.顶级域名:国别顶级域名、通用顶级域名等                 * 2....     * 域名服务器:管理域名的主机和相应的软件,管理所在分层(**ZONE**)的域的相关信息。         * 根域名服务器: 此服务器下注册着根以下第1层域名服务器的IP地址。         * 域名和域名服务器均为分层设置。     * DNS解析器:进行DNS查询的主机和软件。如用户所使用的工作站或者个人电脑。 * DNS查询(query)     * 例如:kusa.co.jp域中的主机peper访问域名`www.ietf.org`         * ① 向DNS服务器查询IP地址         * ② 由于kusa的DNS服务器不知道`www.ietf.org`的IP地址,它向根域名服务器请求进行查询。         * ③ 根域名服务器知道`www.ietf.org`的IP地址在那个域名服务器(ietf.org服务器),返回该服务器的地址。         * ④ kusa的DNS服务器去返回的地址处查询`www.ietf.org`的IP地址。         * ⑤ ietf.org域名服务器将该IP地址返回kusa的域名服务器,kusa的域名服务器将IP地址返回给pepper         * ⑥ pepper与`www.ietf.org`通信。 * DNS如同互联网中的分布式数据库 >**协议4:DNS协议** DNS协议主要是用于将域名解析为IP地址。 ###5.3 ARP >进行数据链路层传输时,需要知道MAC地址。ARP协议则从IP地址中解析出MAC地址。 * ARP概要     * ARP:一种解决地址问题的协议     * 作用:以目标IP地址为线索,用来定位下一个应该接受数据分包的网络设备对应的MAC地址。若目标主机不在一个链路上,则可以通过ARP查找下一跳路由器的MAC地址。     * 注:仅使用与IPv4。(ICMPv6/IPv6) * ARP的工作机制     * 原理:ARP借助ARP请求和ARP响应2种类型的包确定MAC地址的。     * ARP表:记录IP地址-MAC地址的映射 * RARP协议     * 作用:从MAC地址定位IP地址。     * 原理:RARP借助RARP请求和RARP响应2种类型的包确定IP地址的。 >**协议5:ARP协议** ARP协议主要作用是根据IP地址确定下一跳到达的网络设备的MAC地址。 >**协议6:RARP协议** RARP协议根据MAC地址确定IP地址。 ###5.4 ICMP * 辅助IP的ICMP(IP层)     * 主要功能         * 确认IP数据包是否成功抵达目标地址         * 通知在发送过程中IP包被废弃的具体原因         * 改善网络设置 * ICMP消息     * 分类         * 通知出错原因的错误消息         * 用于诊断的查询消息     * 主要的ICMP消息         * ICMP目标不可达消息         * ICMP重定向消息         * ICMP超时消息:`traceroute`(/`tracert`)命令就是利用这个消息实现的         * ICMP回送消息:`ping` * ICMPv6     * IPv4:ICMP仅辅助支持IP通信。     * IPv6:没有ICMP,无法通信 >**协议7: ICMP协议** ICMP主要用于辅助IP协议通信,其主要功能是确认IP数据包是否成功抵达目标地址,通知在发送过程中IP包被废弃的具体原因,改善网络设置。 `ping`命令就是利用ICMP协议的ICMP回送消息实现的。 ###5.5 DHCP * DHCP实现即插即用     * 作用:         * 实现自动设置IP地址         * 统一管理IP地址分配 * DHCP的工作机制     * 条件:DHCP服务器(一般该网段的路由器充当)     * DHCP分配IP地址有2种方法         * DHCP服务器在特定IP地址中自动选择一个分配         * 针对MAC地址分配一个固定IP地址。     * 需要检查要分配和已分配的IP地址是否可用         * DHCP服务器         * DHCP客户端 * DHCP中继代理(多为路由器)     * 作用:管理DHCP,统一分配和管理IP地址 >**协议8:DHCP协议** 用于自动统一分配和管理IP地址 ###5.6 NAT * NAT定义     * NAT(Network Address Translator):用于在本地网络中使用私有地址,在连接互联网时,转而使用全局IP地址(公有地址)的技术。     * NAPT:转换TCP/UDP端口号技术。     * 作用:            * 实现一个全局IP地址与多个主机的通信。         * 本质是为了解决IPv4地址即将耗尽的问题 * NAT工作机制     * NAT路由器:负责将IP地址在公有和私有之间转换(转换表自动生成) * NAT-PT/NAPT-PT     * 作用:IPv6首部与IPv4的首部互相转换。 / 翻译IP首部与端口号 ###5.7 IP隧道 * 定义:     * IP隧道是指在网络层的首部后面继续追加网络层首部的通信方法。     如: | 数据 | TCP首部 | IP首部(6)| IP首部(4) ###5.8 其他IP相关技术 * IP多播相关技术 >**协议9:IGMP协议** IGMP(Internet Group Management Protocol)的一个重要功能是MLD(多播监听发现),其2大作用是: 1. 向路由器表明想要接受多播消息(通知多播地址) 2. 向交换机通知想要接收的多播的地址(IGMP探听) * IP任播     * 应用         * 110/119         * DNS根域名服务器     * 原理: 多个服务器设置同一个IP,客户端发送请求时,由最近的服务器处理。 * 通信质量控制 >**协议补充1:RSVP协议** 用于通信质量控制 * 显式拥塞通知 * Mobile IP ##第六章 TCP与UDP >传输层的2个主要协议:TCP/UDP ###6.1 传输层的作用 * 传输层定义 >网络层IP首部标识其上层传输层采用的是哪一种传输协议。根据这个协议号,可以识别IP传输的的数据是TCP还是UDP。 同样的,TCP/UDP中,也有这样的字段表明其所传输的数据发给了哪个应用。即**端口**。 以包裹为例。邮递员根据收件人地址向目的地投递包裹。包裹到达目的地以后由对方根据包裹信息(例如姓氏)判断最终的接收人。 在这里,邮递员=IP,收件人地址=目标IP地址,包裹=IP数据报,对方=传输层协议,最终接收人=接收端应用程序,姓氏=应用程序 在这里,识别特定应用程序,则需要通过**端口号**来识别。之后,对应端口的应用层协议去处理传输协议传来的数据。 * 通信处理 * 2种传输层协议:TCP/UDP |协议|TCP|UDP| |--|--|--| |面向连接|是|否| |可靠性|可靠|不可靠| |特点|顺序控制 重发控制 流量控制 拥塞控制|数据报协议| |应用场景|有必要实现可靠传输|高速传输 实时传输;如多播 广播 RIP DHCP| ###6.2 端口号(或者称为程序地址) * 定义 |序号|层次|地址类型|作用| |--|--|--|--| |1|数据链路层|MAC地址|识别同一链路中不同的计算机| |2|网络层|IP地址|识别TCP/IP网络中不同的主机和路由器| |3|传输层|端口号|识别同一台计算机中进行通信的不同引用程序| * 常见的端口 |应用层协议|端口| |--|--| |HTTP|80| |FTP|20/21(Data/Control)| |SSH|22| |Telnet|23| |SMTP|25| |DNS|53| |HTTPS|443| 注:HTTPS: HTTP over TLS/SSL * 通过IP地址、端口号、协议号(标识是TCP还是UDP)进行通信识别     * 识别一个通信需要:         * 源IP,目标IP,协议号,源端口号,目标端口号所有都相同。 * 端口号如何确定?     * 标准既定的端口号(静态方法) (0~49151)         * 知名端口号(0~1023),见上表:常见端口     * 时序分配法(动态方法)(49152~65535) * 端口号与协议            ###6.3 UDP协议 * UDP     * UDP(User Datagram Protocol,用户数据报协议)     * 特点:UDP利用IP提供面向无连接的不可靠的通信服务,不提供复杂控制机制,流量控制机制以及拥塞控制机制,仅实现基本的传输功能。 * 应用场景     * 包总量较少的通信(**DNS**, SNMP等)     * 视频、音频等多媒体通信(即时通信)     * 限定于LAN等特定网络的应用通信     * 广播通信(广播多播) ###6.4 TCP协议 * TCP     * 传输控制协议     * 特点:面向连接的可靠的通信服务。实现重发控制,顺序控制等完整的控制功能。 * TCP如何保证可靠传输? >TCP通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等实现可靠传输。 * 通过**序列号**和**确认应答**提高可靠性     * 确认应答:TCP中,当发送端数据发送到接收机主机时,接收端主机会返回一个**已收到消息的通知**,这个消息叫**确认应答(ACK,Positive Acknowledgement)**。     TCP通过肯定的**ACK**实现可靠数据传输。     若在一定的时间(**特定时间间隔**)内,发送端未收到ACK,则认为数据丢失(**也可能是ACK丢了**),重发。     * 序列号:发送数据的每一个字节的顺序编号。也指字节之间的分隔。     * 确认应答号:下次要发送的数据的起始序列号。 注:MSS:报文最大长度。 * 重发超时如何确定?     * 重发超时:指在重发数据前,等待ACK到达之前的那个**特定时间间隔**。     * RTT: Round Trip Time, 报文段往返时间     * $重发超时= RTT + 抖动 + delta$ * **连接管理**     * TCP面向连接,因此通信开始之前,需要建立连接。     * 建立连接:三次握手     * 断开连接:四次挥手 >**建立连接:三次握手** >**断开连接:四次挥手** * TCP以段为单位发送数据     * MSS: 在建立TCP连接的同时,也可以确定发送数据包的单位,称为“最大消息长度”(MSS, Maxmium Segment Size)。最理想的MSS等于IP中不会被分片处理的最大数据长度。     * TCP在传输数据时,以MSS为单位传输。重发是也以MSS为单位传输。     * 三次挥手时,通过SYN包确认MSS大小。 * 利用**窗口控制**提高传输速度     * 问题:TCP若每发一个段进行一次ACK,则通信性能太低。     * 解决:因此引入了**窗口**的概念,改成以更大的单位为间隔进行ACK。因此转发时间也大幅缩短。此时,发送端可以不必等到收到ACK之后,再发送数据,而是一直发送。     * 滑动窗口的大小由接收端控制。见**流控制**。     * 缓存区 * 窗口控制与**重发控制**     * 某些确认应答丢失:不用重发,只需要通过下一个ACK确认就可以了。     * 某个报文段丢失:接收端会发送ACK给发送端,要求其发送丢失的报文段,当同一个ACK发送次数超过3次,发送端则进行重发。这种方式比之前的超时管理更高效,故称为**高速重发控制**。 * **流控制**     * 问题:如果接收端无力接收,而发送端还在发送,则会造成网络流量的浪费。

用户评论

微信名字

我一直在想找个通俗易懂的图解解释TCP/IP,这下可以了解一下了!

    有12位网友表示赞同!

酒笙倾凉

学习网络技术就一定要搞清楚TCP/IP,图解肯定比文字描述更好理解。

    有14位网友表示赞同!

心脏偷懒

一直觉得TCP/IP有点复杂,希望能看个清清楚楚的图解来捋顺它。

    有13位网友表示赞同!

々爱被冰凝固ゝ

之前看了好多关于TCP/IP的文章,但效果一般。希望这个图解能让我豁然开朗!

    有20位网友表示赞同!

淡淡の清香

终于找到一个清晰的网络协议解释,太感谢了!

    有10位网友表示赞同!

冷风谷离殇

对于新手来说,图解讲解确实比文字描述更容易理解。

    有18位网友表示赞同!

゛指尖的阳光丶

我要开始学习网络编程了,希望这个图解能为我打下坚实的基础。

    有19位网友表示赞同!

我的黑色迷你裙

网络安全很重要,需要了解TCP/IP的原理才能做好防护.

    有9位网友表示赞同!

男神大妈

感觉学习网络技术会遇到很多难题,希望能借助这个图解顺利入门

    有11位网友表示赞同!

青衫故人

图解能更直观地展示TCP/IP的工作流程,我期待好好沉浸学习。

    有9位网友表示赞同!

你tm的滚

学习计算机网络协议是我的必修课,期待这个图解给我带来帮助!

    有15位网友表示赞同!

箜篌引

终于明白为什么图解能如此受欢迎了,简洁明了易于理解!

    有19位网友表示赞同!

凉话刺骨

这个图解涵盖了TCP/IP的所有主要内容吗?

    有15位网友表示赞同!

该用户已上天

感觉这个图解很有用,可以用来做笔记参考。

    有8位网友表示赞同!

此生一诺

分享一下链接吧,我也想看看这个图解!

    有19位网友表示赞同!

君临臣

希望图解也能讲解一些TCP/IP的应用场景。

    有13位网友表示赞同!

窒息

学习TCP/IP需要哪些基础知识呢?

    有9位网友表示赞同!

铁树不曾开花

如果有动画演示更好了,能更加生动地展示TCP/IP的工作机制。

    有6位网友表示赞同!

【深入解析:TCP/IP协议详解图解教程】相关文章:

1.动物故事精选:寓教于乐的儿童故事宝库

2.《寓教于乐:精选动物故事助力儿童成长》

3.探索动物旅行的奇幻冒险:专为儿童打造的童话故事

4.《趣味动物刷牙小故事》

5.探索坚韧之旅:小蜗牛的勇敢冒险

6.传统风味烤小猪,美食探索之旅

7.探索奇幻故事:大熊的精彩篇章

8.狮子与猫咪的奇妙邂逅:一场跨界的友谊故事

9.揭秘情感的力量:如何影响我们的生活与决策

10.跨越两岸:探索彼此的独特世界

上一篇:探寻土家族风味佳肴:香辣软糯年菜,制作简单,鲜为人知的美味! 下一篇:高效抓取数据:深入解析Scrapy中的Request.from方法应用