网络数据的传输流程

网络设备
  • 集线器:只是转发数报,广播发送到其他主机
  • 交换机:也只是转发数据包,不过它是根据数据包中的MAC地址进行转发,在交换机中,存在MAC地址表,它是建立MAC地址和端口的映射(这个端口连接的是其他主机)
  • 路由器:WAN提供公网IP端口,连接公网的网络设备;LAN提供私网的IP端口,它连接的是局域网内的一些设备。功能就是将不同的子网之间的数据进行传递,它可以处理数据包(NAT,NAPT协议),所以可以更改端口号,在不同路由器之间进行传递
五元组

IP:可以定位网络中的某一台主机,在网络层包装IP地址
端口号:绑定主机中的某一个应用程序,应用程序都是在传输层包装,端口号发送/接收数据
五元组:源IP+目的IP+源端口号+目的端口号+协议号(在应用层解析)
在这里插入图片描述
有些服务器是非常常用的, 为了使用方便, 人们约定一些常用的服务器, 都是用以下这些固定的端口号:
ssh服务器, 使用22端口
ftp服务器, 使用21端口
telnet服务器, 使用23端口
http服务器, 使用80端口
https服务器, 使用443端口

网络互联

1、(集线器)

我们先来说明ARP协议,ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网,ARP协议建立了主机IP地址和MAC地址的映射关系

源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,ARP协议就起到这个作用。源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中

每台主机都会维护一个ARP缓存表,其中表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件址

在这里插入图片描述
对于上图场景

1、先通过主机A上的ARP缓存表,查询目的IP所对应的MAC地址
2、如果有目的IP所对应的MAC地址,则集线器转发数据包到所有的主机上,各个主机看是否是自己的MAC地址,如果是自己的,就进行处理,如果不是就丢弃
3、如果没有目的IP所对应的MAC地址,则主机A广播发送ARP请求数据包(源MAC,目的IP,目的MAC(FF:FF:FF:FF:FF:FF表示广播)),其他主机接收到ARP请求数据包之后,如果自己的IP等于传送过来的IP,则发送一个ARP应答数据包给源主机,将自己的MAC地址填在里面,否则,丢弃请求数据包

使用集线器进行通信,这时会产生一个问题,也就是冲突域问题,同一物理网段上的所有节点的集合或者以太网上竞争同一个带宽的结点集合
这个问题交换机可以解决,下面引入交换机互联

2、交换机

在这里插入图片描述

1、通过主机A上的ARP缓存表,查询目的IP所对应的MAC地址
2、找不到目的MAC,则广播发送ARP请求数据包,交换机转发,类似于网络互联查询MAC地址,刷新MAC地址转换表
3、发送数据包,交换机查询MAC地址,通过MAC地址转换表知道发送到那个端口,通过端口进一步发送到对应主机

3、交换机和路由器

在这里插入图片描述

1、先判断本机是否和目的主机在同一个网段:目的IP+子网掩码 位于操作得到网络号,如果在就和交换机的通信一样
2、如果不在一个网段,则交由上级(路由器)来进行处理,则通过ARP缓存表,查询网关IP对应的MAC地址
1)主机发送数据报:源IP(主机1)+源MAC(主机1)+目的IP(主机4)+目的MAC(路由器)+协议号(源端口,目的端口)
2)路由器接收数据报:目的IP对应的MAC地址,广播来找,找到之后,对数据进行分用,重装,数据报的以太网帧(数据链路层)里面的源MAC改为路由器的MAC,目的MAC改为主机4的MAC,重装之后,发送到主机4

4、广域网

NAT技术:NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法
在这里插入图片描述

1、封装数据报:先通过域名查询对应的IP地址:DNS协议(本地缓存–》路由器—》DNS服务器–》全球根域名服务器)
2、五元组信息
3、目的IP和子网掩码判断出不在一个网段
4、发送数据到路由器(源MAC+路由器MAC+源IP+目的IP)
5、路由器处理数据报
1)路由器也不知道目的IP,通过路由功能,知道方向,NAT+NART:局域网主机源IP+源端口号,修改为路由器公网IP+公网映射的端口(程序端口),源MAC修改为自己的MAC,目的MAC修改为下一跳的目的MAC
6、百度服务器接收到数据,发现,目的IP是自己的,需要处理,目的IP与自己一样,接收数据报(分用)
7、返回数据报,源IP(百度服务器IP),源端口号(百度http程序端口),目的IP(路由器公网),目的端口(路由器程序端口)
8、路由器接收响应数据报:目的IP(局域网主机IP),目的端口(主机1浏览器程序端口),目的MAC(主机1的MAC)
9,主机1 接收到处理响应数据报,分用

猜你喜欢

转载自blog.csdn.net/qq_44723296/article/details/105817319