浅谈计算机网络之TCP协议

TCP(Transmission Contro Protocol):是一种专门在不可靠地互联网上提供面向连接的、基于字节流的、端到端的运输层通信协议

概述: 

在计算机网络中,支持TCP的机器都有一个TCP实体。或者是用户进程或者是操作系统内核,都可以管理TCP流和IP层的接口。发送方(封装):应用层向下层发出了数据流。之后TCP将数据流分割为不超过MTU的报文段(不超过64kB,实践中,通常分割为1460字节,以通过以太网传输)。之后TCP将结果传给IP层,由IP层将包通过网络发送给接收端实体的IP层。接收方(解封装):当包含TCP数据段的报文到达某台机器时,会被提交给传输实体,传输实体将其重构出原始的字节流。

为保证不会丢包,TCP会给发出的每一个字节一个序号,同时这也保证了接收端实体接受的包按照相应序号进行接收,接收端成功受到数据包后会发出一个ACK确认;若在发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算和校验。

首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,它是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。

在流量控制上采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。

在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法),该算法主要包括三个主要部分:1,加性增、乘性减;2,慢启动;3,对超时事件做出反应。

TCP抓包:

 TCP报文格式:

TCP连接上的每个字节都有其独有的32为序列号,收发双方的TCP实体以数据段的形式交换数据,每个数据段包含20字节的头部和数据区域

 TCP数据段头:

源端口和目的端口:字段表明了一个连接的两个端点

        用以跟踪同一时间内通过网络的不同会话,一般每个端口对应一个程序

序列号:32位

        初始化序列号(ISNs)随机产生,为了通信安全

        SYN:携带了ISNs和SYN控制位的数据段

确认号:32位

        期望接收的字节号

URG:当紧急指针使用的时候,URG 被置为1。紧急指针是一个对于当 前序列号的字节偏移量,标明紧急数据从哪里开始

当URG=1时,说明有紧急数据,必须首先处理,当接收方受到这种数据后,马上处理,处理后恢复其正常的操作

ACK:当其为1时:表明确认号有效(已收到发送的上一个数据)

           当其为0时:表明确认号无效(未收到发送的上一个数据) 

PSH:表示这是带有PUSH标志的数据,接收方收到这样的数据后,应立即送到上层,而不需要缓存它

RST:    被用来重置一个已经混乱的连接

SYN:用在连接建立的阶段

FIN:被用来释放连接,它表示发送方已经没有数据需要发送了,但可以接受数据

 window size:表明窗口值,告诉对方可以发送数据字节数,这取决于接收方的接受能力

Checksum--校验和,校验的范围包括头部、数据和概念性的伪头部

TCP三次握手☞

 

(38条消息) 浅谈计算机网络值TCP连接的建立(三次握手)_BUG马的博客-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值