计算机网络
什么是协议
对等层的实体,在通信当中应当遵守的规范的集合
分组交换
将整块数据,分为一个个的包,通过存储转发的方式,在各个结点之间进行传输
优点:共享性,按需使用
缺点:传输延迟较高
当 到达速率>链路的输出速率
- 分组会排队,等待传输
- 当路由器的缓存用完之后,分组会被抛弃
分组交换网络
- 虚电路网络
- 有链接(体现在所经过的所有中间结点之上)
- 数据报网络
- 无连接
服务和协议的关系
本层协议要借助下层所提供的服务才能实现,实现协议的目的是为了向上层提供更好的服务
五层
-
物理层
将数据转换为物理信号承载在媒体之上,从一点传输到另外一点
将物理信号转换为数据
单位为bit
-
链路层(交换机所在)
在物理层服务的基础之上在相邻两点之间传输以帧为单位的数据
PPP协议等
-
网络层(路由器所在)
在链路层服务的基础之上提供以分组为单位端到端的传输
选择路由(BGP等协议)和转发(IP协议)
-
传输层
在端到端的基础上完成进程到进程的逻辑的通信
将网络层提供的不可靠的服务变为可靠的
单位:报文段
TCP UDP
-
应用层
在传输成服务的基础上,完成应用报文和应用报文之间的交互
FTP、HTTP、DNS
七层协议
-
表示层
提供表示转换,应用层只需关系语义方面的信息,无需关心具体的表达
-
会话层
会话管理
数据交换的同步,检查点,恢复
应用层
什么是socket(TCP)
socket是在面向连接的服务当中,本地的IP本地的TCP端口,对方IP对方TCP端口的一个本地标识
是两个端节点连接关系的一个代表
UDP中的socket
本地IP 本地UDP端口
HTTP
无状态协议
服务器并不维护关于客户的任何信息
HTTP1.0
非持久HTTP连接(传输完成即断开)
最多只有一个对象在TCP连接上发送
下载多个对象需要多个TCP连接
HTTP1.1
持久HTTP连接
可传输多个对象
默认流水线传输的方式(并发传输,多个连接)
Cookies
用以维护客户端和服务器之间的状态
FTP (文件传输协议)
有状态
控制命令和数据传输(服务端主动向客户端发起数据传输的连接)分别在两个TCP连接上进行
三个组成部分
- 用户代理
- 邮件服务器
- 简单邮件传输协议:SMTP
SMTP协议(25端口)
使用持久连接,传送到接收方的邮件服务器
要求报文为7位ASCII编码
邮件访问协议
-
POP
无状态协议
使用下载并删除的模式
-
IMAP
在服务器上处理存储的报文(允许远程的目录维护)
有状态
下载并保存模式
DNS
提供域名到IP的解析服务
运行过程
- 应用调用解析器
- 解析器作为客户向Name Server发出查询报文
- Name Server返回响应报文
P2P
每个客户端即是客户端又是服务器
DHCP
自动为用户主机配置网络信息
基于UDP
工作过程
-
DHCP服务器启动 端口默认为UDP67
-
新来的客户机通过广播的方式发送DHCP发现报文
此时源地址为0.0.0.0
目的地址为255.255.255.255(广播地址)
报文中包含 事务ID 和客户机MAC地址
-
DHCP通过广播的方式发送报文
报文中含有
事务ID IP地址、子网掩码、地址租期、默认网关、DNS服务器地址
-
客户机选择一个IP地址,并向DHCP服务器发送IP租用请求
-
服务器向客户机发送确认报文,允许该IP的使用
传输层
TCP(提供可靠的字节流的服务)
- 多路复用,解复用
- 拥塞控制
- 流量控制
- 建立连接
UDP(提供不可靠的数据报的服务)
- 多路复用,解复用
- 不建立连接
- 报文段头部小(开销小)
适合流媒体、事务性的应用
UDP校验和
用于检测被传输报文段中的差错
-
发送方
将报文段内容视为16bit的整数
校验和:报文段的加法和
发送方将校验和放在UDP的校验和字段
-
接收方:
计算 接收到的报文段的校验和
如果不相同:一定有错误,将其抛弃
如果相同:不一定不错,可能会有残存错误
多路复用
从多个socket接收来自多个进程的报文,根据socket对应的IP地址和端口号等信息对报文段用头部加以封装
解复用
根据报文段头部的IP地址和端口号将接收到的报文段发给正确的socket(找到相应进程)
可靠数据传输(RDT)原理
数据错误:
成功确认
序号
应对数据丢失 :超时重传
滑动窗口协议
TCP流量控制
利用滑动窗口机制实现
接收方通过 rwnd 可设置发送方的窗口大小,通过控制发送方的窗口大小来实现流量控制的目的
若,接收方将控制方的窗口设为0,控制方会启动一个持续计时器,持续计时器超时后,向接收方发送零窗口探测报文(1字节数据)。接收方的再向控制方发送窗口控制
拥塞控制方法
-
通过网络辅助信息的拥塞控制(ATM)
-
端到端的拥塞控制(TCP)
路由器不向主机反馈有关拥塞的信息
- 路由器负担较轻
- 符合网络核心简单的TCP/IP架构原则
端系统根据自身得到的信息,判断是否发生拥塞,从而采取动作
TCP的拥塞控制
-
如何检测拥塞
某个段超时:拥塞
得到3次重复的ACK:轻微拥塞(
接收方收到乱序段
-
速率控制
维持一个拥塞窗口的值 CongWin
发送端限制已发送但是未确认的数据量的上限 <=CongWin
- 超时时:CongWin降为一个MSS,进入慢开始阶段(SS)然后再倍增到CongWin/2,从而进入拥塞避免阶段(CA)
- 3个重复ACK时:降为拥塞避免阶段(CongWin/2)
- 其他
- SS阶段:加倍增加
- CA阶段:线性增加
TCP连接
建立连接的目的
使TCP双方能够感知到对方的存在
使TCP双方能够商议一些参数(如最大窗口值,是否使用窗口扩大选项和时间戳选项以及服务质量等)
使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
三报文握手
四次报文挥手
网络层
关键功能
-
转发功能
将分组从路由器的输入接口转发到合适的输出接口
-
路由
使用路由算法来决定发送主机到目标接收主机的路径
CIDR 无分类域间路由
使用斜线记法,将IP地址的网络前缀和主机号划分开
通用转发
缺点:
所需网络设备众多,升级困难,部署困难,管理困难
SDN
一个不同的(通常是远程的)控制器和CA交互,控制器决定分组转发的逻辑(可编程),CA所在的设备执行逻辑
优点:
水平集成控制平面的开放实现,创造出好的产业生态,促进发展
集中式实现控制逻辑,网络管理容易
基于流表的匹配+行动的工作方式允许“可编程”的分组交换机
网络设备数据平面和控制平面分离
数据平面——分组交换机
- 将路由器、交换机和目前大多数网络设备的功能进一步抽象成:按照流表(由控制平面设置的控制逻辑)进行PDU(帧、分组)的动作(包括转发、丢弃、拷贝、泛洪、阻塞)
- 统一化设备功能:SDN交换机(分组交换机),执行控制逻辑
控制平面-控制器+网络应用
- 分离、集中
- 计算和下发控制逻辑:流表
路由选择算法
- LS路由选择算法(迪杰斯特拉算法)
版权声明
本文为[ordinaryBlog]所创,转载请带上原文链接,感谢
https://blog.csdn.net/kang2411212/article/details/122354608