《图解TCP/IP》第5版 —— 【日】竹下隆史 村山公保 荒井透 著 乌尼日其其格 译
前半本读书笔记
图解TCP/IP
Ch1 网络基础知识
传输方式的分类
-
面向有连接型与面向无连接型
- 有连接型:TCP、ATM、桢中继;
- 无连接型:以太网、IP、UDP;大多数为分组数据,接收端需要确认。用可靠性换效率。
-
电路交换与分组交换
-
电路交换:交换机主要负责数据的中转处理,正在通信的两台计算机独占线路进行数据传输;如果并发用户超过交换机之间的通信线路,则通信无法实现。
-
分组交换:数据分成多个数据包,安装一定的顺序排列之后分别发送,则所有的计算机就可以一齐收发数据,提高了通信线路的利用率。其中,每个分组的首部都写入了发送端和接收端的地址,从而明确区分每个分组数据发往的目的地。
- 分组交换的大致处理过程:发送端计算机将数据分组发送给路由器,路由器缓存到自己的缓存区,再转发给目标计算机。又称蓄积交换。
-
- 路由器接收到数据以后按照顺序缓存到相应的队列当中,再以先进先出的顺序将他们逐一发送出去。(有时也会先发目的地址比较特殊的数据)
- 问题:通信线路的速度会根据网络拥堵的情况而变化;路由器的缓存饱和或溢出时,可能会发生分组数据丢失、无法发送到对端的情况。
- 根据接收端数量分类
- 单播 Unicast – 电话
- 广播 Broadcast – 电视
- 广播域:在该范围内的计算机才能收到相应的广播消息。
- 多播 Multicast – 电视会议
- 任播 Anycast – DNS根域名解析服务器
地址
- 唯一性
- 层次性 – 高效地从众多地址中找到目标地址
- MAC地址:由设备制造厂商针对每块网卡(NIC)进行分别指定。唯一性,无层次性,最终的通信地址。(虽然MAC地址中的制造商识别号、产品编号以及通用编号等信息在某种程度上也具有一定的层次性,但于寻址无益。)
- 每个节点根据分组数据的地址信息,来判断报文应该由哪个网卡发送出去。各个地址会参考一个发出接口列表。
- MAC寻址参考:地址转发表(自学生成),记录实际的MAC地址本身。
- IP寻址:路由控制表(路由协议自动生成),记录的IP地址是集中了之后的网络号(网络号与子网掩码)。
网络的构成要素
- 传输速率 – 带宽 – 吞吐量。 bps
- 网卡
- NIC 网络接口卡,网络适配器、网卡、LAN卡;
- 笔记本可以通过ExpressCard或CardBus、压缩闪存以及USB方式插入NIC来联网。
- 中继器
- 中继器在OSI 模型的第1层 – 物理层面上延长网络的设备。
- 波形调整和放大。
- 忽略数据链路层的错误 && 无法改变传输速度(中继器两端连接的设备速度相同,否则需要网桥或路由器)
- 数量有限制。10Mbps以太网:4个中继器;100Mbps以太网:2个。
- 中继集线器 - 集线器 - 多口中继器 - Hub
- 网桥 / 2层交换机
- 网桥在OSI模型的第2层 – 数据链路层面上连接两个网络的设备。
- 识别数据链路层中的数据帧,并临时存储于内存,再重新生成信号作为一个全新的桢转发给相连的另一个网段。
- 能够连接10BASE-T和100BASE-TX等传输速率不同的数据链路,不限制连接网段的个数。
- FCS:检验数据是否正确送达目的地。(CRC校验数据帧中的位)
- 通过地址(MAC地址)自学机制和过滤功能控制网络流量。
- 交换集线器(Hub) - 网桥的一种。(可以任务交换机的每个端口实际上提供着网桥的功能)
- 路由器 / 3层交换机
- 路由器在OSI模型的第3层 – 网络层面上连接两个网络、并对分组报文进行转发的设备。
- 根据IP地址进行处理。
- 分担网络负荷、网络安全功能……
- 4 ~ 7层交换机 (负载均衡器)
- 4 ~ 7层交换机负责处理OSI模型中从传输层至应用层的数据;以TCP等协议的传输层及其上面的应用层为基础,分析收发数据,并对其进行特定的处理。
- 功能:带宽控制(网络拥堵时,优先处理语音等实时性要求较高的通信请求,放缓处理邮件或数据转发等可延迟等通信请求);广域网加速器、特殊应用访问加速、防火墙……
- PS:循环复用DNS技术实现负载均衡。
- 网关
- 网关是OSI模型中负责将从传输层到应用层的数据进行转换和转发的设备。
- 互联网邮件与手机邮件之间的转换服务(表示层和应用层的“电子邮件协议”不同)。
- 应用网关:代理服务器(Proxy Server),控制网络流量以及处于安全的考虑。
- 防火墙 通过网关通信,针对不同应用提供安全性的产品。
Ch2 TCP/IP基础知识
- ARPANET 阿帕网:全球互联网的鼻祖。 基于分组交换技术的通信方法
- TCP/IP诞生:1975
TCP/IP协议分层模型
- OSI注重:通信协议必要的功能是什么;
- TCP/IP强调:在计算机上实现协议应该开发哪种程序(设备驱动程序与网络接口、操作系统、应用程序)
-
硬件(物理层) – 网线、无线
-
网络接口层(数据链路层)-- 接口层
可以当作让NIC起作用的“驱动程序(在操作系统与硬件之间起桥梁作用的软件)”
-
互联网层(网络层) – 操作系统
IP协议,基于IP地址转发分包数据
- IP是分组交换的一种协议,不具有重发机制,属于非可靠性传输协议。
- ICMP – IP异常通知,诊断网络的健康状况。
- ARP – 从分组数据包的IP地址中解析出物理地址(MAC)
-
传输层
-
TCP – 有连接、可靠;能够正确处理在传输过程中的丢包、传输顺序乱掉等异常情况;有效利用带宽,缓解网络拥堵。
-
UDP – 无连接;如需检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。
应用:分组数据较少或广播、多播通信以及视频通信等多媒体领域。
-
-
应用层(会话层以上的分层)
- 浏览器与服务端之间的通信协议:HTTP(应用层),传输数据的格式:HTML(表示层)
- 电子邮件 SMTP协议,MIME协议(表示层)用来定义邮件数据格式
- 文件传输(FTP) – 建立两个TCP连接(会话层),发出传输请求时用到的控制连接 + 实际传输数据时的数据连接。
- 远程登录(TELNET SSH)
- 网络管理(SNMP) – SNMP代理(Agent) + 管理器(Manager);Agent保存着网络接口的信息、通信数据量、异常数据量以及设备温度等信息。MIB(Management Information Base - 表示层协议,一种可透过网络等结构变量)访问以上信息。
Ch3 数据链路
- 帧
- 数据链路层的协议定义了通过通信媒介互联的设备之间传输的规范。
- 通信媒介:双绞线电缆、同轴电缆、光纤、电波、红外线……
- 物理层:将电压的高低、光的闪灭、电波的强弱等信号转换成二进制的0、1。
数据链路相关技术
-
MAC地址 – 识别数据链路中互连的节点
- IEEE802.3:美国电气和电子工程师协会制定的局域网标准化相关规范中的以太网的国际规范。
- IEEE802.11a/b/g/n:WLAN
- MAC地址长度 = 48 bit。
- 如果使用网卡(NIC),MAC地址一般会烧入到ROM中。
-
共享介质型网络 – 多个设备共享一个通信介质的网络
-
以太网、FDDI:设备之间使用同一个载波信道进行发送和接收,故采用半双工通信 + 对介质进行访问控制。
-
2种介质访问控制方式:
-
a)争用方式(Contention):争夺数据传输的权力,也叫CSMA(载波监听多路访问),各个站采用先到先得的方式占用信道发送数据,多个站同时发送帧,则会产生冲突现象,造成网络拥堵与性能下降。
CSMA/CD方式,改良CSMA:要求每个站提前检查冲突,一旦发生冲突,则今早释放信道。
if 载波信道无数据流动,则任何站都可以发送数据;
if 冲突,放弃发送数据 + 立即释放信道;
随机延时,再重新争用介质,重新发送。
通过电压检测冲突的硬件属于同轴电缆。
-
b)令牌传递方式:沿着令牌环发送一种叫做“令牌”的特殊报文。只有获得令牌的站才能发送数据。
特点:不会有冲突;每个站都有平等循环获得令牌的机会。
缺点:在网络不太拥堵的情况下,利用率达不到100%。
改进:(提高网络性能)早期令牌释放、令牌追加,多个令牌同时循环……
-
-
非共享介质网络
- 网络中的每个站直连交换机,由交换机负责转发数据帧。发送端与接收端不共享通信介质。故采用全双工通信
- 以太网、ATM
- 功能:根据交换机的高级特性构建虚拟局域网VLAN、流量控制。
- 缺点:一旦交换机发送故障,所有计算机均无法通信。
-
根据MAC地址转发
- 交换集线器 - 以太网交换机:将非介质共享型网络中所使用的交换机用在以太网中;持有多个端口的网桥,根据数据链路层中每个帧的目标MAC地址,决定从哪个网络接口发送数据。参考:转发表(Forwarding Table)
- 交换机转发方式 2种:
- a)存储转发:检查以太网数据帧末尾的FCS位后再进行转发,避免错误帧;
- b)直通转发:得知目标地址即可开始转发,短延迟、可能有错误帧。
-
环路检测技术
-
生成树方式
每个网桥必须在1~10秒内互相交换BPDU包,判断端口使用与否,以便消除环路。
RSTP(Rapid Spanning Tree Protocol):将发生问题时的恢复从几十秒缩短到几秒以内。
-
源路由法
-
-
VLAN - 网桥/2层交换机
- 解决:分散网络负载、变换部署网络设备的位置等情况,需要对硬件线路改造。
- 过滤多余的包,提高网络承载效率。
- IEEE802.1Q标准(TAG VLAN):每个网段用VLAN ID的标签进行唯一表示。VID加入以太网首部
以太网
- IEEE802.3规范的以太网:802.3以太网。(反之,DIX以太网)
-
以太网的连接形式
- 初期:同轴电缆(共享介质型)
- 现在:终端与交换机之间独占电缆
-
以太网的分类
-
以太网的历史
-
以太网帧格式
-
前导码(Preamble):8Byte ——末尾2位 SFD = 11
以太网帧格式 字节数 前导码(Preamble) 末尾2位 SFD = 11 8 Byte 以太网首部(目的MAC地址+源MAC地址+上层协议类型) 14 Byte(6+6+2) 数据 46~1500 Byte FCS(Frame Check Sequence,帧校验序列) 4 Byte
无线通信
-
种类
-
IEEE802.11
802.11/802.11a/802.11b/802.11g/802.11n
PPP
-
PPP定义
Point-to-Point Protocol。相当于OSI的第2层:数据链路层。
PPP可以使用:电话线、ISDN、专线、ATM线路。
PPPoE(PPP over Ethernet):在以太网的数据中加入PPP帧进行传输。
-
LCP与NCP
- LCP(Link Control Protocol):不依赖上层。负责建立和断开连接、设置最大接收单元(MRU,Maximum Receive Unit)、设置验证协议(PAP或CHAP)以及设置是否进行通信质量的监控。
- NCP(Network Control Protocol):依赖上层。如果上层是IP,此时NCP也叫做IPCP,负责IP地址设置以及是否进行TCP/IP首部压缩等。
- PPP连接:1. PAP(Password Authentication Protocol);2. CHAP(Challenge Handshake Authentication Protocol)使用OTP。
-
PPP的帧格式
-
PPPoE
PPPoE管理以太网连接,利用PPP的验证功能使各家ISP可以有效地管理终端用户的使用。
其他数据链路
- ATM(Asynchronous Transfer Mode):一种面向连接的数据链路。
- POS(Packet over SDH/SONET):一种在SDH/SONET上进行包通信的一种协议。SDH/SONET是在光纤上传输数字信号的物理层规范。
- FDDI(Fiber Distributed Data Interface):分布式光纤数据接口
- Token Ring:令牌环网
- 100VG-AnyLAN
- 光纤通道:广泛用于搭建SVN(Storage Area Network)
- HIPPI
- IEEE1394
- HDMI(High-Definition Multimedia Interface)
- iSCSI
- InfiniBand
- DOCSIS
- 高速PLC(Power line communication)
公共网络
- 模拟电话线路:猫
- 移动通信服务
- ADSL
- FTTH(Fiber to the home)
- 有线电视
- 专线
- VPN
- IP-VPN
- 广域以太网
- 公共无线LAN
- 其他公共无线通信服务
Ch4 IP协议
IP即网际协议
- IP相当于OSI参考模型的第3层——网络层
- 网络层主要作用:实现终端节点之间的通信,点对点通信。跨越不同数据链路。
- 网络层与数据链路层的关系
IP基础知识
-
IP地址属于网络层地址
-
路由控制
-
数据链路的抽象化
-
IP属于面向无连接型
原因:1、简化,2、提速
IP地址的基础知识
-
IP地址的定义
- IPv4地址:32位正整数(表示:十进制点符号),不到43亿。
- 每个网卡NIC都得设置IP地址(1到多个IP)
- 一台路由器通常配置两个以上的网卡
-
IP地址组成:网络和主机两部分标识
- 子网掩码(网络前缀)区分网络标识和主机标识;(有些情况以分类进行区别)
- 路由器根据IP地址的网络标识进行转发
-
IP地址的分类
-
A类地址
0.0.0.0 ~ 127.0.0.0 首位:0;前8位是网络标识
-
B类地址
128.0.0.1 ~ 191.255.0.0 前2位:“10”;网络标识:1~16位
-
C类地址
192.168.0.0 ~ 239.255.255.0 前3位:“110”;网络标识:24位;一个网段254个主机
-
D类地址
224.0.0.0 ~ 239.255.255.255 前4位:“1110”; 无主机标识,常用于多播
-
注意:主机标识不可全为0(不可获知)全为1(广播)
-
-
广播地址
- 两种广播
本地广播:本数据链路
直接广播:不同网络间(安全问题,多数情况下路由器设置为不转发)
-
IP多播
-
同时发送提高效率
直接使用IP协议,不存在可靠传输。
既可以穿透路由器,又可以实现只给必要的组发送数据包。
电视会议:具体实现一般采用复制1对1通信的数据,将其同时发送给多个主机。
-
IP多播与地址
D类地址,所有的主机必须属于224.0.0.1的组,所有的路由器必须属于224.0.0.2的组
需要IGMP等协议的支持
-
-
子网掩码
-
CIDR与VLSM
CIDR - Classless Inter-Domain Routing,无类型域间选路,任意长度分割IP地址的网络标识和主机标识
VLSM - Variable Length Subnet Mask,可变长子网掩码,可以通过域间路由协议转换为RIP2以及OSPF实现
-
全局地址与私有地址
家里的终端都是私有IP,路由器或必要的服务器上设置全局IP地址;私有的主机联网时,通过NAT进行通信。
-
全局地址由谁决定
ICANN管理全局IP地址
普遍方式:LAN设置私有地址,通过少数设置全局IP地址的代理服务器结合NAT的设置进行互联网通信。
路由控制
- 路由控制表(Routing table):手动设置(静态路由控制)、路由器自动刷新(动态路由控制)
-
IP地址与路由控制
IP地址的网络地址用于进行路由控制。
netstat -rn 路由控制表命令
-
路由控制表的聚合:缩小路由表
IP分割处理与再构成处理
- 数据链路不同,MTU则相异。IP抽象化了底层的数据链路.
- IP报文的分片与重组
- IP Fragmentation:8 Byte * n(1500);路由器分片,目标主机重组!
- 分片的不足:加重路由器负荷
- 路径MTU发现 Path MTU Discovery
- 发送端主机到接收端主机之间不需要分片时最大MTU大小,即路径中存在的所有数据链路中最小的MTU。
- 避免在中途的路由器上进行分片处理,也可以在TCP中发送更大的包。
IPv6
IPv4首部
IPv6首部
Ch5 IP协议相关技术
DNS
- 将字符串自动转换为IP地址。
- nslookup baidu.com// 返回对应的IP地址
- 域名服务器:管理域名的主机和相应的软件
- DNS解析器:进行DNS查询的主机和软件
ARP
- 以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。
- IPv4 Only。对于IPv6,使用ICMPv6发送ND消息(邻居探索)
- ARP请求、ARP响应
ICMP
- 两类:通知出错原因的错误消息;用于诊断的查询消息。
- 对于IPv6,ICMPv6必不可少。
- ICMPv6的邻居探索消息ND - Neighbor Discovery,对应ARP:具有ARP、ICMP重定向、ICMP路由器选择消息等功能,配合DHCPv6实现自动设置IP地址。
DHCP
- Dynamic Host Configuration Protocol,实现即插即用。
- DHCP服务器,一般为该网段的路由器。
NAT
- 在本地网络中使用私有地址,在连接互联网时使用全局IP地址。实现用一个全局IP地址与多个主机的通信。
IP隧道
- 在网络层的首部后面继续追加网络层首部
其他IP相关技术
- IP多播相关技术
- MLD - Multicast Listener Discovery:多播监听发现。ICMPv6的类型130、131、132.。IPv4中的IGMP
- IGMP - Internet Group Management Protocol:向路由器表明想要接收多播消息(通知接收多播的地址);向交换集线器通知想要接收多播的地址。
- IP任播
- 为那些提供同一种服务的服务器配置同一个IP地址,并与最近的服务器进行通信的一种方法。如110、119
- DNS根域名服务器
- 通信质量控制
- RSVP - Resolution Reservation Protocol
- IntServ:针对特定应用之间的通信(源IP、目标IP、源端口、目标端口以及协议号)
- DiffServ:针对特定的网络进行粗粒度的通信质量控制。
- RSVP - Resolution Reservation Protocol
- 显示拥塞通知
- ECN - Explict Congestion Notification, 显式拥塞通知,IP层
- 实现:将IP首部的TOS字段置为ECN字段,并在TCP首部的保留位中追加CWR标志和ECE标志。
- Mobile IP