- 公司的电脑为什么要固定
IP地址? 端口是用来干嘛的?子网掩码,网关地址、DNS服务器是用来干嘛的?- 电脑之间是如何通信的?
这篇文章是对阮老师的互联网协议入门(一)、互联网协议入门(二)的总结,
互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite), 而协议就是大家遵守的规则。
互联网协议五层模型
1. 实体层
负责传送0和1的电信号, 电脑连接起来的物理手段(光缆、电缆、双绞线、无线电波等方式)
2. 链接层
确定了0和1的分组方式,"以太网"(Ethernet)协议诞生。
- 以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。
- 以太网规定,连入网络的所有设备,都必须具有"网卡"接口,也就是MAC地址,标明发送地址和接收地址的信息,放在以太网数据包的"标头"
- 广播发送方式: 向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方
有了数据包的定义、网卡的MAC地址、广播的发送方式,"链接层"就可以在多台计算机之间传送数据了。
3. 网络层: 建立"主机到主机"的通信
互联网是无数子网络共同组成的一个巨型网络,两台计算机不在同一个子网络,广播是传不过去的,于是"网络层"的诞生
如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送(("路由"的意思,就是指如何向不同的子网络分发数据包)
于是IP协议诞生,规定网络地址的协议,广泛采用的是IP协议第四版,简称IPv4,由32个二进制位组成,它所定义的地址,就被称为IP地址
子网掩码,子网络特征的一个参数,形式上等同于IP地址,也是一个32位二进制数字
不同的IP地址与子网掩码分别进行AND运算,结果相同,属于同一子网络
从IP地址得到MAC地址
-
两台主机不在同一个子网络,没有办法得到对方的MAC地址,通过“路由”协议,把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理
-
两台主机在同一个子网络,用
ARP协议,得到对方的MAC地址。
"网络层"的功能是建立"主机到主机"的通信
4. 传输层: 建立"端口到端口"的通信
"端口"(port) :每一个使用网卡的程序的编号,0到1023的端口被系统占用,用户只能选用大于1023的端口
UDP协议:在数据包中加入端口信息,UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到
为了解决这个问题,提高网络可靠性,TCP协议诞生
TCP协议: 确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源
"传输层"的功能,就是建立"端口到端口"的通信
"传输层"的功能,就是建立"端口到端口"的通信。"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流
5. 应用层:规定应用程序的数据格式
TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等,应用程序收到"传输层"的数据,接下来就要进行解读。不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层",比如http协议规定了客户端请求跟服务器端响应要遵循什么样的格式
通信中术语的总结
网卡: MAC地址,物理地址,是每个接入网络的设备都必须有的路由: 决定如何向不同的子网络分发数据包IP地址: 接入网络,IP协议分配的地址子网掩码: 子网络特征的一个参数,用来判断不同IP是否属于同一个子网络,方法是不同的IP地址与子网掩码分别进行AND运算,结果相同,属于同一子网络网关(gateway): 两个子网络连接处,管理子网络对外通信"端口"(port):每一个使用网卡的程序的编号,确定该数据包到底是哪个程序使用的"套接字"(socket): Unix系统就把主机+端口,叫做"套接字"(socket)
其他协议介绍
DHCP协议: 一种应用层协议,建立在UDP协议之上,作用是动态IP地址,协议规定,每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做"DHCP服务器"。新的计算机加入网络,必须向"DHCP服务器"发送一个"DHCP请求"数据包,申请IP地址、子网掩码、网关地址、DNS服务器等等参数
DNS协议: 域名转换成IP地址
HTTP协议: 应用层协议,客户端和服务端进行数据传输的协议,客户端通过与服务器建立TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。