7层网络模型
网络在世界范围内实现互联的标准框架
7层为理想模型,一般实际运用没有7层
详细内容
HTTP属于7层应用层
BSD socket属于5层会话层
TCP/IP属于4成传输层
TCP/IP协议
三次握手
笔者解析:
- 第一次握手:实现第一步需要客户端主动打开,服务器在监听,然后发送SYN=1 seq=x等待服务器确认
- 第二次握手:服务器监听到,返回确认信息:SYN=1 ask=x+1,以及发送seq=y和ACK=1等待客户端确认。
- 第三次握手:客户端返回确认信息:ACK=1 ask=y+1 seq=x+1。至此客户端与服务器连接上,可以进行数据传输。
四次挥手
笔者解析:
- 第一次挥手:发送需确认的请求:FIN=1 seq=u
- 第二次挥手:发送接收到服务器请求的信息:ACK=1 seq=v 需确认的请求ack=u+1,然后等待服务器处理完信息,再进行第三次挥手确认才能完成服务器的确认。
- 第三次挥手:处理完信息,发送确认接收到请求FIN=1 ack=u+1,以及需要确认的请求ACK=1 和seq=w
- 第四次挥手:发送确认接收到请求的信息ACK=1和ask=w+1以及seq=u+1。至此服务器与客户端断开。
总结
客户端发送的需要确认的信息(请求)标志位:SYN和FIN
服务器发送的需要确认的信息(请求)标志位:ACK
两者在请求和确认时有标志数据seq和ask,两者通用:seq为请求携带的标志数据,ask为确认的标志数据,ask=上一个seq+1。
常见问题
如果建立了连接,但客户端出现故障:
服务器每收到一次客户端的请求后都会重新复位保活计时器,时间通常为两个小时,若两个小时还没收到客户端的任何信息、数据,服务器会发送一个探报文段,以后每隔75秒发一次,连发10个探测器报文仍没反应,服务器就认定客户端出了故障,接着就关闭连接。
SCOKET原理概念
socket是通信的基石,是支持TCP/IP协议的网络通讯的基本操作单元,工程师要进行TCP/IP连接通信时通过socket进行操作。
socket相当于TCP/IP或UDP的封装、调用接口。
应用层HTTP协议:
Wab联网的基础,也是设计联网常用的协议之一。
SOCKET和TCP/IP让工程师实现网络客户端和服务器的数据传输,但未约定协议,所以不能对数据进行翻译解码,数据不能转换为信息,在经过应用层HTTP后才能完成通讯。
HTTP连接最显著的特点是:客户端每次请求都需要服务器回送响应,在请求结束后,会主动释放连接,从建立连接到释放连接的过程称为“一次连接”,由于HTTP的“一次连接”特性,所以HTTP属于一种“短连接”,要保持客户端程序在线状态,需要不断向服务器发送连接请求,通常做法是即使不需要获取任何数据,客户端也保持一段时间向服务器发送一次“保持连接”的请求,服务器在接收到该请求后对客户端进行返回,表明知道客户端“在线”。若服务器长时间无法收到客户端请求,则认为客户端“下线”,若客户端长时间无法接收到服务器回复,则认为网络断开。