计算机网络---深入了解

计算机网络笔记

OSI七层模型

  1. 应用层:只关心业务逻辑,不关心数据的传输。
  2. 表示层:负责协商用于传输的数据格式,并转换数据格式。
  3. 会话层:建立连接,维持通信,释放连接。
  4. 传输层:负责将数据从一个实体(一个服务器或应用)传输到另一个实体,但不负责数据传输的方式(这是网络层负责的)。负责将数据进行拆分并封包。
    功能
    - 数据分割重组:将数据拆分后按顺序重组。
    - 纠错:在数据传输过程中出现问题后采取方式进行纠正(重发或其它)
    - 管理连接:处理数据的频繁交换
    - 流量控制:控制传输数据的速率
    - 端口寻址:标明参与传输的实体的端口号
  5. 网络层:负责将一个封包从一个 IP 地址传输到另一个 IP 地址。
  6. 数据链路层:确保两个临近设备间数据的传输,并隐藏底层实现。
  7. 物理层(光纤、电缆):封装和隐藏具体的传输手段,并且提供稳定的传输接口。

TCP/IP 协议群的5层模型

  1. 应用层
  2. 传输层:TCP协议、UDP协议、TLS/SSL、SCTP等
  3. 网络层:IP协议(ipv4 和 ipv6)、ICMP协议、IPSec协议
  4. 数据链路层
  5. 物理层
    在这里插入图片描述

TCP协议

概述:TCP全名是(Transport Control Protocol),是一个可以提供可靠的(数据无损传输)、支持全双工(任何时候都可以双向传输数据)、连接导向的协议,因此在客户端和服务端之间传输数据的时候,是必须先建立一个连接的。

三次握手

在这里插入图片描述
第一次握手:客户端发起连接请求(SYN同步)
第二次握手:服务端响应 ACK 以及 SYN。(响应可以连接,并且询问客户端准备好连接了吗?)
第三次握手:客户端响应可以开始连接了。

四次挥手

在这里插入图片描述
第一次挥手:客户端发送(FIN)断开连接请求。
第二次挥手:服务端发送(ACK)表示收到断开请求。
第三次挥手:服务端处理好服务器内部事务,确认可以断开连接,发送(FIN)可断开请求。
第四次挥手:客户端确认断开连接。

TCP传输数据

步骤

  1. 报文拆分
  2. 增加TCP头
  3. 数据重组
    在这里插入图片描述
报文拆分

报文拆分
TCP 会将应用层的数据分割成 TCP段(segement)再进行传输。
在这里插入图片描述
为了保证传输顺序,在发送时会将每个 TCP段进行标号,顺序发送出去,乱序到达接收方,接收方再进行数据重组。
在这里插入图片描述
设置两个序号:一个是发送序号(Seq),一个是接受序号(ACK)。
客户端的发送序号就是服务器端的接受序号。
在这里插入图片描述

TCP报文段包括:TCP头部 + TCP段数据

TCP头包含
1. 源端口:描述发送方机器上的应用
2. 目标端口:描述接受方服务器上的应用
3. 发送序号(Seq)/接受序号(Ack)

TCP头的标志位

在这里插入图片描述

TCP头部结构

TCP头结构

TCP纠错 和 CheckSum

TCP 拥有一个 16 bit 的 CheckSum字段(类似摘要)
CheckSum 是一个函数,把原文映射到一个不可逆的16位的编码中,这样就可以知道原文传输过程中有没有发生变化。

TCP 的流控能力

在这里插入图片描述
TCP滑动窗口
作用:(1)提供TCP的可靠性;(2)提供TCP的流控特性
TCP的滑动窗口的可靠性也是建立在“确认重传”基础上的。
发送窗口只有收到对端对于本段发送窗口内字节的ACK确认,才会移动发送窗口的左边界。
接收端可以根据自己的状况通告窗口大小,从而控制发送端的接收,进行流量控制。

想了解更详细的重传和滑动窗口可参考:https://www.cnblogs.com/yangjiannr/p/7391342.html

IP协议

IP协议可能遇到的问题

在这里插入图片描述
网络层要解决的三个问题
在这里插入图片描述

IP协议的工作原理

在这里插入图片描述

分片

在这里插入图片描述

IPv4 协议头

在这里插入图片描述
在这里插入图片描述

延迟、吞吐量、丢包率

