TCP、IP网络协议知识点总结大全
1.TCP/IP模型
2.TCP和UDP
3.TCP为什么要三次握手
4.TCP为什么要四次挥手
5.网页请求一个URL的流程
6.DNS工作原理
7.HTTPS加密原理
1.TCP/IP模型
「应用层」:规定应用程序数据格式,处理特定的应用程序细节
「传输层」:指定端口供特定应用程序处理,建立端口到端口的通信
「网络层」:主要负责寻址和路由选择,将数据传输到目标地址,建立主机到主机的通信
「链路层」:数据链路层分为逻辑链路LLC子层和介质访问控制MAC子层:
o MAC(Media Access Control层主要定义了数据包如何在物理介质上传输,包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等,MAC层的存在屏蔽了不同物理链路的差异性
o LLC(Logic Link Control)层负责识别网络层协议,为上层提供服务,包括传输可靠性保障和控制、传输可靠性保障和控制、数据包的顺序传输
在发送数据的时候,MAC层可以事先判断是否可以发送数据,如果可以则给数据加上一些控制信息,最终将数据以规定格式发送到物理层;在接收数据的时候,MAC层首先判断是否发生传输错误,如果没有错误,则去掉控制信息后发送至LLC层
「物理层」:通过光纤、电缆等设备将计算机连接起来,实现二进制数据的传输
2.TCP和UDP
o TCP头结构:来源端口、目的端口、序号、确认序号、SYN/ACK 等状态位、窗口大小、校验和、紧急指针
o特点:面向连接、面向字节流、可靠、有序、速度慢、较重量,流量控制、拥塞控制
o适用场景:文件传输、浏览器等
o应用:HTTP、HTTPS、RTMP、FTP、SMTP、POP3
o UDP头结构:来源端口、目的端口、长度域、校验和
o特点:无连接、面向报文、不可靠、无序、速度快、轻量、实时性高(无队首阻塞)
o适用场景:适用于一对多、即时通讯、视频通话等
o应用:DHCP、DNS、QUCI、VXLAN、GTP-U、TFTP、SNMP
3.TCP为什么要三次握手
TCP的可靠连接建立是靠包起始序列号来达成的,三次握手主要目的是客户端和服务端对各自的包起始序列号达成共识:
o第「一」次握手:客户端发送SYN及客户端包起始序列号给服务端
o第「二」次握手:服务端发送SYN及服务端包起始序列号给客户端,并且还发送ACK及客户端包起始序列号+1,表示对客户端包起始序列号达成共识
o第「三」次握手:客户端发送ACK及服务端包起始序列号+1给服务端,表示对服务端包起始序列号达成共识
而二次无法达成共识目的,四次则报文数量冗余了
包序列号可以认为是唯一的,因为它是以时间自增生成的,每四个多小时才会重复一次,远大于报文最大生成时间MSL
4.TCP为什么要四次挥手
TCP是全双工的,断开需要确保双向都没有数据要发送了:
o第「一」次挥手:客户端发送FIN及客户端包序列号给服务端,表示客户端没有数据要发送了
o第「二」次挥手:服务端发送ACK及客户端包序列号+1给客户端,表示对客户端没有数据发送达成了共识
o第「三」次挥手:服务端发送FIN及服务端包序列号给客户端,表示服务端没有数据要发送了
o第「四」次挥手:客户端发送ACK及服务端包序列号+1给服务端,表示对五福端没有数据发送达成了共识
第四次挥手客户端发送ACK给服务端后会进入TIME_WAIT状态,要等待2MSL才真正关闭,两个理由:
o要确保客户端发送的ACK能达到服务端,让服务端知道客户端收到了第三次挥手,服务端进而可以断开了
o要保证本连接中所有的报文都在网络中死翘翘了,防止下个同端口的新连接收到旧连接的报文
5.网页请求一个URL的流程
1.HTTP请求的准备
o发起DNS请求将域名解析成对应的IP地址
o建立TCP连接,如果开启了Keep-Alive机制,也可在多次请求中复用TCP连接
2.HTTP请求的构建
按照HTTP报文格式构建报文,包括:
o请求行:包括请求方法、URL、HTTP版本信息,请求方法包括POST、GET、PUT、DELETE等
o首部:包括Accept-Charset(客户端可以接受的字符集)、Content-Type(正文内容格式)、Cache-control(缓存控制)等o正文实体:当使用POST、PUT等请求方法时,通常客户端需要向服务器传递数据,这些数据就存储在请求正文中
3.HTTP请求的发送
添加HTTP头后,报文会经过传输层、网络层、链路层,分别添加上TCP头、IP头和MAC头
然后判断目标地址和本机是否在同个局域网,如果是,就通过ARP 协议获取目标MAC地址,放入MAC头;如果不在同个局域网,就把网关MAC地址放入MAC头
网关收到包后取出目标IP地址,根据路由协议找到下一跳路由器,获取下一跳路由器MAC地址,将包发送过去,这样路由器一跳一跳最终到达目标局域网
最后一跳路由器发现目标地址在自己局域网中,通过ARP协议获取目标地址的MAC地址,然后将包发送给目标机器
目标机器接收到包后,层层向上,依次解析MAC头、IP头、TCP头,最后发送给TCP头中端口号对应的HTTP服务器进程,然后
HTTP服务器将网页返回给客户端
4.HTTP返回的构建
HTTP返回报文包括:
o状态行:包括版本、状态码、短语信息,状态码包括200(OK)、404(Not Found)、503(Service Unavailable)等等
o首部:包括Retry-After(间隔一定时间后可重试)、Content-Type(正文内容格式)等
o正文实体:返回的数据格式,包括HTML、JSON等
6.DNS工作原理
DNS服务器包括根域名、顶级域名、权威域名三种:
o根域名DNS服务器:返回顶级域DNS服务器的IP地址o顶级域名DNS服务器:返回权威DNS服务器的IP地址o权威域名DNS服务器:返回相应主机的IP地址