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专题,完成四次挥手。

为什么不是2次握手,而是三次握手

如果是2次握手,客户端有可能因为网络阻塞等原因,发送多次请求报文,这是服务器就会建立连接,浪费掉许多服务器的资源。

l  如果第三次失败了,怎么办?

第3次失败了只有客户端处于成功状态(因为第2次服务器返回了确认请求),服务器端没有接收到客户端的第3次确认,后边的会有其他机制来处理这种情况,(当失败时,服务器不会重传ack报文,而是是直接发送RST报文段,进入CLOSED状态,这样做是为了防止SYN洪泛攻击)。

为什么连接的时候是3次,而关闭时候是4次?

TCP是全双工模式,关闭连接时,当服务器收到客户端发送的FIN时,仅仅表示客户端不在发送数据了,但是还能接受数据,服务器也未必将全部数据发给客户端了,所以服务器可以立即关闭,也可以发送一些数据后,在发送FIN表示同意现在关闭连接,所以服务器的FIN和ACK一般都分开发送。

10-07 16:16