内网IP 外网IP 网卡 路由器通信过程(全)

  1. 云栖社区>
  2. 博客>
  3. 正文

内网IP 外网IP 网卡 路由器通信过程(全)

codingcoge 2018-05-05 01:50:28 浏览2068
展开阅读全文

       这几天上了计算机网络的课,对于老师讲的内容也是懵懵懂懂,一个慌神就没跟上,啥ip 啥NAT一脸蒙蔽。课后oogle补了点东西算是大致有了点了解,不过网上的总结都是零零散散而且点到即止。搜集了好多大佬的总结,终于算是得出自己的一些感悟。故此在这总结一番,希望看到的博友也有一些收获。
话不多说 照例先列个目录:
外网ip
内网ip
内卡
网关
路由器

IP地址:
IPV4就是4段,每段8位,用十进制数字表示,每段数字范围为0~255。如192.134.11.3。IP地址可以视为网络标识号码与主机标识号码两部分,因此IP地址可分两部分组成,一部分为网络地址,另一部分为主机地址。IP地址分为A、B、C、D、E5类,它们适用的类型分别为:大型网络;中型网络;小型网络;多目地址;备用。常用的是B和C两类。
默认子网掩码就是来区别网络地址和主机地址的
未来还有IPV6 这里就不讨论了
IPv4专用地址如下:
A类 0.0.0.0-127.255.255.255 (最后一个是广播地址
默认子网掩码:255.0.0.0 (意思就是第一段是网络号 后三段是主机地址)
B类 128.0.0.0-191.255.255.255
默认子网掩码:255.255.0.0
C类 192.0.0.0-223.255.255.255
默认子网掩码:255.255.255.0
广播地址就是它可以给该网段的所有电脑群发信息
IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;
每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;

IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。

IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。
特殊的IP地址
127.0.0.1 表示 本机回环地址

以下列出留用的内部私有地址
**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**

其它的IP你就认为是外网IP好了。
这里写图片描述
这里写图片描述
问:
如果我用路由器,那么路由器下的IP比如192.168.1.101是不是就是内网IP,而路由器分配的100.64.0.30这个IP是外网IP?是不是外部只能访问到路由器,如果不用端口映射是访问不到192.168.1.101这个IP?”
答:
前2个猜测都正确。第3个感觉不精确,应该是用NAT这种技术。(
要想和网关外的主机通信,必须用NAT,PROXY或者隧道技术进行地址转换
掩码)(具体看路由器 下文)
总结:
1. 外网IP是整个因特网的地址,唯一的,没有重复的
2. 内网ip是局域网内的IP地址,只能使用局域网内部资源,如果要使用因特网的资源则需要有外网IP作为出口,不同的内网可以重复使用IP,例如A网有192.168.0.1,B网同样可以有,不冲突。
3. 一台路由器下可以有多个计算机 而且这些计算机各有各的内网IP地址 内网电脑访问外部需要通过路由器 共用一个路由器的外部IP地址 有个NAT的协议记录了 内网电脑ip和端口号对应着的外网ip和端口号。一个内网内两台电脑同时访问百度 NAT会把内网ip解析成外网ip然后访问百度,对百度来说是一个ip的两个端口访问了自己。然后把两个访问结果返回给路由器 路由器根据端口号(也就是映射到NAT上找到对应的计算机)返回给内网不通过的计算机
4. 内网IP地址是动态分配的 外网IP地址是固定的
5. 127.0.0.1127.255.255.255用于回路测试地址
6. “255.255.255.255是广播地址
7. 0.0.0.0表示未分配的时候 本机地址
8. 子网掩码不能单独存在,它必须结合IP地址一起使用
9. 所有的网络空间计算都必须“减2”,这是因为要扣除两个保留地址:“0”为网络号,“255”为广播。地址1-254分配给主机。
10. 给广播地址发小弟 该网络段的所有计算机都可以接收到 比如给192.168.1.255发送信息 那么192.168.1.255.ip开头的网络段都可以接收到你发送的消息
11. 广播地址只有UDP有 TCP中没有广播地址 这点内容下次博客会讲
网卡:

几乎每台电脑都有一个网卡 它也有一个唯一的标识符 那就是MAC地址 不只是电脑 路由器等也有。MAC是物理地址 是链路层传递的目标
那就有个问题 网卡的作用是什么?
它就是为了计算机联网服务的。具体的我来解释一下它的工作流程吧。
当一个计算机需要联网的时候需要一个IP地址。(与外界通信的基石,相当于收发邮寄的地址,没有地址如何发送和接受?)
那请问IP是怎么分配的呢 这个时候就需要DHCP(动态主机配置协议) 路由器都是自带这个协议的 所以一般都是就近原则找本台计算机所连接的路由器来分配。那怎么通知到DHCP服务器(路由器)呢? 这个时候网卡就派上用场了 :
实际上是应用层的DHCP发现报文(请求的信息) 然后被一个UDP的报文封装 然后再被IP的数据报封装 如下图:
这里写图片描述
(UDP是传输层负责数据操作 IP负责网络层负责数据的运输)
然后网卡把该数据帧包装成以太网帧发送出去 可是发送信件总需要知道对方的MAC地址才可以,这个时候不知道的情况下要广播 是广播到同一个子网内的所有电脑然后把信息通过交换机传递给所有连接到交换机的设备 然后找到DHCP服务器 这个时候
1. DHCP服务器(路由器)会动态分配给计算机一个IP地址,但是这个地址是内网IP地址 俗称私有地址 (具体的下面介绍)
2. 网卡发送确认信出去告诉DHCP服务器我就要这个IP了
3. 网卡接收到一个确认信 包括IP 192.168.1.3(后两位随意) 网关路由器是192.168.1.1 DNS服务器的地址是202.102.224.69
以上步骤都是自动完成的
网关路由器其实就是路由器 相当于大门 把守着通往互联网的大门
DNS服务器就是可以根据域名转换得IP地址的一个服务器
比如我们要上百度网但是只知道IP域名 我们得需要知道百度的IP地址 可是我们怎么知道呢 就是通过网关路由器去寻找DNS服务器 解析得到百度的地址
那问题又来了 实际传输的是在数据链路层 需要知道MAC地址才可以传递 这个时候该怎么办?
ARP就出来了 它是地址解析协议 可以通过ip找到对应的MAC地址 然后计算机又广播出去找到了路由器的MAC地址把信息发送出去(顺便记录该mac在内存中下次不用反复查找) 出来局域网的事就交给路由器了 路由器反复周折找到DNS的服务器 返回百度的ip地址 然后 通过建立TCP连接通过TCP 的GET等请求得到百度信息
这里写图片描述
后来出现了 无线网卡。。这就不多解释了

网关
那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此。所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
做网关的服务器有一个网关(服务器/路由器)的IP地址,其它内网电脑的IP可根据它来随意设置,前提是IP前三个数要跟它一样,第四个可从0-255中任选但要跟服务器的IP不同
默认的网关IP地址就是 192.168.1.1 这是路由器在内网的ip地址 局域网内的ip地址就要192.168.1带头 后面一个字段0到255 。如果路由器还连接了外网 那路由器就会获得另一个ip地址 那就是所谓的外网ip

路由器:
为啥叫网关 因为它是大门通往外界的一大关
每个路由器都会被分配一个外网ip地址 区别于内网ip地址
问:一个路由器有多少个地址?
:一般家用路由器本身内部可以设两个IP地址,一个LAN口的网关IP地址,另外一个是WAN口的IP地址,这个地址按照电信运营商给你的静态IP或者ADSL拨号方式获取。

为什么会需要内网ip地址?
因为不同局域网内的内网ip可以重复 可以缓解地址压力 不然都不够分了
路由器会把数据链路层的外衣脱掉 找到ip数据包的地址 可以知道是向内网请求还是外网请求了 (根据上文提到的ip地址范围)

比如是向外网发出请求
1. 就会用自己的外网地址把源地址给替换掉就是内网地址
2. 就会创建个新的端口号 把TCP数据包里面的源端口也替换掉
完成了这两步就ok了这样 外部网络就以为是路由器发送出来的请求 当路由器接收到结果后 就查看路由表 确定到底转发到那个端口 然后再把结果返回给对应的电脑 这个就是网络地址转换 叫NAT
这样就做到了用一个外网IP就支持了局域网内多个电脑上网需求这样实现了内网访问外网 。
那外网如何访问内网呢?
也是通过NAT 通知外网 我在这里 然后 外网访问路由器ip和端口 对应将请求发送给内部对应的电脑
要想查看自己电脑的IP地址即内网ip:
1. 即按住菜单键+R进入运行
2. 输入cmd进入命令行
3. ipconfig查看IP地址
附上自己的查询结果
这里写图片描述
根据结果知道我的默认网关是192.168.2.1
我的电脑ip也就是192.168.2.226
我要是想广播的话 改成 192.168.2.255即可 同一个网络号的机器都可以收到我的消息
如何查看本路由器的IP地址?
https://ip.cn/
这个网站就可以 附上我的:
这里写图片描述
强调 默认网关是内网路由器IP

子网包括网络地址和子网掩码

问:请问如何根据IP地址和子网掩码得到网络地址?
答:将IP地址转换为二进制 32位 子网掩码也转换为32位 每一位进行与操作 得到的32位就是网络地址 只要网络地址相同就认为是在同一个网段 。
问:子网掩码作用?
答: 区别网络地址和主机号 前面全是1111组成的是网络地址 主机号是后面000组成的 根据网段判断该网段可以容纳多少主机号根据子网掩码二进制前面11的个数 后面第一个0开始 才是主机号
强调 : 全0和全1都不能代表主机号 因为 全0代表自己主机 全1代表广播地址
以上都是个人搜集和总结的 如有问题还请指出

最近想搭建一个本地服务器 区别于阿里云那些远程服务器 本地服务器只是本地有效 意思就是一个路由器下同一个网段内有效
本地服务器就是局域网内两台电脑通信 经过路由器转达 但是不经过外网
需要下载tomcat 这个之后再弄吧 先有个概念 本地服务器分配的ip是内网ip而不是公网ip

参考 :
内网与外网通信
什么是外网IP 内网IP
内网 子网 局域网 外网
IP地址分类,内网和外网的区别
关于内网IP和外网IP
TCP/IP网络层
局域网IP地址段
ip地址内网

网友评论

登录后评论
0/500
评论
codingcoge
+ 关注