关于TCP/IP协议的一些记录

Just because you’re struggling doesn’t mean you’re failing. Every great success requires some type of struggle.
—— Nicky Gumbel, Priest
「只因为你在挣扎,不代表你已经失败了,每个卓越的成功都需要某种挣扎。」—— 尼基 · 甘贝尔

呼呼~,终于又写完一篇了。

中文名

传输控制协议/互联协议

外文名

Transmission Control Protocol/Internet Protocol
简称

TCP/IP协议

层级结构

4层

简介
互联网协议是一个网络通信模型以及一整个网络传输协议家族为互联网的基础通信架构
(常被通称TCP/IP协议族,简称TCP/IP)
因为该协议家族的核心协议TCP和IP,为该家族中最高通过的标准

将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同的通信协议。

协议族下的各种协议,依其功能不同,被被分别归属到这四个层次结构中。
(所以,常被视为是简化的七层OSI模型)

传输控制协议/网际/互联协议
是指能够在多个不同网络间实现信息传输的协议族簇包括:FTP,SMTP,TCP,UDP,IP等协议构成的协议簇

在学习TCP/IP协议的时候,网安同学还要注意一下syn包攻击

SYN洪泛攻击的基础是依靠TCP建立连接时三次握手的设计。第三个数据包验证连接发起人在第一次请求中使用的源IP地址上具有接受数据包的能力,即其返回是可达的
简单的来说就是攻击客户端,再短期内构造大量不存在的IP地址,向服务器不断发送syn包,由于源地址是不存在的,服务器需要不断的重复发送直至超时,严重者引起网络堵塞甚至系统瘫痪,是一种典型的DDOS攻击。
在这里插入图片描述

OSI七层模型
简介OSI(Open System Interconnection)共分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层,其具体的功能如下。
背一背鹰标会的传人,是王树武,😄背了这个估计一辈子都忘不了
在这里插入图片描述
(1) 物理层

提供建立、维护和释放物理链路所需的机械、电气功能和规程等特性
通过传输介质进行数据流(比特流)的物理传输、故障监测和物理层管理
从数据链路层接收帧,将比特流转换成底层物理介质上的信号

(2) 数据链路层

在物理链路的两端之间传输数据
在网络层实体间提供数据传输功能和控制
提供数据的流量控制
检测和纠正物理链路产生的差错
格式化的消息称为帧
提供介质访问和链路管理

(3)网络层

负责端到端的数据的路由或交换,为透明地传输数据建立连接
寻址并解决与数据在异构网络间传输相关的所有问题
使用上面的传输层和下面的数据链路层的功能
格式化的消息称为分组
ip选址及路由的选择

(4)传输层

提供无差错的数据传输
接收来自会话层的数据,如果需要,将数据分割成更小的分组,向网络层传送分组并确保分组完整和正确到达它们的目的地
在系统之间提供可靠的透明的数据传输,提供端到端的错误恢复和流量控制
建立,管理和维护端到端的连接

(5) 会话层

提供节点之间通信过程的协调
负责执行会话规则(如:连接是否允许半双工或全双工通信)、同步数据流以及当故障发生时重新建立连接
使用上面的表示层和下面的传输层的功能
建立,管理和维护会话

(6)表示层

提供数据格式、变换和编码转换
涉及正在传输数据的语法和语义
将消息以合适电子传输的格式编码
执行该层的数据压缩和加密
从应用层接收消息,转换格式,并传送到会话层,该层常合并在应用层中
简单说就是数据格式转化,数据加密

(7)应用层

包括各种协议,它们定义了具体的面向用户的应用:如电子邮件、文件传输等
就是为应用程序提供服务

总结

低三层模型属于通信子网,涉及为用户间提供透明连接,操作主要以每条链路( hop-by-hop)为基础,在节点间的各条数据链路上进行通信。由网络层来控制各条链路上的通信,但要依赖于其他节点的协调操作。

高三层属于资源子网,主要涉及保证信息以正确可理解形式传送。

传输层是高三层和低三层之间的接口,它是第一个端到端的层次,保证透明的端到端连接,满足用户的服务质量(QoS)要求,并向高三层提供合适的信息形式。

简介

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由RFC 793定义。

2.3.2. TCP状态
在这里插入图片描述
statetransition

三次握手

三次握手(Three-Way Handshake)是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

第一次握手客户端将标志位 SYN 置为1,随机产生一个值 seq=s ,并将该数据包发送给服务端,客户端进入 SYN_SENT 状态,等待服务端确认。

第二次握手服务端收到数据包后由标志位 SYN=1 知道客户端请求建立连接,服务端将标志位 SYN 和 ACK 都置为1,ack=s+1,随机产生一个值 seq=k ,并将该数据包发送给客户端以确认连接请求,服务端进入 SYN_RCVD 状态。

第三次握手客户端收到确认后,检查ack值是否为s+1,ACK标志位是否为1,如果正确则将标志位 ACK 置为1,ack=k+1,并将该数据包发送给服务端,服务端检查ack值是否为k+1,ACK标志位是否为1,如果正确则连接建立成功,客户端和服务端进入 ESTABLISHED 状态,完成三次握手。

四次挥手

四次挥手(Four-Way Wavehand)
指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。
第一次挥手客户端发送一个 FIN ,用来关闭客户端到服务端的数据传送,客户端进入 FIN_WAIT_1 状态。

第二次挥手服务端收到 FIN 后,发送一个 ACK 给客户端,确认序号为收到序号+1,服务端进入 CLOSE_WAIT 状态。

第三次挥手服务端发送一个 FIN ,用来关闭服务端到客户端的数据传送,服务端进入 LAST_ACK 状态。

第四次挥手客户端收到 FIN 后,客户端进入 TIME_WAIT 状态,接着发送一个 ACK 给服务端,确认序号为收到序号+1,服务端进入 CLOSED 状态,完成四次挥手。

拥塞控制拥塞

是指网络中报文数量过多,使得服务端来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。

TCP采用拥塞控制算法来减少或者避免拥塞现象的发生,TCP的拥塞算法有过多种实现,包括Tahoe、Reno、NewReno、Vegas、Hybla、BIC 、CUBIC、SACK、Westwood、PRR、BBR等。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值