前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见网络协议汇总(二)

常见网络协议汇总(二)

原创
作者头像
武汉海翎光电
发布2023-02-02 11:41:17
4110
发布2023-02-02 11:41:17
举报
文章被收录于专栏:全国产化交换机

    传输层协议

    传输层的主要功能是为了实现“端口到端口”的通信,以确保一条数据发送到主机上后,能够正确的传递到对应的端口上

    UDP协议

    UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法,但是UDP也有自己的缺陷,一旦进行通信,就不知道对方是否接收到数据了,很有可能会造成传输数据的丢包问题

图片
图片

特点:

  • 无连接:只需要知道目的ip和端口号就可以发送数据,无需建立连接
  • 不可靠:没有一系列机制来应对传输数据时的丢包问题
  • 面向数据报发送:应用层交给UDP什么样的报文,UDP就会发送什么样的,不会进行拆分,合并
  • UDP一次传输的数据大小有限,最大64k UDP的传输流程
图片
图片

    UDP的适用范围:

    由于UDP不属于连接型协议,所以具有资源消耗小。处理速度优的特点,因此经常使用与视频、音频通话传输中,因为发送的数据较多,偶尔丢包一两个不会产生太大影响

    TCP

    因为上述讲到UDP的传输是不可靠的,经常会导致连接错误、数据丢包问题,针对这些问题规定了另一个传输层协议——TCP协议,TCP是一种面向连接、可靠的、基于字节流的传输层协议

图片
图片

TCP的特点:

  • 面向连接:在传输数据是,要先建立起客户端与服务端的连接,才能进行数据传输
  • 可靠的通信:TCP输出数据中,会基于内部的各种机制保证数据传输到目的端口
  • 基于字节流:TCP传输数据是基于字节传输的,易于对数据的拆分与合并发送
  • TCP的头部比UDP的开销要打,因为要存放更多的信息

TCP与UDP的区别:

  • UDP是无连接的,TCP是有连接的
  • UDP是不可靠的,TCP是可靠的
  • UDP面向数据报,TCP面向字节流
  • UDP比TCP的传输消耗小,速度更快

这里分享一张神图,以便于更加形象的理解TCP和UDP的区别

图片
图片

   网络层

    网络层是基于数据链路层和传输层之间的第三层协议,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务

    网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。

    IP协议

   IP协议是TCP/IP网络模型中的核心部分,他提供了一种分层的、无关硬件的寻址方式,可以在复杂的路由式网络中传递数据所需的服务

IP协议可以将多个交换网络连接起来,在源地址和目的地址之间传输数据包,同时它还能提供数据的组装功能,以适应不同网络对数据包大小的要求

预研知识:

IP地址:IP地址是互联网协议特有的一种地址,它是IP协议提供的一种统一的地址格式,IP地址为互联网的每个网络和每台主机分配了一个逻辑地址,以此来屏蔽物理地址的差异

IP地址的格式:IP地址为32位地址,被分为4个部分,如XXX.XXX.XXX.XXX,IP地址又被划分为两个部分网络号:前三部分用于标识网段,保证相互连接的两个网段有不同标识主机号:由最后一部分组成,用于标识主机,保证处于同一网段的两台主机有不同的主机号通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同4

MAC地址:被称为物理地址,是用来标识网络中每个设备的,MAC地址是设备出厂之后就写死的

引入IP地址的目的:在单个局域网网段中,计算机与计算机之间可以使用数据链路层提供的MAC地址进行通信如果在路由式网络中,计算机之间就不能用MAC地址实现通信,主要是因为在路由式网络中,数据只是经过一次简单的利用两个计算机之间的MAC地址建立通信,而是需要进行多次的通信,每次跳转都会体目的主机更近一步,经历都次跳转,最终找到目的主机实现通信,而这个过程中,要知道每次向哪跳转才能更接近目的主机,必须使用一种逻辑化、层次化的寻址方案对网络进行组织,这就是 IP 地址

IP协议数据报格式

IP协议的工作方式:

由于网络分为同网段和不同网段,所以会分成两种方式

  • 同网段:如果源地址主机和目的地址主机处于同一网段,则目的IP地址被 ARP协议 解析为MAC地址后,源主机会根据目的MAC地址直接将数据包发送给目的主机
  • 不同网段:

    如果源地址主机和目的地址主机不处于同一网段,则数据包会经历多个过程最终发送给目的主机

