网络协议、网络传输认识

目录

网络协议概念

网络协议具象化理解

协议分层

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的具体通信过程如下

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

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

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

相关推荐
Hi202402171 小时前
同一个 NMS 算子,两种语言实现:CUDA C 与 Rust 生成 LLVM IR 和 Vortex 汇编的差异
c语言·汇编·rust·gpgpu·vortex·cudac
nazisami1 小时前
程序地址空间
linux·虚拟地址
IT方大同1 小时前
java输入输出+方法
java·开发语言·python
滕州市燕猫虎计算机科技工作室个体工商户1 小时前
《Rust程序设计》学习笔记一
开发语言·rust·学习笔记·rust程序设计
wuyk5551 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 30 章 WiFi 抗干扰、抗闪断、网络抖动过滤量产策略
网络
不会就选b1 小时前
Linux之TCP<2>
linux·网络·tcp/ip
DP DPharness1 小时前
浏览器自动化插件时,三个可核对的判断维度
运维·自动化
Wang's Blog1 小时前
Java框架 SpringCloud 快速入门: 服务拆分之服务远程调用
java·开发语言·spring cloud
努力努力再努力wz1 小时前
【CUDA入门系列】CUDA编程实战:设备选择、显存管理、Kernel、Stream 与 Event 全流程梳理
开发语言·c++
lhbweilai2 小时前
深挖FreeRTOS内核实现(二)
c语言·汇编·stm32·单片机