互联网通信/协议基础总结

351 阅读5分钟
  1. 公司的电脑为什么要固定IP地址
  2. 端口是用来干嘛的?
  3. 子网掩码网关地址DNS服务器是用来干嘛的?
  4. 电脑之间是如何通信的?

这篇文章是对阮老师的互联网协议入门(一)互联网协议入门(二)的总结,

互联网的核心是一系列协议,总称为"互联网协议"(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协议规定了客户端请求跟服务器端响应要遵循什么样的格式

TCP数据包组成

通信中术语的总结

  • 网卡: 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协议实现。

参考