1、网关(一般为路由器)的 IP地址 被 ARP协议 解析为 MAC地址,根据该 MAC地址 源主机会将数据包发送到网关

2、网关根据数据包中的网段ID找到目标网络,如果找到,将数据包发送给目标网路,如果没有则重复第一步发送到更高一级网关

3、数据包经过网关发送到正确的网段后,目标IP被 ARP协议 解析为MAC地址,在根据该 MAC地址 将数据包发送给目标地址的主机

    ICMP协议

    ICMP协议又叫控制报文协议,ICMP协议用于在IP 和 路由器之间传递控制消息,描述网络是否通畅、主机是否可达、路由器是否可用等网络状态,ICMP本身并不传输数据,但对于用户间数据的传递起着重要的作用

    作用:

    在数据包从源主机传输到目的主机的过程中,会经历一个或多个路由器,而数据包在经过这些路由器传输过程中,可能会遇到很多问题,最终导致数据包没有成功传递给目的主机。为了了解数据包在传输过程中在哪个环节出了问题,就需要用到ICMP协议,它可以跟踪数据包,并把消息返回给源主机。

图片
图片

    数据链路层

    数据链路层是TCP/IP网络模型的第二层,基于物理层和网络层之间,数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。

  ARP协议

    ARP协议是数据进行网络传输过程中,通过IP地址向MAC地址的转换,解决网络层和物理层衔接问题

    引入ARP协议的目的:

    由于 IP 地址和 MAC 地址定位方式不同,ARP 协议成为数据传输的必备协议。主机发送信息前,必须通过 ARP 协议获取目标 IP 地址对应的 MAC 地址,才能正确地发送数据包。

图片
图片

ARP的工作流程:

图片
图片
图片
图片

如图展示的是同一网段下的两台主机,ARP的工作流程

  • 主机A以广播的形式向该网段内的所有主机发送ARP请求,请求中包含了目的主机的IP地址
  • 主机B接收到请求,通过请求中的目的IP地址发现自己是主机A要找的,返回响应,响应包括主机B的 MAC地址

ARP缓存:

    在请求目标主机的 MAC 地址时,每次获取目标主机 MAC 地址都需要发送一次 ARP 请求,然后根据响应获取到 MAC 地址。

    为了避免重复发送 ARP 请求,每台主机都有一个 ARP 高速缓存。当主机得到 ARP 响应后,将目标主机的 IP 地址和物理地址存入本机 ARP 缓存中,并保留一定时间。

    只要在这个时间范围内,下次请求 MAC 地址时,直接查询 ARP 缓存,而无须再发送 ARP 请求,从而节约了网络资源。

物理层

    物理层,顾名思义就是用物理手段将两个要通信的电脑连接起来,主要用来传输0、1光电信号,因为这一层过于偏硬件,所以海翎光电的小编在本文不做过多的赘述了

整体的网络传输流程

    经过以上对网络传输层中每一层理解下面和海翎光电的小编一起来看看,当访问一个网页时,到底发生了什么?

主机A:发送网络数据报

  1. DNS解析:将域名转换成对应IP地址(本机DNS缓存栈开始找—>逐级向上查找,如果根域服务器找不到,表示公网上没有该域名主机)
  2. 找到IP后:通过目的IP找到对应的目的MAC地址
  3. 根据目的IP计算目的主机是否和主机A处于同一网段
  4. 如在同网段:接通过ARP协议解析出对应的目的MAC,跳转到底9步
  5. 如不在同一网段:发送数据报到网关,现在ARP缓存表查找,通过网关IP查找MAC地址,找不到发送查询MAC广播数据报,最终返回网关自己的MAC
  6. 交换机转发:在MAC地址转换表中找到对应MAC交换机接口
  7. 路由器接收:分用数据报
图片
图片

8.途中的设备:与第7步同样操作如目的IP对应的MAC地址不是当前设备则继续重复该操作继续往更接近目的IP的路由发送

图片
图片

9.找到目的主机B,主机B的服务器开始接受分用请求,解析,最终组织响应

图片
图片

10.同上述操作一样,由主机B向主机A发送数据

11.最终主机A接受到数据报,经过分用,解析,最终得到响应

    好了,关于网络协议就介绍到这里。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档