1.IP地址
用来标识网络中一台设备的位置,类似于生活中快递地址。
2.端口号
端口号是用来区分不同的服务器与客户端的。一般情况下,服务器的端口号是固定的,客户端的端口号是由操作系统随机生成的。在我们编写程序时,不能给客户端指定固定的端口号,因为可能会导致服务器与客户端使用了同一个端口号,造成端口号冲突。
3.网络协议
网络协议即两台设备发送/接收的数据的格式,这两台设备之间对数据格式进行约定,发送方发送什么格式的数据,接收方就用解析该格式的方法进行解析数据。如果两台设备使用不同的协议进行通信,就表示该通信是没有意义的。
4.五元组
五元组即为上述的源IP、源端口、目的IP、目的端口以及协议类型。源IP、源端口即代表发送方、目的IP、目的端口即代表接收方。
5.协议分层
在网络通信中,需要考虑的问题非常多,如果我们只是用一个协议来解决所有的出问题,那么这个协议就会非常复杂,于是可以将大协议拆分成若干个小协议。
但若仅仅只是拆分,这些小协议的数目也是相当惊人,那么就可以给这些小协议进行分类/分层,并规定只有相邻的层至今才可以通信,上层协议可以调用下层协议,下层协议可以为上层协议服务。
好处:协议分层之后,上层协议不需要关注下层协议的具体内容就可以直接使用;若要替换某一层,也就会影响与之相邻的两层,使得工作量减少。
6.TCP / IP五层网络模型
这个网络模型从上到下依次是应用层、传输层、网络层、数据链路层、物理层。
对于这个模型,还有另一种四层模型的说法,由于数据链路层与物理层与硬件直接相关,就将这两层看成一个整体,即为应用层、传输层、网络层、网络接口层,但这只是站在不同视角上进行分类,下面仅对五层协议展开讨论。
物理层:规定网络通信中的硬件要求,如路由器、光纤、网线等;
数据链路层:考虑相邻两台设备之间是如何通信的(相邻设备:用网线、交换机等连起来的设备即为相邻设备);
网络层:考虑任意两台设备之间是如何通信的,并且需要考虑通信的中间过程,这两台设备之间可能连着许多台交换机或路由器;
传输层:与网络层一样,老驴任意两台设备之间是如何通信的,但是不考虑通信的中间过程,只考虑起点和终点;
应用层:考虑接收到的数据应该如何使用;
各层之间的关联关系:数据链路层基于物理层、网络层基于数据链路层、传输层基于网络层。
7.具体设备
1)交换机:涉及物理层->数据链路层,对路由器接口的扩展,不需要考虑组网问题;
2)路由器:涉及物理层->网络层,组件局域网,进行网络数据包的转发;
3)主机:涉及物理层->应用层,通过应用程序来满足网络通信的要求;
但随着科技的发展,现在的许多交换机也有着路由器的功能,路由器也有着交换机的功能。
8.客户端、服务器
客户端:发送数据的一方;
服务器:接收数据的一方;
客户端与服务器是相对的;
9.请求、响应
请求:客户端给服务器发送的数据;
响应:服务器根据客户端发送的请求进行回应的数据;