美文网首页
网络通讯原理简介以及演示通讯过程

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

作者: 平凡人笔记 | 来源:发表于2021-10-07 20:45 被阅读0次

OSI网络七层参考模型

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

TCP/IP协议实现

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

执行之后 在当前域中就有一个8了

这个8的输入输出指向和百度的这个socket连接

此时假设已经有了一个三次握手的socket连接了

那么要取回百度服务器的主页的时候

要给它发送什么才能取回来 牵涉到哪个协议

需要给百度发送一个http协议

GET / HTTP/1.0\n

/表示请求的资源

把这个字符串发送给百度 百度就知道了 你要请求主页了

协议就是规定了你发送的数据如何表示

HTTP协议就是数据如何表示HTTP协议

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

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中流回的内容

如果长时间没读取 那么就会断开连接

再来一次

读到了百度给返回的

HTTP/1.0 200 OK是响应头

接着是响应头的键值对

接着2个换行符

接着是响应体 内容就是百度的主页页面

取回东西之后就会断开连接

cd /proc/$$/fd

当前解释程序的进程ID是1307

fd是文件描述符

任何程序都有IO 都会打开文件 socket也是文件

0是程序指向终端的标准输入 system.in

1是标准输入system.out

2是system.error

这3个是任何程序都有的

socket 也可以给出一个数字也可以是一个递增的数字 来代表这个socket

fd文件描述符可以理解成一个变量 在java中 open一个文件得到一个file变量

lsof -p $$

012是指向终端的输入输出

9是一个tcp

本机随机端口号指向了百度的一个地址 80端口号 http协议

9 就是代表了对百度的一个socket

socket怎么建立的?

实际上是由内核完成的

总结

连接不需要人管

连上之后 客户端和服务端之间的通讯 你说啥?牵扯到http协议

连的是web server服务器所以用的http协议

连的是ftp服务器连的是ftp协议

应用程序application里面会有协议封装的过程

这个协议封装不是内核做的

而是某种软件 比如浏览器、postman、http client

用户在使用浏览器的时候不需要关注协议的封装只需要告诉它访问什么就可以了

相关文章

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

    OSI网络七层参考模型 这是7层网络参考模型非实现层面的 TCP/IP协议实现 TCP/IP协议实现了七层网络模型...

  • DNS解析

    DNS原理及其解析过程 为什么需要DNS解析域名为IP地址 网络通讯大部分是基于TCP/IP 的,而TCP/IP ...

  • day 25 操作系统基础网络

    一.课程介绍部分 二.学习网络知识方法 三.如何实现网络通讯 演示: 实践配置:静态路由配置

  • 挂面01

    1.DNS原理及其解析过程 为什么?网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机...

  • 交通信号控制机通讯方式|赛诺杰科技

    交通信号控制机通讯方式有多种,目前比较流流行的有:串口通讯、四芯电话通讯以及基于TCP/IP协议的网络通讯。 串口...

  • 网络通讯

    UDP UDP多播 多播(组播)的概念多播,也称为“组播”,将网络中同一业务类型主机进行了逻辑上的分组,进行数据收...

  • 网络通讯

    自从开始网络教学以来,我对网络通讯的理解也在悄无声息的发生着巨大的变化。刚刚开始上网课的时候,还是认为着网络通讯的...

  • netty系列之(一)——netty介绍

    IO模型 一、NIO原理 Netty 是基于Java NIO 封装的网络通讯框架,只有充分理解了 Java NIO...

  • Mac 开发之网络通讯

    本文包含:Mac开发中网络通讯常见问题、Mac端 网络通讯demo。 错误一:输出台:App Transport ...

  • 12运维网络基础

    网络通讯基本原理主机之间需要有传输介质主机上必须有网卡设备可以将二进制信息转换为高低电压 信号的调制过程可以将高...

网友评论

      本文标题:网络通讯原理简介以及演示通讯过程

      本文链接:https://www.haomeiwen.com/subject/jnbhuktx.html