1.在浏览器输入一个URL至页面呈现,网络上都发生了什么?
浏览器查找URL是否存在缓存,并比较缓存是否过期
DNS域名解析:通过域名解析获取到IP地址
TCP连接:通过IP地址找到对应的服务器,浏览器和服务器之间建立TCP连接.
HTTP请求:服务器接受到HTTP请求包后才开始处理请求包
HTTP响应:服务器接收到请求后,调用自身的服务,返回HTTP Response包,主要包括状态码,响应头,响应报文三个部分
浏览器页面渲染:客户端接收到来自服务器的响应后开始渲染这个Response包的主体(body)
关闭TCP连接:等收到全部内容随后断开与服务器之间的TCP连接
2.传输控制协议TCP和用户数据报协议UDP的区别?
连接性:UDP面向非连接,TCP面向连接
可靠性:UDP不提供可靠交付,TCP提供可靠性交付,通过TCP传输的数据:无差错,不丢失,不重复,且按序到达
连接对象个数:UDP支持一对一,一对多,多对一和多对多交互通信,TCP只能是一对一通信
传输方式:UDP面向报文,TCP面向字节流
实时性:UDP具有较好的实时性,工作效率比TCP高
首部开销:UDP首部开销小,仅8字节,TCP首部最小20字节,最大60字节
应用场景:
UDP:对数据传输的实时性要求较高,但不对传输质量有要求.比如视频传输,实时通信. 日常生活中,常见使用UDP协议的应用:QQ语音,QQ视频,TFTP
TCP:对数据的传输质量要求较高,但对实时性要求不高的情况,因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。比如:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。比如HTTP,HTTPS,FTP等传输文件的协议以及POP,STMP等传邮件传输的协议,
扩展:
运行在TCP上的协议
HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
HTTPS(HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
FTP(File Transfer Protocol,文件传输协议),用于文件传输。
POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。
运行在UDP上的协议
BOOTP(Boot Protocol,启动协议),应用于无盘设备。
NTP(Network Time Protocol,网络时间协议),用于网络同步。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址
运行在TCP和UDP协议上:
DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作。
3.TCP如何保证可靠?
(1)连接管理机制:三次握手,四次挥手
(2)确认应答机制:发送方接收到已发送数据的确认报文(ACK=1),则继续传输下一个数据
(3)序列号:保证数据按序到达,去除可重复数据,提高效率,可实现多次发送一次确认
(4)流量控制:TCP通过滑动窗口进行流量控制
(5)超时重传:当报文发送了一段时间内未接收到接受方的确认,发送方就会进行重传
(6)拥塞控制:引入慢启动机制,先发出少量数据,先摸清当前的网络拥堵状态后,再决定按照多大的速度传送数据.引入拥塞窗口
(7)校验和
4.TCP的三次握手,四次挥手
参考链接:https://blog.csdn.net/ThinkWon/article/details/104903925
TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、