- https://blog.csdn.net/qq_36232611/article/details/107310469?utm_medium=distribute.pc_feed.none-task-blog-alirecmd-13.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-alirecmd-13.nonecase&request_id=">https://blog.csdn.net/qq_36232611/article/details/107310469?utm_medium=distribute.pc_feed.none-task-blog-alirecmd-13.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-alirecmd-13.nonecase&request_id=
- 61.TCP和UDP的区别
- 62.三次握手建立连接
- 63.四次挥手断开连接
- 64.TCP 滑动窗口
- 65.TCP 的拥塞控制?
- 66.了解一下DNS
https://blog.csdn.net/qq_36232611/article/details/107310469?utm_medium=distribute.pc_feed.none-task-blog-alirecmd-13.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-alirecmd-13.nonecase&request_id=
61.TCP和UDP的区别
TCP是一个面向连接,可靠,基于字节流的传输层协议。
UDP是一个面向无连接的传输层协议。
TCP是面向连接的,客户端和服务器端的连接,双方互相通信之前,TCP需要三次握手建立连接,而UDP没有建立连接的过程
tcp是面向字节流,udp是面向报文的。UDP的数据传输是基于数据报的,TCP继承了IP层的特性,TCP为了维护状态,将一个个IP包变成了字节流。
TCP报文格式图:
序号:Seq序号,占32位,标识从TCP源端口向目的端口发送的字节流,发起方发送数据时,对此进行标记
确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1
标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等
URG,紧急指有效
ACK,确认序号有效
RST,重置连接
SYN,发起一个新连接
FIN,释放一个连接
PSH,接收方应该尽快将这个报文交给应用层
62.三次握手建立连接
TCP 的三次握手的过程:
有图可知都处于closed状态,服务器开始监听某个端口进入listen状态,客户端发起请求,发送SYN,seq=x,然后状态变为syn-sent状态。
服务器端接收到返回syn和ack,seq=x,ack =x+1,然后状态变成syn-rcvd状态。
客户端收到后,发送ack,seq=x+1,ack=y+1给服务器端,状态变为established,服务器收到后,状态变成established。
在连接过程中,需要对端确认的,需要消耗TCP报文的序列号。SYN消耗一个序列号而ACK不需要。
对于连接四次握手多余,二次握手,会带来资源的浪费,当遇到丢包,重传,连接关闭后,丢包到达服务端,就默认建立连接,可客户端以及关闭,所以三次握手就可以了。
63.四次挥手断开连接
TCP 四次挥手的过程
三次挥手,当服务器将ack和fin合并为一次挥手,会导致长时间的延迟,以至于客户端误认为fin没有到达客户端,让客户端不断重发fin。
64.TCP 滑动窗口
TCP 滑动窗口:
- 发送窗口
- 接收窗口
65.TCP 的拥塞控制?
TCP连接,拥塞控制:
- 拥塞窗口(Congestion Window,cwnd)
- 慢启动阈值(Slow Start Threshold,ssthresh)
TCP/IP协议四层
- 应用层决定了向用户提供应用服务时通信的活动。
- 传输层对上层应用层,提供处于网络连接中两台计算机之间的数据传输。
- 网络层用来处理在网络上流动的数据包。
- 链路层,用来处理连接网络的硬件部分。
- HTTP协议的职责,生成对目标web服务器的HTTP请求报文
- tcp协议的职责,为了方便通信,将HTTP请求报文分割成报文段
- IP协议的职责,搜索对方的地址,一边中转一边传送
TCP协议的职责,从对方那里接收到的报文段,重组到达的报文段,按序号以原来的顺序重组请求报文
66.了解一下DNS
DNS是域名解析系统,它的作用非常简单,就是根据域名查出对应的IP地址。
从根域名服务器查到顶级域名服务器的NS记录和A记录,IP地址
- 从顶级域名服务器查到次级域名服务器的NS记录和A记录,IP地址
- 从次级域名服务器查出主机名的IP地址