CLOSED:表示关闭状态(初始状态)。
LISTEN:该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。
SYN_SENT:这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。
SYN_RCVD: 该状态表示接收到SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂。此种状态时,当收到客户端的ACK报文后,会进入到ESTABLISHED状态。
ESTABLISHED:表示连接已经建立。
FIN_WAIT_1: FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。区别是: FIN_WAIT_1状态是当socket在ESTABLISHED状态时,想主动关闭连接,向对方发送了FIN报文,此时该socket进入到FIN_WAIT_1状态。 FIN_WAIT_2状态是当对方回应ACK后,该socket进入到FIN_WAIT_2状态,正常情况下,对方应马上回应ACK报文,所以FIN_WAIT_1状态一般较难见到,而FIN_WAIT_2状态可用netstat看到。
FIN_WAIT_2:主动关闭链接的一方,发出FIN收到ACK以后进入该状态。称之为半连接或半关闭状态。该状态下的socket只能接收数据,不能发。
TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,等2MSL后即可回到CLOSED可用状态。如果FIN_WAIT_1状态下,收到对方同时带 FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。
CLOSE_WAIT: 此种状态表示在等待关闭。当对方关闭一个SOCKET后发送FIN报文给自己,系统会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,察看是否还有数据发送给对方,如果没有可以 close这个SOCKET,发送FIN报文给对方,即关闭连接。所以在CLOSE_WAIT状态下,需要关闭连接。
LAST_ACK: 该状态是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,即可以进入到CLOSED可用状态。
tcp第十一种状态:
CLOSING:这种状态较特殊,属于一种较罕见的状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。
tcp三次握手与四次挥手
半连接池
限制的是同一时刻的请求数,而非连接数
arp协议与mac地址学习
ARP协议其主要用作将IP地址翻译为以太网的MAC地址
交换机初始有一个空mac表 端口与mac地址对应 获取一次后续就不在获取
osi五层协议
数据发送流程
今日内容:
''' 1、C/S B/S client<---基于网络通信--->server browser<---基于网络通信--->server server端必须满足的条件: 1、稳定运行(网络、硬件、操作系统、服务端应用软件),对外一直提供服务 2、服务端必须绑定一个固定的地址 2、什么是互联网 两大要素 1、底层的物理连接介质,是为通信铺好道路的 2、一套统一的通信标准---》互联网通信协议 互联网协议就是计算机界的英语 3、自定义协议: 任何一种通信协议都必须包含两部分: 1、报头:必须是固定长度 2、数据 0000 0000.0000 0000.0000 0000.0000 0000 1111 1111.1111 1111.1111 1111.1111 1111 172.16.10.1/24 172.16.10.1 255.255.255.0000 0000 172.16.10.1: 10101100.00010000.00001010.00000001 255.255.255.255.0: 11111111.11111111.11111111.00000000 子网地址: 10101100.00010000.00001010.00000000 172.16.10.0 172.16.10.2: 10101100.00010000.00001010.00000001 255255.255.255.0: 11111111.11111111.11111111.00000000 子网地址: 10101100.00010000.00001010.00000000 172.16.10.0 4、标识地址的方式: ip+mac就能标识全世界范围内独一无二的一台计算机 ip+mac+port就能标识全世界范围内独一无二的一个基于网络通信的应用软件 url地址:标识全世界范围内独一无二的一个资源 5、OSI五层协议(了解): 6、tcp协议 三次握手建立连接 四次挥手断开连接 1、为何建连接要三次而断开连接却需要四次 2、为何tcp协议是可靠协议,而udp协议是不可靠协议 3、tcp协议建立连接与断开连接的状态信息以及表示的意义 7、半连接池: 限制的是同一时刻的请求数,而非连接数 '''
上节课复习: 1、什么是异常: 异常是错误发生的信号,程序一旦出错就会产生一个异常 如果该异常没有被程序处理,就会抛出来,程序也随即终止 一类是语法错误导致的异常SyntaxError 语法上的错误应该在程序运行前就立刻修正 另外一类是逻辑错误导致的异常 逻辑错误有时候是不可避免的,于是需要在程序的运行过程中加以处理 2、处理异常的语法 try: code1 code2 code3 ... except 类型1 as e: print(e) except 类型2 as e: print(e) except 类型3 as e: print(e) ... except Exception as e: print(e) else: 在被检测的代码块没有异常发生时会自动执行 finally: 被检测的代码块无论有无异常都会自动执行 code4 今日内容: 1、什么是网络 互联网协议OSI七层协议 tcp/udp tcp三次握手+四次挥手 2、基于tcp协议通信的套接字