假定客户端执行主动打开,服务器执行被动打开,客户端发送syn包到服务器,服务器接收该包,进行建立连接请求的相关处理,即第一次握手;本文主要分析第一次握手中被动打开端的处理流程,主动打开端的处理请查阅本博客内另外的文章; IPv4携带的TCP报文最终会进入到tcp_v4_do_rcv函数,服务器准备接 ...
分类:
其他好文 时间:
2019-10-28 11:06:48
阅读次数:
177
tcp客户端与服务器端建立连接需要经过三次握手过程,本文主要分析客户端主动打开中的第一次握手部分,即客户端发送syn段到服务器端; tcp_v4_connect为发起连接主流程,首先对必要参数进行检查,获取路由信息,改变连接状态成SYN_SENT,再调用inet_hash_connect将控制块加入 ...
分类:
其他好文 时间:
2019-10-28 10:26:51
阅读次数:
66
创建socket时会创建传输控制块,之后调用初始化函数对控制块进行初始化,其中包括对定时器的初始化,tcp会调用tcp_init_xmit_timers函数来初始化这些定时器,本文将详细分析tcp_init_xmit_timers函数; 下面为这种情况的函数调用关系: tcp_init_xmit_t ...
分类:
其他好文 时间:
2019-10-27 22:55:39
阅读次数:
99
前提: A:主动关闭; B:被动关闭; A执行主动关闭,发送FIN,B收到FIN,发送ACK,进入CLOSE_WAIT,B发送FIN,进入LAST_ACK等待最后一个ACK到来; 关闭方式: (1) 收到A发送回来的ACK进入CLOSED状态; (2) 未收到A发送回来的ACK,重传FIN,此时A处 ...
分类:
其他好文 时间:
2019-10-27 22:21:23
阅读次数:
94
TCP协议 传输控制协议 TCP是面向连接、可靠的进程到进程通信的协议 TCP提供全双工工服务,即数据可在同一时间双向传输 三次握手: 连接的建立过程 由客户端发起的 四次断开: 连接的断开过程 由服务端发起的 Seq:序列号 ACK:确认号 实现重传机制 指针位 :一个二级制位,只有0和1两个值, ...
分类:
其他好文 时间:
2019-10-01 16:41:31
阅读次数:
108
一、TCP的特点 面向连接的、可靠的、基于字节流的传输层通信协议。 将应用层的分割成报文段,并发送发给目标节点的TCP层。 数据包都有序号,对方收到则发送ACK确认,未收到则重传。 使用效验和来效验数据在传输过程中是否有误。 二、TCP报文信息 报文头包含信息有: 源端口、目的端口 标示进程(soc ...
分类:
其他好文 时间:
2019-09-30 19:51:48
阅读次数:
94
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数 ...
分类:
其他好文 时间:
2019-09-29 17:05:01
阅读次数:
107
使用curl v www.baidu.com发送一个请求 使用wareshark的过滤器表达式显示这个完整请求 TCP HTTP协议 , 其中192.168.1.4是本地ip 可以看到84 85两个tcp帧合成一个http报文86 89 服务器端发生了数据帧重传,90 客户端重复确认了一下 最后服务 ...
分类:
Web程序 时间:
2019-09-28 15:01:32
阅读次数:
121
[TOC] 1. 两种丢包处理策略 为了保证实时性,通常适应UDP协议来针对RTP数据进行传输,而UDP无法保证数据传输的质量,所以在网络环境不好的时候,丢包是经常出现的问题,有什么策略来改善这个问题吗? 常用的方法有: 丢包重传(ARQ) 和 前向纠错(FEC) 。 通常抗丢包有两种方式,FEC和 ...
分类:
其他好文 时间:
2019-09-17 13:14:05
阅读次数:
179
1 网络协议背景概念 4层网络传输是基于udp基于端口 7层网络协议传输是基于tcp基于端口(tcp的复杂度很高很高..),并在tcp之上添加了会话层表示层应用层 upd协议面向报文,tcp协议 面上字节流。 啥是面向字节流呢? 2 TCP传输通信过程 tcp面向字节流,udp面向报文。那tcp的字 ...
分类:
其他好文 时间:
2019-09-16 00:41:35
阅读次数:
154