计算机基础——网络

 

 

什么是网络

网络=物理连接介质+互联网通信协议

互联网通信协议相当于计算机界的英语

 

为何要有网络

打破了地域限制,提高传输数据的效率—>信息高速公路

 

OSI七层协议

  应用层    http,ftp,可以自定义协议

  表达层

  会话层

  传输层    tcp/udp协议

          1.数据段

          2.head+data:head放源端口 目标端口

          3.端口在本机唯一即可

  网络层    ip协议:

          1.数据包

          2.head+data:head放源ip地址 目标ip地址

          3.ip地址的通信->路由协议

          ipv4:

             ipv4地址00000000.00000000.00000000.00000000 -> 0.0.0.0

                 11111111.11111111.11111111.11111111 -> 255.255.255.255

             子网掩码11111111.11111111.11111111.00000000 -> 255.255.255.0

            如127.16.10.22/24 -> 127.16.10.0

             127.16.10.56/24 -> 127.16.10.0  子网地址相同,代表处于同一个lan中

 

  数据链路层  ethernet以太网协议:

          1.数据帧

          2.head+data,head里放:源mac地址 目标mac地址

          3.基于mac地址的广播的通信方式—>计算机通信基本靠吼(所以有了mac地址表,让有记录的mac地址实现单播,获取mac地址成了关键)

  物理层  转换成电信号0100101101,然后发送

 

ARP协议

  ARP协议是获取目标mac的

   前提:在一个局域网LAN内,靠的是目标mac地址找到对方在哪里,即只要目标mac地址是谁,数据包就送给谁。

  情况一:

    1.拿到目标mac地址  

    ARP协议:

      判断两台计算机的子网地址是否一样,如果一样,应该尝试获取计算机2的mac地址

      I:

        计算机1的mac地址 FF-FF-FF-FF-FF-FF 192.168.10.11/24 192.168.10.13/24 数据部分

      II:

        所有计算机都收到该ARP包,碰到FF-FF-FF-FF-FF-FF,大家都知道对方想跟自己要mac地址,

        如果目标ip192.168.10.13/24就是自己,那么返回mac地址

    2.发真正的数据

    计算机1的mac地址 计算机2的mac地址 计算机1ip192.168.10.11/24 计算机2ip192.168.10.12/24 数据部分

  

  情况二:

    1.拿到目标mac地址

    ARP协议:

      判断两台计算机的子网地址如果不一样,应该尝试获取网关的mac地址

      I:

        计算机1的mac地址 FF-FF-FF-FF-FF-FF 192.168.10.11/24 192.168.10.1/24 数据部分

      II:

        所有计算机都收到该ARP包,碰到FF-FF-FF-FF-FF-FF,大家都知道对方想跟自己要mac地址,

        然后只有路由匹配上ip并返回mac地址

    2.发真正的数据

    计算机1的mac地址 网关的mac地址 计算机1ip192.168.10.11/24 计算机2ip202.10.11.13/24 数据部分

 

TCP协议-可靠协议

  tcp通信之前必须建立双向通路

  

 

   客户端一开始是SYN_SENT状态,发送syn=1seq=x服务端,服务端把客户端的请求放入backlog半连接池,客户端从LISTEN状态变成SYN_RCVD状态并从半连接池提取请求,后发送ack=1+x syn=1seq=y给客户端,客户端验证成功后从SYN_SENT状态变成ESTABLISHED状态,后发送ack=1+y给服务端,服务端验证后从SYN_RCVD状态变成ESTABLISHED状态

  半连接池的作用是让客户端能看到请求已经接到,呈现在转圈圈状态。如果没有半连接池,客户端请求堵塞,呈现请求被拒绝状态。调大半连接池是优化方案。但是半连接池消耗的是内存空间,要根据硬件具体情况调节优化程度。

 

  

 

   原理同上

 

UDP协议-不可靠协议

  udp协议走单项通路,自己发完数据就可以断开通道,不在乎数据的完整性,一般用于查询、qq聊天、时间同步之类

 

socket套接字层

  socket是介于应用层和传输层之间的层,提供传递信息的端口号,使得开发人员可以专心开发软件,不需要管网络层面的,做好之后只需要用socket套接字把端口号port对接,即可完整五层网络协议

   ip+port标识唯一一个基于网络通信的软件

DHCP

  想实现网络通信,每台主机需具备四要素

    1.本机的IP地址

    2.子网掩码

    3.网关的IP地址

    4.DNS的IP地址

  获得以上地址,有两种配置方式:

    1.手动配置—>静态获取

    2.手动获取—>dhcp

  新电脑一开机电脑内的dhcp-client(68号端口)会去找路由器的dhcp-server(67号端口)要一个地址,每个地址都会有租期(动态地址)

    获取步骤:

      1.原电脑发送格式{以太网头|ip头|udp头|dhcp数据包}给交换机

        (1)最前面的以太网头,设置发出方的mac地址和接收方的mac地址,前者是本机网卡的mac地址,后者不知道,就填广播地址:FF-FF-FF-FF-FF-FF。

        (2)后面的IP头,设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是发出方的IP地址就设为0.0.0.0,接收方的IP地址设置为255.255.255.255

        (3)最后的UDP标头,设置发出方的端口和接收方的端口,这部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。

 

