网络通讯原理简介以及演示通讯过程

简介: 网络通讯原理简介以及演示通讯过程

OSI网络七层参考模型


image.png

这是7层网络参考模型 非实现层面的


TCP/IP协议实现


image.png


TCP/IP协议实现了七层网络模型 
将展示层和会话层合并到了应用层
微信、QQ或tomcat进程都属于应用层 该层的常用协议http、https、ssh、ftp
程序员只需要关注这层就可以了
其他层次 比如传输控制层(TCP、UDP)、网络层(IP、路由协议)、链路层(ARP协议)是内核实现的
用户态通过系统调用切换到内核态


演示下网络交互过程


通过ssh登录linux操作系统执行命令exec
在没有任何浏览器或工具的情况下访问百度 取回百度主页
这一去一回过程牵扯到用户层、内核、tcp通信、http协议

exec 8<> /dev/tcp/www.baidu.com/80

/dev/tcp/www.baidu.com/80 这是一个路径 
前缀是/dev/tcp
linux操作系统一切皆文件 网络连接可以是一个文件 打印机可以是一个文件
以文件目录的方式来表示
内核最终会把它转换成socket

image.png


执行之后 在当前域中就有一个8了 
这个8的输入输出指向和百度的这个socket连接
此时假设已经有了一个三次握手的socket连接了
那么要取回百度服务器的主页的时候 
要给它发送什么才能取回来 牵涉到哪个协议
需要给百度发送一个http协议

GET / HTTP/1.0\n

/表示请求的资源
把这个字符串发送给百度 百度就知道了 你要请求主页了
协议就是规定了你发送的数据如何表示
HTTP协议就是数据如何表示HTTP协议

echo -e "GET / HTTP/1.0\n"


image.png


echo是打印
通过-e来识别换行符\n
http协议是拿换行符做切割得到一行行字符串
每行字符串会用空格做切割
遇到2个换行符之后才是post body信息
8<> 表示将输入输出的2个方向都给到了百度

echo -e "GET / HTTP/1.0\n" 1>& 8

将输出重定向到了8
1>& 标准输出
8的输出又指向了sokcet 给百度了
百度如果接受到了 那么就会给返回
那么就需要读取该返回内容
socket网络通讯是双向的 有输出就有输入
给百度发送了http请求协议头 文本

cat 0<& 8

读取socket 8中流回的内容


image.png

image.png

读到了百度给返回的
HTTP/1.0 200 OK是响应头
接着是响应头的键值对
接着2个换行符
接着是响应体 内容就是百度的主页页面
取回东西之后就会断开连接

cd /proc/$$/fd

image.png

0是程序指向终端的标准输入 system.in
1是标准输入system.out
2是system.error
这3个是任何程序都有的
socket 也可以给出一个数字也可以是一个递增的数字 来代表这个socket
fd文件描述符可以理解成一个变量 在java中 open一个文件得到一个file变量

lsof -p $$

image.png

本机随机端口号指向了百度的一个地址 80端口号 http协议
9 就是代表了对百度的一个socket
socket怎么建立的?
实际上是由内核完成的


总结


微信图片_20220501114719.png


连接不需要人管
连上之后 客户端和服务端之间的通讯 你说啥?牵扯到http协议 
连的是web server服务器所以用的http协议
连的是ftp服务器连的是ftp协议
应用程序application里面会有协议封装的过程
这个协议封装不是内核做的
而是某种软件 比如浏览器、postman、http client
用户在使用浏览器的时候不需要关注协议的封装只需要告诉它访问什么就可以了
相关文章
|
18天前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络(CNN)的工作原理深度解析
【6月更文挑战第14天】本文深度解析卷积神经网络(CNN)的工作原理。CNN由输入层、卷积层、激活函数、池化层、全连接层和输出层构成。卷积层通过滤波器提取特征,激活函数增加非线性,池化层降低维度。全连接层整合特征,输出层根据任务产生预测。CNN通过特征提取、整合、反向传播和优化进行学习。尽管存在计算量大、参数多等问题,但随着技术发展,CNN在计算机视觉领域的潜力将持续增长。
|
20天前
|
机器学习/深度学习 算法 TensorFlow
深度学习基础:神经网络原理与构建
**摘要:** 本文介绍了深度学习中的神经网络基础,包括神经元模型、前向传播和反向传播。通过TensorFlow的Keras API,展示了如何构建并训练一个简单的神经网络,以对鸢尾花数据集进行分类。从数据预处理到模型构建、训练和评估,文章详细阐述了深度学习的基本流程,为读者提供了一个深度学习入门的起点。虽然深度学习领域广阔,涉及更多复杂技术和网络结构,但本文为后续学习奠定了基础。
45 5
|
19天前
|
机器学习/深度学习
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
|
4天前
|
NoSQL Java Redis
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
12 0
|
4天前
|
存储 消息中间件 缓存
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
12 0
|
4天前
程序技术好文:计算机网络(九)——STP原理
程序技术好文:计算机网络(九)——STP原理
|
5天前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
15 2
|
11天前
|
网络协议 网络架构 数据格式
网络原理,网络通信以及网络协议
网络原理,网络通信以及网络协议
10 1
|
15天前
|
机器学习/深度学习 搜索推荐 PyTorch
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
88 2
|
18天前
|
机器学习/深度学习 自然语言处理 并行计算
YOLOv8改进 | 注意力机制 | 在主干网络中添加MHSA模块【原理+附完整代码】
Transformer中的多头自注意力机制(Multi-Head Self-Attention, MHSA)被用来增强模型捕捉序列数据中复杂关系的能力。该机制通过并行计算多个注意力头,使模型能关注不同位置和子空间的特征,提高了表示多样性。在YOLOv8的改进中,可以将MHSA代码添加到`/ultralytics/ultralytics/nn/modules/conv.py`,以增强网络的表示能力。完整实现和教程可在提供的链接中找到。

热门文章

最新文章