版权声明:版权没有,转载随意 https://blog.csdn.net/MAOZEXIJR/article/details/89488614
1、什么是进程
进程是执行中的程序片段,资源分配和调度运行的基本单位
2、什么是线程
线程是进程中执行运算的最小单位
3、进程和线程的区别
(1)一个线程只能属于一个进程,但是一个进程可以拥有多个线程
(2)进程之间的通信依赖进程通信机制为维护,线程之间的通信通过读取/写入线程变量来实现
4、什么是端口
一台主机可同时运行多个进程,端口是区分进程的唯一标志
在网络通信中,其他主机想要访问该主机的某个进程,就需要知道该主机的IP地址和端口
这好比寻找某个人除了要知道他所在的 国家+省份+市县+街道+小区 以外还要知道他所在小区的 门牌号
这里的 国家+省份+市县+街道+小区名 即IP地址,门牌号 即端口
5、什么是套接字
进程通过一个称为 “套接字” 的软件接口向网络收发报文
套接字属于网络层的概念,可理解为 IP+端口
6、端口状态
CLOSED | 未启用该套接字,netstat查询不到该状态 |
LISTEN | 套接字正在监听连接 |
SYN_SENT | 套接字主动连接已发送syn,但未收到对方应答的ack |
SYN_RECEIVED | 已收到对方syn应答,但未收到自己发送的syn的ack |
ESTABLISHED | 连接已建立 |
CLOSE_WAIT | 远程套接字已关闭,本地套接字正在等待关闭 |
FIN_WAIT_1 | 套接字已关闭,正在关闭连接 |
CLOSING | 套接字已关闭,远程套接字正在关闭 |
LAST_ACK | 远程套接字已关闭,等待本地套接字关闭 |
FIN_WAIT_2 | 套接字已关闭,等待远程套接字关闭 |
TIME_WAIT | 这个套接字已经关闭,正在等待远程套接字的关闭传送 |
参考资料
【1】《进程、线程的区别》
【2】 《套接字与接口的区别》
【3】 《端口状态说明、三次握手》