TCP的三次握手和四次挥手
三次握手 1.建立连接时,客户端发送SYN包到服务器,并置发送序号seq=x,进入SYN_SENT状态,等待服务器确认; 2.服务器收到客户端,必须确认客户端的SYN,同时自己也发一个SYN包,即SYN+ACK(ACK=x+1)包,并置发送序号seq=y,此时服务器进入SYN_RECV状态; 3.客户端接收到服务器的SYN+ACK包,向服务器发送确认包(ACK=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,连接成功。 四次挥手 1.客户端向服务器发送FIN报文,并置发送序号为seq=u,客户端进入FIN_WAIT_1状态,表明客户端已经没有数据发送给服务器; 2.服务器收到客户端发送的FIN报文,向客户端回复一个ACK报文段(ACK=u+1),并置发送序号seq=v,服务器进入CLOSE_WAIT状态,客户端进入FIN_WAIT_2状态,服务器告诉客户端,我同意你的关闭请求,此时为半关闭状态; 3.服务器向客户端发送FIN报文,并置发送序号seq=w,请求关闭连接,服务器进入LAST_ACK状态,客户端进入TIME_WAIT状态; 4.客户端收到服务器发送的FIN报文,向服务器发送ACK报文段(ACK=w+1),客户端处于TIME_WAIT状态,服务器收到客户端的ACK报文段就关闭连接; 此时客户端等待2MSL后依然没有收到回复,证明服务器已正常关闭,客户端可以关闭连接。
简要描述OSI七层协议,及其每个层次的主要功能
OSI七层模型成为开放式互联参考模型,通过七个层次的结构模型使不同的系统之间实现可靠的通信,最主要的功能是帮助不同类型的主机实现数据传输。
应用层:提供为应用软件而设的接口,以设置与另一软件之间的通信; 表示层:把数据转换为能与接收者的系统格式兼容并传输数据的格式; 会话层:负责在数据传输时设置和维护计算机网络中两台计算机之间的通信连接; 传输层:把传输表头加至数据已形成数据包,传输表头包含了所有使用的协议等发送信息,确保到达对方的隔断信息准确无误; 网络层:决定数据的路径选择,将网络表头加至数据包,形成分组转发; 数据链路层:网络寻址,错误侦测和改错; 物理层:负责管理计算机通信设备和网络媒体之间的互通;
OSI模型和TCP/IP模型区别
1.TCP/IP是一个 协议簇,而OSI是一个参考模型 2.OSI有七层层次,TCP/IP只有四层 ,OSI的应用层、表示层、会话层在TCP/IP中统一为应用层 3.TCP/IP是由一些交互性的模块做成的分层次的协议,每个模块提供特定的功能;OSI则是哪一层提供哪种功能
数据在各个层次之间的数据传输过程
应用层–物理层 应用层的数据在传输层被分为许多段;在网络层增加了源IP地址和目的IP地址,变成数据包;在数据链路层加上源MAC和目标MAC地址,变成数据帧;物理层转换为比特流在物理介质上进行传输。 物理层–应用层 接收到物理层的比特流;数据链路层判定接收端MAC地址是自己的就接受,不是自己的就丢弃,接受后去掉MAC地址部分的数据;网络层判定IP地址是否正确,正确的去掉ip记录数据,变成数据段传输给传输层;最终在应用层拼接传输层的数据,呈现给用户。
HTTP、HTTPS
HTTP(超文本传输协议Hypertext Transfer Protocol) HTTP请求响应过程:当我们输入url地址并点击回车时,浏览器内部会进行如下操作 1.DNS服务器首先会进行域名的映射,找到URL域名所对应的地址,然后HTTP客户端进程在80端口发起一个到服务器(域名对应的服务器)的TCP连接,客户端和服务器进程中都有一个套接字与其相连; 2.HTTP客户端通过它的套接字向服务器发送一个HTTP请求报文,报文中包含了用户请求url地址中的资源; 3.HTTP服务器通过它的套接字接受该报文,进行请求的解析工作,并从存储器中解析该url对象,将检索出来的对象进行封装,封装到HTTP响应报文中,并通过套接字向客户发送; 4.HTTP服务器随即通知TCP断开连接,实际上是需要等客户接收完响应报文才会断开TCP连接; 5.HTTP客户端接受完响应报文之后,TCP连接关闭。HTTP客户端会从响应中提取出HTML响应文件,并检查该HTML文件,循环检查报文中其他内部对象; 6.检查完毕后,客户端把对应资源通过显示器反映给客户。
HTTP请求特征: 1.支持客户–服务器模式 2.简单快速,客户向服务器请求服务时,只需要请求方法(GET/POST/HEAD)和路径。 3.灵活,允许传输任意类型的数据对象,正在传输的类型由content-type加以标记。 4.无连接,无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,可以节省传输时间。 5.无状态,在服务器不需要先前信息时它的应答就比较快。
八种请求方法: GET获取资源、POST传输实体、PUT传输文件、HEAD获得响应首部、DELETE删除文件、OPTIONS询问支持的方法、TRACE追踪路径、CONNECT要求用隧道协议连接代理
HTTPS:一种通过计算机网络进行安全通信的传输协议,经由http进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS主要的目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整。
区别:1.https协议需要到CA机构申请证书,需要一定费用; 2.http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议; 3.http的端口为40,https的端口为443; 4.http的连接很简单,是无状态的,https是SSL+HTTP协议构建的可进行加密传输、身份认证,比http协议安全。
应用层协议
TELNET(23):简单的远程终端协议,用户使用telnet就可以通过TCP链接注册远程登陆到另一台主机 FTP(20、21):文件传输协议,提高文件的共享性和可靠高效的传送数据。传输文件时,FTP客户端程序先与服务器建立连接,然后向服务器发送命令,服务器给与响应并执行命令。(传输数据使用20端口,建立连接使用21端口,TCP) SMTP(25):简单邮件传输协议,属于TCP/IP协议簇,帮助每台计算机在发送或中转信件时找到下一个目的地,是一种TCP协议支持的提供可靠且有效电子邮件传输的协议。 POP3(110)/IMAP(143):邮件读取协议,POP3是用来收信的,SMTP是用来寄信的。
|