五、网络协议与IP
网络
OSI七层协议
计算机网络
1、 什么是网络?
把每台机器连接到一起;网络=物理连接介质+互联网通信协议
互联网通信协议就相当于计算机界的英语
OSI七层协议 ,记五层协议即可:
2、为何要有
打破了地域的限制,提高传输数据的效率=》信息高速公路
3、以太网
1、以太的数据称之为数据帧,分为head+data(头+尾),其中head长度固定;
2、规定凡是介入互联网的主机必须有一块网卡,网卡上有一个Mac地址,全世界唯一;
3、以太网协议的通信采用的是广播的通信方式=》计算机通信靠吼;
4、ip协议
ip地址+mac地址=》全世界范围内唯一的一台计算机
ip地址的范围:
00000000.00000000.00000000.00000000 ->0.0.0.0
11111111.11111111.11111111.11111111 ->255.255.255.255
子网掩码:
11111111.11111111.11111111.00000000 ->255.255.255.0
例如ip地址1:172.16.10.4/24
10101100.00010000.00001010.00000100 -> 172.16.10.4
11111111.11111111.11111111.00000000 -> 255.255.255.0
10101100.00010000.00001010.00000000 -> 172.16.10.0 子网地址
例如ip地址2:172.16.10.5/24
10101100.00010000.00001010.00000101 -> 172.16.10.5
11111111.11111111.11111111.00000000 -> 255.255.255.0
10101100.00010000.00001010.00000000 -> 172.16.10.0 子网地址
除2取余法
进制算法:
- 1、二进制 → 十进制
方法:二进制数从低位到高位(即从右往左)计算,第0位的权值是2的0次方,第1位的权值是2的1次方,第2位的权值是2的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。
例:将二进制的(101011)B转换为十进制的步骤如下:
1. 第0位 1 x 2^0 = 1;
2. 第1位 1 x 2^1 = 2;
3. 第2位 0 x 2^2 = 0;
4. 第3位 1 x 2^3 = 8;
5. 第4位 0 x 2^4 = 0;
6. 第5位 1 x 2^5 = 32;
7. 读数,把结果值相加,1+2+0+8+0+32=43,即(101011)B=(43)D。
- 2、十进制 → 二进制
-
方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
例:将十进制的(43)D转换为二进制的步骤如下:
1. 将商43除以2,商21余数为1;
2. 将商21除以2,商10余数为1;
3. 将商10除以2,商5余数为0;
4. 将商5除以2,商2余数为1;
5. 将商2除以2,商1余数为0;
6. 将商1除以2,商0余数为1;
7. 读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,101011,即(43)D=(101011)B。
应用层
表示层
会话层
传输层 TCP协议/UDP协议
1、数据段
2、head+data:head放的源端口 目标端口
3、端口在本机唯一即可
# 什么是网络?
网络=物理连接介质+互联网通信协议
互联网通信协议就相当于计算机界的英语
为何要有网络?
打破了地域限制,提高传数据的效率=》信息高速公路
应用层 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
172.16.10.13/24 -》172.16.10.0
172.16.10.14/24 -》172.16.10.0
子网地址相同,代表处于同一个lan中
数据链路层 ethernet以太网协议:
1、数据帧
2、head+data,head里放:源mac地址 目标mac地址
3、基于mac地址的广播的通信方式=》计算机通信基本靠吼
物理层 转换成电信号01010101,然后发送
引入:
1、计算机1要与计算机2通信,计算机1必须拿到计算机2的IP地址
2、通信分为两类:
局域网内
跨局域网
计算机1如何确定与计算机2是否在一个局域网内?
如果在一个局域网内,如何通信?=》拿到对方的Mac地址
如果跨局域网,如何通信?=》通过网关,要拿到的目标Mac是网关的Mac
ARP协议
arp协议==》获取目标Mac,如何获取?=》通过IP地址找到Mac地址
当在同一个LAN内,靠的是目标Mac地址找到对方在哪里,只要知道目标Mac地址是谁,数据包就送给谁;
当不在同一LAN内,需要拿到网关的Mac地址,由网关通过路由转出去,直到找到目标IP;
1、拿到目标Mac地址
ARP协议:
判断两台计算机的子网地址是否一样
如果一样,应该尝试获取计算机2的Mac地址
如果不一样,应该尝试获取网关的Mac地址
计算机1的Mac地址 计算机2的Mac地址 数据部分
2、发真正的数据
计算机1的Mac地址 网关的Mac地址 数据部分
2、IP地址+Mac地址=》全世界唯一一台计算机
ARP会将IP地址转换成Mac地址,要么是局域网内一台计算机的Mac地址,要么就是网关的Mac地址,不能是公网计算机的
三次回收建立连接:
syn 请求
seq 暗号
ack 确认收到
四次挥手断开连接:
3、TCP协议与UDP
tcp通信之前必须建立双向通路
UDP协议=》不可靠协议
4、socket协议
socket是用于在两个基于TCP/IP协议的应用程序之间相互通信,也叫套接字。
应
=====》socket《====socket封装以下层
传
网
数
物
5、DHCP
想实现网络通信,每台主机需具备四要素:
1>本机的IP地址
2>子网掩码
3>网关IP地址
4>DNS的IP地址(DNS可有可无,无DNS时可输入全网址访问)
获取以上地址,有两种方式:
1>手动配置=》静态获取(先ping一下是否被占用)
2>动态获取=》DHCP
dhcpclient(68)------------》dhcpserver(开机后自动获取IP地址)
6、DNS (ip==》域名==》hao123)dns把域名解析为IP地址
dns全称:domain name server
dns查询方式:
1>递归查询:网络客户端→本地dns→根域名→顶级域名→二级域名,一级一级,几乎不用
2>迭代查询:通过本地服务器与其他服务器沟通
DNS查找顺序:
Linux系统位置:/etc/hosts
Windows系统位置:C:\Windows\system32\drivers\etc
Windows dns 网络命令:ipconfig /all /all 显示所有网络适配器(网卡、拨号连接等)的完整 TCP/IP 配置信息
查看本地dns缓存命令:ipconfig /displaydns
清除本地dns缓存命令:ipconfig /flushdbs