目录
一、OSI七层参考模型:
应用层:应用程序—接收人类传递的一些参数
表示层:转为二进制
会话层:建立维持和断开的一次会话,PC和服务器之间建立的请求
传输层:优化传输—实现端对端的传输,端口号由16位二进制构成,65536个,0-65536,0-1023知名端口号,著名端口号;标定了特殊的服务。
网络层:靠IP地址实现逻辑寻址
数据链路层(包含介质访问控制层MAC、逻辑访问控制层LLC):靠MAC地址实现物理寻址,
物理层:处理电信号
核心:分层
分层的好处:
位于同一层的协议或者设备具有相同或者相似的功能,而不同层次的协议或者设备具有明显的差异。
1.更利于标准化
2.降低层次之间关联性(每一层都只提供自身的服务,每一层都在下层的基础上提供一些增值服务)
封装和解封装:
封装是在某一层次数据之前封装上对应的功能数据,让它执行相应的功能
解封装是封装的逆过程
二、TCP/IP协议簇一系列协议的组合
TCP/IP的两种模型与OSI模型的对照:
概括:
应用层:数据报文;
传输层:数据段
网络层:数据包
数据链路层:数据帧
物理层:比特流
TCP/UDP:
不同点:
1.TCP是面向连接的协议,而UDP是无连接的一种协议(TCP会先进行询问)
2.TCP的传输是可靠的,而UDP的传输是不可靠的
TCP—排序确认重传(超时重传)流控的机制
3.TCP可以进行流控,而UDP不能(滑动窗口机制)
4.TCP可以进行分段,而UDP不能
5.TCP消耗资源会比较多,传输效率比较低,而UDP消耗资源比较小,传输效率比较高
应用场景:
TCP一般运用在对数据可靠性要求比较较高,但是对于传输效率要求相对较低的情况,比如说传输文件/邮件等等。
UDP一般运用在对数据可靠性要求比较低,但是对于传输效率要求相对较高的情况,比如说通讯/直播等等。
UDP的报头:
TCP的报头:
URG:紧急指针标志位、ACK:确认标志位、PSH:紧急推送标志位、
RST:表示要求对方重新建立连接,我们称携带RST标志的TCP报文段为复位报文段
校验和:校验数据包完整性
网络层—数据包
IP协议
协议—指示上层使用何种协议
标识、标志、片偏移—ip的分片
MTU—最大传输单元,默认情况下规定的值
数据链路层最大不能超过1500字节
MSS—最大段长度—传输层分段后的数据大小—1460字节=MTU-ip报头-TCP报头
数据链路层—数据帧
以太网协议
类型—标识上层协议类型
FCS—帧校验序列—CRC算法
物理层—比特流
常用协议:
三、三次握手和四次挥手
三次挥手:
第一次握手:客户端发送建立TCP连接的请求报文,其中报头中SYN字段为1同时还有一个seq序号,该序号数值随机生成
第二次握手:如果服务器存在,那么服务器也会向客户端发送一个数据包, 其中报头SYN字段为1同时携带seq序列号值随机生成、ACK报头为1同时携带序列号ack值为x+1
第三次握手:经过第二次握手之后客户端向服务器发送一个数据包,其中ACK为1同时携带序列号值为y+1
只有经过三次握手才能够证明服务端和客户端收、发功能正常,才能够建立起连接
四次挥手:
四次挥手用于客户端和服务器之间断开连接的时候。
第一次挥手:客户端会向服务端发送一个请求断开连接的数据包,其中FIN字段为1,seq序列号值为x(随机生成)
第二次挥手:服务器向客户端发送一个确认断开连接的数据包,其中ACK字段为1,其携带的ack序列号为x+1、seq序列号值为v
第三次挥手:服务器向客户端发送一个请求断开连接数据包,其中字段FIN字段为1其seq序列号随机生成 y,还会发送一个确认数据包,其中ACK=1,序列号ack=x+1
第四次挥手:客户端向服务器发送一个确认断开连接数据包,其中ACK字段为1,序列号ack=y+1,seq =x+1
四次握手就相当于:
第一次挥手:客户端给服务器说:我和你断开连接吧
第二次挥手:服务器给客户端说:好的,你断开连接吧
第三次挥手:服务器给客户端说:那我也跟你断开连接吧
第四次挥手:客户端给服务器说:好的,你断开连接吧