(OSI)网络七层模型及具体功能-TCP/IP原理-三次握手四次挥手详解

网络七层模型及具体功能

首先七层模型主要有:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

物理层

物理层:主要定义了一些物理设备标准,比如光纤接口类型、网线的接口类型和其它各种传输介质的传输速率等。物理层主要作用即传输比特流数据,这一层的数据叫做比特。

数据链路层

数据链路层:根据从物理层接收的数据进行MAC地址(MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址)的封装与解封装。这一层数据叫做帧,在这一层工作的设备是交换机,数据通过交换机来传输。

网络层

网络层:主要将从下层接受到的数据进行IP地址的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。

传输层

传输层:定义了一些传输数据的协议和端口号(WWW端口80等等),比如TCP(传输控制协议,可靠性强,传输效率低,用于传输可靠性要求高数据量小的数据,面向连接,速度慢),UDP(用户数据报协议,可靠性低,无连接,传输数据量较大的,速度快).主要是将从下层接受的数据进行分段进行传输,到达目的地址后再进行重组。常常把这一层数据叫做段。

会话层

会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接收会话请求。(也就是说设备之间需要获取对方信息建立连接通道,可以通过ip、MAC地址、主机名等)

表示层

表示层:主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成使用者能够识别的一些东西(图片、文本等))

应用层

应用层:主要是一些终端的应用,比如WEB网页,应用软件(如qq、微信)。
1

TCP/IP原理

TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。从协议分层模型来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。

网络访问层

网络访问层在TCP/IP模型中并没有进行详细的一个描述,仅指出主机必须使用某种协议与网络相连。

网络层

网络层是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序也可能不同。高层如果需要顺序收发,那么必须自行处理对分组的排序。互联网层使用因特网协议。

传输层

传输层使源端和目的端机器上的对等实体可以进行会话。在这一层定义了两个端到端的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP是面向无连接的不可靠传输的协议,主要用于不需要TCP的排序和流量控制等功能的应用程序。

应用层

应用层包含了所有的高层协议,包括了虚拟终端协议(TELNET)、文件传输协议(FTP)、电子邮件传输协议(SMTP、POP3等)、域名服务(DNS)、网上新闻传输协议(NNTP)和超文本传输协议(HTTP)等等。

三次握手四次挥手

TCP在进行传输之前会进行三次确认,通常我们叫做三次握手,在传输结束后会进行四次确认,进行断开,通常被称为四次挥手。

三次握手

第一次握手:Client将标志位SYN((同步序列编号(Synchronize Sequence Numbers))置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。(即B确认了A的发送能力B的接受能力)
第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。(判断ack是否等于seq+1即A确认了A的发送能力A的接收能力B的发送能力B的接收能力。那么此时B还不知道A的接受能力,B的发送能力是不是正常,如果放弃第三次握手可能会导致一些安全性问题,比如当A想要建立连接时发送一个SYN,然后等待ACK,结果这个SYN因为网络原因未及时到达B,所以A在一段时间内没收到ACK后,再发送一个SYN,这次B顺利收到,接着A也收到ACK,这时A发送的第一个SYN终于到了B,对于B来说这是一个新连接请求,然后B又为这个连接申请资源,返回ACK,然而这个SYN是个无效的请求,A收到这个SYN的ACK后也并不会理会它,而B却不知道,B会一直为这个连接维持着资源,造成资源的浪费。)
第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态。(此时A和B均获取到了AB发送接收的信息,也就避免了因未获取信息造成的一些意外情况)
2

四次挥手

TCP建立连接要进行三次握手,而断开连接要进行四次,这是由于TCP的半关闭导致的。因为TCP连接是全双工的(也就是数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭。这个单方向关闭也就是半关闭。当一方完成它的数据发送任务之后,就发送一个FIN来向另一方通告将要终止这个方向的连接。
1.A与B传输结束后,A需要结束此次会话,那么将发送一个FIN,用来关闭客户到服务器的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u。(第一次挥手,A进入FIN-WAIT-1)
2.B收到A的消息后说:发回一个ACK,确认好ack为收到的序号加1。(seq=v,ack=u+1,ACK=1)(第二次挥手,B进入CLOSE-WAIT)
3.之后A收到B的确认后,等了一段时间,因为B可能还有话要对他说。(此时A进入FIN-WAIT-2),再之后B发送所有消息后,对A说,我要关闭连接了。(seq=w, ack=u+1,FIN=1,ACK=1)(第三次挥手)
4.A收到B要结束连接的则发送确认:已收到B要关闭连接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次挥手,然后A进入CLOSED),B收到A的确认后,也进入CLOSED。
以上就是四次挥手的全过程。

3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值