OSI七层模型
OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层:网络接口层、网际层、运输层、应用层。
五层协议:物理层、数据链路层、网络层、运输层、应用层。
每一层的协议
物理层:RJ45、CLOCK、IEEE802.3,(中继器、集线器、网关)
数据链路层:PPP、FR、HDLC、VLAN、MAC,(网桥、交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP,(路由器)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一层的作用
物理层:通过媒介传输比特,确定机械及电器规范(比特Bit)
数据链路层:将比特装饰成帧和点到点的传输(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包Packet)
传输层:提供端到端的可靠报文的传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译。加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
TCP和UDP区别
- TCP面向连接,UDP无连接的。
- TCP面向字节流(文件传输),UDP是面向报文的,UDP没有拥塞控制因此网络出现拥塞不会使源主机的发送速率降低(对IP电话,实时视屏会议等)
- TCP首部开销20字节,UDP首部开销8字节
- TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序达到;UDP尽最大努力交付,即不保证可靠交付。
- 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一的交互通信。
- TCP的逻辑通信是全双工的可靠信道,UDP则是不可靠通信。
TCP如何保证数据可靠传输
流量控制:控制双方的传送速率在双方可接受的范围内,通过滑动窗口实现的。(滑动窗口:接收方通过告诉发送方自己窗口的大小,从而控制发送的发送速度。滑动窗口主要分为四个状态:已经发送并且得到ACK确定的,已经发送但还未得到ACK确定的,未发送但允许发送的,未发送且对端不允许发送的)
4种拥塞控制算法:慢启动、拥塞避免、快速重传和快速恢复
- 针对发送端发出的数据包的确认应答信号ACK、通常将推迟几分之一秒(可能是要对包做完整性校验)
- 针对数据包丢失或者出现定时器超时的重发机制。
- 针对数据包到达接收端主机顺序乱掉的顺序控制机制、对失序数据进行重新排序,然后才交给应用层。
- 针对高效传输数据包的流动窗口控制。
- 针对刚开始的启动的时候避免一下子发送大量数据而导致网络瘫痪的慢启动的拥塞算法机制。
TCP三次握手
SYN(synchronous建立联机)ACK(acknowledgement确认)seq(sequence number)FIN(finish结束)ack(Acknowledge number)
第一次握手:主机A发送建立联机信号SYN=1,和一个随机序列码seq=n到主机B
第二次握手:主机B接收到主机A发送的请求后,返回建立联机信号SYN=1、确认信号ACK=1、随机序列码seq=m、确认序列号ack=n+1
第三次握手:主机A接收到主机A发送的响应后,发送确认信号ACK=1、随机序列号seq=n+1、确认序号ack=m+1
TCP四次挥手
第一次:主机A向主机B发送释放连接报文,并停止发送数据。 发送结束信号FIN=1,随机序列号seq=u。
第二次:主机B接收到主机A的报文后,发送确认信号ACK=1,确认序列号ack=u+1,随机序列号seq=v。
第三次:主机B向将最后的数据发送完毕后,就向主机A发送释放连接报文,发送结束信号FIN=1,确认信号ACK=1,随机序列号seq=w,确认序列号ack=u+1
第四次:主机A收到主机B的报文后,向主机B发送确认信号ACK=1,序列号seq=u+1,确认序列号ack=w+1。
TCP和UDP的区别
udp接收到应用协议的某个消息后,不会分包但是要记录当前数据包的大小,消息头加上8个字节的头部后进行发送。TCP接收到应用层发送的数据后,会按照计算机连接的网络中的MTU最大传输单元对数据进行分包然后交给IP层。
TCP是面向连接的,UDP是无连接的
HTTP协议
HTTP(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种传输协议,所有的WWW文件都必须遵从这个标准。HTTP是基于TCP/IP来传递数据的。
客户端发送的请求消息包括以下格式:请求行(request line)、请求头部(request head)、空行和请求数据四个部分组成。
服务端返回的响应消息包括以下格式:状态行、消息报头、空行和响应正文。