搞定java面试系列--网络

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拥塞控制机制,慢开始,拥塞避免,快重传,快恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值