安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。
该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。
TLS握手协议使双方(服务器和客户端)在应用协议层(如HTTP,SMTP等)传输或接收到数据的第一个字节前,就记录层(TLS记录协议)的安全参数达成一致,鉴别彼此(交换密钥),事例安全参数和向彼此报告错误情况。
安全参数实际上根据对话标识符,证书(X509v3),压缩方式,密码规格(bulk加密算法和MAC算法),主密钥和回复标记产生。RFC2246中定义了TLS握手协议。
是一种分层协议,这种协议被用来封装几种高层协议(如HTTP,SMTP等)。使用有TLS握手协议产生的安全参数,它首先将上层被传输的数据分片成便于管理的块,然后对数据有选择性地压缩,计算出消息认证码MAC(如MD5或SHA),加密(如NULL,DES,3DES等),最后将结果送出。接收到的数据经过解密,校验,解压缩,重组后被传输到上层客户端。RFC2246中定义了TLS记录协议。
应用层,传输层,网络层,数据链路层,物理层
物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层
数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)
网络层:路由器、三层交换机
传输层:四层交换机、也有工作在四层的路由器
OSI中的层功能 TCP/IP协议族
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 提供端对端的接口 TCP,UDP
网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
TCP(Transmission Control Protocol),即传输控制协议,是一种面向连接的、可靠的、面向字节流的、全双工的传输层通信协议。
tcp头部格式如下图所示:
数据部分加在头部后面
1.源端口,16位,发送方的端口号。源端口和IP地址的作用是标识报文的返回地址。
2.目的端口,16位,目的端口指明接收方计算机上的应用程序接口。
TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。
3. 32位序列号,sequence number,保证网络传输数据的顺序性。
4. 32位确认号,acknowledgment number,用来确认确实有收到相关封包,内容表示期望收到下一个报文的序列号,用来解决丢包的问题。
5. 头部大小:4位,偏移量:最大值为0x0F,即15,
单位为32位(bit),单位也就是4个字节,给出头部占32bit的数目。没有任何选项字段的TCP头部长度为20字节;最多可以有60(15*4)字节的TCP头部。
6. Reserved 4位 ,预留字段,都为0
7. TCP标志位
(1)CWR:Congestion window reduced,拥塞窗口减少。拥塞窗口减少标志被发送主机设置,用来表明它接收到了设置ECE标志的TCP包。拥塞窗口是被TCP维护的一个内部变量,用来管理发送窗口大小。
(2)ECN-Echo:显式拥塞提醒回应。当一个IP包的ECN域被路由器设置为11时,接收端而非发送端被通知路径上发生了拥塞。ECN使用TCP头部来告知发送端网络正在经历拥塞,并且告知接收端发送段已经受到了接收端发来的拥塞通告,已经降低了发送速率。
(3)URG:为1时,紧急指针(urgent pointer)有效,配合紧急指针使用
(4)ACK:为1时,确认号有效
(5)PSH: 为1时,接收方应该尽快将这个报文段交给应用层
(6)RST:为1时,释放连接,重连。
(7)SYN:为1时,发起一个连接。
(8)FIN:为1时,关闭一个连接。
8. 16位窗口大小:占16bit。此字段用来进行流量控制,主要用于解决流控拥塞的问题。单位为字节数,这个值是本机期望一次接收的字节数。
9. 16位校验值: 占16bit。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。
10. 16位紧急指针:占16bit。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
11. 32位Tcp选项:一般包含在三次握手中。
UDP(User Datagram Protocol),即用户数据报协议,是无连接的、不可靠的、面向报文的传输层协议。UDP始终以恒定的速率发送数据,没有拥塞控制;UDP支持一对一、一对多、多对多、多对一通信,而TCP只支持一对一通信;UDP首部开销小,只有8字节,而TCP头部至少由20字节,相比于TCP要高效很多。
1、UDP有两个字段:数据字段和首部字段。
首部字段很简单,只有8个字节,由4个字段组成,每个字段的长度都是两个字节。
1)源端口:源端口号。在需要对方回信时选用。不需要时可用全0。
2)目的端口:目的端口号。这在终点交付报文时必须要使用到。
3)长度: UDP用户数据报的长度,其最小值是8(仅有首部)。
4)校验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。
2、要注意的地方
伪首部:
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、 流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要 有:Telnet(远程终端协议)、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系 统)、TFTP(通用文件传输协议)等.
TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点
IP(Internet Protocol)协议是TCP/IP协议族的核心组成部分,是目前应用最广的网络互联协议。IP层对应于ISO/OSI七层参考模型中的网络层。通过IP数据包和IP地址屏蔽掉了不同的物理网络(如以太网、令牌环网等)的帧格式、地址格式等各种底层物理网络细节,使得各种物理网络的差异性对上层协议不复存在,从而使网络互联成为可能。IP协议的主要功能有:无连接数据报传送、数据报路由选择和差错控制。
ARP(Address Resolution Protocol)协议,又叫地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。其中有个ARP攻击的概念,大家可以了解下。ARP攻击主要存在于在局域网中,就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。
1、HTTP
HTTP(HyperText Transfer Protocol,超文本传输协议)用于从万维网(WWW)服务器传输超文本到本地浏览器,是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)的协议。
2、FTP
FTP(File Transfer Protocol),即文件传输协议。FTP协议包含FTP服务器和FTP客户端两部分,其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
3、NFS
NFS(NetworkFileSystem),即网络文件系统,是一种用于文件共享的协议,主要用于主机之间进行文件的共享。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
4、SMTP
SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议,是互联网上传输邮件的事实标准,用于由源地址到目的地址传送邮件并控制信件的中转方式。
5、DNS
DNS(DomainNameSystem),即域名系统,是用来将域名解析到IP地址的一种协议(而ARP协议是用来将IP地址转换为MAC地址的协议)。