一、计算机网络概述
1.计算机网络的定义
计算机网络是一组自治计算机互联的集合
计算机网络就是把分布在不同地域的独立计算机以及专门的外部设备利用通信线路连接成一个大规模、功能强的网络系统,从而使更多的计算机传递信息,共享资源。
2.计算机网络的基本功能
资源共享
分布式处理与负载均衡
综合信息服务
3.计算机网络的演进
主机互联–局域网–互联网–因特网
4.计算机网络的基本概念
局域网:由用户自行建设,使用私有地址组件的网络。
城域网:由运行商或大规模企业建设,链接城市范围的网络。
广域网:由运营商建设,链接全国各个城域网的网络。
跨洋通信的介质:跨洋海底光缆系统
5.网络拓扑结构
总线型(弃用):同一时间只有一个设备占用总线;一个设备发出信号,其他设备均能感知;总线出现故障,整个总线网络瘫痪。
环形(弃用):同总线型,可采用多环处理单点故障。
星型:其他节点与中央节点直接相连;某条线路中断不会影响其他节点;中央节点故障会导致全网中断。
树型:是星型的变体,数据只有一条线路。
网状:节点之间有多条线路可达,可靠性好;组网成本高(防环),维护管理复杂。
6.网络数据交换
电交换:基于电话线的电路交换
优点:多路复用,网络资源利用率高
缺点:带宽固定,网络资源利用率低,初次链接建立慢
分组交换:以分组为单位存储转发
优点:多路复用,网络资源利用率高
缺点:延迟大。实时性差,设备功能复杂
7.衡量计算机网络的主要指标—带宽和延迟
影响网络性能的因素:传输距离,使用的线路,传输技术,带宽,网络设备性能等。
带宽:描述在一定时间范围内能够从一个节点传送到另一个节点的数据量。通常以bps为单位。
延迟:描述网络上数据从一个节点传送到另一个节点所经历的时间。
二、OSI参考模型与TCP/IP模型
1.OSI参考模型
(1)OSI参考模型层次结构
OSI参考模型定义了网络中设备所遵循的层次结构
层次结构的优点:
开放的标准化接口,接口不再封闭;
支持多厂商兼容性;
易于理解、学习和更新协议标准;
实现模块化工程,降低了开发实现的复杂度;
便于故障排除。
(2)OSI参考模型层次间的关系以及数据封装
OSI模型层次结构:
概念 | 释义 | 数据形式 |
---|---|---|
物理层 | 涉及在通信道上传递的原始比特流,定义了传输数据所需要的器械、电器、功能以及规程的特性,包括电压,电缆线,数据传输速率,接口的定义等 | 比特流 |
数据链路层 | 提供对物理层的控制,检测并纠正可能出现的错误,并且进行流量控制;MAC地址寻址 | 数据帧 |
网络层 | 决定数据包的最佳途径;网络地址层寻址;编址;路由 | 数据包 |
传输层 | 上层数据分段,建立端到端的链接 | 数据段 |
会话层 | 建立、维护、拆除应用程序间的会话;主机间通信 | 数据段 |
表示层 | 定义数据格式,结构;数据加密,压缩 | 数据段 |
应用层 | 为应用程序进程提供网络服务;文字处理、邮件、电子表格等 | 数据段 |
物理层:(双绞线):把数据信号转换成比特流在网络上传输。
数据链路层: (MAC地址,二层交换,网卡):把不可靠的物理线路的传输转化成可靠传输。地址寻址,数据成帧,流量控制,数据检错,数据重发。
1.以太网协议,“帧”
2.MAC地址
3.广播,“ARP”
网络层:(三层交换,路由器,IP地址,NAT技术):把网络地址转化成物理地址,并且决定数据给谁(路由)。
1.IP协议:由32个二进制组成,点分十进制。0.0.0.0-255.255.255.255
传输层:(TCP):提供端到端的数据交换,流量控制,数据包分割、排序。
1.端口:0-65535 ;
80:http
21:ftp
22:ssh
56:mail
llinux默认端口定义文件:#vim /etc/services
2.socket
3.udp/tcp
会话层:建立,维护,终止会话。
表示层:数据格式转化。(应用程序的数据------->网络数据)
应用层:(http,https,ftp,mail):为应用程序提供服务
2.TCP/IP模型
TCP/IP模型的层次结构
协议:
应用层----> HTTP、FTP、SMTP等
传输层---->TCP、UDP等
网络层---->IP、ICMP等
网络接口层---->ARP、RARP等
三、局域网与广域网的组网模式
1.组网设备与特点
局域网 | 广域网 | |
---|---|---|
网络层 | IP,IPX(淘汰) | IP |
数据链路层 | 以太网,令牌环(淘汰) | 以太网 |
物理层 | 双绞线,光纤,无线电波 | 光纤 |
EPON让光纤上可用以太网,让光纤应用于广域网。
常用的光介质和连接器:
多模光纤:传输多种不同波段不同角度的光;衰耗大,传输距离一般在千米以内;成本低。
单模光纤:传输单一波长的激光;衰耗小,传输距离可达到数千米;成本高。
网络设备:
集线器 | 交换机 |
---|---|
总线拓扑:广播式的转发 | 网络拓扑:设备两两互联 |
任意时间点只能由一台主机占用总线,连接的所有设备位于同一根总线 | 内部每两个接口都有一条独立线路,每个接口都是独立的冲突域 |
工作在物理层,没有寻址能力,所有数据泛洪时转发,不安全,效率低 | 工作在数据链路层,基于MAC寻址,数据可单点转发 |
2.CSMA/CD
由于以太网是一个多点接入,共享介质的网络。CSMA/CD(载波侦听多路访问/冲突检测协议)机制是以太网处理介质使用的核心工作机制。
载波侦听:
若线路上有载波存在,说明信道上有数据发送;反之,信道空闲。
冲突检查与避让:
四、IP基本原理
1.ip定义与网络结构
定义:
目前唯一的网络层协议标准
定义数据网络层的封装方式,编址方式。
网络结构:
ip网络由多个网段构成,每个网段对应一个链路。
路由器负责将网段链接起来,适配链路层协议,在网络之间转发数据包。
2.IP分装
Version:IP协议版本号,4/6.
IHL:IP头部长度。
Type of service:用于服务质量(qos)的处理,优先级以及流量管理、流量控制等。
Total Length:整个数据包的长度,包含数据部分。
Identification:唯一标识主机发送的每一个IP包。通常每发送一个包,其值会+1.
Flags:是否容许分片,1表示“是”,0表示“否”。
Fragment offset:分片偏移,分片在包中的位置。
Time to Live:设置的数据包可以经过的路由器的数目。一旦经过一个路由器,TTL值会减,当该值为0时,包被丢弃。初始值为64.实际上是一种防环措施。
Protocol:标识数据包内传递的数据所属的上层协议。IP用协议号区分上层协议。TCP的协议号为6,UDP的协议号为17.
Head Checksum:IP头部的校验和,用于检查头部的完整性
Source Address:源地址
Destination Address:目的地址
Options:选项
Padding:包填充
3.IP地址和地址映射
(1)IP地址格式和表示方法:
网络号用于区分不同的IP网络。
主机号用于标识该网络内的一个IP节点。
网络位长度和数字完全一致的地址属于同一网段。
(2)IP地址分类
(3)特殊的IP地址
- 主机部分全是0的IP地址称为网络地址。网络地址用来唯一标识一个网段。
- 主机部分全是1的地址称为网段广播地址。用来标识一个网段内的所有主机。
- 网络位为127的地址用于环路测试。
- IP地址全为0,代表所有网络,通常指定默认路由。
- IP地址全为1,代表全网广播地址。用于向网络的所有节点发送数据包。
(4)子网掩码
子网掩码,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0.
知道子网掩码,就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结构是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
- 子网掩码,又叫网络掩码,必须结合IP地址一起对应使用。
- 只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
- 子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上。
- 子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。
分类:
- 主类掩码:与自然分类掩码一致。(如192.168.1.0/24)
- VLSM:可变长子网掩码。(通过把子网掩码变长来把一个网络划分为多个子网,如192.168.1.0/27)
- CIDR:无类域间路由。(通过把子网掩码缩短来把多个网段聚合成一个网段)
划分思路:
借位数(n)
剩余位数(8-n)(一般情况)
借位段剩余位数(m)
计算:
子网数:2 ^n
可用IP:2^(8-n)(一般情况)
每两个子网的间隔位数:2^m
例:
1.求下列地址的网络地址和广播地址
(1)172.16.10.255/16
11111111.11111111.00000000.00000000
172.16.0.0:网络地址
172.16.255.255:广播地址
(2)192.168.1.47/27
2^3=8
2^(8-3)-2=30
网段 IP段 广播
192.168.1.0/28 192.168.1.1---192.168.1.30 192.168.1.31
192.168.1.32/28 192.168.1.33---192.168.10.62 192.168.1.63
192.168.1.64/28 192.168.1.65---192.168.1.94 192.168.1.95
…………
2.请问下列地址是否可以分配给主机
(1)192.168.10.31/28 (广播地址,不可用)
11111111.11111111.11111111.11110000(借4位)
2^4=16
2^4-2=14
网段 IP段 广播
192.168.10.0/28 192.168.10.1---192.168.10.14 192.168.10.15
192.168.10.16/28 192.168.10.17---192.168.10.30 192.168.10.31
192.168.10.32/28 192.168.10.33---192.168.10.46 192.168.10.47
(2)172.16.10.255/19 (可用地址)
11111111.11111111.11100000.00000000
2^3=8
2^(8-3)-2=30
网段 IP范围 广播
172.16.0.0/19 172.16.0.1---172.16.31.254 172.16.31.255
172.16.32.0/19 172.16.32.1---172.16.63.254 172.16.63.255
172.16.64.0/19
172.16.96.0/19
…………
3.请问下列地址中哪些地址在同一个网段内
192.168.10.34/28
192.168.10.53/28
192.168.10.31/28
192.168.10.61/28
2^4=16
2^(8-4)-2=14
网段 IP范围 广播
192.168.10.0/28 192.168.10.1---192.168.10.14 192.168.10.15
192.168.10.16/28 192.168.10.17---192.168.10.30 192.168.10.31
192.168.10.32/28 192.168.10.33---192.168.10.46 192.168.10.47
192.168.10.48/28 192.168.10.49---192.168.10.62 192.168.10.63
所以192.168.10.53/28和192.168.10.61/28在同一个网段
4.在192.168.1.0/24的C类主网内,需要划分出1个可容纳100台主机的子网,1个可容纳50台主机的子网,2个可容纳25台主机
的子网,应该如何划分?请写出每个子网的网络号、子网掩码、容纳主机数量和广播地址。
(从大到小)
24--借1位--->192.168.1.0/25
2^(8-1)-2=126
网段 IP范围 广播
192.168.1.0/25 192.168.1.1---192.168.1.126 192.168.1.127 (100)
24--借2位--->192.168.1.0/26
2^(8-2)-2=62
网段 IP范围 广播
192.168.1.128/26 192.168.1.129---192.168.1.190 192.168.1.191 (50)
24--借3位--->192.168.1.0/27
2^(8-3)-2=30
192.168.1.192/26 192.168.1.193---192.168.1.222 192.168.1.223 (25)
192.168.1.224/26 192.168.1.225---192.168.1.254 192.168.1.255 (25)
(5)IP相关协议
ARP协议
地址解析协议,把IP地址解析为MAC地址;
二层设备没有处理IP的能力;
同一个网段内部的寻址靠MAC地址。
工作原理:
A主机以广播的形式发送ARP查询请求,询问B主机的IP对应的MAC地址;
B主机以单播的形式回复A主机本机的MAC地址;
A主机把B主机的IP地址和MAC地址的映射关系写入了ARP缓存表。
ICMP协议
ICMP定义了错误报告和其他关于IP数据包处理的情况的消息;
ICMP可用于报告IP数据包传递过程中发生的错误、失败等信息,提供网络诊断功能;
ICMP消息可分为ICMP差错消息和ICMP查询消息。
(6)IP数据包转发原理
如果目的IP和本地IP属于同一个网段,会直接查询目的IP的MAC地址,并进行封装。
如果目的IP和本地IP不属于同一个网段,将会查询网关IP地址的MAC地址,并进行封装。
五、TCP和UDP原理
1.TCP/IP传输层的作用
(1) 数据分段
(2)用端口区分链接
(3)维护传输访问安全
2.TCP/UDP端口号
3.TCP头部封装格式
Source Port:源端口
Destination Port:目的端口
Sequence Number:序列号,用来标识TCP源端设备向目的端设备发送的字节流。
Acknoledgement Number:确认号,用来标识期望收到的下一个段的第一个字节,并声明此前的所有数据都已经正确无误的收到。
Data Offset:数据偏移,数据在传输层分段,用于分段重组。
Reserved:保留。
控制位:共六位,每一位标识一打开的控制功能:
(1)URG---紧急指针字段标志
(2)ACK---确认字段标志
(3)PSH---推功能
(4)RST---重置链接
(5)SYN---同步序列
(6)FIN---数据传送完毕
Window:窗口,通过告知对方主机接受能力来实现流量控制
Checksum:校验和,差错校验
Urgent Pointer:紧急指针,指向段内最后一个字节位置,这个字段只在URG标志被设置时才有效。
Options:选项
Data:数据
Padding:填充
4.TCP可靠性机制
(1)确认传递
(2)超时重传
5.会话建立与断开
三次握手:即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。
TCP连接的建立:
双方主机为了实现tcp的通信,所以首先三次握手
客户端主动发出了SYN,服务器端处于监听状态,随时等待客户端的请求信息;
服务端接收到了SYN请求,发送SYN_ACK,从而转换为SYN_REVIN;
客户端在发出了请求,从发出的那一刻close状态转换为SYN_SENT状态;
客户端在SYN_SENT状态中一旦收到了服务端发来的SYN_ACK之后,转换为ESTABLISHED状态,这时便可以开始传送数据了,
无论怎么传都是ESTABLISHED状态;
而服务器端收到了对方的ACK,同样处于ESTABLISHED状态。
TCP链接断开:
客户端从ESTABLEISHED状态,发起四次断开请求
客户端发起FIN请求,从而进入等待状态;
服务端收到断开请求之后,便发起ACK请求;
客户端收到服务端发来的ACK确认信息后,从而又发起FIN_2请求;
等待服务端发来的FIN请求之后,便确认服务端收到FIN并发送ACK之后,服务端便处于CLOSE_WAIT状态,便自己发送FIN,从
而进入LAST ACK模式,确认完后不能立刻断开,还需要等待一定的时间(大约240秒),确认报文是否传递给对方,于是转换
为CLOSED。
6.窗口机制
7.UDP协议基本原理
8.UDP与TCP的对比
TCP | UDP | |
---|---|---|
优点 | 传输可靠 | 占用带宽低,传输延迟小 |
缺点 | 占用带宽高,传输延迟大 | 没有任何可靠性机制 |
适用场景 | 对数据完整性要求高,对数据延迟要求低 | 对延迟要求高,数据完整性要求低 |