计算机网络

计算机网络

网络分层模型

OSI七层模型

TCP/IP四层模型
  • 应用层

    主要提供两个终端设备上应用程序之间信息交换的服务。

    常见协议:

    • HTTP(超文本传输协议)
    • SMTP(简单邮件发送协议)
    • POP3/IMAP(邮件接收协议)
    • FTP(文件传输协议):传输时不会对数据进行加密。建议SFTP
    • Telnet(远程登录协议)
    • SSH(安全的网络传输协议)
    • RTP(实时传输协议)
    • DNS(域名管理系统)
  • 传输层

    负责向两台终端设备进程之间的通信提供通用的数据传输服务。

    常见协议:

    • TCP(传输控制协议):提供 面向连接 的,可靠 的数据传输服务
    • UDP(用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效
  • 网络层

    负责为分组交换网上的不同主机提供通信服务

    常见协议:

    • IP(网际协议)
    • ARP(地址解析协议):解决了IP地址转MAC地址的一些问题
    • ICMP(互联网控制报文协议)
  • 网络接口层

    可以把网络接口层看做是数据链路层和物理层的合体

    • 数据链路层

      • 封装成帧
      • 透明传输
      • 可靠传输
      • 差错检验(CRC)
    • 物理层

      负责0、1比特流与电压的高低之间的转换

    常见协议:

    • PPP(点对点协议)
    • Ethernet(以太网)
    • MAC协议

HTTP协议特点

  • 基于请求-响应模式。请求从客户端发出,最后服务器端响应该请求并返回HTTP报文
  • 无连接。无连接指限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接
  • 无状态。HTTP协议不保存请求、响应,不作持久化处理。(可用cookie保存)

从输入URL到页面展示的过程(HTTP工作流程)

  1. DNS解析 :获取域名对应的IP地址
  2. 建立 TCP连接
  3. 发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束,关闭TCP连接

HTTP与HTTPS的区别

  • 端口号

    HTTP默认80,HTTPS默认443

  • URL前缀

    HTTP的URL前缀是https://,HTTPS的前缀是https://

  • 安全性和资源消耗

    HTTP安全性没有HTTPS高(HTTPS传输的内容进行了加密),但HTTPS比HTTP耗费更多服务器资源

  • 搜索引擎优化

    搜索引擎更青睐使用HTTPS协议的网站

HTTP状态码

  • 1xx:请求正在处理
  • 2xx: 请求成功响应
    • 200:成功响应
    • 201:请求成功创建
    • 204:成功响应,但无内容
  • 3xx: 重定向消息
  • 4xx: 客户端错误
    • 400:错误请求
    • 401:未授权
    • 403:禁止访问
    • 404:页面未找到
  • 5xx: 服务器错误
    • 500:服务器内部错误
    • 502:网关错误
    • 503:服务不可用

cookie和session的区别

  • cookie将数据保存在客户端
  • session将数据保存在服务端,安全性更高

GET和POST的区别

  • GET通常用于获取或查询资源,POST通常用于创建或修改资源
  • GET请求多次重复执行不会改变资源状态,POST请求每次执行都可能产生不同的结果或影响资源状态
  • GET请求的参数通常放在URL中,POST请求的参数同在放在请求体(body)中,Get的安全性没有POST高

PUT在多次请求时,产生和单次请求同样的效果,即没有产生新的资源。

举例来说,当你在编辑博客时,后台提供了一个API:test.如果你发送n次test请求,后台始终都只产生了一篇文章,说明前面的请求被覆盖了,那么这个test在多次请求中没有副作用,则它使用的应该是幂等方法Put.如果n次请求后,后台产生了n篇文章,那么test则是非幂等方法。

DNS :域名管理系统,解决域名和IP地址的映射问题

DNS是应用层协议,可以在TCP、UDP协议之上运行,端口为53

DNS服务器的类别
  • 根DNS服务器 : 提供顶级域DNS服务器,目前世界上只有 13 组根服务器,我国境内目前仍没有根服务器。
  • 顶级域DNS服务器: 顶级域是指域名的后缀,如comorgnetedu
  • 权威DNS服务器
  • 本地DNS服务器

TCP与UDP(传输层)

TCP与UDP的区别
TCPUDP
是否面向连接
是否可靠
是否有状态
传输效率较慢较快
传输形式字节流数据报文段
首部开销20 ~ 60 bytes8 bytes
是否提供广播或多播服务
TCP与UDP的应用场景
  • TCP用于对传输准确性要求特别高的场景,如文件传输、发送和接收邮件、远程登录等。
  • UDP一般用于即时通信,如语音、视频等
运行在TCP协议上的协议
  • HTTP协议
  • HTTPS协议
  • FTP协议
  • SMTP协议
  • POP3/IMAP协议
  • Telnet协议
  • SSH协议
运行在UDP协议上的协议
  • DNS :将域名转换为IP地址
  • DHCP协议:动态主机配置协议,动态配置ip地址

TCP三次握手和四次挥手

建立连接——TCP三次握手

一次握手:客户端发送带有 SYN(SEQ=x) 标志的数据包 -> 服务端,然后客户端进入 SYN_SEND 状态,等待服务器的确认;

二次握手:服务端发送带有 SYN+ACK(SEQ=y,ACK=x+1) 标志的数据包 –> 客户端,然后服务端进入 SYN_RECV 状态

三次握手:客户端发送带有 ACK(ACK=y+1) 标志的数据包 –> 服务端,然后客户端和服务器端都进入ESTABLISHED 状态,完成 TCP 三次握手。

三次握手的目的

让双方确认自己与对方的发送与接收是正常的

  1. 第一次握手:服务端确认了对方发送正常,自己接收正常

  2. 第二次握手:客户端确认自己和对方发送、接收正常,服务器确认对方发送正常,自己接收正常

  3. 第三次握手:客户端确认自己和对方发送、接收正常,服务端确认自己和对方发送、接收正常

断开连接——TCP四次挥手

  1. 第一次挥手: 客户端发送一个FIN(SEQ=x)标志给服务端,用来关闭客户端到服务器的数据传送,然后客户端进入FIN_WAIT-1状态
  2. 第二次挥手:服务器收到这个FIN(SEQ=x)标志的数据包,他发送一个ACK(ACK=x+1)标志的数据包给客户端,然后服务端进入CLOSE_WAIT状态,客户端进入FIN_WAIT_2状态
  3. 第三次挥手:服务器发送一个FIN(SEQ=y)标志的数据包给客户端,然后服务端进入LAST_ACK状态。
  4. 第四次挥手:客户端发送 ACK (ACK=y+1)标志的数据包->服务端,然后客户端进入TIME-WAIT状态,服务端在收到 ACK (ACK=y+1)标志的数据包后进入 CLOSE 状态。此时如果客户端等待 2MSL 后依然没有收到回复,就证明服务端已正常关闭,随后客户端也可以关闭连接了。

TCP传输可靠性保障

  • 基于数据块传输
  • 对失序数据包重新排序以及去重
  • 校验和
  • 超时重传
  • 流量控制:使用滑动窗口来控制
  • 拥塞控制
TCP的拥塞控制采用的算法
  • 慢开始
  • 拥塞避免
  • 快重传与快恢复
  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

容与0801

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值