互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。
最底下的一层叫做”实体层”(Physical Layer),最上面的一层叫做”应用层”(Application Layer),中间的三层(自下而上)分别是”链接层”(Link Layer)、”网络层”(Network Layer)和”传输层”(Transport Layer)。越下面的层,越靠近硬件;越上面的层,越靠近用户。
实体层
实体层是把电脑链接起来的物理手段,负责传送0和1的电信号
- 用光缆、电缆、双绞线、无线电等把电脑连接起来
- 把电脑连接起来的物理手段,负责传送0和1的电信号
链接层
链接层在实体层的基础上确定了0和1的分组方式
以太网协议
- 以太网协议中一组电信号构成一个数据包
- 数据包包含标头和数据
- 标头包含数据包的说明项,比如发送者,接收者数据类型等,长度固定为18字节。
- 数据包含数据包的具体内容,长度最短为46字节,最长为1500字节。
- 一个数据包最短为64字节,最长为1518字节。
- 如果数据很长,就必须分割成多个帧进行发送。
MAC地址
- 网卡的地址就是MAC地址
- MAC地址是用来把数据包从一块网卡传送到另外一块网卡时所使用的地址
广播
广播就是发送者向本网络内的所有计算机发送数据包,每台计算机自行判断标头内的接收方的MAC地址和自身的是否相同,两者相同就接收这个包,做进一步处理,否则就丢弃这个包,不在同一个子网络下的计算机是无法进行广播传输的。
网络层
网络层是建立主机到主机的通信
网络地址
网络地址(简称网址)是用来区分不同的计算机是否属于同一个子网络的
- 网络地址是管理员分配的
- 用来确定计算机所在的子网络
IP协议
IP协议是规定网络地址的协议,它所定义的地址叫做IP地址
- 地址分成两个部分
- 前一部分代表网络
- 后一部分代表主机
子网掩码
- 表示子网络特征的一个参数
- 判断任意两个IP地址是否处在同一个子网络
IP数据包
IP数据包内嵌在以太网数据包的”数据”部分
- IP数据包是IP协议所发送的数据
- IP数据包包含标头和数据
- 标头主要包括版本,长度,IP地址等信息,长度为20到60字节
- 数据包含IP数据包的具体内容,最长为65,515字节
- 如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了
ARP协议
- ARP协议能够从IP地址得到MAC地址
- 两台主机必须在同一个子网络才能够使用ARP协议
- ARP数据包包含它所要查询的主机的IP地址,在对方的MAC地址栏填写的FF:FF:FF:FF:FF:FF表示广播地址
- 通过ARP协议发送的数据包,在同一个子网络下的每一台主机都会收到这个数据包,每一台主机都会从数据包中取出IP地址与自身的IP地址进行相同匹配,如果相同,就会向对方报告自己的MAC地址,否则就丢弃这个包
网关(gateway)
- 两个子网络连接处
- 如果两台电脑不在同一个子网络就无法知道对方的MAC地址,必须通过网关转发
传输层
传输层是建立端口到端口的通信
端口
端口就是网卡程序的编号,用来表示数据包到底供那个程序(进程)使用的参数
- 网卡的程序的编号
- 表示数据包到底供哪个程序(进程)使用的参数就叫做”端口”
- 0到65535之间的一个整数,正好16个二进制位
- 0到1023的端口被系统占用,用户只能选用大于1023的端口
UDP协议
UDP数据包内嵌在IP数据包的”数据”部分
- UDP协议在数据包中加入了端口信息
- UDP数据包包含标头和数据
- 标头主要定义了发出端口和接收端口,一共只有8个字节
- 数据包含数据包的具体内容,总长度不超过65,535字节,正好放进一个IP数据包
- UDP协议缺点是一旦数据包发出,无法知道对方是否收到数据包
TCP协议
TCP协议能够确保数据不会遗失,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了
- TCP协议能够确保数据不会遗失
- 缺点是过程复杂、实现困难、消耗较多的资源
TCP数据包
TCP数据包内嵌在IP数据包的”数据”部分,没有长度限制,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割
应用层
应用层规定应用程序的数据格式
- 规定应用程序的数据格式
- 数据就放在TCP数据包的”数据”部分