计算机网络知识框架总结

网络是什么?两个及以上的主机相互连接就构成了一个网络,主机和主机之间通过链路进行连接,链路分为物理链路和无线链路。按连接的方式分又分为点到点链路,多端连接链路。主机和主机之间通过交换机相互连接构成一个局域网。局域网和局域网之间通过路由器进行连接,互联网就是由一个个相互连接的局域网所构成的,网路按照覆盖的范围可以分为广域网,城域网,局域网。网络按照路由来划分分为一个个自治系统,自治系统由一个个子网(就是局域网)所构成,自治系统内也可以继续划分自治系统。当路由器进行路由时就是按照自治系统来进行路由的。宏观(实际上可能不是这样,这样假设便于理解)上看每一个国家都可以看作是一个大的自治系统,自治系统之间通过边界网关路由相互连接,就拿中国来说这个大的自治系统中每一个省分也是一个自治系统,省份中每一个城市也是一个自治系统。当数据想要进去该自治系统时肯定是经过边界网关路由的,所以当你想要对进入自治系统的数据进行过滤时,只需要再每一个边界网关上安装防火墙并配置相应的规则即可。中国的防火墙就是这样,在每一个与其它国家相连的自治系统的网关路由上都安装了防火墙(这墙也被很多人吐槽,外面进来的数据不防,里面想出去的全给防了)。
一台主机从接入互联网到与另一台主机通信的全过程:主机接入路由器后第一步需要的是获取ip,获取ip有两种方式:手动配置和dhcp自动配置。dhcp协议配置过程:主机会发送一个广播数据报文,报文里的目标ip和目标mac地址都是全为1,目的是为了寻找到该局域网内的dhcp服务器。当dhcp服务器接收到该报文后从地址池中选出一个ip并通过广播的方式把该ip和一些配置信息(子网掩码,dns服务器地址,网关路由地址,ip租约期限,dhcp服务器的ip地址和mac地址等等)发送给服务器问它是否需要。当主机收到该报文后发送一个广播报文告知dhcp服务器确定选择该ip(为什么还是用广播的方式是因为局域网内部可能还会有其它的dhcp服务器,通过广播的方式告知其它的dhcp服务器,已经选择了ip可以释放挂载的ip了防止浪费资源),之后dhcp服务器再次发送一个广播报文告知主机分配完毕之后主机就可以使用该ip了。当主机再次上线时会先查看自己的IP地址是否过期,如果没有过期直接向dhcp服务器发起通信请求进行续约继续使用该ip,如果过期了则重复上面步骤重新获取ip。当主机获取ip后就可以进行通信了,假设主机想要和公网的一台服务器进行通信,当你再浏览器输入了该服务器的域名之后就会进行dns域名解析步骤把域名解析成ip地址后才能通信。DNS域名解析过程:再浏览器输入完域名后浏览器会先查看浏览器的缓存中中是否记录则该域名的对应关系如果有则直接返回没用则进行下一步,查看本地的hosts文件中是否记录则域名与ip的对应关系有则返回无则进入下一步,向电脑上配置的dns服务器(属于域名结构中的非权威域名服务器)的地址发起查询请求如果有则返回,没有则本地的dns服务器会向根域名服务器(全世界一共只有三台根服务器,但是有很多镜像根服务器一样可以承担根服务器的任务,但是镜像根服务器需要定时向根服务器发起请求更新自己的域名记录)发起查询请求查询顶级域名服务器的地址,顶级域名服务器中记录着二级域名服务器的地址,二级域名服务器中记录着三级域名服务器的地址。拿www.bilibili.com这个域名来说,先向根域名服务器查询com域名服务器的地址,之后向该地址发起查询,查询bilibili域名服务器的地址,之后再向该地址查询www域名服务器的地址,之后再向该地址查询www.bilibili.com对应的ip地址。所以dns的域名解析需要找到最后一级的域名服务器才能获得ip地址。获得ip地址后本地的dns服务器会把它返回给主机并进行缓存,主机拿到该ip地址后也会缓存到hosts文件中,浏览器拿到ip后会把域名替换成ip也会缓存到浏览器缓存中。之后便根据应用层协议进行第一层封装,之后进行传输层的封装如果选择的是udp协议则直接发送,如果选择的是tcp协议则需要和对方主机进行三次握手建立连接后再进行发送。tcp连接建立后便把数据交给网络层进行tcp层的封装,封装完成后便把它交给网络层进行封装。网络层拿到目标ip地址后会先查看该ip是否和自己处于同一网络内如果是则会把它交给交换机直接根据mac地址(通过查询ARP表获得,如果没有则会发送一条广播数据目标mac地址为全1,这里的目标ip是有的,目标主机收到后就会把自己的mac地址发送给本机,本机收到后就把它缓存到ARP表中)进行发送不需要经过路由器。我们这边是要和局域网外的主机通信所以需要经过另一个过程,需要把数据发送给路由器由它帮忙发送到另外的网络,所以需要获得路由器的mac地址(通过上面的步骤)获得后把封装好的数据和mac地址一起交给链路层进行封装。链路层封装好后便会把数据交给相应的网卡向外发送。路由器收到后会根据目标ip再路由表上进行查询,算出最优的路径确定下一跳的地址,如果路由表没有记录(一般来说自治系统内部的路由只记录内部网络的信息)该网络说明可能不再本自治系统内,就会把数据发往自治系统的边界网关路由由它来发送到另外的自治系统。通过这种方式一步步的路由到该主机所在的网络。再路由的过程中主要发挥作用的是ip地址的网络号部分主机号不起作用,同时mac地址也只是在传输时起作用。当数据到达该主机的网络后主要发挥作用的就是ip地址的主机号部分和mac地址了。路由器接收到该数据后发现目标ip属于本网络于是就会把它交给交换机由交换机发送到目标主机。交换机拿到该数据后会查看目标的mac地址(路由器再交给交换机时也会进行mac地址的查询根据ip地址,查询后一并发给交换机)之后会查看交换表确定该mac地址所在的端口然后进行发送。如过交换表没有该mac地址的记录则会进行泛洪操作向所有端口进行发送,主机收到后进行单播操作回复交换机,交换机就会把该mac地址与端口号的对应关系记录在交换表当中。这样主机向服务器发送的数据就准确到达了。
在上面的过程中因为大部分主机都是没有公网ip的所以当数据到达内网的网关路由时还会进行nat的转换进行端口映射,把数据的源ip改成公网ip源端口改成网关路由自己的端口。之后把端口和源ip源端口的映射进行记录,当服务器响应数据到达该网关路由后会根据数据的目标端口,进行查询找到对应的私网ip和端口号并进行替换,之后再进行传递。所以再nat的机制下私网内的主机可以主动访问公网设备,但是公网内的主机不能主动访问私网的设备,除非配置了端口映射否则根本找不到。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值