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

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

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
用户在使用浏览器的时候不需要关注协议的封装只需要告诉它访问什么就可以了
目录
打赏
0
0
0
0
19
分享
相关文章
网络与通信原理
【10月更文挑战第14天】网络与通信原理涉及众多方面的知识,从信号处理到网络协议,从有线通信到无线通信,从差错控制到通信安全等。深入理解这些原理对于设计、构建和维护各种通信系统至关重要。随着技术的不断发展,网络与通信原理也在不断演进和完善,为我们的生活和工作带来了更多的便利和创新。
116 3
应用程序中的网络协议:原理、应用与挑战
网络协议是应用程序实现流畅运行和安全通信的基石。了解不同协议的特点和应用场景,以及它们面临的挑战和应对策略,对于开发者和用户都具有重要意义。在未来,随着技术的不断发展,网络协议也将不断优化和创新,为数字世界的发展提供更强大的支持。
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
294 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
【网络原理】——带你认识IP~(长文~实在不知道取啥标题了)
IP协议详解,IP协议管理地址(NAT机制),IP地址分类、组成、特殊IP地址,MAC地址,数据帧格式,DNS域名解析系统
【网络原理】——HTTP请求头中的属性
HTTP请求头,HOST、Content-Agent、Content-Type、User-Agent、Referer、Cookie。
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
【网络原理】——拥塞控制,延时/捎带应答,面向字节流,异常情况
拥塞控制,延时应答,捎带应答,面向字节流(粘包问题),异常情况(心跳包)
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
188 3
【JavaEE】——初始网络原理
局域网,广域网,局域网连接方式,交换机,集线器,路由器,网络通信,五元组(源IP,源端口,目的IP,目的端口,协议),协议分层,TCP/IP五层网络协议,封装和分用,交换机和路由器的封装和分用

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等