Appearance

网络编程基础

鑫旺2024-02-06网络编程网络编程

网络编程基础

1. 网络通信协议

1.1 通信

  • 是指需要信息的双方或多方采用任意方法,任意媒质,将信息从某方准确安全地传送到另一方的过程

1.2 网络

  • 网络由节点连线构成,表示诸多对象及其相互的联系。

  • 网络是指信息传输接收共享虚拟平台,把点、面、体的信息联系到一起实现资源共享。

1.3 网络通信

  • 是指通过网络将孤立的设备连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信

1.4 协议

  • 两台设备通信时,需要有一套双方都遵从的规则,而这个规则被称为协议。
    • 举个栗子:人和人之间沟通用的语言(一种基于声波的通信)

1.5 网络通信协议

  • 是指一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持的一堆协议

  • 常见的网络通信协议:TCP / IP 协议、IPX / SPX协议、NetBEUI 协议等。

  • 主要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。

1.6 TCP / IP 协议

  • 互联网相关联的协议集的总称:TCP / IP

  • 全称传输控制协议 / 因特网互联协议( Transmission Control Protocol/Internet Protocol)

  • 是最基本、应用最广泛的一套互联网协议,定义了计算机如何接入互联网,数据在互联网如何传输

  • TCP / IP 四层体系结构:针对应用开发者的 OSI 体系结构简化版

    • OSI 七层体系结构:
    • 五层协议体系结构:网络接口层分为数据链路层 + 物理层

    image-20240206205236567

1.7 计算机网络

  • 是网络通信技术与计算机技术相结合体,按照网络通信协议将计算机连接起来进行通信

  • 连接介质可以是电缆、双绞线、光纤、微波、载波或通信卫星

  • 分类:局域网(LAN)、城域网(MAN)、广域网(WAN)

1.8 互联网:Internet 因特网,国际网络

  • 全世界范围的计算机网络,信息社会的基石,使用 TCP / IP 协议

  • 网络中的设备:交换机、路由器、服务器、PC、手机、物联网终端、车联网设备…

2. TCP 与 UDP 协议

2.1 什么是 TCP ?

  • 传输控制协议(Transmission Control Protocol),可以保证传输数据的安全,相对于UDP

  • 面向连接的协议,先建立连接,再传输数据,传输的过程中还会保障传输数据的可靠性

  • 建立连接三次握手,关闭连接四次挥手

  • 应用场景:http 请求都基于 TCP 进行数据传输,浏览网页,图片,下载文档 …

2.2 什么是 UDP ?

  • 用户数据报送协议(User Datagram Protocol),不保证数据传输的安全

  • 面向无连接的协议,传输数据不需要建立连接,不管对方服务是否启动,发数据包就完了

  • 传输数据速度快,安全性差,可能会丢失数据包

  • 应用场景:视频会议,语音通话,视频直播 …

2.3 TCP 三次握手

  • 三次握手:TCP协议在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠

    • 1 次握手:Client 发送带有 SYN 标志的数据包给 Server

    • 2 次握手:Server 发送带有 SYN / ACK 标志的数据包给 Client

    • 3 次握手:Client 发送带有 ACK 标志的数据包给 Server【多此一举?

image-20240206210051096

为什么要三次握手?

  • 三次握手的目的是建立可靠的通信信道,双方确认自己与对方的发送与接收是正常的

    • 1 次握手:Client 什么都不能确认;Server 确认对方发送正常,自己接收正常

    • 2 次握手:Client 确认自己发送接收正常对方发送接收正常

    • 3 次握手:Server 确认自己发送正常,对方接收正常

2.4 TCP 四次挥手

  • 数据传输完毕,断开⼀个 TCP 连接则需要四次挥手:

    • 1 次挥手:Client 发送⼀个 FIN 给 Server

    • 2 次挥手:Server 收到这个 FIN 给 Client 发回一个 ACK

    • 3 次挥手:Server 发送⼀个 FIN 给 Client

    • 4 次挥手:Client 收到这个 FIN 给 Server 发回一个 ACK

为什么要四次挥手?

  • 数据传输完毕,任何一方可以发送结束连接的通知,然后进入半关闭状态。另一方没有数据在发送的时候,则发出结束连接的通知,对方确认后,完全关闭连接。
    • 举个栗子:给女朋友打电话

HTTP 协议 与 TCP 和 IP 协议有什么关系?

3. 输入 URL 地址到显示网页经历了哪些过程?

image-20240206210721251

过程

  1. 浏览器查找域名对应IP
  2. 浏览器向web服务器发送http请求
  3. 服务器处理请求
  4. 服务器返回HTML
  5. 浏览器渲染HTML

使用到的协议

  • DNS 协议:获取域名对应 IP

  • HTTP 协议:使用 HTTP 协议访问网页

  • TCP 协议:建立服务器的 TCP 连接并传输数据

  • IP 协议:传输数据在网络层依靠 IP 协议

4. HTTP 1.0 与 HTTP 1.1 的区别是什么?

  • 长连接

    • HTTP / 1.0 默认使用的是短连接,HTTP 1.1 默认使用长连接,Connection:keep-alive

    • HTTP / 1.1长连接有非流水线方式和流水线(pipelining)方式

  • 错误状态码

    • HTTP 1.1 新增 24 个错误状态响应码
  • 缓存

    • HTTP 1.0 缓存判断标准单一

    • HTTP 1.1 引入了更多的缓存控制策略

  • 断点续传

    • HTTP 1.0 不支持断点续传,浪费带宽

    • HTTP 1.1 加入断点续传支持,允许只请求资源的某个部分,充分利用带宽和连接

5. URI 与 URL 的区别是什么?

  • URI(Uniform Resource Identifier)统一资源标志符:

    • 资源抽象的定义,不管用什么方法表示,只要能定位一个资源就叫 URI。
  • URL(Uniform Resource Locator)统一资源定位符,是一种具体的 URI,在用地址定位

  • URN(Uniform Resource Name)统一资源名称,也是一种具体的 URI,在用名称定位

image-20240206211558447

绝对 URL 地址的构成如下图

image-20240206211634992

6. HTTP 与 HTTPS 的区别是什么?

  • 端口

    • HTTP 默认端口 80
    • HTTPS 默认端口 443
  • 协议

    • HTTP 的协议:http://
    • HTTPS 的协议:https://
  • 安全性与资源消耗

    • HTTP 安全性没有 HTTPS 高,资源消耗相比于 HTTPS 更低

    • HTTPS 是身披 SSL 外壳的 HTTP,HTTPS = HTTP + 加密+ 认证+ 完整性保护

    • HTTP 是明文传输数据,HTTPS 是加密传输内容

    • HTTPS 传输内容加密使用对称加密算法,对称加密的密钥采用非对称加密

image-20240206212011472

上次更新 3/30/2024, 5:39:23 AM