计算机网络知识总结
一、概述
1、计算机之间的两种通信方式:
①客户-服务器:客户应用进程请求服务,服务器应用进程提供服务。
②对等链接P2P:运行对等链接软件,不分客户机与服务器,每台主机即是服务器又是客户端。
2、计算机网络性能指标
速率:就是指发送端在链路上每秒可以发送多少bit;请注意这与数据从链路的一端到另外一端的速度无关,数据在链路上的传送速度只和物理介质有关。
带宽:发送端在链路上可以发送的最高速率。
吞吐量:发送端在链路上的实际发送速率。
举例:链路可承受的最高数据率是1G/bit,电脑发送数据的速率是100M/bit,就没有问题。电脑的发送速率超过1G/bit数据就会丢失。吞吐量指实际速率,电脑上传或下载的数据率只要小于带宽,那么吞吐量就等于此时的上传下载速率。
3、体系结构
计算机各层以及其协议的集合就是网络的体系结构。
OSI的七层结构:应用层、表示层、会话层、传输层、网络层、链路层、物理层
TCP/IP四层结构:应用层、传输层、网络层、网络接口层
五层协议:应用层、传输层、网络层、链路层、物理层。
每一层的作用和协议:
应用层:通过应用进程的交互完成特定的网络应用、数据单元是报文(DNS、HTTP、SMTP、FTP)
表示层:对数据翻译、加密、压缩
会话层:建立管理和终止会话
传输层:负责为两台主机应用进程间的通信、数据单元是报文段或用户数据报(TCP、UDP)
网络层:负责两台主机间的通信,数据单元是IP数据报(IP、ARP、ICMP、RIP、OSPF)
链路层:将IP数据报封装成帧,在网络节点间传输(PPP,CSMA/CD)
物理层:通过介质传输比特,规定物理特性
二、物理层
重要设备集线器:每一个借口简单的转发bit
三、链路层
1、链路层的三个基本问题
①封装成帧
②透明传输:插入一个转义字符,转义数据中的帧定界符
③差错检测:CRC校验
2、两种通信信道
(1)点对点信道
PPP协议:用户计算机与ISP的数据链路层协议。
(2)广播通信方式
总线以太网使用协议
CSMA/CD:不管发送前发送中主机都要不停监听信道,发送前监听为了获得发送权,边发送便监听是为了即使检测碰撞。
拥有自学能力交换机的出现取代了总线型以太网
自学能力:
①A主机通过交换机先发送一条消息给B主机,如果不存在A的地址则记录A的地址以及接口信息
②在交换表中寻找B主机的地址,若有则在相应接口转出;若没有则广播,只有B主机才能够收到信息
③在B主机回应A主机时,交换机记录主机B的MAC地址及接口信息。
3、虚拟局域网VLAN
通过交换机可以很容易划分VLAN,会在MAC帧中插入VLAN标记字段,消息只能在相同的VLAN中广播。
4、MAC帧数据格式
MAC是48位的物理地址固化在适配器(网卡)的ROM中
IPv4是32位的逻辑地址因软件而存在
①目的地址6字节
②源地址6字节
③类型2字节:标注双层使用的是什么协议,以便把MAC帧的数据部分交给相应协议
④数据字段:IP数据报
⑤FCS:4字节的CRC检验序列
⑥还可能存在VLAN标记字段
四、网络层
1、IP地址
(1)分类IP地址
IP地址定义:网络号+主机号
A类:网络号占一个字节 以0开头 第一个字节:1 ~ 126
B类:网络号占两个字节 以10开头 第一个字节:128 ~ 191
C类:网络号占三个字节 以110开头 第一个字节:192 ~ 223
一般网络号为0全的不指派,代表本网络
A类地址网络号全1不指派,127.0.0.1用于本地回环测试
主机号全0的也不指派,代表本主机
主机号全1不指派,代表本网络全部主机
(2)划分子网
为解决两级分类IP地址不够灵活,地址空间利用率低而引入的三级IP地址,只在网络内部可见
定义:网络号+子网号+主机号
路由表项:网络号+子网号 子网掩码 下一跳
不划分子网默认子网掩码
A类子网掩码:11111111 00000000 00000000 00000000
B类子网掩码:11111111 11111111 00000000 00000000
C类子网掩码:11111111 11111111 11111111 00000000
(3)划分超网(CIDR)
定义:网络前缀 + 主机号
斜线记法:128.250.1.23/25 表示前25位是网络前缀
(4)IP地址的分组转发算法
①能够直接交付就直接交付
②看有没有特定主机路由
③路由表中有没有相应的网络
④看有没有默认路由
⑤报错
2、ARP
主机与路由器中都存在路由表与映射表
每一个节点都维护一个ARP高速缓存,高速缓存中存放本网络的IP地址到硬件地址的映射表
主机A与本局域网中的主机B通信
①主机A查看映射表是否有主机B的IP地址,如果有则将硬件地址写入MAC帧
②如果没有,主机A广播ARP请求分组
③收到分组的主机B,将其硬件地址写入回应A的消息中
主机A与B在不同的局域网中
①主机A先向路由器R广播发送ARP请求分组
②路由器R,将其硬件地址回应B
③如果路由器R的路由表中有主机BIP地址则ARP解析,如果没有则广播
3、IP数据报格式
①版本:IP协议版本
②首部长度:以四字节为单位
③区分服务:用来获得更好的服务
④总长度:指整个数据报的总长度;分片后指每一个分片的总长度
⑤标识:标识相同的分片,源于同一个数据报
⑥标志:MF=1 后面还有分片;DF = 1不能分片
⑦片偏移:8个字节为单位,分片后在原分组中的相对位置
⑧生存时间:指跳数,防止数据在网络中无限制的传播
⑨协议:数据部分是何种协议,以便目的主机交由上层处理
⑩首部校验和:只校验数据报首部
⑪源地址
⑫目的地址
⑬可变部分:支持扩展的其他部分
4、ICMP
ICMP:允许主机或路由器提供差错报告或异常情况报告
(1)ping命令
主机一连发送四个询问报文,如果目的主机正常工作便会响应发出回答报文
(2)tracert
①源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP数据报
②第一个数据报TTL设置为1,路由器R收下,TTL减1,由于TTL=0路由器R要丢弃并向源主机发送ICMP差错报文
③第二个数据报TTL设置为2,。。。。以此类推直达目的主机传回ICMP差错报文
5、常用两种路由选择协议简述
RIP:路由信息协议,使用距离向量法,适用于小型的网络。
①仅和相邻路由器交换信息
②一次交换路由器已知全部信息,信息项:目的网络、距离、下一跳
③每隔固定时间或发生拓扑变化时,更新信息
OSPF:开放最短路径优先,使用迪杰斯特拉算法,适用于较大型网络。
①使用泛洪法向所有路由器发送消息
②发送的消息是本路由器与相邻路由器的链路代价
③链路代价发生变化,更新信息
6、现在普遍使用的是128位的IPv6
五、传输层
1、UDP数据报格式
①源端口号:16位
②目的端口
③长度:用户数据报的长度
④校验和
2、TCP报文段格式
①源端口和目的端口:各占16位
②序号:本报文段数据部分第一个字节的序号
③确认序号:希望收到对方下一个报文段的第一个数据字节序号
④数据偏移:四字节为单位,实际为TCP报文段首部长度
⑤保留:留给今后使用
⑥URG:标识有紧急数据,尽快传送,与紧急指针配合使用
⑦紧急指针:指出紧急数据字节数
⑧确认ACK:ACK=1,确认序号才有效
⑨推送PSH:PSH=1,不等到缓存满,尽快交付应用进程
⑩RST:RST=1,表明链接出现严重差错,需要重新建立链接
⑪SYN:在建立链接时用来同步序号
⑫FIN:表示终止,用来释放一个链接
⑬窗口:接收方目前允许对方发送的数据量
⑭校验和
⑮选项:扩展功能
3、TCP与UDP的比较
①TCP面向链接的可靠传输,UDP面向非连接的不可靠传输
②TCP数据单元是报文段,UDP是用户数据报
③TCP有拥塞控制连接管理,因此开销大,UDP开销小传输快
④tcp只支持一对一服务,UDP支持一对一、一对多、多对多
4、TCP如何保证可靠传输
可靠传输要解决两个问题:
①要保证A传给B的数据的正确性
②要保证B总是来得及接受A发送来的数据
解决问题①通过超时重传机制,解决问题②通过滑动窗口机制
在发送方缓存中维持有发送窗口,在接收方缓存中维持有接受窗口,发送窗口的大小由接收窗口决定。
接收方对每次按序到达的最后一个字节确认,发送方收到的确认有效,则滑动窗口。
5、TCP流量控制,接收方窗口为0时怎么办
TCP连接的双方都维持一个计时器,当一方窗口为0时,计时器时间到,就发送探测报文。若回应报文中,窗口为0则重置计时器,窗口不为0,正常工作。
6、拥塞控制
慢开始:拥塞窗口发送的数据被确认多少增大多少,成指数增长,前期增长缓慢
拥塞避免:拥塞窗口发送的数据被确认,窗口加1,成线性增长,发生拥塞门限值减半,慢开始。
快重传:发送方接连收到三个重复确认,就立刻重传丢失报文段
快恢复:发生快重传时,门限值减半,采用拥塞避免算法
7、流量控制与拥塞控制的区别
流量控制是一个端到端的问题,通过抑制发送方的发送速率是的接收方来得及接收。
拥塞控制是全局性的问题,涉及到所有的主机、路由器、链路,往往只知道发生拥塞而不知问题发生在何处。
8、TCP的链接管理
(1)TCP建立链接
①为什么是三次握手而不是两次握手
防止已失效的连接请求报文,建立连接。例如,主机A的连接请求超时但未丢失,主机A会重传请求报文与B建立连接;但当连接释放后,若A的失效连接请求报文到达B,采用两次握手的话就会建立无效连接。
②那可以采用四次握手嘛
可以,将第二次握手的报文分成两个即可,一个同步报文一个确认报文
(2)释放连接
①为什么主机A还要进行时间等待啊
主要原因是为了使得确认报文丢失可以重传,保证主机B可以正常关闭。其次是经过一定时间的等待失效报文便不会出现。
②建立连接后客户机突然故障怎么办啊
TCP连接设有保活计时器,时间到了会发送探测报文,一连发送几个都不回应会自动关闭链接。
9、使用UDP或TCP的应用
UDP
①DNS:域名解析系统,53号端口
②TFTP:简单文件传送协议
③DHCP:动态主机配置
TCP
①HTTP:80端口
②TFP
③SMTP
10、TCP的攻击漏洞
SYN攻击+IP欺骗
通过发送大量的半链接请求,伪造大量虚假IP消耗服务器资源以致服务器瘫痪。
六、应用层
1、DNS域名解析系统
简单原理:当应用进程需要把主机名解析为IP地址时,就调用解析程序,把带解析的域名放入DNS请求报文中,以UDP用户数据报的方式发送给域名服务器,待服务器查询后将目的主机IP地址放入回应报文。
2、FTP文件传送协议
简单原理: 基于TCP和客户服务器实现的,服务器端有一个用于接收新请求的主进程,和一个用于处理请求的从属进程。
3、HTTP协议
定义了怎样向万维网服务器请求文档和服务器如何把文档传回浏览器。
4、SMTP简单邮件传送协议
5、DHCP动态主机配置协议
使用UDP服务,给网络服务供应商自动分配IP地址,内部网络管理员集中管理计算机提供手段。
6、NAT协议
将保留地址转换为合法地址的协议