Chinaunix首页 | 论坛 | 博客
  • 博客访问: 37967
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 67
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-24 11:36
文章分类

全部博文(7)

文章存档

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

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

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

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

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

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

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

阅读(2208) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~