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

计算机网络压缩版

计算机网络到现在零零散散也算过了三遍,一些协议大概了解,但总是模模糊糊的印象,现在把自己的整体认识总结一下,(本来想去起名叫《看这一篇就够了》,但是发现网上好的文章太多了,还是看这篇吧),作为非通信或对网络有特殊要求的专业,理解到这应该也基本足够了。

整体结构

目前主流的分类模型是五层体系结构,分别为
1,应用层,负责主机内报文对应应用的分发,如邮件SMTP,文件共享服务FTP和浏览器的超文本传输协议HTTP;
2,网络层,负责网络内路由器到主机应用的报文寻址,通过端口实现,可靠交付TCP和无连接的UDP;
3,传输层,负责网络内报文在路由间的寻址跳转,实现协议有IP、RIP、OSPF等;
4,数据链路层,正式传输前的最后一次封装,用于对接网卡等设备,与IP地址的映射转换通过ARP实现;
5,物理层,光纤或网线中实实在在的光电信号传输。

整个网络运行图如下:
计算机网络整体结构
但从这个角度看会有割裂,报文传到互联网后数据链路层又对其进行封装,难道报文在网络上的传输是通过MAC地址实现的吗?
是,也不是,再结合设备层面的层级图就更加清晰了:
设备五层结构图
A到B的报文其实要经过多个路由器转发,而这些设备间的直接寻址是通过数据链路层实现,即网卡对网卡的通信,中间需要很多路由设备帮我们不断进行寻址和转发,最终才能实现通信,只是这一步对用户大多是透明的。

详细说明

从上一张整体结构图从上往下解释:

ARP-地址解析协议:实现IP地址和MAC地址的转换,通过在网络中广播报文,发送ARP请求,相当于大喊一声,我要找的IP在哪里,对应IP位置的主机就把自己的MAC地址发给他,以后发报就用该地址即可,详细介绍可见文章,以及MAC地址相关文章。

IP协议:我们常说的192.168.1.1就是一个IP地址,该地址帮我们标记网络中的主机,从而解决网络寻址的问题。具体分为网络号和主机号,IP地址后跟着\24就是划分网络的掩码长度,代表前24位为网络号,这24位指的是二进制下的IP地址,255.255.255.255共32位,更详细的说法可见该文章。

NAT地址转换:IP地址二进制共32位,一共只有2的32次方个地址,大概43亿,平均一个人还分不上一个,现在全世界的手机、电脑、平板、甚至智能家电等远远不止43亿个,为什么还能继续通信呢?这就是用到了地址转换。
RFC1918将10.0.0.0-10.255.255.255172.16.0.0-172.31.255.255192.168.0.0-192.168.255.255这三个范围的地址设置位私有地址,仅能在内部使用不对外分配,逻辑上构成一个局域网,我们在cmd中使用ipcofig查到的IP也就是这些范围内的私有地址,局域网内的用户可以直接通信,NAT通过端口号映射私有地址实现公私网地址的转换,但该过程只能由私有地址发起,目标为公网地址,所以局域网外的私有地址用户无法通信,需要借助公网IP跳转。详细内容可见该文章。

TCP/UDP:该方式通过IP、端口号确定主机上的特定应用进行通信,其中0-1023端口为知名服务端口,如FTP、HTTP等不可随便更改,1024-65535可由用户指定,详细内容可见该文章。
TCP传输控制协议是有连接的,发送后需要主机确认,否则需要重传,确保数据报一定到达且有序,但因为上述原因效率较低;
UDP用户数据报协议是无连接的,用最少的协议机制向目的端口发送信息,发送后什么也不管,可能丢包,一般用于视频和游戏等要求延迟的应用。

HTTP:应用级别的协议就只介绍这一个,超文本传输协议,属于TCP/IP协议族。它的主要作用是允许客户端(如浏览器)通过网络向服务器请求资源,服务器再将资源返回给客户端。浏览器通过URL发起访问请求,比如我们网址中的域名本质就是IP地址(该过程需要了解DNS域名解析服务,这里不作赘述。),后面跟的参数是访问资源在目标主机中的位置和参数等信息,服务器收到请求后进行响应,把对应资源发送给客户端,此外还有安全的超文本传输协议https,详细介绍可见该文章。

总结

本文章大致介绍了计算机网络的整体结构,以及部分实现方法的原理,前期学习作为简单了解暂时够了,以后有需求可以再顺着方向继续研究。

笔者认为计算机网络作为计算机四大原理之一基本算是最简单的了,这门学科让我不得不转换思路看待世界上的一些超前建设,因为计算机网络建立之初就已经算是做了充分准备,但网络世界发展到如今规模还是没预料到的,前瞻性的确很重要,但人又很难跳出时代的局限性,底子没打好想在基础上重构或者整个推翻重来都是很难的,IP v6推到现在也没完全普及,而IP v4早就说要用完了也没见谁现在连不上网,能上路就是好的,别管什么优雅了。

最后贴一个华为总结的各层报文大全,以后抓包可以对比着看,华为IP报文格式大全。


http://www.kler.cn/a/449637.html

相关文章:

  • windows下安装配置anaconda及常用的conda命令
  • 人工智能的未来:机遇、威胁与人类主导地位的挑战
  • 用Python PySide6 复刻了两软件UI 做下练习
  • Zabbix6.0升级为7.2
  • 【086】基于51单片机电子音乐门铃【Proteus仿真+Keil程序+报告+原理图】
  • 被裁20240927 --- 嵌入式硬件开发 前篇
  • 【漏洞复现】CVE-2022-23544 SSRF
  • 机器学习实战32-利用机器学习对电商销售数据进行归因分析的方法,旨在找出销量下降的原因
  • macOS Sequoia 15.2 发布下载,带来 Apple 智能重大更新
  • MySQL实战之数据管理
  • pytorch中torch.nn.functional.normalize、nn.norm和LayerNorm计算中的区别
  • Java CPU飙升 排查
  • pytorch MoE(专家混合网络)的简单实现。
  • 【网络安全】网站常见安全漏洞—服务端漏洞介绍
  • Linux提示Could not resolve host
  • 30多种独特艺术抽象液态酸性金属镀铬封面背景视觉纹理MOV视频素材
  • 【Java基础面试题031】Java运行时异常和编译时异常之间的区别是什么?
  • 验证 Dijkstra 算法程序输出的奥秘
  • 12.12深度学习_CNN_项目实战
  • 武汉火影数字3D光影秀打造 “光+影+文化+故事+演艺“完美融合
  • Redis 事务处理:保证数据完整性
  • 深入理解Redis
  • 期权VIX指数构建与择时应用
  • windos 安装docker
  • JS代码混淆器:JavaScript obfuscator 让你的代码看起来让人痛苦
  • 被裁20240927 --- 嵌入式硬件开发 前篇