当前位置: 首页 > java >正文

[ 计算机网络 ] | 宏观谈谈计算机网络

(目录占位)

网络间通信,本质是不同的两个用户通信;本质是两个不同主机上的两个进程间通信

因为物理距离的提升,就衍生出了很多问题。TCP/IP协议栈 / OSI七层模型,将协议分层,每一层都是为了解决不同的因为物理距离的提升的产生的问题。


1. 通信过程

在应用层,将数据序列化,转化成字符串数据,拷贝到TCP的发送缓冲区中,到TCP的发送缓冲区,发送数据就与用户无关了,由操作系统自行决定,结合它的滑动窗口,流量控制,拥塞控制,超时重传,快重传各种策略,把我们的数据包,将用户认为的完整的数据包拆分成多个数据段,添加TCP报头,再交给IP,添加源IP,目的IP,再封装成mac帧进行路由。局域网通信,路由表查找,arp过程。

到达目标主机,再自底向上根据每一层协议解包和分用,向上交付到对方TCP接收缓冲区,TCP面向字节流也能保证按序到达,(将数据去掉mac帧报头,去掉IP报头,去掉TCP报头,然后将数据数据放到对方TCP接收缓冲区),然后在应用层,采用read或者recv,将收到的数据以流式的方式拷贝到应用层,然后在对方的应用层,解决报文完整性,粘包问题,然后做反序列化得到结构化数据,然后处理,处理过后按照反向同样的方式,发回对方。

2. 浅谈TCP四层结构每层的作用

应用层:序列化、反序列化、TCP粘包问题...

传输层:TCP、UDP,提供端口...

网络层:借助路由器,跨网络传输数据,提供IP地址...

数据链路层:借助交换机,局域网通信,提供MAC地址,帧冲突,帧检测...

物理层:确定光电信号、传输介质...

http://www.xdnf.cn/news/7306.html

相关文章:

  • 十三、Hive 行列转换
  • 计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据
  • netcore项目使用winforms与blazor结合来开发如何按F12,可以调出chrome devtool工具辅助开发
  • 通过低功耗蓝牙通信实例讲透 MCU 各个定时器
  • AT 指令详解:基于 MCU 的通信控制实战指南AT 指令详解
  • ESP32开发-两个WIFI设备的通讯搭建
  • AI大模型从0到1记录学习numpy pandas day25
  • 无人设备遥控器之数据压缩与编码技术篇
  • PLC组网的方法、要点及实施全解析
  • android13以太网静态ip不断断开连上问题
  • C++(24):容器类<list>
  • Unreal 从入门到精通之SceneCaptureComponent2D实现UI层3D物体360°预览
  • MAC常用操作整理
  • MAC电脑中右键后复制和拷贝的区别
  • C++:与7无关的数
  • 基于 Vue 和 Node.js 实现图片上传功能:从前端到后端的完整实践
  • 汽车零部件的EMI抗扰性测试
  • Java中的流详解
  • vue3 vite 路由
  • 容器化-K8s-镜像仓库使用和应用
  • Ubuntu Desktop QEMU/KVM中使用Ubuntu Server 22.04配置k8s集群
  • k8s1.27集群部署mysql8.0双主双从
  • psotgresql18 源码编译安装
  • AutoMouser - 单次AI调用铸就高效自动化脚本
  • mariadb 升级 (通过yum)
  • 排序复习/下(C语言版)
  • vuex的基本使用
  • 零基础设计模式——设计模式入门
  • 下载和导出文件名称乱码问题
  • SVG 与 Canvas 技术调研对比