1、osi七层网络模型,五层网络模型,每次层分别有哪些协议?我这里只写出需要知道的那些常用的协议。
第七层:应用层,
1.1 HTTP 超文本传输协议 FTP 文件传输协议 SMTP 简单邮件传输协议 DNS 域名系统
第六层:表示层 DECnet NSP LPP 轻量级表示协议
第五层:会话层
SSL 安全套接字层协议 TLS传输层安全协议 LDAP轻量级目录访问协议 RPC远程过程调用协议
第四层:传输层
典型的tcp 协议和udp协议
RUDP可靠的用户数据报协议 Mobile IP 移动IP协议
第三层:网络层
IP/IPv6 互联网协议/互联网协议第六版
ICMPv6互联网控制信息协议第六版
ICMP互联网控制信息协议
IGMP 互联网组管理协议
第二层:数据链路层
地址解析协议 ARP地址解析协议 RAR逆向地址解析协议
第一层:物理层 : IEEE 802.2 Ethernet v.2 Internetwork
2、tcp三次握手,四次挥手过程以及三次握手四次挥手的原因,timewait的原型?
https://www.cnblogs.com/qdhxhz/p/8470997.html 这个文章写的挺好,其实理解透原理就很简单。
思考:那么为什么是4次挥手呢?
为了确保数据能够完成传输。
关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也
即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。
可能有人会有疑问,tcp我握手的时候为何ACK(确认)和SYN(建立连接)是一起发送。挥手的时候为什么是分开的时候发送呢.
因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到
FIN报文时,很可能并不会立即关闭 SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能
发送FIN报文,因此不能一起发送。故需要四步握手。
思考:客户端突然挂掉了怎么办?
正常连接时,客户端突然挂掉了,如果没有措施处理这种情况,那么就会出现客户端和服务器端出现长时期的空闲。解决办法是在服务器端设置保活计时器,每当服务器收到
客户端的消息,就将计时器复位。超时时间通常设置为2小时。若服务器超过2小时没收到客户的信息,他就发送探测报文段。若发送了10个探测报文段,每一个相隔75秒,
还没有响应就认为客户端出了故障,因而终止该连接。
3、tcp拥塞控制机制,慢开始,拥塞避免,快重传,快恢复