IP:很明显,IP就是电脑的身份证。
此处需要分辨私网IP与公网IP,公网IP地址是唯一的,公网IP地址分为ABC三类(还有DE,D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。此处不予讨论)。
A类地址的第一组数字为1~126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。
B类地址的第一组数字为128~191。
C类地址的第一组数字为192~223。
公网IP永远都是独一无二的,公网IP需要向internet管理委员会申请。目前IP地址资源较紧张,向INTERNET亚太中心能申请到的大多是C类地址。
为什么会分为ABC三类地址?
A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。可用的A类网络有126个,每个网络能容纳1亿多个主机。
可用的B类网络有16382个,每个网络能容纳6万多个主机 。
C类网络可达209万余个,每个网络能容纳254个主机。
私网IP地址为internet管委会特地保留出来供内部组网使用。私有IP地址不允许出现在公网上。比如192.168.0.1,此处大笑三声。
私有地址网段
10.0.0.0~10.255.255.255
172.16.0.0~172.131.255.255
192.168.0.0~192.168.255.255
好吧,以后局域网设备就朝这些方向走吧。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
子网掩码: 子网掩码是用来判断任意两台计算机的ip地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的ip地址与子网掩码进行and运算后,得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
为什么要有子网掩码?
互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。
子网掩码如何实现更快的寻址?
类似于ARM内核中的cache命中的分页表。子网掩码将网络分为不同的页,首先查询网络地址,获取网络地址后再查询主机地址。
比如101.102.103.104,子网掩码为255.255.255.0。首先查询101.102的数据库共10000次,再查询103.104数据库10000次,一共查询20000次。而如果直接查询,则需要查询100000000。子网掩码大大提高了查询效率。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MAC地址:
将电脑比喻为一座房子,如果说IP是人为给房子设定的地址,比如说xx区xx弄xx号,这些都是可以修改了,MAC地址就是房子的物理地址,比如说经度xxxx,维度xxxx,这些是没办法改变的。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TCP协议:
TCP协议将数据分为适当长度的报文段,报文内部包含源IP地址与目标IP地址。以及相应的MAC地址。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
路由器与交换机是如何传送数据的:
每个路由器内部记录着与自己相邻的路由器地址,为路由表,路由表是不断动态更新的。数据到达路由器后,路由器会从路由表中选择一个最优的路由路径的路由器将数据传过去,其他路由器周而复始直至将数据发送到目标IP。
目标IP获得数据包后,会依据MAC地址列表,通过查询端口与MAC地址的对应关系将数据包通过端口发送到对应的主机。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
WAN口与LAN口:
WAN口为广域网口,连接互联网或者其他大型网络。
LAN口为局域网口,连接PC主机。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DNS服务器:
此处用一图:
主机请求百度服务器数据之前,会先通过DNS服务器将域名解析为IP地址,再通过路由器做数据通讯。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ping命令:
通过给目标ip发送数据包并要求返回相同数据包确认网络是否连接。
ctrl+R->cmd->ping www.baidu.com
发了4包,收到4包,平均每包13ms。
ctrl+R->cmd->ipconfig
获得自己的ip地址,子网掩码,默认网关。此处的默认网关为华硕的路由器,电信直接给华硕的路由器分配了一个192.168.50.1的IP。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
什么是网关:
网关实质上是一个网络通向其他网络的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的某个主机(如附图所示)。网络A向网络B转发数据包的过程。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
有公网ip和私网ip,那么是怎么找到一个具体的主机的?
一个公网ip有很多人在用,也就是每个使用的用户都有一个私网ip。那么我如何通过ip地址找到对方的主机的?是不是在数据包报头中有两个目的ip?一个公网ip一个私网ip?还是在到达公网ip的时候路由器通过mac找到对方主机?
路由器的NAT(net address translation),路由器NAT功能会将源IP地址翻译为公网IP地址,朝目标IP发送数据。
NAT在做IP转换翻译的时候,还会带上端口号,源端口号是随记分配的,但是目标端口号是固定的。
哎呀。我的天呀,总算完成,以作后续备用吧。再次大笑三声,哈哈哈。