计算机基础——网络
什么是网络
网络=物理连接介质+互联网通信协议
互联网通信协议相当于计算机界的英语
为何要有网络
打破了地域限制,提高传输数据的效率—>信息高速公路
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=1和seq=x给服务端,服务端把客户端的请求放入backlog半连接池,客户端从LISTEN状态变成SYN_RCVD状态并从半连接池提取请求,后发送ack=1+x syn=1和seq=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个,就是说没用完。