网络协议

TCP/IP报文结构

4.time_wait 阶段
tcp连接释放客户端收到服务器发送的链接释放FIN请求报文进time_wait 阶段

5.tcp连接释放第四次握手为什么需要等待2个最长报文段寿命 防止第四次握手客户段发送的ACK报文丢失,服务器无法正常关闭链接

6.tcp连接释放第四次握手丢失 服务器端端口如何回收 保活计时器--- 服务器在每次接收到客户端数据时重设 该计数器(通常为2小时),若在设置时间内都 未能接收到客户端数据,服务器这是开始发送探测报文段,以后每隔75秒发送一次,若连续发送10个探测报文段仍无响应 服务器自动关闭链接。

tcp流量控制
tcp基于滑动窗口实施流量控制,流量控制目的在于发送方发送速率不能超出接收方的接收速率,即发送方的发送窗口值不能超出接收方给出的接收窗口值,tcp的窗口单位为字节

tcp拥塞控制
拥塞控制的目的在于防止过多的数据注入网络,避免网络中的路由或者链路过载

发送方动态调节发送窗口使其等于拥塞窗口,判断网络拥塞的依据是超时
拥塞控制算法:
慢开始:发送方设置初始拥塞窗口值为2至4个最大报文段(MSS,通常为1460字节)长度值,每收到一个对新报文段确认则将发送方拥塞窗口值加1,拥塞窗口增长呈指数增长

拥塞避免:拥塞窗口超出慢开始门限进入拥塞避免阶段,每经过一个传输轮次(传输轮次指发送方把当前拥塞窗口允许发送的报文段全部发送出去并且收到了最后最后一个字节的确认)其拥塞窗口值加1,拥塞窗口增长呈线性增长

快重传:快重传对于失序到达报文段,接收方应立即发送对已到达报文段的重复确认,通常为3个重复确认,而非捎带确认,目的在于避免发送方误认为网络出现拥塞

快恢复:快重传使发送方知道网络只是存在个别报文段丢失,不启动慢开始算法,而开始执行拥塞避免算法

7.tcp拥塞控制滑动窗口大小计算

tcp拥塞窗口cwnd在拥塞控制时变化图示

2.https 与http的区别

3.https 中rsa加密在哪一阶段

7.数字签名作用

8.TCP和UDP 的区别,DNS基于哪一种

10restfull 如何理解

4.tcp报文结构

5.socket 编程对应 tcp连接 释放的阶段

TCP连接释放常用套接字API
s = socket() 创建一个新的,未命名,未关联的套接字
bind(s, ) 向套接字赋一个本地端口号和接口

connect(s, ) 创建一条连接本地套接字和远程主机及端口的连接
listen(s, ...) 标示一个本地套接字,使其可以合法接受连接
s2 = accept(s) 等待某人建立一条到本地端口的连接
n = read(s, buffer, n) 尝试从套接字向缓冲区读取n个字节
n = write(s, buffer, n) 尝试从套接字向缓冲区写入n个字节
close(s) 完全关闭TCP连接
shutdown(s,) 只关闭TCP连接的输入或者输出端
getsocket(s, ...) 读取某个内部套接字配置选项的值
setsocket(s, ...) 修改某个内部套接字配置选项的值

TCP API允许用户创建TCP的端点数据结构,将这些端点与远程服务器的TCP端点进行连接,隐藏了所有底层网络协议的握手细节,以及TCP数据流与IP分组之间的分段和重装细节

客户端和服务器通过TCP套接字接口进行通信图示

你可能感兴趣的:(tcp,http)