一、谈谈对OSI七层模型和TCP/IP四层模型的理解?
OSI七层模型为:
TCP/IP四层模型:
OSI七层模型 | TCP/IP四层模型 | 功能 | 协议 |
应用层 | 应用层 | 文件传输,电子邮件,文件服务,虚拟终端 | FTP、HTTP、SNMP、SMTP、DNS、Telnet |
表示层 | 数据格式化,代码转换,数据加密 | 无 | |
会话层 | 解除或建立与别的接点的联系 | 无 | |
传输层 | 传输层 | 提供端对端的接口 | TCP、UDP |
网络层 | 网络层 | 为数据包选择路由 | IP、ICMP、RIP、OSPF、BGP、IGMP |
数据链路层 | 网络接口层 | 传输有地址的帧以及错误检测功能 | PPP、ARP、MTU、SLIP |
数据层 | 以二进制数据形式在物理媒体上传输数据 | IEEE802 |
二、谈谈TCP协议的三次握手过程?
这个过程就像我想和你一起去吃饭,我们素不相识,我不可能一上来就叫你去吃饭,如果我一上来就叫你一起去吃饭,你可能会想:这人谁呀,神经病吧!!!哈哈哈哈哈哈哈哈哈,那我要怎么做呢?
我应该先发出想要认识你的请求“你好呀!我是何故逸”,就是第一次握手;然后你收到我的请求后,如果要同意我的请求就要返回给我一个确认信号,“你好呀!何故逸”,就是第二次握手;接下来我才叫你去吃饭,这个时候我们双方已经同意连接了,这就是第三次握手。
三、TCP协议为什么要三次握手?2次或4次不行吗?
当然TCP连接通过4次5次连接与可以,但是3次握手是最节省资源的连接方式。
四、谈谈TCP连接的四次挥手过程?
五、什么是流量控制?
六、什么是滑动窗口
发送方的滑动窗口:
发送方将窗口内容分为两部分:发送窗口和可用窗口。
随着不断的接收到ACK
确认和数据发送,发送窗口和可用窗口将不断在向前滑动。
- #1 是已发送并收到 ACK确认的数据:
1~31
字节 - #2 是已发送但未收到 ACK确认的数据:
32~45
字节 - #3 是未发送但总大小在接收方处理范围内(接收方还有空间):
46~51
字节 - #4 是未发送但总大小超过接收方处理范围(接收方没有空间):
52
字节以后
当发送方把数据「全部」都一下发送出去后,可用窗口的大小就为 0 了,表明可用窗口耗尽,在没收到 ACK
确认之前是无法继续发送数据了。
当收到之前发送的数据 32~36 字节的 ACK 确认应答后,如果发送窗口的大小没有变化,则滑动窗口往右边移动 5 个字节,因为有 5 个字节的数据被应答确认,接下来 52~56 字节又变成了可用窗口,那么后续也就可以发送 52~56 这 5 个字节的数据了。