TCP/IP 入门经典
🚕 第一章
1. 什么是 TCP/IP
是一套支持网络通信的协议集合
什么是网络
计算机或类似计算机的设备之间通过常用传输介质进行通信的集合
介质有什么
有线传输介质
- 双绞线
- 同轴电缆
- 光纤
无线传输介质
- 无线电波
- 微波
- 红外线
- 激光
什么是协议
- 双方必须共同遵从的一组约定
什么是网络协议
- 一套通用的规则系统,用来帮助定义网络通信的复杂过程。
网络协议的指导意义
- 指导数据从一台计算机上的应用程序发出,通过操作系统的网络硬件,然后跨越传输介质,通过目的计算机的网络硬件和操作系统,最终达到负责接收的应用程序。
TCP/IP 协议
- 定义了数据单元的格式和内容,以便接收计算机能够正确解释接收到的信息。
TCP/IP 标准
- 定义了 TCP/IP 的通信规则
TCP/IP 实现
- 实现了一个软件组件,计算机通过它参与到 TCP/IP 网络中。
TCP/IP 目的
- 确保所有的 TCP/IP 的实现能够很好的兼容,而不用管其他的版本,以及厂商。
2. TCP 能在分散的环境运行的原因
端点验证
- 两台实际通信的计算机被称为端点,因为它们处于信息链的末端,负责确认以及验证传输,且所有的计算都是对等操作,没有监视通信的中心模式。
动态路由选择
- 节点通过多条路径连接,路由器基于当前的条件选择一条路径传输。
3. 什么是 LAN
Local Area Network 局域网
- 供单个办公室、组织或家庭使用的小型网络,通常只占据一个地理位置。
4. TCP/IP 核心问题解决的方式
逻辑编址
- 通过网络软件来配置的地址,在TCP/IP中,计算机的逻辑地址称为IP地址。
路由选择
- 通过路由器,读取地址信息,并将数据通过网络传输到它的目的地
名称解析
- 以字母数字为名,方便用户记忆和使用,这种结构称为域名系统 (Domain Name System, DNS)
- 将域名和 IP 地址绑定。域名到 IP 地址的映射为名称解析。
错误控制和流量控制
检查数据的传输是否有错误,确保数据与发送数据一致,和确认成功接收到网络信息
应用支持
什么是端口
- 用来将数据路由到适当网络应用程序的逻辑通道。
5. RFC
- TCP/IP 或者 Internet 信息的官方技术论文
🐠 第二章
1. TCP/IP 必须负责完成的任务
- 将消息分解为可管理的数据块,并且这些数据块能够有效地从介质传输。
- 与网络适配器硬件连接。
- 寻址,即发送端计算机必须能够定位到接收数据的计算机,接收计算机必须能够识别自己要接收的数据。
- 将数据路由到目的计算机所在的子网,即使原子网和目的子网的物理网络不同。
- 执行错误控制、流量控制和确认。
- 从应用程序接收数据并传输到网络
- 从网络接收数据并传输到应用程序
2. TCP/IP 模块化的好处
- 能够独立地实现自己的功能,厂商方便地根据特定硬件和操作系统对协议软件进行修改。可以对某一层修改,而不对影响其他层,也有助于开发人员编写更容易的交互程序。
3. TCP/IP 模型
应用层
- 网络排错、文件传输、远程控制提供了应用程序
传输层
- 提供流量控制、错误控制、确认服务。
网际层
- 提供独立于硬件的寻址功能,从而让数据能在不同的物理架构中传输。
网络访问层
- 提供与物理网络连接的接口,实现了物理地址到子网的寻址,对数据的传递提供了错误控制。
4. OSI 模型
应用层
- 为应用曾向提供网络接口,支持用于文件传输、通信等网络应用
表示层
- 将数据转换为标准格式,管理数据加密与压缩
会话层
- 在计算机的通信应用程序之间建立会话
传输层
- 为网络提供错误和流量控制
网络层
- 支持逻辑寻址和路由选择
数据链路层
- 提供与网络适配器相连的接口,维护子网的逻辑连接
物理层
- 数据转化为传输介质上的电子流或模拟脉冲,并且监视数据的传输
5. TCP 与 UDP 的比较
TCP
- 面向连接
- 提供更复杂的流量控制和错误控制、确保数据的交付
- 比 UDP 相比传输速度慢
- 更加可靠
UPD
- 无连接协议
- 速度较快,将错误控制的责任交给了应用程序
🐯 第三章
1. 网络访问层服务以及功能
- 与计算机网络适配器的连接
- 根据合适的访问方式调整数据传输
- 把数据转化为电子流或模拟脉冲的形式,以在传输介质进行传输
- 对接收到的数据进行错误检查
- 给发送的数据添加错误检查信息,从而让接收端计算机能够对数据进行错误检查
2. 网络访问层与 OSI 模型
网络访问层功能相当于数据链路层以及物理层
物理层
- 负责将数据帧转化为合适与传输介质的比特率
- 管理和同步实际传输的电子或模拟脉冲
- 在接收端,物理层把这些脉冲重新组合为数据帧
数据链路层
介质访问控制 MAC
- 提供网络适配器连接的接口,网络适配器驱动程序通常被称之为 MAC 驱动,而在工厂里烧录到网卡中的物理硬件地址通常被称之为 MAC 地址
逻辑链接控制 LLC
- 对子网传递的帧进行错误检查,并管理子网通信设备之间的链路
3. 网络访问层的网络架构规范
访问方法
- 定义了计算机如何共享传输介质的一组规则
数据帧格式
- 来自于网际层的IP 级别的数据报以预定义的格式封装成数据帧,封装在报头中的数据必须提供在物理网络传输数据所需的信息
布线类型
- 网络所使用的线缆类型对于其他设计的参数具有一定影响
布线规则
- 协议、线缆类型和传输的电气特性影响线缆的最大和最小长度
4. 网络访问层的网络架构
IEEE 802.3 以太网
- 基于线缆的网络
IEEE 802.11 无线网络
- 无线LAN网络技术
IEEE 802.16 WIMAX
- 长距离的移动无线连接技术
点到点协议 PPP
- 电话线的Modem 连接协议
5. 物理寻址
- ARP 地址解析协议
- RARP 逆向地址解析协议
6. 以太网如何共享一个公共传输介质
CSMA/CD 载波侦听多路访问/冲突检查
- 所有计算机都监视传输介质,如果两台计算机同时发送数据,产生冲突时,一方的计算机会停止发送,随机时间等待,然后再次尝试发送
7. 以太帧的内容
前导码
- 帧起始的一系列比特, 共 8字节
目的地址
- 接收帧的网络适配器的 6 字节的物理地址
源地址
- 发送帧的网络适配器的 6 字节的物理地址
可选VLAN标记
- 可选的 16 比特字段
长度
- 2 字节表示数据字段的长度
数据
- 帧的传输数据
帧校验序列 FCS
- 4 字节的校验和。发送方计算帧的循环冗余校验值 CRC,把这个值写进帧里面。接收方重新计算 CRC 然后检查 FCS 字段
🐹 第四章
1. TCP/IP 软件在网络上发送数据
- 如果目的地址与源计算机在同一个网段,源计算机直接将数据发送目的计算机
如果目的地址与源计算机不在同一个网段
- 发数据发送网关
- 通过网关路由到较高级别的网段
- 经过一些列的网关转发到目的网段
2. 网际层协议功能
- 识别局域网中所有的计算机
- 提供一种方式来判断何时必须通过网关来发送消息
- 提供一种与硬件无关的方式来识别目的网段,从而让数据报能够高效地经过路由器到达正确地网段
- 提供一种方式把目标计算机地逻辑 IP 地址转化为物理地址,让数据能够传输给目的计算机地网络适配器
3. 网际层的 IP 协议
功能
- 提供一种分层的、与硬件无关的寻址系统,具有在复杂的路由式网络种传递数据所需的服务
IP 地址划分(常见的)
A 类地址
- 0 - 127
B 类地址
- 128 - 191
C 类地址
- 192 - 223
IP 报头字段
- IP 报头最小长度是 20 字节
组成
- 版本
- 网际报头长度 IHL
- 服务类型
- 总长度
- 标识
- 标记
- 分段偏移
- 生存时间 TTL
- 协议
- 报头校验和
- 源 IP 地址
- 目的 IP 地址
- IP 选项
- 填充
- IP 数据载荷
4. 地址解析协议 ARP
- 把 IP 地址映射为物理地址
5. 逆向地址解析协议 RARP
- 把物理地址映射为 IP 地址
6. Internet 控制信息协议 ICMP
ICMP 消息的产生
Echo Request 回显请求和 Echo Reply 回显应答
- 开发人员使用 Ping 命令来测试与其他主机的连通性,其中 Ping 使用的就是 ICMP 的 Echo Request 和 Echo Reply
Source Quench 源抑制
- 大量的数据可能使得路由器产生过载问题, ICMP 会向 IP 源发送 Source Quench 消息,让它降低发送数据的速度
Destination Unreachable 目的不可达
- 如果路由器收到一个不能被传递的数据报,ICMP 会向 IP 发送一个 Destination Unreachable 消息,标识网络由于设备故障或者维修而关闭
Time Exceeded 超时
- 数据报由于 TTL 达到 0 而被丢弃,ICMP 就会向数据报传递这个消息,表示达到目标经过太多路由器,或者路由表出现了问题,一直在同一台路由器连续循环
Fragmentation Needed 需要分段
- 如果一个数据报的分段偏移位被设置为 1,路由器需要对数据报进行分段才能转发到下一个路由器或者目的地。
意义
- 用于诊断和测试主机当前是否可用的协议
🗽 第五章
1. 子网掩码计算
🐝 第六章
1. 传输层功能
- 为应用程序提供接口
- 多路复用/多路分解机制
- 错误检查、流量控制和验证
2. 面向连接的协议
- 通信计算机之间建立并维护一个连接,并且在通信过程中监视连接的状态
3. 无连接协议
- 单方方式向目的发送数据报,也不用向目的计算机正式通知数据的传输状态
4. 什么是套接字
- 是由 IP 地址和端口号组成的地址
5. 计算机在建立连接时如何交换套接字信息
- 计算机通过一个周知的端口向另一计算机上的一个应用发起连接。连接请求包含一个数据字段,告诉另一计算机使用什么套接字。
- 当计算机接收到另一计算机的请求时,会向请求计算机发出一个响应。
6. 多路复用/多路分解
多路复用
- 把多个来源的数据合并成一个输出
多路分解
- 把从一个来源接收的数据发送到多个输出
意义
- 让 TCP/IP 协议栈较低层的协议不在关心哪个程序在传输数据,只要处理数据即可。
7. TCP/UDP
TCP
面向流处理
- TCP 可以一个字节一个字节的接收数据,然在在把接收到的数据组成长度不定的段,传递回网际层
流量控制
- 确保数据传输不会超过目的计算机接收数据的能力
重新排序
- 如果数据以错误的顺序达到目的地,TCP 模块能够对数据重新排序来恢复数据顺序
优先级与安全
适当关闭
- 确保在连接被关闭之前,所有的数据段能够被发送和接收
UDP
- 基本的有限错误检查
- 无连接
🐰 第七章
1. OSI 模型
应用层
- 为用户应用程序提供服务并支持网络访问
表示层
- 把数据转化为与平台无关的格式,并处理加密和数据压缩
会话层
- 负责管联网计算机上应用程序之间的通信,提供一些传输层不具备的与连接相关的功能
🤔 第八章
1. 什么是路由器
- 可以同时连接两个以上的网络
- 具有某种策略可以转发非直接网络
- 决定使用哪个路径
2. 路由器职责通用介绍
- 接收数据
- 将数据传递到协议栈的网际层
- 检查 IP 报头目的地址
- 根据路由表决定向哪里转发数据
- 决定哪个适配器接收这个数据后,将数据传递到合适的网络层软件
3. 路由类型
静态路由
- 要求网络管理员手动输入路由信息
动态路由
- 根据使用路由协议获取路由信息来动态建立路由表
4. IP 转发过程
- 主机准备发送一个IP 数据报
- 如果数据报不能在本地网络上发送,主机就会从路由表提取目的地相关地址的路由器的IP 地址
- 数据报以及要接收数据报的路由器的物理地址一起被传递给网络访问层
- 路由器的网络适配器会接收到这个帧,这个帧的目的物理地址会与路由器的物理地址相匹配
- 对帧进行拆包,将数据传递给网际层
- 路由器查看数据报的IP 地址
- 把数据报发送到另一路由器上
5. 动态路由算法
距离矢量路由(贝尔曼-福特路由)
设计目标
- 减少路由器之间所需的通信,减少保存路由表的数据
工作方式
- 初始化所有直连的网段,并把这些网段写入到在iji的路由表中,且直连网段跳数都是 0
- 周期性接收来自邻居路由报告,包括邻居所感知的网段和去往这些网段的相应跳数
收到报告后,添加进自己的路由表
- 相同路由表的网段,保留少的
- 未知的网段,接收来自邻居的报告后,跳数加一
缺点
- 不使用具有大量路由的环境,每台路由器为每个目的网段都必须维护一个路由-条目
链路状态路由
原理
- 每个路由都尝试建立关于网络拓扑的内部映射,当路由器发送数据报的时候,会根据现有条件去往目的地点最佳路径
6. 外部路由器
边界路由器
- EGP 外部网关协议
- BGP 边界网关协议
作用
- 自治网络之间的路由交换,将责任分派给特定的路由器,就可以让系统中的其他路由器不必考虑达到其他网络的路由
7. 内部路由器
IGP 内部网关协议
RIP 路由信息协议
- 距离矢量协议
功能
- 主动 RIP 节点参与正常的矢量数据交换,把自己路由表信息发送给其他路由器
- 被动 RIP 节点收取其他路由更新信息
- 每 30 秒广播一次更新信息
OSPF 开放最短路径优先
- 链路状态协议
功能
- 建立一个 SPT 最短路径树,由路由器去计算每个路由的开销
🚜 第九章
1. 电缆宽带
- 电缆调制器直接连接到一条同轴电缆,后者被被连接到有线电视服务网络上
传输介质
- 同轴电缆
2. 数字用户线路 DSL
- DSL 一端连接设备接收信号,并且通过服务提供商的网络连接到网络
传输介质
- 双绞线
网络协议
PPP 点对点协议
- 子主题 1
3. 广域网 WAN
核心形式
- 帧中续
- 综合业务数字网 ISDN
- 高级数据链路控制 HDLC
- 异步传输模式 ATM
4. 802.11(无线网络标准)
位置
- OSI 参考模型的 MAC 子层,MAC 子层位于 OSI 模型的数据链路层
- OSI 模型数据链路位于 TCP/IP 模型的网络访问层
物理层的无线广播形式
- FHSS 跳频扩频
- DSSS 直接序列扩频
- OFDM 正交频分复用
- HR/DSSS 高速率直接序列复用
帧具有的地址
- 目的地址
- 源地址
- 接收地址
- 发射地址
帧的格式
- 帧控制:描述协议版本、帧类型、解释帧
- 期限/ID::估计传输应该持续多长时间
- 地址字段::帧使用的不同地址字段
- 序列控制:片段序号
- 帧主体:帧中传输的数据
- 帧校验序列(FCS):循环冗余校验值,用于检查传输错误并验证帧在传输过程中有没有改变