IP地址:描述了一个设备在网络上的地址(可以理解为购物时的收货地址),在计算机中使用一个32位的4字节数字表示地址,一般把IP地址表示为四个0~255的数字,中间用.分隔开。比如192.168.2.0,等等。
端口号:是为了区分主机上的不同应用程序。一个端口号只能对应一个应用程序,但是一个程序可以绑定多个端口号(可以理解为收件人),不同的程序不能关联同一个端口号。端口号是两个字节的整数(0~65535),0一般不适用,而1~1023的端口号一般是系统留作特殊用途,一些知名的端口是留给常见的服务器的,比如22端口:ssh,80:http,443:https,23:telnet等等。
IP和端口往往作为一对出现。
我们编写代码程序指定端口时应该避开这些特殊端口。
协议:
协议是计算机网络中的规则和约定,用于设备之间的通信和数据传输。常见的网络协议包括TCP(传输控制协议)和UDP(用户数据报协议)等等。学习网络大部分是在学习这些协议。
五元组:源IP,源端口,目的IP,目的端口,协议类型构成一次通信中必不可少的信息。
协议分层:协议分层是将网络协议分为不同的层次,每个层次负责不同的功能和任务。这种分层的方式使得复杂的网络通信变得更加简单和可管理。网络通信是个非常复杂的过程,可能涉及到很多协议,如果是一个大的协议,由于协议过于庞大,不便于人们理解和解决问题,所以拆分成很多小的协议,小的协议太多,就需要分层管理。按照一定的标准把协议分类,并且约定不同层次之间的关系,上层协议调用下层协议,下层协议为上层协议提供支持,就实现了良好的管理。常见的协议分层模型是OSI七层模型和TCP/IP五层模型(是OSI七层模型的简化版本)。
1物理层:
物理层是TCP/IP五层协议模型的最底层,它负责将比特流转换为电信号,并通过物理媒介进行传输,描述了硬件设施。
2数据链路层:
数据链路层位于物理层之上,它负责将数据分割成帧,并通过物理网络进行传输。描述两个相邻节点的数据传输。
3网络层:
网络层位于数据链路层之上,它负责将数据从源主机传输到目标主机。进行路径的选择和规划。
4传输层:
传输层位于网络层之上,它负责在源主机和目标主机之间建立可靠的通信连接,只关注起点和终点。
5应用层:
应用层位于传输层之上,它负责为用户提供各种网络应用服务。(数据的使用)
封装和分用:
封装:
封装是指将数据添加到网络协议的头部或尾部,以便在网络上传输。在发送数据时,每个协议层(从应用层从上到下)都会将数据封装在自己的协议头中,然后传递给下一层。在接收端,协议层会逐层解封装数据。
分用:
分用是指将接收到的数据根据端口号分发给相应的应用程序或服务。在接收端,网络协议会根据目标端口号将接收到的数据分发给相应的应用程序。
封装就像是商家对快递一层一层地进行包装,而分用则是我们从最外层一层一层剥开快递袋。
客户端:
客户端是指发起请求并接收服务的计算机或设备。客户端向服务器发送请求,然后接收服务器的响应。通常,客户端是由用户使用的设备,如个人电脑、智能手机等。
服务器:
服务器是响应客户端请求并提供服务的计算机或设备。服务器接收来自客户端的请求,并根据请求提供相应的服务或资源。
请求:
请求是客户端向服务器发送的一种操作,以获取特定的服务或资源。
响应:
响应是服务器对客户端请求的回应。响应包含服务器所提供的服务或资源,并可能包含状态码、头信息和响应数据。
两台主机之间的网络通信流程:
在两台主机之间进行网络通信的基本流程如下:
客户端发起连接请求。
服务器监听并接受连接请求。
客户端和服务器建立连接并进行数据传输。
客户端发送请求给服务器。
服务器接收请求并处理。
服务器发送响应给客户端。
客户端接收响应并处理。
连接关闭。