2016年(7)
分类: 网络与安全
2016-07-20 21:49:17
OSI:开放系统互联
七层结构:
1. 物理层:主要定义物理设备标准,主要作用是传输比特流(将10的数据流转化为变化强弱的电流进行传输,到接收端在转化为10)
2. 数据链路层:定义了如何让格式化的数据进行传输,在不可靠的物理介质上进行可靠的传输,还提供错误检测和纠正。代表协议:SDLC,HDLC,PPP,STP,帧中继等。
3. 网络层:IP协议,对子网间的数据包进行路由选择,还提供拥塞控制,网际互连。代表协议:IP。IPX。RIP。OSPF
4. 传输层:TCP/UDP,传输层是第一个端到端,即主机到主机的层次。将下层接收到的数据进行分段和传输,到达接收端在进行重组,这一层的数据通常叫:段。代表协议:TCP,UDP,SPX。
5. 会话层:负责建立,管理,终止进程间的会话;通过传输层建立数据传输的通路;
6. 表示层:确保一个系统的应用层所发送的信息被另一个系统的应用层读取;
7. 应用层:为用户的应用程序提供网络服务;代表协议:Telnet,FTP,HTTP,SNMP。
TCP/IP四层模型:
1. 网络访问层:
2. 网际层:
3. 传输层:
4. 应用层:在TCP/IP结构中,传输层以上都称为应用。
OSI和TCP/IP模型区别与联系:
1. OSI有7层,TCP/IP有4层
2. OSI在网络层支持:UDP(支持无连接的)和TCP(面向连接的),在传输层支持:TCP
3. TCP/IP在网络层:UDP,传输层:TCP、IP
三次握手
l 名词解释
l Seq(sequence Number)序列号,是为了连接以后传数据用的;
l ack (acknowledge Number)确认序列号,对收到的数据包进行确认,值为等待接收的数据包的序列号。
l SYN 同步信号
1) 第一次握手:client(客户端)发送SYN=1(请求建立连接),seq = j(j为随机产生的),client进入SYN_SEND状态,等待server确认。
2) 第二次握手:server(服务端)接收到数据包后,由标志位判断,如果SYN=1,知道client请求建立连接,那么ACK=1,SYN=1,同时,ack=j+1,seq = k; server进入SYN_RECV状态。
3) 第三次握手:client收到确认后,检查ACK=1,ack= j+1,那么client将标志位ACK= 1,ack= k+1,并将该数据包发给server端,server检查ACK=1,ack = k+1; client和server同时进入ESTABLISHED,连接建立。
四次挥手:
1) 第一次挥手:client发送一个FIN,用来关闭client到server的数据传输,client进入FIN_WAIT_1状态。
2) 第二次挥手:server收到client发送的FIN,发送一个ACK给client,确认序号为收到的序号+1(与SYN一样,一个FIN占用一个序号),server进入CLOSE_WAIT状态。
3) 第三次挥手:server发送一个FIN后,用来关闭server到client的数据发送,server进入LAST_ACK状态。
4) 第四次挥手:client收到FIN后,client进入TIME_WAIT状态,接着发送一个ACK,ack = k+1,server进入CLOSE专题,完成四次挥手。
l 为什么不是2次握手,而是三次握手?
如果是2次握手,客户端有可能因为网络阻塞等原因,发送多次请求报文,这是服务器就会建立连接,浪费掉许多服务器的资源。
l 如果第三次失败了,怎么办?
第3次失败了只有客户端处于成功状态(因为第2次服务器返回了确认请求),服务器端没有接收到客户端的第3次确认,后边的会有其他机制来处理这种情况,(当失败时,服务器不会重传ack报文,而是是直接发送RST报文段,进入CLOSED状态,这样做是为了防止SYN洪泛攻击)。
为什么连接的时候是3次,而关闭时候是4次?
TCP是全双工模式,关闭连接时,当服务器收到客户端发送的FIN时,仅仅表示客户端不在发送数据了,但是还能接受数据,服务器也未必将全部数据发给客户端了,所以服务器可以立即关闭,也可以发送一些数据后,在发送FIN表示同意现在关闭连接,所以服务器的FIN和ACK一般都分开发送。