1.1 IP地址
- 要想让网络中的计算机相互通信,必须为每台计算机制定一个统一的标识号,通过这个标识号来指定要接受的数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也是设备的标识。
- IP地址分为两大类 (IPV4 和 IPV6)
IPV4:是给每个连接在网络的主机分配一个32bit的地址。一般用点分十进制表示:192.168.1.66
IPV6:用于解决IPV4分配紧张的问题,采用123bit的地址长度,每16个字节一组,分成8组16进制数,解决了网络资源数量不够的问题。 - 常用命令:
ipconfig:查看本机的ip地址
ping ip地址:查看网络连接是否联通。
特殊地址:127.0.0.1 表示本机的IP地址,一般用来测试使用。
1.2 端口
- 网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程序,在网络通信中,通过IP地址可以标识出唯一的网络设备,端口号就可以唯一标识出应用程序。
- 端口:网络应用程序唯一的标识符。
- 端口号:取值一般为0-65535 ,其中0-1023的端口号一般被一些网络服务和应用使用,普通的应用程序需要使用1024以上的端口号,如果端口号被另一个服务或应用程序占用,会导致当前的程序启动失败。
1.3通信协议
-
通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时要遵守一定的规则。在计算机网络中,这些连接和通信的规则被称为网络通信协议,其对传输格式,传输速率,传输步骤等做了统一的规定,通信双方必须遵守才能完成数据的交换,常见的通信协议有TCP和UDP两种。
-
UDP协议
用户数据包协议,面向无连接的通信协议,发送端不会确认接收端是否存在,接收端也不会返回确认接受数据。
UDP协议的消耗资源小,通信效率高,所以一般采用音频,视频和普通数据的传输
视频会议一般采用UDP协议,虽偶尔丢失一两个数据包,但对接受结果不会产生太大影响。但是在采用UDP协议传送数据时,由于UDP面向无连接性,不能保证数据的完整性,因此在传输重要数据时,一般不使用UDP协议。 -
TCP协议
-
传输控制协议,面向连接的通信协议,在发送端和接收端建立的逻辑连接,然后在传输数据,它提供了两台计算机之间的可靠无差错的数据传输,在TPC连接中必须要明确客户端与服务端,由客户端想服务端发送连接请求,每次连接的创建都要经过“三次握手”。
-
三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器端之间的三次交互,以保证连接的可靠。
第一次握手:客户端向服务器端发送连接请求,等待服务器确认。
第二次握手:服务器端向客户端送回一个响应,通知客户端收到了连接请求。
第三次握手:客户端再次向服务器端发送确认信息,确认连接。
-
完成三次握手后,客户端和服务器端可以进行通信了,由于面向连接的特性,ICP协议可以保证传输数据的安全,所以应用较为广泛:上传文件,下载文件,浏览网页......
-
四次挥手
第一次挥手:客户端打算断开连接,向服务器发送FIN报文,FIN报文中会指定一个序列号,让客户端进入FIN_WAIT_1状态。
第二次挥手:服务器收到连接释放报文FIn后,就向客户端发送ACK应答报文,以客户端的FIN报文的序列号seq+1作为应答ACK报文段的确认序列号,随后服务器进入等待关闭状态,
第三次挥手,服务器也打断断开连接,向客户端发送连接释放报文,之后服务器进入LASK_ASK状态,等待客户端的确认。
第四次挥手:客户端收到来自服务器的连接释放报文段后,会向服务器发送一个ACK应答报文段,以连接释放报文段为确认信号ack作为ack应到报文的序列号seq。
服务器接受到ack后进入close状态,客户单等待2ms释放tcp后,也进入到close状态。 -
完成四次挥手后这是由于TCP的半关闭(half-close)造成的。半关闭是指:TCP提供了连接的一方在结束它的发送后还能接受来自另一端数据的能力。通俗来说,就是不能发送数据,但是还可以接受数据。
TCP不允许连接处于半打开状态时,就单向传输数据,因此完成三次握手后才可以传输数据(第三握手可以携带数据)。
当连接处于半关闭状态时,TCP是允许单向传输数据的,也就是说服务器此时仍然可以向客户端发送数据,等服务器不再发送数据时,才会发送FIN报文段,同意现在关闭连接。
这一特性是由于TCP双向通道互相独立所导致的,也使得关闭连接必须经过四次握手。