1. 形象理解运输层、网络层和数据链路层的功能
运输层:知道数据要发往哪台主机哪个端口的应用进程(即,运输层具体到IP: port---类似明确到住址+收件人)
网络层:可以将数据送往目的主机的路径规划出来(即,网络层只具体到IP---类似明确到住址)
数据链路层:可以实际地将数据完整地送往网络中相邻的下一站
2. TCP简介
tcp,传输控制协议,属于传输层的一种协议,是非加密的。事实上,传输层不管是tcp还是udp,都是非加密协议
tcp为不同主机的应用进程提供可靠的逻辑通信
注意:运输层协议在端系统中实现,而不在网络中的路由器结点实现。即应用进程自主选择运输层服务,并将应用数据传入端系统的运输层封装成报文段
3. 如何理解tcp为进程提供的是 面向连接的可靠通信
面向连接就是为了可靠
先看看什么是“可靠”
虽然运输层下面的网络层是不可靠的(复杂的网络环境可能发生丢包、长延时等不良情况),但tcp协议规定,如果接收方超过一定时间未收到数据,就通知发送方重发,直到接收方正确收到为止。因此,在tcp协议下,网络层不靠谱丢包没关系,超时重传就完了,总能保证对方能正确接收的
那么,这就需要发送方和接收方总能在出现不良情况后及时进行沟通,逻辑上就像双方总是实时相连的。这就是面向连接
总结:面向连接是为了保证沟通,保证沟通是为了实现可靠
4. tcp协议详细工作原理
可参阅https://www.2cto.com/kf/201709/680298.html
5. 一个tcp连接可以发多少个http请求
-
HTTP/1.0 ,服务器在发送完一个 HTTP 响应后,断开 TCP 链接。因此,一个tcp连接只可以发一个http请求
-
HTTP/1.1,一个tcp连接可以串行发送多个http请求,除非发送方在请求的headers指明connection为close
-
HTTP/2.0and以上,一个tcp连接可以并行发送多个http请求
网友评论