基础网络

网络5层协议,物理层,数据链路层(包含MAC),网络层(包含IP),传输层(TCP,UDP决定传输报文段的总体特性,可靠传输or不可靠传输),以及应用层(http,ftp这层应该会附带端口,报文的具体形式也是各不同)
路由器和交换机都是中间传输报文的,区别在于路由器能理解到网络层,数据链路层和物理层,而交换机值值能理解到数据链路层和物理层,即交换机能根据链路层的mac信息传给特定设备,因为交换机在连接的时候会将各个设备的mac地址和端口绑定一起,知道了mac地址,就知道了往哪个端口发送数据
还有个问题是封装,数据的封装是从上到下的,也就是一个完整的数据帧是这样的 (数据链首部(网络层首部(传输层报文(应用层报文))))
那么问题来了,假设一个http协议的连接是关于个人电脑到服务器,怎么传输数据到目标,我的理解是这样的,个人电脑首先有http协议的应用报文,记录目标服务器的url,包括域名等等,接着这个http协议的应用报文会被tcp的应用报文包含起来,生成一个tcp报文,接着tcp报文会被ip协议的首部包含起来,但是这个ip协议的ip是怎么定的。。。感觉这个目标首先应该是未定的,首先应该要发以下dns的询问报文,询问到域名对应的ip地址,这时候这个询问报文的arp协议里面的ip即为系统默认域名服务器的ip,然后数据链路层的mac地址应该是为与该个人电脑连接的路由器mac地址,所以首先通过这个mac地址发给路由器之后,然后路由器件有个ip和mac地址对应表,如果查询得到,那么直接把数据包的数据链路层的mac地址改为查询到的mac地址,然后源mac地址设置为改路由器的地址,如果地址对应表没有,则通过arp协议,构建新的arp报文,源mac地址信息为改路由器mac地址,目标mac地址信息则填充为FF-FF-FF-FF-FF-FF,然后目标ip地址依旧是不变,向该网络下的所有机器发送arp报文询问,然后如果目标机器收到了arp报文,则返回一个单播告诉路由器说我是ipxxx,mac地址xxx,然后路由器就可以更新mac-ip地址表,然后向目标机器发送报文了,如果arp查询报文发送太久之后没有响应,则会判定为查询失败,则时候就需要将数据发给默认网关(发送失败可能是由于目标ip不在对应的网络内,不过这个好像可以通过子网掩码来判断,通过子网掩码获得目标ip的网段和当前网络的网段,如果网段不一致就可以跳过arp报文查询了吧,应该是吧),默认网关则继续这样查询,查询到就发送目标机器,查询不到就发给默认网关,由默认网关来查询,那么问题来了,如果一直查询不到呢。。。这个还真不清楚,所以通过这样的办法我们首先能将域名对ip的查询报文发给对应的dns服务器,然后dns服务器会发送目标ip给我们可能包括端口,不太清楚(总之dns服务器怎么查询的相对于发送查询报文的机器应该是透明的),然后获得这个ip之后,把http报文的ip层上的ip信息填充好,然后发给目标网络,那么遇到路由器到路由器中间有网关的情况呢。。。这个我也是,而且有了路由器还要毛线交换机。。。,貌似路由器的端口较少,多端口的路由器又太贵,所以就是路由器加交换机互相配合?那么交换机如何配合arp协议呢,讲道理arp协议也是要被封装成数据链路层的报文,而且arp协议是广播的,所以交换机绝对会接收到,那么交换机接收到之后会根据报文的mac地址转发给对应的路由器或是机器,这是广播,那如果是单播呢。。可能涉及到物理层吧,可能到交换机的路线也是包含到到目标机器的路线中,所以一开始就不会走错,然后交换机判定到mac地址后,将报文传给对应的路由器或机器
还有固定公网ip但是不同内网ip如何定位到设备的问题:
nat可以给不同内网ip转化到相同公网ip,但是源端口是不同的,可以根据这个进行标识,这个源端口应该是在传输层进行标识的,也就是nat是应用在ip层和传输层的?然后当nat收到了请求之后,会根据端口分发给对应的设备返回响应
默认网关:如果一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包
通过arp -a可以查看自己本机的arp表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值