在这里插入图片描述

寻址

在这里插入图片描述
用IP地址与子网掩码进行&计算逐级寻址
在这里插入图片描述

路由

在这里插入图片描述

IPv6协议

IPv6 的工作原理

在这里插入图片描述

IPv6 和 IPv4的区别

地址不同**

在这里插入图片描述

IPv6地址简写
  1. IPv6 的地址可以简写,多个0000可以简写为 ::
  2. 开头的0可以不写
  3. 中间的0000可以简写成一个0
    在这里插入图片描述
寻址不同

全局单播
在这里插入图片描述
** 本地单播**
本地地址必须以fe80为前缀。
在这里插入图片描述
分组多播
在这里插入图片描述
IPv6 新设备接入
在这里插入图片描述
在这里插入图片描述

UDP 协议

在这里插入图片描述
传输层才可附带端口号,网络层无法附带端口号。

UDP 封包格式

在这里插入图片描述

UDP 和 TCP 的区别

在这里插入图片描述

HTTP协议

DNS工作原理

在这里插入图片描述

DNS Query 的分级缓存策

在这里插入图片描述

DNS概述

在这里插入图片描述

A记录:定义ipv4地址

在这里插入图片描述

AAAA记录:定义ipv6地址

在这里插入图片描述

CNAME 记录:定义域名的别名

在这里插入图片描述

MX 记录:定义邮件服务器所在的位置

在这里插入图片描述

NS记录

在这里插入图片描述

SOA记录

在这里插入图片描述

TXT记录

在这里插入图片描述

内容分发网络(CDN)

在这里插入图片描述

HTTP请求头:key-value的形式

常见的请求头有:
  • Content-Length:发送/接受 body 内容的长度。
  • User-Agent:记录访问的客户端的浏览器,操作系统信息。
  • Content-Type:请求数据的媒体类型。
  • Origin:描述请求的来源地址。(从哪里跳转过来的----淘宝的访客记录有使用到)
  • Accept:HTTP协议协商能力的体现,用于建议服务端返回何种数据媒体类型。
  • Referer:记录上一张页面的URL
  • Connection:决定 HTTP 链接(不是TCP链接)是否再当前事务完成后关闭。(close、keep-alive)

HTTP的方法

  • GET:从服务器获取资源。
  • POST:提交表单到服务器。(再服务器创建资源)
  • PUT:再服务器修改资源(幂等性)
  • DELETE:从服务器删除资源。
  • OPTION:跨域部分讲解。
  • TRACE:用于显示调试信息。(一般用于内网调试)多数网站不支持。
  • PATCH:对资源进行部分更新。

HTTP状态码

1XX:提供信息
  • 100:continue 可继续
  • 101:切换协议(switch protocol)
2XX:成功
  • 200 - ok
  • 201 - Created 已创建
  • 202 - Accepted 已接收
  • 203 - Non-Authoritative Information 非权威内容
  • 204 - No Content 没有内容
  • 205 - Reset Content 重置内容
  • 206 - Partail Content 服务器下发了部分内容(range header)
3XX:重定向
  • 300 - Multiple Choices 用户请求了多个选项的资源(返回选项列表)
  • 301 - Moved Permanently 永久转移
  • 302 - Founed 资源呗找到
  • 303 - See Other 可以使用GET 方法在另一个URL找到资源
  • 304 - Not Modified 没有修改(与本地缓存数据比较无修改)
  • 305 - Use Proxy 需要代理
  • 307 - Temporary Redirect 临时重定向
  • 308 - Permanent Redirect 永久重定向
4XX:客户端错误
  • 400 - Bad Request 请求格式错误
  • 401 - Unauthorized 没有授权(一般是没有登录,跳转到登录页面)
  • 402 - Payment Required 请先付费
  • 403 - Forbidden 禁止访问
  • 404 - Not Founed 没有找到
  • 405 - Method Not Allowed 方法不被允许
  • 406 - Not Acceptable 服务端可以提供的内容和客户端期待的不一样
5XX:服务端错误
  • 500 - Internal Server Error (内部服务器错误)
  • 501 - Not Implemented 未实现
  • 502 - Bad Gateway 网关错误
  • 503 - Service Unavailable 服务不可用
  • 504 - Gateway Timeout 网关超时
  • 505 - HTTP Version Not Supported 版本不支持
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值