网络协议、网络传输认识

目录

网络协议概念

网络协议具象化理解

协议分层

TCP/IP模型

网络传输基本流程


网络协议概念

网络协议是计算机网络中用于在通信设备之间传输数据的规则集合。这些规则定义了数据的格式、传输方式、错误检测和纠正方法等,以确保不同设备之间的通信能够正确进行。网络协议通常分为多个层次,每个层次负责不同的功能,从物理层到应用层

网络协议具象化理解

具象化协议理解:当我们和周围人交流使用汉语,而汉语被我们双方理解且接受,为什么会理解且接受,是因为汉语语法是我们事先约定好的。同样老外用英语互相交流,英语协议也是事先约定好的。

协议分层

还是如上例子所示 我们协议其实分为两层,分别为语言层和通信设备层。而实际应用中协议会分很多层。

TCP/IP模型

  • TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.
  • TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.
  1. 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  2. 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  3. 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  4. 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  5. 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层.

一般而言

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层;
  • 对于一台交换机, 它实现了从数据链路层到物理层;
  • 对于集线器, 它只实现了物理层;

网络传输基本流程

两台计算机通讯过程如下

计算机A-B的具体通信过程如下

数据包从应用层到数据链路层的过程中每向下传递一层,就需要封装一层首部(也可以称为报头),而这一过程是为了更好的在路网中处理数据。

从数据链路层到应用层的过程正好相反,会不断的去掉首部。具体过程可以参考下图。

跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.

相关推荐
2501_9159214311 分钟前
iOS IPA 混淆实测分析:从逆向视角验证加固效果与防护流程
websocket·网络协议·tcp/ip·http·网络安全·https·udp
2501_9159184111 分钟前
打造可观测的 iOS CICD 流程:调试、追踪与质量保障全记录
websocket·网络协议·tcp/ip·http·网络安全·https·udp
黄雪超26 分钟前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice32 分钟前
对象的finalization机制Test
java·开发语言·jvm
水木兰亭38 分钟前
数据结构之——树及树的存储
数据结构·c++·学习·算法
思则变1 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
无敌暴龙兽z1 小时前
离线环境安装elk及设置密码认证
运维·elk
lijingguang1 小时前
在C#中根据URL下载文件并保存到本地,可以使用以下方法(推荐使用现代异步方式)
开发语言·c#
M4K01 小时前
Linux百度网盘优化三板斧
linux
好奇的菜鸟1 小时前
如何在 Ubuntu 24.04 (Noble) 上使用阿里源
linux·运维·ubuntu