-
Notifications
You must be signed in to change notification settings - Fork 0
Description
- 实体层:把电路链接起来,传输0和1的电信号
- 链路层:确定电信号的分组方式,以太网是这一层的协议,并规定:一组电信号构成一个数据包,“帧”(包含标头和数据)
- 网络层:需要判断那些MAC地址同网络,采用广播。哪些不是,采用“路由”。这就需要网络层的网络地址来判断了。
- IP协议:规定网络地址的协议叫做“IP协议”,所定义的地址叫做“IP地址”。目前采用IPv4,由四个字节(32个二进制组成),一般用十进制表示IP,“0.0.0.0”。一个IP地址,前部分代表网络,后部分代表主机。
- 子网掩码:要判断是否处于同网之下,需要判断IP地址的网络部分是否相同,但是多少位代表网络地址,这就需要定义一个参数——子网掩码。如“11111111.11111111.11111111.00000000”,然后与IP进行AND运算,再做对比。
- IP数据包:根据IP协议发送的数据。"标头"部分主要包括版本、长度、IP地址等信息,"数据"部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。

- ARP协议:一边情况我们需要知道对方的IP、MAC才能发送,IP通过DNS解析或者网关是已知的,需要通过IP来得到MAC地址,不同网络,数据发送到网关。同网络之下,发送一个数据包,包含了要查询主机IP,MAC地址填的“FF.FF.FF.FF.FF.FF”。广播之后,收到数据包与自身IP地址做对比,相同就填入MAC地址,并回复
- 传输层:有了链路层和网络层,两台机子就可以建立连接了,但是一般一台机子由多个应用在运行,网络数据需要传输到特定的应用。这个时候就需要“端口”。不同的程序运行起来,连接不同的端口。因此,Unix系统就把主机+端口,叫做"套接字"(socket)。
- 应用层:规定应用数据的数据格式,这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。因此,现在的以太网的数据包就变成下面这样。

每一层都为了完成一种功能,都要遵守一些协议,这些协议就叫做互联网协议
发送的过程
而通过上面可以发现,网络通信的本质其实就是数据交换。而数据包的结构基本如下面所示:

而发送这个数据包需要知道两个地址:
对方的MAC地址
对方的IP地址(网络地址)
但是MAC地址有局限性,如果两个电脑不在同一个子网络,就不知道对方的MAC地址,就需要通过网关做一次转发。

1号电脑要向4号电脑发送一个数据包。它先判断4号电脑是否在同一个子网络,结果发现不是,于是就把这个数据包发到网关A。网关A通过路由协议,发现4号电脑位于子网络B,又把数据包发给网关B,网关B再转发到4号电脑。
1号电脑把数据包发到网关A,必须知道网关A的MAC地址。所以,数据包的目标地址,实际上分成两种情况:
| 场景 | 数据包地址 |
|---|---|
| 同一个子网络 | 对方的MAC地址,对方的IP地址 |
| 非同一个子网络 | 网关的MAC地址,对方的IP地址 |
发送数据包之前,电脑必须判断对方是否在同一个子网络,然后选择相应的MAC地址。
用户上网的设置
- 静态IP地址
一台新的电脑,如果需要接入网络,需要知道四个参数:
1.本机的IP地址
2.子网掩码
3.网关的IP地址
4.DNS的IP地址
Window的设置:

用户每次开机之后给定的IP地址,每次都会分到同样的,这叫做“静态IP地址上网”。
这样设置的话,其他的电脑就用不了这个IP地址,不够灵活。
- 动态IP地址
动态IP,会自动分配一个IP地址,不用人设,他所使用的协议是“DHCP协议”。
这个协议中,每一个子网络有一个专门管理本网所有IP地址的计算器,他叫做“DHCP服务器”,新加入的计算器必须向“DHCP服务器”发送一个请求,申请IP地址和相应的网络参数。
如果两个计算机在同一个网络,必须知道对方的MAC地址和IP地址,才能发送数据包,但是新加入的怎么处理?
DHCP协议:它是一个应用层协议,建立在UDP之上,数据包如图:
1). 最前面的以太网标头,设置本机的MAC地址和接收方MAC地址,接受方“FF-FF-FF-FF-FF-FF”。
2).IP标头,设置接受和发送方的IP,两者本机都是不知道的,所以发送方设置为“0.0.0.0”,接收方设置为“255.255.255.255”。
3).UDP标头,设置发出方的端口和接受方的端口,DHCP已经规定好了,发出为68,接受为67端口。
————
数据构造好之后,通过以太网广播发送,接受到了之后看到接受和发送的IP地址,DHCP服务器就知道是他的,分配好IP之后,返回数据信息,新加入的计算器就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等。
所以不管是静态IP还是动态IP都需要知道四个参数:
1.本机IP地址
2.子网掩码
3.网关的IP地址
4.DNS的IP地址
访问一个网页的完整过程
用户设置了以上四个参数,打开访问“google.com”。
- DNS协议:已知DNS服务器,通过把地址发送给DNS知道IP地址
- 子网掩码:知道子网掩码判断IP是否是同一个子网络
- http 协议:把数据包裹起来,放入TCP数据包当中
- TCP协议:接收方默认端口知道,设置发送方端口,再把数据嵌入到IP数据包当中
- IP协议:设置接收方IP地址,发送发IP地址,数据嵌入到以太网数据包当中。
- 以太网协议:设置接受方和发送方的MAC地址,接收方为网关地址,通过网关IP和ARP协议可以获得MAC然后把IP数据包分割。
- 服务端相应:通过多个网关转发,接收方接收到数据,处理之后再相应回来
以上就是互联网协议的大致过层



