首页 > 代码库 > 网络通信

网络通信

    本人习惯边学习,边总结精华,以下内容就是学习linuxcast.net的nash_su老师学习的个人笔记。

    另外个人强烈推荐itercast.net教学视频,虽然现在服务器已关闭,但是在百度云上还是有一整套视频下载。

    IP编址

  • IP地址是一个双层编址方案,一个IP地址标识一个主机(更准确地说是一个网卡接口)
  • 现在应用最广泛的是IPV4编址,已经开始逐渐向IPV6编址切换
  • IPV4地址为32位长,IPV6地址为128位长
  • 一个IPV4地址分为两部分:网络部分和主机部分
  • 网络部分用来标识所属区域(像家庭住址),主机部分用来标识该区域中的哪个主机(像姓名)
  • IPV4地址共32位,通常使用点分十进制方式表示
  • 整个IP地址分为4个部分,每个部分8位(二进制)

     技术分享

    标红的部分,是点分十进制,即用点分开的十进制数字。

    下面的一排是二进制数字,总共32位。

    子网掩码

  • 我们通过子网掩码来确定IP地址网络部分的位数
  • IP地址和子网掩码是成对出现的
  • 子网掩码与IP地址一样,拥有32bit,每一位与IP地址中的每一位一一对应
  • IP地址中相对应子网掩码为1的部分为网络部分,也就是IP地址所属于哪一块区域

     技术分享

    此图中,可以明显看到子网掩码中前24位表示IP地址的网络部分,换句话说,所有IP地址为192.168.1.xxx都为同一网络区域。

    通信

    同一网络

    Mac地址(网卡地址)用于在同一个网络区域内,不同主机通过地址解析协议(ARP)进行通讯。  

   技术分享

    不同网络

    通过路由器(一个或若干个)转发

    在不同网络之间传输数据的功能叫做路由功能,一般有多个接口,连接到不同的网络中,并且通过路由表进行数据转发。

    技术分享

    技术分享

    域名

     技术分享

    .net一般指的是网络公司

    .com 一般指的是普通盈利性公司

    .org 一般指的是免费的或开源的机构

    .edu 一般指的是教育机构

    .gov 一般指的是政府机构

    DNS

    每个域名代表一个IP,而DNS服务就是用来在IP于域名之间进行转换的。域名只是为了方便记忆,真正的数据传输通信还是通过IP地址。域名向IP地址的转换,通过DNS服务器。

    技术分享

    一般一台电脑请求一个域名,会先把请求发送给DNS服务器,然后DNS解析域名,转换为IP地址响应给客户端,客户端拿着IP地址再去访问相应的主机或服务器。

    对于linux系统有非常有用的网络调试指令:

    测试网络连通性

    ping ip

    ping 域名

    测试DNS解析

    host + 域名

    dig + 域名

    显示路由表

    ip route

    追踪到达目标地址的网络路径

    traceroute + 域名

    使用mtr进行网络质量测试

    mtr + 域名

    故障排查

    和做其他任何事情一样,网络连接不正常故障排查也是有顺序的,有诀窍的。

    总的原则:故障排查遵循从底层到高层,从自身到外部的流程。

    依照如下顺序,一步一步排查:

    技术分享

    

网络通信