网络基础
网络概念
计算机网络是一组计算机或网络设备通过有形的线缆或无形的媒介如无线,连接起来,按照一定的规 则,进行通信的集合。
网络功能和优点
-
数据和应用程序
-
资源
-
网络存储
-
备份设备
作用范围分类
名称 | 简写 | 注释 |
---|---|---|
广域网 | WAN | Wide Area Network |
城域网 | MAN | Metropolitan Area Network |
局域网 | LAN | Local Area Network |
网络拓扑
拓扑结构一般是指由点和线排列成的几何图形
计算机网络的拓扑结构是指一个网络的通信链路和计算机结点相互连接构成的几何图形
拓扑分类
物理拓扑
物理拓扑描述了物理设备的布线方式。
网络的物理拓扑指的是设备和电缆的物理布局。必须选择与需要安装的电缆类型匹配的恰当的物理拓扑。
逻辑拓扑
逻辑拓扑描述了信息在网络中流动的方式。
网络的逻辑拓扑表示信号从网络一个点传输到另一个点的逻辑路径。也就是说,数据访问网络介质,并 通过网络介质传输数据包的方式。
各拓扑结构的特点
总线拓扑
总线拓扑通常也称为线性总线,总线拓扑中的所有设备均由一条线缆进行连接。
在总线拓扑中,一条线缆从一台设备延伸到另一设备,类似于城市中的公交线路。主线缆段的末端必须 采用终结端,当信号到达线路或线缆末端时,终结端将吸收信号。如果不具备终结端,表示数据的电子 信号将在线缆末端弹回,导致网络出错。
环形拓扑
在这种拓扑结构中,网络上的所有设备都以环的形式连接。环形拓扑不需要终止的开始端或结束端。数 据的传输方式不同于总线拓扑。其中一种实施形式为:“令牌”沿环移动,并在每台设备处停止。如果一 台设备希望传输数据,则会在令牌中添加数据和目标地址。随后,令牌继续沿环移动,直至最终找到目 标设备,目标设备将从令牌中获取数据。这类方法的优势在于,数据包不会发生冲突。环形拓扑分为两 种:单环和双环
单环拓扑
在单环拓扑中,网络上的所有设备共用一条线缆,数据单向传输。各设备等候轮到自己时再通过网络发 送数据。但是,单环拓扑可能存在单一故障点的问题,一个故障就可能导致整个环形拓扑停止工作。
双环拓扑
在双环拓扑中,两个环形允许双向传输数据。这种设置能提供冗余(容错能力)。也就是说,如果一个 环发生故障,数据仍可在另一个环上传输。
星形和扩展星形拓扑
星形拓扑是以太网LAN中最常见的物理拓扑。在星形网络扩展为包含连接主要网络设备的附加网络设备 时,即称其为扩展星形拓扑。
星形拓扑
星形拓扑将表现为车轮轮辐的形式。它包含一个中央连接点,该点是集线器、交换机或路由器等设备, 所有线缆段均汇集于这一点。网络上的所有设备均使用自己的线缆连接到中央设备。
扩展星形拓扑
扩展星形拓扑的一种常见部署方式就是分层设计,例如WAN、企业LAN或园区LAN。
纯粹的扩展星形拓扑的问题在于,如果中央节点发生故障,大部分网络就会被隔离。因此,大多数扩展 星形拓扑都采用一组独立连接设备之外的冗余连接,以避免在设备发生故障时造成隔离。
网状和部分网状拓扑
网状拓扑提供了星形拓扑中设备间的冗余。网络可以是完全网状的,也可以是部分网状的,具体取决于 所需冗余级别。这种类型的拓扑有助于提高网络的可用性和可靠性。但是,这会提高成本,也会制约可 扩展性。
全网状拓扑
全网状拓扑将所有设备(节点)彼此相连,以实现冗余和容错能力。其实施成本高、难度大。但这种拓 扑的容错能力最强,因为任何一条链路的故障都不会影响网络的连通性。
连通线路计算公式:n(n-1)/2
部份网状拓扑
在这种拓扑中,只有重要节点的设备与其它设备具有直接一一相连的线路,对于其它设备的数据传输, 需要从其它节点中继,这种设计有一定的冗余和容错能力,也降低了全网状拓扑结构的成本和实施难度。
网络标准
开放系统互联 OSI
序号 | 名称 | 英文 |
---|---|---|
7 | 应用层 | Application |
6 | 表示层 | Presentation |
5 | 会话层 | Session |
4 | 传输层 | Transport |
3 | 网络层 | Network |
2 | 数据链路层 | Data Link |
1 | 物理层 | Physical |
OSI 模型的七层结构
第7层 应用层
应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等
第6层 表示层
表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式
第5层 会话层
会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
第4层 传输层
传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议 等发送信息。例如:传输控制协议(TCP)等。
第3层 网络层
网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。 网络表头包含了网络数据。例如:互联网协议(IP)等。
第2层 数据链接层
数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形 成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表 尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务 (GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控(Media access control,MAC)子层。
第1层 物理层
物理层(Physical Layer)在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网 络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、主机接口卡等。
网络的通信过程
协议数据单元 PDU
PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位
发送方和接收方各层之间的PDU
发送方 | 数据单元PDU | 接收方 |
---|---|---|
应用层 | 消息 message | 应用层 |
表示层 | 消息 message | 表示层 |
会话层 | 消息 message | 会话层 |
传输层 | 数据段 segment | 传输层 |
网络层 | 数据包 packet | 网络层 |
数据链路层 | 数据帧 frame | 数据链路层 |
物理层 | 数据位 bit | 物理层 |
三种通讯模式
三种通讯方式的区别在于目标,而不在于源
通讯模式 | 特点 | 示例 | |
---|---|---|---|
unicast | 单播 | 目标设备只有一台 | @张三 |
broadcast | 广播 | 目示设备是所有 | @所有人 |
multicast | 多播 | 目标设备是多个 | @张三,@李四,@王五 |
冲突域和广播域
冲突域
两个网络设备同时发送数据,如果发生了冲突,则两个设备处于同一个冲突域,反之,则各自处于不同 的冲突域
广播域
一个网络设备发送广播,另一个设备收到了,则两个设备处于同一个广播域,反之,则各自处于不同的 广播域
三种通讯机制
通讯机制 | 特点 | 示例 |
---|---|---|
单工通讯 | 只有一个方向的通信 | 收音机 |
半双工通讯 | 通信双方都可以发送和接收信息,但不能同时发送,也不能同时接收 | 对讲机 |
全双工通讯 | 通信双方可以同时发送和同时接收 | 手机 |
局域网 Local Area Network
特点
-
网络为一个单位所拥有
-
地理范围和站点数目均有限
主要功能
资源共享和数据通信
优点
-
能方便地共享昂贵的外部设备、主机以及软件、数据。从一个站点可以访问全网
-
便于系统的扩展和逐渐演变,各设备的位置可灵活的调整和改变
-
提高系统的可靠性、可用性和易用性
标准
IEEE(国际电子电气工程师协会)于1980年2月成立了局域网标准委员会(简称IEEE802委员会),专门 从事局域网标准化工作,并制定了IEEE802标准。802标准所描述的局域网参考模型只对应OSI参考模型 的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层;
LLC子层负责向其上层提供服务;
MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差 错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
网络线缆和接口
常见的网络线缆包括双绞线,同轴线,光纤线等;
双绞线就是我们常说的网线,又分为屏蔽双绞线(Shielded Twisted Pair,STP)与非屏蔽双绞线 (Unshielded Twisted Pair,UTP)
网线线序和规范
线序指的是压水晶头时里面小线的排列顺序
T568B标准是主流的线序
国际线序标准
标准 | 线序(从左到右) |
---|---|
T568A | 白绿 绿 白橙 蓝 白蓝 橙 白棕 棕 |
T568B | 白橙 橙 白绿 蓝 白蓝 绿 白棕 棕 |
USOC(8) | 白棕 绿 白橙 蓝 白蓝 橙 白绿 棕 |
USOC(6) | 空 白绿 白橙 蓝 白蓝 橙 绿 空 |
网络适配器
网卡作用
-
进行串行/并行转换数据缓存
-
在计算机操作系统中安装设备驱动程序
-
实现以太网协议
网卡类型
-
按总线接口类型进行分类:分为ISA、PCI、PCI-X 、PCMCIA、PCI-E 和USB等几种类型
-
按传输介质接口分类:细同轴电缆的BNC接口网卡、粗同轴电缆AUI接口网卡、以太网双绞线RJ-45 接口网卡、光纤F/O接口网卡、无线网卡等
-
按传输速率(带宽)分类:10Mbps网卡、100Mbps以太网卡、10Mbps/100Mbps自适应网卡、 1000Mbps千兆以太网卡、40Gbps自适应网卡等
中继器和集线器
中继器 repeater
实际上是一种信号再生放大器,可将变弱的信号和有失真的信号进行整形与放大,输出信号比原信号的 强度将大大提高,中继器不解释、不改变收到的数字信息,而只是将其整形放大后再转发出去。
优点
-
易于操作
-
很短的等待时间
-
价格便宜
-
突破线缆的距离限制来扩展局域网段的距离
-
可用来连接不同的物理介质
缺点
-
采用中继器连接网络分支的数目要受具体的网络体系结构限制
-
中继器不能连接不同类型的网络
-
中继器没有隔离和过滤功能,无路由选择、交换、纠错/检错功能,一个分支出现故障可能会影响 到其他的每一个网络分支
-
使用中继器扩充网络距离是最简单最廉价的方法,但当负载增加时,网络性能急剧下降,所以只有 当网络负载很轻和网络时延要求不高的条件下才能使用
集线器 hub
集线器(Hub)工作在物理层,是中继器的一种形式,是一种集中连接缆线的网络组件,可以认为集线 器是一个多端口的中继器,集线器提供多端口连接,主要功能是对接收到的信号进行再生整形放大,以 扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。
Hub并不记忆报文是由哪个MAC地址发出,哪个MAC地址在Hub的哪个端口
Hub的特点:
-
共享带宽
-
半双工
网桥和交换机
网桥 Bridge
网桥(Bridge)也叫桥接器,是连接两个局域网的一种存储/转发设备,根据MAC地址表对数据帧进行转 发,可隔离碰撞域
网桥将网络的多个网段在数据链路层连接起来,并对网络数据帧进行管理
优点
-
过滤通信量
-
扩大了物理范围
-
提高了可靠性
-
可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网
缺点
-
存储转发增加了时延
-
在MAC 子层并没有流量控制功能
-
具有不同 MAC 子层的网段桥接在一起时时延更大
-
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的 广播信息而产生网络拥塞。这就是所谓的广播风暴
交换机 switch
交换机是工作在OSI参考模型数据链路层的设备,外表和集线器相似
它通过判断数据帧的目的MAC地址,从而将数据帧从合适端口发送出去
交换机是通过MAC地址的学习和维护更新机制来实现数据帧的转发
工作原理
-
交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表 中
-
交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发
-
如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)
-
广播帧和组播帧向所有的端口转发
集线器与交换机的比较
-
交换机属于数据链路层设备,而集线器属于物理层设备
-
集线器在转发帧时,不对传输介质进行检测,交换机在转发帧之前必须执行 CSMA/CD 算法。若在 发送过程中出现碰撞,就必须停止发送和进行退避。所以交换机能隔离冲突,而集线器却只能增加 冲突
-
交换机的每个端口可提供专用的带宽,而集线器的所有端口只能共享带宽
-
集线器只能实现半双工传送,而交换机可支持全双工传送
-
集线器和交换机都无法隔离广播域
路由器 router
路由:把一个数据包从一个设备发送到不同网络里的另一个设备上去。这些工作依靠路由器来完成。路 由器只关心网络的状态和决定网络中的最佳路径。路由的实现依靠路由器中的路由表来完成。
路由器功能:
-
工作在网络层
-
分隔广播域和冲突域
-
选择路由表中到达目标最好的路径
-
维护和检查路由信息
-
连接广域网
对比与总结
设备 | ISO | 域 |
---|---|---|
集线器hub | 物理层 | 同一冲突域,同一广播域 |
交换机switch | 数据链路层 | 每个端口一个冲突域,所有端口都在同一个广播域 |
路由器 router | 网络层 | 每个端口都有独立广播域 |
以太网技术
以太网(Ethernet)是一种产生较早且使用相当广泛的局域网,由美国Xerox(施乐)公司的Palo Alto 研究中心(简称为PARC)于20世纪70年代初期开始研究并于1975年研制成功。
以太网MAC帧格式
字段 | 长度(字节) | 字段 | 备注 | IEEE802.3 | Ethernet2 |
---|---|---|---|---|---|
Preamble | 7 | 前导信息 | 冲突检测,无实际意 义 | Y | Y |
SOF | 1 | 分割符 | 用来分割前导信息和后续内容 | Y | N |
Destination Address | 6 | 目标地址 | 目标设备网卡号 | Y | Y |
Source Address | 6 | 源地址 | 源设备网卡号 | Y | Y |
Length | 2 | 长度 | 后面实际内容的长度 | Y | N |
Type | 2 | 协议类型 | 上层协议类型 | N | Y |
802.2 Header and Data | 46 - 1500 | 实际内容 | 包含其它层协议加入 的头部信息 | Y | N |
Data | 46 - 1500 | 实际内容 | 包含其它层协议加入 的头部信息 | N | Y |
FCS | 4 | 校验位 | 校验位 | Y | Y |
MAC地址
在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)
IEEE 802标准为局域网规定了一种48位的全球地址(一般都简称为“地址”),是局域网中每一台计算机固 化在网卡ROM中的地址
IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)
地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没 有重复地址
冲突检测的载波侦听多路访问 CSMA/CD
主要用在早期的Hub环境中,用来解决冲突域的问题,现在主流的交换机上不再使用
工作原理
-
先听后发
-
边发边听
-
冲突停止
-
延迟重发
虚拟局域网 VLAN
VLAN 原理
此技术可以用交换机来进行网络隔离,但要求交换机具有网络管理功能。
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组这些网段具有某些共同的需求。 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域网 其实只是局域网给用户提供的一种服务,而并不是一种新型局域网
优点
-
更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下降。 VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能
-
简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成 网络设备的逻辑组,无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机
-
提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧
虚拟局域网的实现技术
-
基于端口的VLAN
-
基于MAC地址的VLAN
-
基于协议的VLAN
-
基于网络地址的VLAN
VLAN 标签各字段含义
TPID:Tag Protocol Identifier(标签协议标识符),2Byte,表示帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃,各设备厂商可以自定义 该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在 本设备上修改TPID值,确保和邻居设备的TPID值配置一致
PRI:Priority,3bit,表示数据帧的802.1p(是IEEE 802.1Q的扩展协议)优先级。取值范围为0~7,值 越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧
CFI:Canonical Format Indicator(标准格式指示位),1bit,表示MAC地址在不同的传输介质中是否以 标准格式进行封装,用于兼容以太网和令牌环网。CFI取值为0表示MAC地址以标准格式进行封装,为1 表示以非标准格式封装。在以太网中,CFI的值为0
VID:VLAN ID,12bit,表示该数据帧所属VLAN的编号。VLAN ID取值范围是0~4095。由于0和4095 为协议保留取值,所以VLAN ID的有效取值范围是1~4094
TCP/IP 协议栈
TCP/IP 标准
Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议
TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多 协议
TCP/IP 分层
共定义了四层,和OSI参考模型的分层有对应关系
TCP/IP和OSI模型的比较
相同点
-
两者都是以协议栈的概念为基础
-
协议栈中的协议彼此相互独立
-
下层对上层提供服务
不同点
-
OSI是先有模型;TCP/IP是先有协议,后有模型
-
OSI是国际标准,适用于各种协议栈;TCP/IP实际标准,只适用于TCP/IP网络
-
层次数量不同
TCP和UDP对比
字段 | TCP | UDP |
---|---|---|
是否连接 | 面向连接 | 无连接 |
是否是可靠传输 | 可靠传输 | 不可靠传输 |
连接目标个数 | 一对一 | 支持一对一,一对多,多对一,多对多传 输 |
是否有序 | 有序传输 | 无序传输 |
首部大小 | 首部最少20字节,最大60字节 | 首部8字节 |
传输方式 | 面向字节流 | 面向报文 |
常见应用 | 邮件服务,文件下载,网站浏览 等 | 语音聊天,视频聊天等 |
TCP
TCP:传输控制协议 ( Transmission Control Protocol )
TCP特性
-
工作在传输层
-
面向连接协议
-
全双工协议
-
半关闭
-
将数据打包成段,排序
-
确认机制
-
数据恢复,重传
-
错误检查
-
流量控制,滑动窗口
-
拥塞控制,慢启动和拥塞避免算法
-
源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口 某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即65536
-
序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字 节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从 0 开始
-
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方: 我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号
-
数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要 指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多 远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是 TCP首部最大60字节
-
URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只 有当URG=1时才有效
-
ACK:表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规 定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
-
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如 果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到 的数据读走,就会一直停留在TCP接收缓冲区中
-
RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放 连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志 的TCP报文段称为复位报文段
-
SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报 文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意 建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
-
FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的 数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段
-
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方 发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value * Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值
-
校验和:提供额外的可靠性
-
紧急指针:标记紧急数据在数据字段中的位置
-
选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为: (2^4-1)*4-20=40字节
TCP包头常见选项
最大报文字段长度MSS(Maximum Segment Size)
通常1460字节
指明自己期望对方发送TCP报文段时那个数据字段的长度。比如:1460字节。数据字段的长度加 上TCP首部的长度才等于整个TC报文段的长度。MSS不宜设的太大也不宜设的太小。若选择太小, 极端情况下,TCP报文段只含有1字节数据,在IP层传输的数据报的 开销至少有40字节(包括TCP 报文段的首部和IP数据报的首部)这样,网络的利用率就不会超过1/41。若TCP报文段非常长,那 么 在IP层传输时就有可能要分解成多个短数据报片。在终点要把收到的各个短数据报片装配成原 来的TCP报文段。当传输出错时还要 进行重传,这些也都会使开销增大。因此MSS应尽可能大, 只要在IP层传输时不需要再分片就行。在连接建立过程中,双方都把自 己能够支持的MSS写入这一 字段,MSS只出现在SYN报文中。即:MSS出现在SYN=1的报文段中MTU和MSS值的关系
MTU=MSS+IP Header+TCP Header,通信双方最终的MSS值=较小MTU-IP Header-TCP Header
窗口扩大 Window Scale
为了扩大窗口,由于TCP首部的窗口大小字段长度是16位,所以其表示的最大数是65535。但是 随着时延和带宽比较大的通信产生(如卫星通信),需要更大的窗口来满足性能和吞吐率,所以产生了 这个窗口扩大选项。
时间戳 Timestamps
可以用来计算RTT(往返时间),发送方发送TCP报文时,把当前的时间值放入时间戳字段,接收方 收到后发送确认报文时,把这个时间戳字段的值复制到确认报文中,当发送方收到确认报文后即可计算 出RTT。也可以用来防止回绕序号PAWS,也可以说可以用来区分相同序列号的不同报文。因为序列号用 32为表示,每2^32个序列号就会产生回绕,那么使用时间戳字段就很容易区分相同序列号的不同报文
TCP协议PORT
传输层通过port号,确定应用层协议,范围0-65535
IANA互联网数字分配机构负责域名,数字资源,协议分配
-
0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的系统应用使用, 22/tcp(ssh), 80/tcp(http), 443/tcp(https)
-
1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用, 1433/tcp(SqlServer),1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)
-
49152-65535:动态或私有端口,客户端随机使用端口,范围定义:/proc/sys/net/ipv4/ip_local_port_range
#常用服务及端口对应关系
cat /etc/services
#查看非特权用户可以使用起始端口
cat /proc/sys/net/ipv4/ip_unprivileged_port_start
#查看客户端动态端口起始
cat /proc/sys/net/ipv4/ip_local_port_range
三次握手和四次挥手
TCP超时重传
异常网络状况下(开始出现超时或丢包),TCP控制数据传输以保证其承诺的可靠服务TCP服务必须能够 重传超时时间内未收到确认的TCP报文段。为此,TCP模块为每个TCP报文段都维护一个重传定时器,该 定时器在TCP报文段第一次被发送时启动。如果超时时间内未收到接收方的应答,TCP模块将重传TCP报 文段并重置定时器。至于下次重传的超时时间如何选择,以及最多执行多少次重传,就是TCP的重传策 略
拥塞控制
网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的 需求超过了该资源所能提供的可承受的能力,网络的性能就会变坏。此情况称为拥塞
TCP为提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。即所谓的拥塞控制TCP拥 塞控制的标准文档是RFC 5681,其中详细介绍了拥塞控制的四个部分:慢启动(slow start)、拥塞避 免(congestion avoidance)、快速重传(fast retransmit)和快速恢复(fast recovery)
拥塞控制算法在Linux下有多种实现,比如reno算法、vegas算法和cubic算法等。它们或者部分或者全 部实现了上述四个部分
UDP
UPD:用户数据报协议 ( User Datagram Protocol )
UDP特性
-
工作在传输层
-
提供不可靠的网络访问
-
非面向连接协议
-
有限的错误检查
-
传输性能高
-
无数据恢复特性
Address Resolution Protocol
ARP地址解析协议由互联网工程任务组(IETF)在1982年11月发布的RFC 826中描述制定,是根据IP地址获 取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确 定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次 请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局 域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将 其记入本机ARP缓存。
internet 协议
Internet 协议特征
-
运行于 OSI 网络层
-
面向无连接的协议
-
独立处理数据包
-
分层编址
-
尽力而为传输
-
无数据恢复功能
IP PDU 报头格式
版本:占4位,指 IP 协议的版本目前的IP协议版本号为4;
首部长度:占4位,可表示的最大数值是15个单位,一个单位为4字节,因此IP 的首部长度的最大 值是60字节;
区分服务:占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过,后 改名为区分服务,只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下不使用;
总长度:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节, 总长度必须不超过最大传送单元 MTU;
标识:占16位,它是一个计数器,通常,每发送一个报文,该值会加1, 也用于数据包分片,在同一 个包的若干分片中,该值是相同的;
标志(flag):占3位,目前只有后两位有意义, DF: Don’t Fragment 中间的一位,只有当 DF=0 时 才允许分片,MF: More Fragment 最后一位,MF=1表示后面还有分片,MF=0 表示最后一个分 片IP PDU 报头;
片偏移:占13位,指较长的分组在分片后,该分片在原分组中的相对位置。片偏移以8个字节为偏 移单位;
生存时间:占8位,记为TTL (Time To Live) 数据报文在网络中可通过的路由器数的最大值,TTL 字段 是由发送端初始设置一个 8 bit字段,推荐的初始值由分配数字 RFC 指定,当前值为 64,发送 ICMP 回显应答时经常把 TTL 设为最大值 255;
协议:占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个 处理过程,1 表示为 ICMP 协议, 2 表示为 IGMP 协议, 6表示为 TCP 协议,17表示为 UDP 协 议;
首部检验和:占16位,只检验数据报文的首部不检验数据部分,这里不采用 CRC 检验码而采用简 单的计算方法;
源地址和目的地址:都各占4字节,分别记录源地址和目的地址;
IP地址
IP地址组成
它们可唯一标识 IP 网络中的每台设备 ,每台主机(计算机、网络设备、外围设备)必须具有唯一的地址
mac 属于物理地址,mac 地址不可变,一出厂就写死,标识惟一设备
ip 属于逻辑地址,逻辑地址可修改,人为赋予,可以修改,使用灵活,便于管理
ipv4 32位二进制,以十进制显示
ipv6 128位二进制,以十六进制显示
IPv4地址格式:点分十进制记法
显示格式 | IP地址 |
---|---|
32位进制 | 00001010000000000000000010011110 |
分组显示,每组8位 | 00001010.00000000.00000000.10011110 |
转十进制点分十进制记法 | 10.0.0.158 |
IP地址由两部分组成
-
网络 ID:标识网络,每个网段分配一个网络ID,处于高位
-
主机 ID:标识单个主机,由组织分配给各设备,处于低位
IP地址分类
IP类别 | 1-8位 | 9-16 位 | 17-24 位 | 25-32 位 |
---|---|---|---|---|
A类 | 网络ID,最高位0,十进制取值范围是 0-127 | 主机 ID | 主机 ID | 主机 ID |
B类 | 网络ID,前两位10,十进制取值范围是 128- 191 | 网络 ID | 主机 ID | 主机 ID |
C类 | 网络ID,前三位是110,十进制取值范围是 192 - 223 | 网络 ID | 网络 ID | 主机 ID |
D类(多播组播) | 网络ID,前四位是1110,十进制取值范围是 224 - 239 | |||
E类(保留) |
各类IP特点
A类 | B类 | C类 | D类 | |
---|---|---|---|---|
高8位范围 | 00000000 - 01111111 | 10000000 - 10111111 | 11000000 - 11011111 | 11100000 - 11100000 |
高8位10进 制 | 0 - 127 | 128 - 191 | 192 - 223 | 224 - 239 |
网络ID | 高8位 | 高16位 | 高24位 | |
主机ID | 低24位 | 低16位 | 低8位 | |
网络数 | 2^7-2=126 | 2^14=16384 | 2^21=2097152 | |
每个网络主 机数 | 2^24- 2=16777214 | 2^16-2=65534 | 2^8-2=254 | |
默认子网掩 码 | 255.0.0.0 | 255.255.0.0 | 255.255.255.0 | |
范例 | 114.114.114.114 | 180.76.76.76 | 223.6.6.6 |
公共和私有IP地址
公共IP地址:互联网上设备拥有的唯一地址
私有IP地址:不直接用于互联网,通常在局域网中使用
特殊地址
IP地址 | 说明 |
---|---|
0.0.0.0 | 不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络 |
255.255.255.255 | 限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主 机 |
127.0.0.1 -- 127.255.255.254 | 本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为 127.0.0.1 的数据包 |
224.0.0.0 -- 239.255.255.255 | 组播地址, 224.0.0.1 指所有主机,224.0.0.2 指所有路由器,224.0.0.5 指 所有OSPF路由器 |
169.254.x.x | 如果Win主机使用DHCP自动分配IP,而又无法从DHCP服务器获取IP,系 统会为主机分配这样地址 |
保留地址
在一个IP地址中,如果主机ID全为0,或主机ID全为1,则该地址是保留地址
如在B类127.16 网段中,172.16.0.0 和 172.16.255.255 为保留地址
子网掩码
CIDR:无类域间路由,目前的网络已不再按A,B,C类划分网段,可以任意指定网段的范围
CIDR 无类域间路由表示法:IP/网络ID位数,如:172.16.0.100/16
netmask子网掩码:32位或128位(IPv6)的数字,和IP成对使用,用来确认IP地址中的网络ID和主机 ID,对应网络ID的位为1,对应主机ID的位为0,范例:255.255.255.0 ,表现为连续的高位为1,连续的低 位为0
#示例
IP地址 172.16.0.0
子网掩码 11111111.11111111.00000000.00000000
子网掩码十进制表示 255.255.0.0