数据库连接 Transaction 保证可以复用
HTTP协议不能共用,相当于IO
无状态,没办法区分不同的requests的replies
如果共用一个连接,没有办法保证reply给到request,必须要对连接上锁,保证一对一
连接 --> 能不能复用 --> 连接数 --> 需不需要close再open
连接pool
ThreadLocal
OSI 7层模型
应用层,表示层,会话层,传输控制层,网络层,链路层,物理层
应用层(,表示层,会话层):应用程序员负责
传输控制层(TCP, UDP),网络层,链路层:内核负责
nc // 创建连接
E.g.
nc localhost 6379 //connection with local redis
nc www.google.com // then you can send GET HTTP 2.0..
netstat -natp // 看连接
nc是内核负责,HTTP或者redis是应用层
什么是TCP?
面向连接的,可靠的传输协议
三次握手
链接是双向的
三次握手都在传输控制层,内核控制,所以是可靠的
连接走通后,双方需要开辟资源
资源链接后,发送数据
什么是socket?
ip:port + port:ip 四元组,唯一确认/区分每一个 socket 对应关系
ip:主机地址,port:映射进程
port 总共有65535个
对于一个http server端,无论多少socket连接,对于server只消耗一个端口号80
对于一个port用完的client,如果server不一样,还能继续开辟socket (client可以用同样的port)
如果加网卡,还能突破 65535 ports
nc -l 192.168.150.11 9090
netstat -natp //可以看到四元组socket 跟进程之间的映射关系
四次分手
为了释放资源,释放port
When connection sets up, there is:
Client ------SYN-----> Server
Client <---ACK/SYN---- Server ----①
Client ------ACK-----> Server
It takes four segments to terminate a connection since a FIN and an ACK are required in each direction.
and when termination comes, there is:
Client ------FIN-----> Server
Client <-----ACK------ Server ----②
Client <-----FIN------ Server ----③
Client ------ACK-----> Server
tcpdump //抓包程序,自行下载
tcpdump -nn -i eth0 port 80
前三个:三次握手
然后request head, server ack;
server 分了两次发包 length = 1460, 1321
最后四个是分手
DDoS攻击,就是不发最后的那个ack,占用server资源
网络层
网关 Gateway,掩码 Netmask
UIP & 掩码 = 网络地址
子网掩码(subnet mask)是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。 子网掩码不能单独存在,它必须结合IP地址一起使用。 子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分
网关(Gateway)又称网间连接器、协议转换器。 网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。 网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。“下一跳”
路由表
route -n
找出下一跳
这样就不用把所有的route都存在每一台地址里
链路层
mac 地址,硬件系统
全球唯一
节点,端点
MAC地址换,但是IP地址不换
arp -a
高并发
负载均衡:七层 or 四层
Nginx:七层,基于reverse proxy的load balance
LVS:四层,注意!不能破环连接的原子性
No comments:
Post a Comment