1. 定义
任意两台计算机正常通信,需要通过一套统一的标准协议规范,这一系列协议就是‘互联网协议‘。
互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。
2. tcp/ip五层协议
互联网协议分为好多种,下面通过tcp/ip五层协议为例举例说明。
应用层(Application Layer)、传输层(Transport Layer)、网络层(Network Layer)、链接层(Link Layer)、实体层(Physical Layer)。
a、物理层(Pyhsical Layer):
通过光纤、电缆、网线、无线电波等物理方式把计算机接入网络。通过高低电压发送二进制信息。传输0和1信号。
b、数据链路层(Link Layer)
1. 定义
数据链路层定义了电信号分组方式,保证传输的0和1信号有意义。
2. 以太网协议(Ethernet)
一组电信号为一‘帧’,包括两部分:报头(head)、数据(data)。
报头:固定为【18字节】=发送者(源mac地址)【6字节】+ 接收者(目标mac地址)【6字节】+ 数据类型【6字节】
数据:数据内容【46~1500字节】
3. mac地址
mac地址也就是报头中的原mac地址和目标mac地址。
每一块网卡具有唯一mac地址,长:48位的2进制组成(正好6个字节),表示为12位16进制(前6厂商编号、后6流水线编号)。
4. 广播:
通过mac地址,同一局域网内的两台主机就可以通信了:
一台计算机向网络中广播数据包,所有计算机都会收到数据包,每台计算机读取数据包中的报头中的目标mac地址,和自己的一样就接受这个数据包,做进一步处理,否则,丢弃这个数据包。
ps:一块网卡通过ARP协议获取另外一块网卡的mac地址。
c、网络层(Network Layer)
使用以太网协议,单单应用mac地址在局域网内广播方式传输数据不是办法,于是乎‘网络层’诞生了。
引入一套新的地址用来区分不同的广播域(子网),这套地址即网络地址。
规定网络地址的协议,叫做IP协议,其定义的地址,叫做IP地址。
1. IP协议:
目前流行的是IP协议是IPv4,32个二进制位组成(4个字节)。
IP协议的作用1是为每一台计算机分配IP地址,2是确定哪些IP地址是在同一个子网内。
ps:确定IP地址是否在同一个子网,需要和子网掩码AND运算。
2. IP地址:
IP地址:网络部分可以是前24位(或者前16位),后8位(或者后16位)是主机部分。
子网掩码:网络部分是前24位,主机部分是后8位,
那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
3. IP数据包:
IP数据包也分为:报头(head)和数据(data),总长最大65535字节。
报头:固定为【20~60字节】= 版本、长度、IP地址
数据:数据内容【65475~65515字节】
ps:以太网数据包的数据(data)部分就是IP数据包。
4. ARP协议:
从IP地址得倒mac地址。
。。。
d、传输层(Transport Layer)
传输层就是建立‘端口到端口’的通信,端口号就是使用网卡的程序的编号。
ps:网络层是建立了‘主机到主机’的通信。
端口号:
端口号:[0~65535],[0~1023]被系统占用。
ps:Unix把主机+端口,叫做‘套接字’。
1. UDP协议
UDP数据包也分为:报头(head)和数据(data),不超65535字节。
报头:端口号8个字节
数据:
ps:IP数据包的数据(data)部分就是UDP数据包。
UDP协议不可靠,发出数据,不管对方是否接收到。
2. TCP协议
TCP协议可靠,每个数据包都有确认机制。
TCP数据包没有长度限制,但是为了保证网络效率,一般不超过IP数据包长度。
E、应用层(Application Layer)
规定应用程序数据格式
总结:
以太网数据包构成:
以太网报头+[IP报头+ [TCP报头 + data]]