Web学习之网络通信

一、网络通信

  • 互联网中主机和主机连接必须遵守待定的要求,这个要求成为协议
  • OSI(Open System Interconnection)开放式系统互联,定义了计算机互联时网络通信的7层
  • 目前大规模使用的是TCP/IP协议
    • 应用层
      • 合并OSI中5,6,7层(会话层,表示层,应用层)
      • 常用协议:HTTP,FTP,SMTP,POPD3,SSL,RPC
    • 传输层
      • OSI中第4层
      • 常用协议TCP、UDP
    • 网络层
      • OSI中第3层
      • 常用协议:IP、IPv4.IPv6
    • 网络接口层
      • OSI中第1、2层

二、IPv4、IPv6

  • IP(Internet Potocol)网络协议,互联网上任何操作系统只要遵守IP协议就可以与互联网互通
  • IPv4和IPv6中的v是Verison,即版本的意思
  • IP本质就是给连接到互联网上的计算器分配32位地址,由于二进制32位地址比较难记,所以用十进制表示,为了更方便记忆使用"点"拆分法,分成四段,每段8位,即每段最大255
  • 随着互联网的发展,接入网络的计算机在增多,IPv4逐渐无法满足大量计算机数量,IPv4的下个版本IPv6就出现了
  • IPv6是128位,是IPv4的4倍,且以16位进制表示

三、TCP和UDP

  • 英文全称Transmission Control Protocol

  • 中文全称 传输传输控制协议

  • 是TCP/IP中传输层协议,一种面向连接、可靠的、基于字节流的协议

  • TCP协议每次连接/关闭都需要"确认",也就是来连接三次握手,断开连接四次握手

  • TCP中几个术语

    • SYN 同步标识
    • FIN 结束标识
    • ACK 确认标识
    • PSH 有DATA传输
    • RST 连接重置
    • SEQ 数据包
    • FIN 结束标识
  • 三次握手

    • 客户端发送SYN=1,SEQ=number(随机数字)报文给服务器端,客户端进入SYN_SEND状态
    • 服务器收到SYN报文,SYN=1知道客户端要建立连接,响应ACK NUMBER(客户端SEQ+1),SYN=1,ACK=1,SEQ=随机数字,连接状态SYN_RECV状态
    • 客户端收到SYN,检查ACK,NUMBER和ACK=1是否正确,如果全部正确,向服务器发送ACK,NUMBER=服务端SEQ+1和ACK=1,服务器接收到后检查是否正确,正确后建立连接,连接状态进入ESTABLISHED
  • TCP关闭连接需要四次握手,包含一次角色转换(以客户端主动发起关闭请求举例)

    • 主机A(主动方,Acitve Close)向主机B(被动方)发送FIN表示数据发送完成ACK=z,SEQ=x,主机A进入FIN_WAIT1状态,这个状态非常短暂,之后等待对方确认ACK过程自己进入FIN_WAIT2状态,如果超时没有收到ACK直接进入CLOSED状态
    • 主机B收到FIN后返回主机A内容ACK=x+1,SEQ=z,主机B进入CLose_wait状态
    • 主机B关闭连接发送非主机A内容ACK=x,SEQ=y,主机A进入到TIME_WAIT状态,处于这个状态后等待2个报文最大存货周期后激怒人CLOSED状态,此时主机B进入LAST_ACK状态
    • 主机A收到后返回ACK=y+1,SEQ=x
  • UDP

    • User Datagram Protocol 用户数据协议
    • 是一种无连接的协议
    • 基于UDP协议主机包数据包发送给网络后就不管了,是一种不可靠协议
  • TCP和UDP的主要区别

    • TCP是安全可靠的,UDP是不安全的,不可靠的

    • UDP的速度要高于TCP

相关推荐
GeekArch1 天前
第28讲:避坑——AI堆栈分配错误、栈溢出BUG
c语言·人工智能·stm32·mcu·学习·bug
weixin_428005301 天前
C#调用 AI学习从0开始-第3阶段RAG向量数据库-文档切分与入库第15天
人工智能·学习·c#·向量数据库·rag·qdrant·文档切分与入库
dankokoko1 天前
一.函数与极限2
学习
知识分享小能手1 天前
统计学学习教程,从入门到精通,分类数据分析 — 知识点详解(14)
学习·分类·数据分析
菜鸟‍1 天前
【论文学习】MICCAI 2025 || ARSeg:面向不完整文本提示的鲁棒医学图像指代表达分割
图像处理·学习
三克的油1 天前
c++算法学习-4
学习
知识分享小能手1 天前
统计学学习教程,从入门到精通,分类数据分析 — 知识点详解(13)
学习·分类·数据分析
知识分享小能手1 天前
统计学学习教程,从入门到精通,参数估计 — 知识点详解与公式推导(10)
学习·机器学习·概率论
有Li1 天前
EvoMDT:用于多癌种结构化临床决策的自进化多智能体系统文献速递/医学智能体前沿
人工智能·学习·分类·文献·医学生
sulikey1 天前
个人Linux操作系统学习笔记11 - 环境变量
linux·笔记·学习