计算机网络知识

1.简介:

1.1 发展历史:

  1. 第一台电子计算机:ENIAC
  2. 理论发展:提出封包交换(将数据分成不同的小块进行传输)
  3. 材料发展:
  • 同轴电缆:一根导体,速度慢。
  • 双绞电缆:导线两两缠绕,速度由导体材料决定,速度快。
  • 光纤:光传输,速度更快。
  1. 操作系统:分时操作系统的产生促进了发展

第一个计算机网络:
1969年在美国出现的‘ARPANET’(阿帕网),仅连接了4个节点。

5G:第五代蜂窝网络,低延迟,速度快。
蜂窝网络:又称移动网络(mobile network),由于构成网络覆盖的各通信基地台的信号覆盖呈六边形,从而使整个网络像一个蜂窝而得名。

1.2 OSI七层模型:

特点:下层为上层服务

  • 应用层:
    就是显示用户在软件中看到的数据,比如 图片、音乐、文字等。只关心业务逻辑,不关心数据的传输。
  • 表示层:
    负责协商用于传输的数据格式,并转换数据格式。对数据进行编码加密,将数据转换为用户可以看明白的数据传给应用层。
    在这里插入图片描述
  • 会话层:
    负责管理两个连网实体间的连接。先建立连接,再发起通讯。
  • 传输层:
    负责将数据从一个实体传输到另一个实体,处理的是数据的实际传输过程,不负责数据传输的方式,建立TCP或者UDP连接进行数据的传输。

传输层的能力

  1. 数据的分隔重组:将数据拆分后按顺序重组。(进行数据的拆分并封包)
  2. 数据加密解密:SSL/SSH
  3. 端口寻址
  • 网络层:
    负责把一个封包从一个ip地址传输到另一个ip地址。
    基于ip地址进行路由转发,核心是路由技术。
  • 数据链路层:
    确保两个临近设备间的数据传输,并隐藏底层实现。(只关心把那些数据从哪些设备发送到哪些设备)
    帧同步、数据纠错
  • 物理层:
    封装底层实现,并提供接口供数据链路层使用。
    基本单位:比特

注:因为实现某些功能可能不需要会话层和表示层,所以在后面的简化中将应用层、表示层和会话层合为了一体,这就是我们后面学习的tcp/ip的五层结构模型。

1.3 Tcp/Ip互联网协议群:

5个问题:

  • 报文拆分:应用于数据量较大,网络底层设备不支持的情况下,将大量数据拆分成多个数据块。
  • 增加协议头:数据分块后在接收端接受时需要重组,所以需要使用头部添加一些描述字段。将数据库分为协议头和消息体。
  • 数据在相邻设备间的数据传递:
  • 路由和寻址:
    路由算法:通过算法寻找下一个到达的节点。
  • 数据重组

5层模型:

  • 应用层:数据从一个应用发往另一个应用的过程。
  • 传输层:主机到主机的传输。报文的拆分重组。添加协议头。
  • 网络层:提供路由和寻址。
  • 数据链路层:两个节点之间的物理连接。
  • 物理层:负责0-1信号的传输。

5层模型和osi模型的区别:

  1. 删除了会话层,因为会话本身就是虚拟的。
  2. 删除了表示层,因为并不是所有都需要将数据进行编码(比如 PING操作)。

协议可选性:

  • 传输层:TCP协议、UDP协议、TLS/SSL、SCTP等
  • 网络层:IP协议(ipv4和ipv6)、ICMP协议、IPsec协议

2.TCP协议:

2.1 定义:

是一个可以提供可靠的、支持全双工连接导向的协议,因此在客户端和服务端之间传输数据时必须先建立一个连接。

  • 连接:是虚拟、抽象的概念,是传输双方的约定加程序手段形成的抽象概念,使通信更加稳定、安全。同时连接也被称为会话。
  • 全双工:
  1. 单工:任何时刻数据只能单向传输。
  2. 半双工:允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输。
  3. 全双工:任何时刻都能双向发送数据。
  • 可靠性:确保数据无损传输(使无序的数据恢复原有顺序)

2.2 工作过程:

  • 建立连接的过程(三次握手)
    1.客户端向服务端发送请求 SYN
    2.服务端接收到了请求,准备好连接后向客户端发送ACK和SYN(服务端也要请求一次客户端)
    3.客户端接收后准备好后向服务端发送ACK
    在这里插入图片描述
  • 断开连接的过程(四次挥手)
    1.客户端向服务端发一个断开连接的FIN请求
    2.服务端收到请求后给客户端发一个ACK
    3.等服务端做好断开连接的准备工作后向客户端发送一个FIN请求
    4客户端返回服务端一个ACK(连接就是有来有回)
    在这里插入图片描述
  • 传输数据:
    需要实现:报文拆分、增加TCP头、数据重组
  • 报文拆分:
    TCP会将应用层的数据拆分成数据块,目的:防止应用层的数据可能过大、使这些数据并行传输。
  • 顺序保证:
    因为TCP的一个性质是要求数据无损并按顺序传输,报文拆分后数据变成了一个个的数据块,为实现顺序传输在每个数据块上加上顺序编号。
    TCP序号:发送序号(seq)、接受序号(ack)
    一个端的发送序号是一个端的接受序号
    在这里插入图片描述
    在这里插入图片描述
  • TCP头:
    在这里插入图片描述
    还有一些标志位:
    在这里插入图片描述
  • TCP协议周边配置:
    1.纠错能力:保证数据的可靠性:拥有一个16bit的纠错和Checksum,将原文映射到一个不可逆的16bit编码中,这样就可以知道原文传输过程中有没有发生变化。一旦出错,接受方就丢掉这个数据不返回序号给发送方,这样发送方就会再发一条数据过来。
    2.流控能力:让发送和接受方协商一个合理的收发速率,让两边都可以稳定的工作。利用滑动窗口。

3. IP协议:

全程:Internet Protocol 网络层协议
两种架构:IPv4(最广泛的互联网协议)和IPv6
并不要求预先生成一个连接,不保证数据可靠性,数据可靠性是传输层协议保证的。
网络层需要解决的3个问题:延迟、吞吐量、丢包率

3.1 工作原理:

  • 分片:
    因为ip是通过下面局域网传输数据,可能局域网每次只能传一定大小的数据,所以需要将数据切成分片,这样适配底层传输网络。
    IP协议也可以不分片,但如果数据过大底层会直接将包丢掉。

  • 增加协议头(ip封包):
    在这里插入图片描述在这里插入图片描述

  • 延迟、吞吐量、丢包率:
    延迟:1bit的数据从网络的1个终端传到另一个终端所需要的时间。
    吞吐量:单位时间内可以传输的平均数据量。
    丢包率:发出去的封包没有到达目的地的比例。
    我们都希望低延迟、高吞吐量、低丢包率、低成本,但是很多时候鱼和熊掌不可兼得,所以ip协议头中的 Type of Service就是在这4种情况中进行选择。

  • 寻址:
    定义:给一个地址,然后找到需要的东西。
    方法:逐级寻找
    1.先将ip地址与子网掩码做and和,找到需要的顶级网络IP地址,将ip封包发给相应的顶层网络。
    2.再将IP地址与下一级子网的子网掩码做and和,找到下一级网络地址。
    3.重复第2步。
    4.定位设备,找到设备所在的子网,最终找到设备号。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 路由:
    如果寻找的ip地址不在局域网中,需要路由找到去往对应网络的路径。
    ip地址和子网掩码位于运算是由路由算法实现的。
    在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值