Learn from:阮一峰-互联网协议入门
1. 概念
- <b>互联网协议:</b> 规定电脑如何连接和组网
- <b>互联网分层:</b>
应用层-传输层-网络层-链接层-实体层
2. 实体层
- <b>实体层:</b> 把电脑连接起来的物理手段,负责传送0和1电信号
3. 链接层
- <b>链接层:</b>确定0和1的分组方式。
- <b>以太网协议: </b>一组电信号构成一个数据包——帧。
- <b>MAC地址: </b>以太网规定,连入网络的所有设备,都必须具有“网卡”接口。
数据包是从一块网卡传送到另一块网卡的。
网卡的地址(MAC地址):数据包的发送和接收地址,这个地址是独一无二的
48位,12个十六进制 eg:
- <b>广播: </b>把数据包发给本网络内的所有计算机,计算机自己判断是否为接收方,如果是,就接收这个包,如果不是,就丢弃包。
3. 网络层
- 网络层:主机到主机的通信。
- 以太网广播方式效率低,而且局限在发送者所在的子网络。
- 网络层引进一套新的地址,使我们能够区分不同的计算机是否属于同一个子网络,这套地址叫做“网络地址”( <b>网址 </b>)。
- <b>IP协议: </b>规定网络地址的协议,目前广泛使用的是IPV4(IP协议第四版)
<b>IP地址: </b>eg:172.16.254.1(32个二进制位)(范围从0.0.0.0到255.255.255.255)
互联网上的每一台计算机都会分配到一个IP地址,地址前一部分若干位代表网络部分(所在网络),后半部分代表主机 - <b>子网掩码: </b>表示子网络特征的一个参数,32位二进制,网络部分全为1,主机部分为0.
根据子网掩码前多少位为1可以判断IP地址前多少位为网络部分,从而判读任意两个IP地址是否处在同一个子网络。
<b>方法: </b>将两个IP地址与子网掩码分别按位与运算,结果相同为同一子网络。
<b>sum: IP地址的作用: </b>
1.为网络上的计算机提供一个唯一的地址——IP地址
2.确定哪些地址在同一个子网络 - IP数据包:
- IP数据包的内容放在以太网数据包的数据部分
如果IP数据包在一个以太网数据包中放不下,就要将数据内容分开多个包发送。每个包有相同的标头。
<b>ARP协议: </b>如果两台主机在同一个子网络,使用ARP协议可以得到对方的MAC地址。
4. 传输层
- <b>传输层: </b>端口到端口的通信
- <b>端口: </b>是每一个使用网卡的程序的编号,表示这个数据包到底供哪个程序(进程)使用。
<b>端口的编号: </b>
0—65535间的整数(16个二进制位)
0-1023被系统占用,大于1023用户使用(应用程序随机选取) - <b>UDP协议: </b>
<b>UDP协议优点: </b>比较简单,容易实现
<b>缺点: </b>可靠性差,一旦数据包发出,无法知道对方是否收到
<b>UDP数据包: </b>
- <b>TCP协议: </b>有确认机制的UDP协议,每发出一个数据包都要求确认
缺点:过程复杂,实现困难,消耗较多资源
通常TCP数据包长度不超过IP数据包长度,以确保单个TCP数据包不必再分割
5. 应用层
- <b>应用层:</b>规定应用程序的数据格式
6. 两台电脑间通信:
- 同一个子网络:发对方的MAC地址和对方的IP地址
- 不同子网络:发网关的MAC地址和对方的IP地址
7. 静态IP地址上网
- 每次上网都是同一个IP地址
- 开网时管理员给的四个参数:
本机IP地址,子网掩码,网关的IP地址,DNS的IP地址
8. 动态IP地址
- 计算机上网时,自动分配到一个IP地址,不用认为设定
- <b>DHCP协议规定:</b>DHCP服务器,负责管理本网络的所有IP地址,新电脑加入网络,就向这个服务器发一个“DHCP请求”数据包来申请IP地址和相关网络参数
-
<b>DHCP数据包</b>
- <b>以太网标头:</b>
<b>发出方的MAC地址:</b>本机网关MAC地址
<b>接收方(DHCP服务器)MAC地址:</b>未知,填入广播地址<b>FF-FF-FF-FF-FF-FF</b>
- <b>以太网标头:</b>
- <b>IP标头:</b>
<b>发出方IP地址:</b>未知,设为<b>0.0.0.0</b>
<b>接收方IP地址:</b>未知,设为<b>255.255.255.255</b>
0.0.0.0不是一个真正意义上的IP地址,表示这样一个集合:所有不清楚的主机和目的网络,255.255.255.255:本网络中的所有主机,不被路由器转发
<b>UDP标头:</b>
<b>发出方端口:</b>68端口
<b>接收方端口:</b>67端口
以上是DHCP协议规定的<b>过程:</b>
发出以太网数据包,以太网广播给同个子网络中的每台计算机,每台计算机收到这个包后,因为MAC地址是FF-FF-FF-FF-FF-FF,每个计算机分析了这个包的IP地址,发方是0.0.0.0,收方是255.255.255.255,所以DHCP服务器接收这个包,其他计算机丢弃了这个包,DHCP服务器继续读包,然后选取一个未出租的IP地址,再发出一个“DHCP响应”数据包,数据包形式与请求包一样,包含双方MAC地址(请求方和DHCP服务器),DHCP服务器的IP地址和接收方IP(255.255.255.255),UDP标头:发方端口67,收方端口68,data数据内容:动态分配给请求方的IP地址和相关网络参数。
9. DNS协议
- <b>DNS解析:</b>将网址解析成IP地址
-
向DNS服务器发DNS数据包(53端口)(这个53端口是指接收方DNS服务器的端口吗?)
(以上的各个标头的内容是什么?)
DNS服务器做出响应,给出请求网址的IP地址。