最近在学习网络相关的东西,现在整理一下来分享给大家,有错误的地方希望大虾们能指出来:以下内容是我精简介绍,是以正常情况的私网来说明的。若要知道更加详细一点请去网上搜索吧,百科上就有。
当我们的联网电脑一开机就是干什么呢,当然是获得IP地址,私网的地址也好,公网的IP也罢总得要个IP地址来标识自己吧。获得IP地址需要DHCP协议的支持: 首先 1)我们的电脑A(包括需要使用IP的设备,如IP电话,路由器。交换机。。。)向网络以广播的形式发送DHCP DISCOVER。此时由于A没有IP,只会带上自己的MAC和IP地址为0.0.0.0
2)装有DHCP服务(192.168.95.1)的设备会从网络中截取到DHCP DISCOVER包,收到后会根据自己的已经分配的IP情况,分一个IP地址(比如192.168.95.68)给A。那么DHCP服务器以发送DHCP offef给A。 3)A收到DHCPoffer后,拆包一看,有一个DHCP告诉自己,我的IP是192.168.95.68,子网掩码是255.255.255.0,租用的有效期是24hours,对方的IP是192.168.95.1,mac地址是。。。。 此时,A再以广播的形式发送DHCP Request请求,请求租用IP地址192.168.95.68 24hours。并附带自己的要求的服务。。此时由于A没有IP,只会带上自己的MAC和IP地址为0.0.0.0。 4)DHCP服务器收到后,若请求的服务自己能够满足就回复ACK给A。所有的请求都是在MAC层进行的。同时附有DNS服务器,网关。
以太网协议会带着自己的MAC到对方的MAC,IP协议会带上自己的IP跟对方的IP(有可能是跨网段的DHCP服务器),UDP/TCP会带上目标端口跟源端口。目标端口跟请求的服务有关(如:)
20 FTP数据端口
21 FTP控制端口
23 telnet远程控制
SMTP简单邮件传输协25 议
53 DNS域名服务系统 67 bootps 68 bootpc 80 HTTP 110 POP3
得到了自己的IP后,会做死的发广播来发送ARP请求更新自己的ARP缓存表。比如说:“who has 192.168.95.66, tell 192.168.92.68……”。ARP不会牵扯到网络层。
接下来A要跟自己不在同一个网段的主机B通信了。A首先带上自己的IP地址,MAC地址,发送“美女你好”。而目的的IP地址肯定是B的IP咯,MAC就不是对方的了,而是自己网关的MAC地址(一般是路由器)。到达后经过茫茫多的路由器终于不辱使命地到达B,B也回发“帅哥你好给A。”于是他们就通信了。这中间牵扯到了路由的问题。通过Ping对方的IP(ping 192.168.95.66)就会有一个TTL的东西,这个叫跳数。一般都有一个初始值为(255.128.等),没有经过一个路由器就会减一。
上面的情况是AB都在公网上,只有一个路由过程,现在的IPV4的地址实在是有限,于是乎就出来了一个叫NAT的东西来缓解这个问题。
现在对于私网的AB来说?情况就不一样了。先介绍一下NAT。
NAT(Network Address Translation,网络地址转换)是将IP 数据报头中的IP 地址转换为另一个IP 地址的过程。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP 地址空间的枯竭。 私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。 RFC 1918 为私有网络预留出了三个IP 地址块,如下: A 类:10.0.0.0~10.255.255.255 B 类:172.16.0.0~172.31.255.255 C 类:192.168.0.0~192.168.255.255 上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用。所以我们的局域网内总是设计些网段的IP地址。 现在A(192.168.95.66) B(192.168.95.67)C (192.168.95.68)他们同时连接在router A上。他们的网关是192.168.95.1。正常情况下router A就是ABC的网关,DNS服务器兼DHCP服务器。A的LAN口(就是A下面的ABC的网关)IP为192.168.95.1.WAN口就外面的公网IP地址,可以进入router查看如(22.22.22.22)。对面的D(192.168.95.66)E(192.168.95.67)F(192.168.95.68)他们同时在router B上。他们的网关是192.168.95.1。 B的LAN口IP为192.168.95.1.WAN口就外面的公网IP地址,可以进入router查看如(33.33.33.33)。ABC跟DEF的设置是一样的,就是公网IP不一样。那么A是怎么把信息发给D的呢。 A Router A D B Router B E C F
A首先带上自己的IP跟MAC以及端口发送到D的IP地址(D是公网地址,以为D是在私网上,外面的主机是看不到其IP的,也很好的避免了病毒攻击),网关的MAC 目标的端口跟服务有关(至于端口,把电脑比作大厦,大厦有N个门(65535个),每个门通向一个房间,每个房间提供的服务都不一样。只不过是虚拟的,物理上是不存在的)。到
达自己的网关后,会有一个NAT端口映射。此时会把IP地址变成公网的IP,即IP变成了22.22.22.22,MAC是根据路由信息来填下一个路由器的MAC,源端口会变,目的端口依然没有变。在NAT映射中,会返回一个随机的端口给A如(45)来标识主机A。经过路由 终于到达了B,B收到后给B的网关,在转发给B。 A边跟美女聊天还边上网。这就遇到了只知道域名而不知道要访问哪里。这就要NDS来解析一下了。我想访问www.sina.com这个域名,那么它的IP是多少呢,NDS服务器收到后就告诉他www.sina.com的IP是58.63.236.236.去这里访问就行了。
希望对刚刚学习网络的人有点帮助。有错误请指出。我水平有限。大家一起探讨。邮箱603406320@qq.com。希望高手能指导。