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

TCP/IP协议及二层转发和三层路由的原理。

TCP/IP协议

TCP/IP(Transmission Control Protocol/Internet Protocol)协议,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议,也是Internet国际互联网络的基础。它由网络层的IP协议和传输层的TCP协议组成。TCP/IP协议定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。该协议采用了4层的层级结构,每一层都调用其下一层所提供的协议来完成自己的需求。

  • IP层:IP层接收由更低层(如网络接口层、以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层(TCP或UDP层);相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有确认数据包是否按顺序发送或是否被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
  • TCP层:TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制。如果IP数据包中有已经封好的TCP数据包,IP则将它们传送到TCP层。TCP数据包中包括序号和确认,所以未按顺序收到的包可以被排序,而损坏的包可以被重传。TCP将信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层、设备驱动程序和物理介质,最后到达接收方。

二层转发原理

二层转发,即数据链路层转发,主要是基于MAC地址进行数据包转发。数据链路层传输的数据单元叫作帧。帧的前两个字段分别是目的地址和源地址字段,第三个字段是2字节的类型字段,用来标识上一层是什么协议,第四个字段是数据字段,长度在46~1500字节之间,最后一个字段是CRC检验字段,存放4字节的帧检测序列FCS。

二层转发的原理是基于原MAC、目的MAC、MAC地址表进行业务转发。其流程如下:

  • PC_A发送ARP请求给交换机1,尝试获取PC_B的MAC地址(基于以太网的通信必须在数据帧中指定目标MAC地址才能通信)。
  • 交换机1收到广播帧(ARP请求)后,会将它发给除接收端口外的所有端口。
  • PC_B收到ARP后,回复MAC地址给PC_A。
  • PC_A收到PC_B的MAC地址后,写入以太帧目的MAC中,开始业务传输。
  • 交换机1收到PC_A发出的以太帧后,会进行查表。如果查到,就按照MAC地址表指定的端口转发;如果查不到,就进行广播转发。

三层路由原理

三层路由是指在网络层使用路由器进行数据包转发和路由选择的一种机制。它是在网络中实现不同网络之间通信的关键技术之一。三层路由的工作原理可以简单描述为以下几个步骤:

  • 数据包的接收:当三层路由器接收到一个数据包时,会先检查数据包的目的IP地址。
  • 路由表的查询:三层路由器会查询自己的路由表,查找与目的IP地址匹配的路由条目。
  • 路由选择:根据路由表中的路由条目,三层路由器会选择最佳的路径来转发数据包。这个选择过程可以根据不同的路由选择算法进行,如静态路由、动态路由等。
  • 数据包的转发:选定了最佳路径后,三层路由器会将数据包转发到相应的出接口,并更新数据包的目的MAC地址。
  • 数据包的发送:三层路由器将数据包发送到下一跳路由器或目的主机,完成数据包的传输。

通过三层路由,可以实现不同网络之间的数据传输和路由选择,确保数据包能够快速、准确地到达目的地。同时,三层路由还可以将一个大型网络划分成多个子网,提高网络的可管理性和安全性。

综上所述,TCP/IP协议、二层转发和三层路由都是网络通信中的重要概念和技术。它们在不同的层次上实现了数据的传输、转发和路由选择等功能,共同构成了现代计算机网络的基础。


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

相关文章:

  • LLMs 如何处理相互矛盾的指令?指令遵循优先级实验
  • 【数据结构与算法】第11课—数据结构之选择排序和交换排序
  • JS 实现SSE通讯和了解SSE通讯
  • 24.11.13 Javascript3
  • GaussDB部署架构
  • 使用 Visual Studio Installer 彻底卸载 Visual Studio方法与下载
  • 第2章2.3立项【硬件产品立项的核心内容】
  • 聊一聊Spring中的自定义监听器
  • 漫谈分布式唯一ID
  • adb 命令查看设备存储占用情况
  • windowsC#-创建和引发异常
  • ORACLE的字符集
  • 选择适合你的报表工具,山海鲸报表与Tableau深度对比
  • 【基于轻量型架构的WEB开发】课程 作业4 AOP
  • 98_api_intro_websitetools_sslcertinfo
  • 【GeoJSON在线编辑平台】(2)吸附+删除+挖孔+扩展
  • SpringBoot框架:打造下一代共享汽车系统
  • 深度学习为什么不用二阶优化?
  • [极客大挑战 2019]HTTP 1
  • ChatGPT中的“GPT”是什么含义?
  • <<机器学习实战>>27-30节笔记:sklearn使用方法
  • UDP checksum(UDP校验和)
  • 嵌入式硬件实战基础篇(一)-STM32+DAC0832 可调信号发生器-产生方波-三角波-正弦波
  • Java基础07
  • 2025年前端能否抵挡住AI浪潮的正式冲击 - 是否前端已死?我们又该何去何从
  • 腾讯会议pc端3.29.11开启悬浮窗口