编程知识 cdmana.com

计算机网络笔记

计算机网络

什么是协议

​ 对等层的实体,在通信当中应当遵守的规范的集合

分组交换

将整块数据,分为一个个的包,通过存储转发的方式,在各个结点之间进行传输

优点:共享性,按需使用

缺点:传输延迟较高

当 到达速率>链路的输出速率

  1. 分组会排队,等待传输
  2. 当路由器的缓存用完之后,分组会被抛弃
分组交换网络
  • 虚电路网络
    • 有链接(体现在所经过的所有中间结点之上)
  • 数据报网络
    • 无连接
服务和协议的关系

本层协议要借助下层所提供的服务才能实现,实现协议的目的是为了向上层提供更好的服务

五层

  1. 物理层

    将数据转换为物理信号承载在媒体之上,从一点传输到另外一点

    将物理信号转换为数据

    单位为bit

  2. 链路层(交换机所在)

    在物理层服务的基础之上在相邻两点之间传输以为单位的数据

    PPP协议等

  3. 网络层(路由器所在)

    在链路层服务的基础之上提供以分组为单位端到端的传输

    选择路由(BGP等协议)和转发(IP协议)

  4. 传输层

    在端到端的基础上完成进程到进程的逻辑的通信

    将网络层提供的不可靠的服务变为可靠的

    单位:报文段

    TCP UDP

  5. 应用层

    在传输成服务的基础上,完成应用报文和应用报文之间的交互

    FTP、HTTP、DNS

七层协议

在这里插入图片描述

  1. 表示层

    提供表示转换,应用层只需关系语义方面的信息,无需关心具体的表达

  2. 会话层

    会话管理

    数据交换的同步,检查点,恢复

应用层

什么是socket(TCP)

socket是在面向连接的服务当中,本地的IP本地的TCP端口,对方IP对方TCP端口的一个本地标识

是两个端节点连接关系的一个代表

UDP中的socket

本地IP 本地UDP端口

HTTP

无状态协议

服务器并不维护关于客户的任何信息

HTTP1.0

非持久HTTP连接(传输完成即断开)

最多只有一个对象在TCP连接上发送

下载多个对象需要多个TCP连接

HTTP1.1

持久HTTP连接

可传输多个对象

默认流水线传输的方式(并发传输,多个连接)

Cookies

用以维护客户端和服务器之间的状态

FTP (文件传输协议)

有状态

控制命令和数据传输(服务端主动向客户端发起数据传输的连接)分别在两个TCP连接上进行

Email

三个组成部分

  1. 用户代理
  2. 邮件服务器
  3. 简单邮件传输协议: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字节数据)。接收方的再向控制方发送窗口控制

拥塞控制方法

  1. 通过网络辅助信息的拥塞控制(ATM)

  2. 端到端的拥塞控制(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

Scroll to Top