网络通信流程的描述

简介: 数据从发送者的应用层传递到传输层,封装端口信息,将数据传递给网络层,封装原IP,目的IP,这时计算机发发现目的IP为外网IP,就会将该数据发给自己的网关,于是数据到达链路层,链路层首先去查看ARP表,查看里面是否记录了网关的mac地址,如果没有记录,主机调用APR协议,广播得到网关的mac地址,并且更新路由表,然后封装原mac为主机的mac,目的mac为网关的mac,将数据传递给网关。

1:数据从发送者的应用层传递到传输层,封装端口信息,将数据传递给网络层,封装原IP,目的IP,这时计算机发发现目的IP为外网IP,就会将该数据发给自己的网关,于是数据到达链路层,链路层首先去查看ARP表,查看里面是否记录了网关的mac地址,如果没有记录,主机调用APR协议,广播得到网关的mac地址,并且更新路由表,然后封装原mac为主机的mac,目的mac为网关的mac,将数据传递给网关。


2:网关收到数据后,第一步先查看目的IP,目的网段是否和当前接口的网段像一致。


一:如果当前接口的网段和目的网段不一致:说明这个数据不会从当前路由器出去,必须交给另外一个路由器继续中转,于是改路由器查看路由表,寻找路由表中的下一跳信息,查看当前哪一个接口和下一跳相连,于是修改数据包中的原mac为这一个mac(就是与下一跳相连的接口mac—),目的mac为下一跳mac,将数据传递给下一跳。(如果当前网卡不知道下一跳的mac地址,将调用ARP协议广播得到下一跳的mac地址,修改原mac,目的mac)


二:如果当前接口的网段和目的网段一致时:直接将该数据从当前网卡发出,不用经过下一跳。


3:下一跳收到数据后,重复上一个路由器的动作,直到将数据传递给目的主机。


不同主机之间的通信图

20191228141627478.png

相关文章
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
561 1
【Netty 网络通信】Netty 工作流程分析
【1月更文挑战第9天】Netty 工作流程分析
状态码对于理解HTTP请求和响应的流程,以及调试网络问题非常重要
【5月更文挑战第15天】HTTP状态码由三位数字表示,分为1xx-5xx五类。1xx为信息响应,2xx表示成功,如200(请求成功)、201(创建成功)。3xx是重定向,如301(永久移动)、302(临时重定向)。4xx表示客户端错误,如400(坏请求)、404(未找到)。5xx是服务器错误,包括500(内部服务器错误)和503(服务不可用)。这些状态码用于理解请求响应流程和调试网络问题。
386 1
|
安全 测试技术 网络架构
【专栏】编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。
【4月更文挑战第28天】本文介绍了编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。通过实际案例分析,展示了如何成功完成割接,确保业务连续性和稳定性。遵循这些步骤,可提高割接成功率,为公司的网络性能和安全提供保障。
1795 0
|
监控 网络协议 安全
【软件测试】—软件测试的基本流程、 网络协议应该怎么测(一)
【软件测试】—软件测试的基本流程、 网络协议应该怎么测(一)
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
578 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
存储 网络协议 Java
【网络】UDP回显服务器和客户端的构造,以及连接流程
【网络】UDP回显服务器和客户端的构造,以及连接流程
315 3
|
安全 网络安全
计算机网络基础课程描述
计算机网络基础课程描述
332 0
|
网络协议 C语言
C语言 网络编程(十一)TCP通信创建流程---服务端
在服务器流程中,新增了绑定IP地址与端口号、建立监听队列及接受连接并创建新文件描述符等步骤。`bind`函数用于绑定IP地址与端口,`listen`函数建立监听队列并设置监听状态,`accept`函数则接受连接请求并创建新的文件描述符用于数据传输。套接字状态包括关闭(CLOSED)、同步发送(SYN-SENT)、同步接收(SYN-RECEIVE)和已建立连接(ESTABLISHED)。示例代码展示了TCP服务端程序如何初始化socket、绑定地址、监听连接请求以及接收和发送数据。
|
C语言
C语言 网络编程(七)UDP通信创建流程
本文档详细介绍了使用 UDP 协议进行通信的过程,包括创建套接字、发送与接收消息等关键步骤。首先,通过 `socket()` 函数创建套接字,并设置相应的参数。接着,使用 `sendto()` 函数向指定地址发送数据。为了绑定地址,需要调用 `bind()` 函数。接收端则通过 `recvfrom()` 函数接收数据并获取发送方的地址信息。文档还提供了完整的代码示例,展示了如何实现 UDP 的发送端和服务端功能。

热门文章

最新文章