各位老铁们,大家好,今天由我来为大家分享深入解析: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协议进行发包控制时所有的必要信息。【深入解析:TCP/IP协议详解图解教程】相关文章:
用户评论
我一直在想找个通俗易懂的图解解释TCP/IP,这下可以了解一下了!
有12位网友表示赞同!
学习网络技术就一定要搞清楚TCP/IP,图解肯定比文字描述更好理解。
有14位网友表示赞同!
一直觉得TCP/IP有点复杂,希望能看个清清楚楚的图解来捋顺它。
有13位网友表示赞同!
之前看了好多关于TCP/IP的文章,但效果一般。希望这个图解能让我豁然开朗!
有20位网友表示赞同!
终于找到一个清晰的网络协议解释,太感谢了!
有10位网友表示赞同!
对于新手来说,图解讲解确实比文字描述更容易理解。
有18位网友表示赞同!
我要开始学习网络编程了,希望这个图解能为我打下坚实的基础。
有19位网友表示赞同!
网络安全很重要,需要了解TCP/IP的原理才能做好防护.
有9位网友表示赞同!
感觉学习网络技术会遇到很多难题,希望能借助这个图解顺利入门
有11位网友表示赞同!
图解能更直观地展示TCP/IP的工作流程,我期待好好沉浸学习。
有9位网友表示赞同!
学习计算机网络协议是我的必修课,期待这个图解给我带来帮助!
有15位网友表示赞同!
终于明白为什么图解能如此受欢迎了,简洁明了易于理解!
有19位网友表示赞同!
这个图解涵盖了TCP/IP的所有主要内容吗?
有15位网友表示赞同!
感觉这个图解很有用,可以用来做笔记参考。
有8位网友表示赞同!
分享一下链接吧,我也想看看这个图解!
有19位网友表示赞同!
希望图解也能讲解一些TCP/IP的应用场景。
有13位网友表示赞同!
学习TCP/IP需要哪些基础知识呢?
有9位网友表示赞同!
如果有动画演示更好了,能更加生动地展示TCP/IP的工作机制。
有6位网友表示赞同!