DNS (ip -> 域名 -> hao123)

  什么是dns : domain name server域名解析服务,负责把域名解析成ip地址

 

  www.baidu.com.  最后的.是根域名,前面一个.com是顶级域名,前面一个.baidu是二级域名,www是三级域名

 

  DNS的查询方式有两种:

    递归查询:当用户要找网站时候,先找根域名服务器,根域名服务器会找对应的顶级域名服务器,顶级域名服务器会找对应的二级域名服务器,如此循环,直到找到该完整网址,在逐步告诉上一级服务器,最后从根域名服务器回复用户ip地址。(极少用)

    迭代查询:当用户要找网站时候,先找根域名服务器,根域名服务器会告诉用户顶级域名服务器的ip地址,用户会用该地址找到顶级域名服务器,顶级域名服务器会告诉用户二级域名服务器的ip地址,用户会用该地址找到二级域名服务器,如此循环,直到用户找到该网址的ip地址。

 

    现在客户端和本地DNS查询用的是递归查询,DNS与域服务器之间的查询用的是迭代查询。

 

  浏览器DNS查找顺序:浏览器DNS缓存 ->本地系统DNS缓存 ->本地计算机HOSTS文件 ->ISP DNS缓存(本地) ->递归or迭代搜索

              本身缓存   调用系统缓存  硬件文件   /etc/hosts    本地DNS服务器

                               c:/Windows/System32/drivers/etc/hosts

  ipconfig /all  看所有网络配置

  ipconfig /displaydns  查看本地dns缓存命令

  ipconfig /flushdns  清除本地dns缓存命令

 

子网划分

  ip地址分类

  

 

 

  特殊ip地址

  1.网络地址:用于表示网络本身,具有正常的网络号部分,而主机号部分全部为0的ip地址称为网络地址,如172.16.45.0就是一个b类网络地址。

  2.广播地址:用于向网络的所有设备进行广播,具有正常的网络部分,而主机号部分全为1(即255)的ip地址称为广播地址,如172.16.45.255就是一个b类网络地址。

  3.有限广播地址:指的是32位全为1(即255.255.255.255)的ip地址,用于本网广播

  4.回送地址:网络地址不能以十进制的127作为开拓,在地址中数字127保留给系统作为诊断用,称为欢送地址,如127.0.0.1用于回路测试。

  5.私有地址:只能在局域网内使用,不能再Internet上使用的ip地址称为私有ip地址,私有ip地址有:

    10.0.0.0~10.255.255.255,表示一个A类地址

    172.16.0.0~172.31.255.255,表示16个b类地址

    192.168.0.0~192.168.255.255,表示256个c类地址

    这些地址是不会被Internet分配的,因此他们再Internet上也从来不会被路由,虽然他们不能直接和Internet网链接,但仍旧可以被用来和Internet通迅,我们可以根据需要来选用适当的地址类,再内部局域网中大胆地将这些地址当作公用IP地址一样的使用。再Internet上,那些不需要与Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省ip地址资源。

  6. 0.0.0.0指一级不是真正意义上的ip地址,它表示的是所有不清楚主机和目的网络,这里的不清楚指的是再布恩及路由表里没有特定条目指明如何到达。

 

  子网掩码是什么

  ip地址由网络号和主机号组成,/24即说明前24个数是网络号,网络号必定是连续的。(/24不一定是24,也可以是16、17、25、26等等)

  ip地址:173.155.10.2/24

  网络号:173.155.10

  主机号:2

  子网掩码是用来表示一个ip地址的网络号个数,从左到右,只要属于网络号,子网掩码就会标记为1。

 

  子网数划分步骤

    确定要划分的子网数以及每个子网的主机数

    求出子网数目对应的二进制的位数N以及主机数目对应的二进制的位数M

    对该ip地址的原子网掩码,将其主机地址部分的前N位置1(其余全部置0)或后M位置0(其余全置1)即得出该ip地址划分后的子网掩码

 

  子网数=2的n次方,其中n为子网部位数,例子:/26,n=26-24。

  8≤子网掩码<16,n=子网掩码-8

  16≤子网掩码<24,n=子网掩码-16

  24≤子网掩码<32,n=子网掩码-24

  主机数的计算:主机数(可用ip)=2的t次方-2,其中t为主机部位数,例子:/26 t=32-26

  t=32-子网掩码

   -2的原因是因为该子网网段头尾都是n个1或者n个0,一般不用做分配主机数。

  

 

 

  例子,如果某c类地址需要划分5个子网,即会划分出3个子网部位(因为2个子网部位只能划出2*2=4个子网)

    ,即子网掩码为24+3=/27。主机部位数为 32-27=5,主机数则为 2的5次方-2=32-2=30。即每个子网内有30个主机数可分配。但是子网段实际最多能分8个,就是说没用完。

  

 

posted @ 2022-11-18 22:08  真渡  阅读(220)  评论(0)    收藏  举报