计算机网络:网络体系结构(OSI、TCP/IP)、TCP(三次握手建连、四次挥手断连)、状态码

 

网络体系结构

相关概念

在分析分层之前需要知道一些概念:

  • 报文:格式化的消息;

  • 分组:将长报文分成更小的数据块;

  • 分组传输时间:L比特的报文 / R比特每秒的传输速率;

  • 分组交换机:路由器或链路层交换机,通过存储转发,需要接收整个分组放在输出队列中,然后才能转发,因此有转发时延;

  • 丢包:当一个新的分组进来,发现输出队列已满,则需要选择该分组或队列中的分组丢掉;

  • 协议:定义通信实体之间的报文交换的格式、次序,以及发送报文、接收报文或其它事情的操作;

  • 协议栈:各层所有的协议被称为协议栈 ;

Inter协议栈(5层)

  • 应用层:应用程序和协议,协议如:HTTP,消息分组称为报文;

  • 传输层:应用程序端点之间的传递,协议如:TCP,传输层分组称为报文段,向网络层提交报文和目标地址;

  • 网络层:从一台主机传递到另一台主机,协议如:IP协议,网络层分组称为数据报;

  • 链路层:网络层下传至链路层,链路层从一个结点(主机或分组交换机)传递到另外一个结点,链路层分组称为帧;

  • 物理层:将帧一个个比特传递到下一个结点;

OSI模型(7层)

OSI模型比Inter协议栈多个两层:表示层、会话层

  • 表示层:对通信数据的解释,例如:数据压缩、数据加密、数据描述(使应用程序不再关心各个计算机之间表示和内部存储格式不一样。)

  • 会话层:对数据交换定界和同步功能,例如:不同软件的数据分发给不同的软件。

表示与会话层由应用程序开发者处理。

TCP/IP分层(4层)

分为应用层、传输层、网络层、网络接口层(也称链路层)。

三个体系结构之间的关系:

TCP协议

TCP协议位于传输层。两应用程序间传输数据需要建立连接,TCP通过三次握手建立连接,是确保传输可靠的方式之一;

三次握手建连

简单理解由于TCP是双工通信,因此会建立从发送端到接收端  与  接收端到发送端的连接,通过SYN申请建立连接,被申请方如果同意建立连接,则会返回一个ACK,接收端会将SYN和ACK一起返回,如此一来就构成了三次握手建连。

 

为了方便理解图中将发送端标为Client,接收端标为Server,三次握手的具体过程如下:

  1. 接收端此时在监听端口,所以在建立连接前接收端处于LISTEN状态。发送端准备建立连接,会向接收端发送SYN同步包,发送完后发送端处于SYN_SET状态。

  2. 接收端在接收到SYN同步包后,同意建立连接,会向发送端返回ACK(回复SYN请求)、SYN,并将状态设置为SYN_RCVD;由于TCP是双工通信,所以接收端会向发送端发送SYN,建立从接收端到发送端的通信。

  3. 发送端接收到ACK后,连接状态变为了ESTABLISED状态,为了回复接收端的SYN请求,会向接收端发送ACK;接收端,接收到ACK后,状态变为ESTABLISHED,此时连接就建立起来了。

SYN攻击就是通过向接收端发送大量的SYN,从而导致接收端大量的连接处于SYN_RECVD状态,影响其它正常的连接。

四次挥手断连

发起断连的可以是双方中的任意一方,四次挥手断连可以简单理解为断开 发送端(将发起断连的一方称为发送端)和接收端的连接 与 接收端与发送端的连接,由于发起断连的一方并不知道另外一方是否还有数据传输,所以会将对FIN的回复的ACK和断连请求FIN分开发,于是就成了四次挥手断连。

将发起断连的一端称为发送端,另外一端称为接收端,具体过程如下:

  1. 发送端和接收端断连之前都属于ESTABLISHED状态;但发送端数据传输完成之后,向接收端发送FIN,表示要断开连接,连接状态变为FIN_WAIT_1。

  2. 接收端接收到FIN后,会回复ACK,状态变为CLOSE_WAIT;发送端接收到ACK后,连接状态变为FIN_WAIT_2,此时处于半关闭状态,接收端发送端依然可以传输数据;

  3. 当接收端不再传输数据时,向发送端发送FIN,此时状态为LAST_ACK,等待接收端应答就可以关闭了;

  4. 发送端接收到FIN后,状态变为TIME_WAIT,并向回复ACK,在等待2倍最大报文生存时间后,状态变为CLOSED;接收端接收到ACK后,状态变为CLOSED,此时连接关闭。

发送端需要等待2倍最大报文的生存时间的原因有两点:

  1. 保证连接能够可靠关闭;

  2. 等待重复数据从网络中消失,防止端口重用时出现数据混淆;

TCP协议的特点

TCP是可靠性传输,具有以下几个特点:

  • TCP的传输是基于字节流的,按照字节进行编号,然后通过ACK来确认收到的数据编号,这样能够保证数据的有序性和完整性;

  • TCP能够流量控制,通过滑动窗口控制传输速率。滑动窗口的本质是动态缓冲区,接收端根据自己的能力,通过ACK发送给发送端,发送端根据窗口大小来控制发送速率;

  • TCP还提供拥塞控制,用于解决大量重传导致的网络情况恶化。主要用到了慢启动、拥塞避免、拥塞发生、快速恢复四个算法;

状态码

状态码指的是客户端向服务器发送请求时,描述服务器返回的结果,由3位数字和原因短语组成;

数字原因具体
1XX表示请求正在处理-------
2XX请求已经成功处理

200 Ok

204 No Content

206 Partial Content

3XX重定向

301 Moved Permanently

302 Found(临时重定向)

4XX服务器无法处理请求

400 Bad Request

401 Unauthorized 第一次返回需要验证,第二次返回验证出错

403 Forbidden

404 Not Found

5XX处理请求出错

500 Internal Server Error

503 Service Unavailable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值