Web前端-2.TCPIP⾯试题
⼀. TCP协议
1. TCP/IP四层模型,各层的结构、功能、协议、作⽤
应⽤层 : 提供应⽤层服务,⽂件传输(FTP), 电⼦邮件(SMTP),HTTP(超⽂本传输协议),DNS(域名系统),telnet(远程登陆服务)
传输层: TCP 、 UDP
⽹络层: IP, ICMP(⽤于在IP主机、路由器之间传递控制消息) ,OSPF(⽤于⽹际协议(IP)⽹络的链路状态路由协议,⽤于IP选路)yiimy西柚饮万养堂
物理链路层:ARP(地址解析协议,根据IP地址获得MAC地址)
2. TCP和UDP
TCP是传输控制协议,提供的是⾯向连接的、可靠的字节流服务。实际的数据传输之前,服务器和客户端要进⾏三次握⼿,会话结束后结束连接。
UDP是⽤户数据报协议,是⽆连接的,传输速度很快,可以⽤于实时视频。
TCP保证数据按时到达,提供流量控制和拥塞控制,在⽹络拥堵的时候会减慢发送字节数,⽽UDP不管⽹络是否拥堵。
TCP是⼀对⼀服务(是连接的),⽽UDP可以⼀对⼀、⼀对多、多对多。
3. TCP的三次握⼿和四次挥⼿。
编写一个贪吃蛇程序A⾸先向B发出连接请求报⽂段,这个时候⾸部中的同步位SYN=1,同时选择⼀个初始的序号x。此时报⽂段不能携带数据。此时A进⼊到SYN_SENT(同步已发送)状态。
B受到连接请求报⽂,同意建⽴连接,向A发出确认。确认报⽂中,SYN和ACK都置1,确认号是x+1,与此同时,⾃⼰选择⼀个初始序号y,这个报⽂也不能携带数据。此时B进⼊SYN_RCVD(同步收到)状态。
A收到B的确认后,还要给B确认。这时可以携带数据,A进⼊到ESTABLISHED状态。这就是三次握⼿的过程。
**为什么 A为什么还要发送⼀次确认(两次握⼿会怎样)。**为了防⽌已经失效的连接请求报⽂⼜突然传
送到了B,⽽产⽣错误。假设⼀种异常,A发出的请求由于⽹络阻塞没有及时到达B,后⼜重传请求,之后B响应了,且建⽴了连接,之后连接⼜释放了。此时假设A发出的第⼀个请求到达B,B误以为是A再次请求连接,B建⽴连接,如果采⽤两次握⼿,此时连接建⽴,⽽A⼜不发送数据,浪费了B的资源。fopen使用
四次挥⼿
数据传输结束后,通信双⽅都可以释放连接。现在A和B都处于ESTABLISHED状态,A的应⽤进程向其TCP发出连接释放报⽂段,主动关闭TCP连接。A进⼊FIN_WAIT1(终⽌等待1)状态。
然后B确认,B进⼊CLOSE_WAIT(关闭等待)状态。此时TCP处于半关闭状态,A已经没有数据要发送了,如果B仍要发送数据,A仍然接收。
A收到B的确认后,就进⼊FIN_WAIT2(终⽌等待2)状态,等待B发出连接释放报⽂。
如果B已经没有向A发送的数据,则B发送请求释放报⽂,B进⼊LAST_ACK(最后确认)阶段,等待A的确认。web前端基础面试题
A在收到B的请求后,要发出确认,然后进⼊TIME_WAIT(时间等待)状态。此时,连接还未释放,必须等待时间等待计时器设定的时间的2MSL后,A才进⼊CLOSED状态。
为什么最后要等⼀个TIME_WAIT时间呢sql2000实例名
1.为了保证最后⼀个ACK能够到达B,防⽌丢失了
2.为了防⽌之前提到的“已经失效的连接请求报⽂段“出现在连接中”。A发送完最后⼀个ACK,再经过时间2MSL,可以使本连接产⽣的所有请求报⽂从⽹络中消失。
4.TCP拥塞控制
拥塞控制就是为了防⽌过多的数据注⼊到⽹络中,这样使⽹络中的路由器不⾄于过载。
拥塞控制:慢开始,拥塞避免,快重传,快恢复。
netbeans中文5. 滑动窗⼝协议
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论