一,TCP协议 :
在TCP/IP协议中,TCP协议能够提供可靠连接,是互联网的基石,采用三次握手建立一个连接.
第一次握手:Client发送syn/seq包给服务端,进入SYN_SENT状态。SYN为1,seq为随机值J,等待Server确认。
第二次握手:Server收到包后由SYN=1确定Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
第三次握手:Client收到包后,检查ack是否为J+1,ACK是否为1,如果正确则将ACK置为1,ack=K+1,并将该数据包发送给Server,Server收到包后,检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手。
2. 确认号ack
占4个字节,对方报文段中与上次自身发出相关联的确认号。
3. 确认ACK
占1个比特位,仅当ACK=1,确认号字段才有效。ACK=0,确认号无效。
为什么要三次握手:
三次握手是保证安全可靠的前提下,握手次数最少的方案。两次握手并不能保证可靠性。四次握手又浪费了效率。
为什么不是两次握手:
如果client第一次发送的连接请求syn,在网络空间中产生滞留,没能第一时间去链接到server,而是和client的第二次连接请求一起到达server端,server端会维持两个连接,但是第一个连接是无效的,就会造成资源浪费,服务端可能因为资源耗尽而崩溃。
二,OSI七层网络模型:
应用层:
网络服务与用户的一个接口。 HTTP、TFTP, FTP、SMTP,https
表示层:
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、DECOIC、加密格式等
会话层:
负责网络中两节点的建立,在数据传输中维护计算机网络中两台计算机之间的通信连接,并决定何时终止通信
SMTP, DNS
传输层:
是整个网络关键的部分,是实现两个用户进程间端到端的可靠通信,处理数据包的错误等传输问题。是向下通信服务最高层,向上用户功能最底层。TCP UDP协议。
网络层:
进行逻辑地址寻址,实现不同网络之间的路径选择,IP就在网络层
IP, ICMP,ARP, RARP,
数据链路层:
物理地址(MAC地址),网络设备的唯一身份标识。建立逻辑连接、进行硬件地址寻址,相邻的两个设备间的互相通信
物理层:
七层模型中的最底层,主要是物理介质传输媒介(网线或者是无线),在不同设备中传输比特,将0/1信号与电信号或者光信号互相转化。IEEE 802.1A, IEEE 802.2到IEEE 802
三,http和https:
HTTP协议运行在TCP之上。所有传输的内容是明文,客户端和服务器端都无法验证对方的身份。
https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,互相可验证身份。
(1)HTTP请求报文:请求行、请求头部、空行和请求数据4个部分组成。
(2)HTTP响应报文:状态行、消息报头、响应正文。