TCP/IP
文章平均质量分 81
TCP/IP
phygram
加油→_→
展开
-
OSI七层网络模型及Internet中的一些基本概念
1. OSI七层网络模型:2. ARPANET四层网络模型:3. 基本的IP地址结构:3.1 IPv4地址空间分类:3.2 IPv4地址空间划分:几个特殊的IP地址:127.0.0.1 //本地回路测试地址255.255.255.255 //代表广播地址0.0.0.0 //代表任何网络网络号全为0的代表本地网络和本地网段;网络号全为1的代表所有的网络;主机位全为0的代表某个网段的任何主机地址;主机位全为1的代表该网段的所有主机。4. 网络拓扑图:交换原创 2021-08-31 20:21:01 · 340 阅读 · 0 评论 -
TCP三次握手及四次挥手过程中的异常处理
1. 消息丢失的情况:1.1 三次握手过程的消息丢失:正常的三次握手的流程:1.1.1 第一次握手消息丢失:(SYN)正常情况下,当客户端想要与服务器建立TCP连接时,首先要发送第一个SYN报文段,然后将本端的TCP状态置为 SYN_SENT。在这之后,如果客户端没有收到服务端的 SYN+ACK 响应,就会触发超时重传机制。超时时间判断: 不同版本的操作系统可能超时时间不同,一般为 1秒 或 3秒,由内核配置,修改需要重新编译内核。重传次数: 由内核参数 tcp_syn_retries 配置原创 2021-08-31 16:13:28 · 4844 阅读 · 1 评论 -
TCP中几个用于提高传输效率的机制
1. Nagle算法与ACK延迟确认:Nagle算法在发送端 开启,限制发送条件;ACK延迟确认在 接收端 开启,二者的作用都是限制链路中小包的数量。==> Nagle算法的规则:(1)如果包长达到MSS,则允许发送;反之如果包长小于MSS,则不允许发送;(2)如果该包含有FIN,则允许发送;(3)在TCP连接上最多只能有一个 未被确认的 小数据包,在该分组的确认ACK到达之前,不能发送其他小的数据包;(4)关闭Nagle算法:套接字开启 TCP_NODELAY 选项。==> A原创 2021-03-18 02:05:13 · 1833 阅读 · 0 评论 -
什么是TCP的“粘包”和“拆包”?如何解决?
1. 什么是TCP的“粘包”和“拆包”?TCP的流式发送导致上层应用层的分块数据 被粘连或拆分发送 的现象。TCP传输的是字节流,所谓流,就是发送的是一连串的数据,没有界限。TCP底层不会解析具体的数据内容,它会根据缓冲区的实际情况进行包的划分(发送和接收),由此会导致上层业务的一个完整的包被拆分成多个包进行发送(“拆包”),或者多个小包被封装成一个大的数据包进行发送(“粘包”),这就是所谓的TCP的拆包和粘包问题。举例:假设客户端给服务器发送两个数据包:D1、D2,由于服务器一次从接收缓冲区中原创 2021-03-18 00:36:05 · 2775 阅读 · 0 评论 -
TCP连接中TIME_WAIT状态的作用及优化
1. 为什么需要TIME_WAIT状态?为什么TIME_WAIT的时长是2*MSL?原因1:防止连接关闭时四次挥手中的最后一次ACK丢失: TCP需要保证每一包数据都可靠的到达对端,包括正常连接状态下的业务数据报文,以及用于连接管理的握手、挥手报文,这其中在四次挥手中的最后一次ACK报文比较特殊,TIME_WAIT状态就是为了应对最后一条ACK丢失的情况。 TCP保证可靠传输的前提是收发两端分别维护关于这条连接的状态信息(TCB控制块),当发生丢包时进行ARQ重传。如果连接释放了,就无法进行重..原创 2021-03-18 00:17:08 · 1200 阅读 · 0 评论 -
TCP连接中 FIN_WAIT_2 状态下的异常关闭
正常情况下,主动关闭连接的一端(客户端)在 FIN_WAIT_2 状态等待一段时间后,会收到对端(服务器)的FIN报文,从而进入TIME_WAIT状态等待连接的真正关闭。(服务器何时发送FIN取决于服务器应用程序的处理,一般会在read返回0发现客户端已经关闭连接后,也调用close关闭连接) 然而有在某些异常情况下,可能处于 FIN_WAIT_2 状态的一端一直等不到对端的FIN。如果没有外力的作用,连接两端会一直分别处于 FIN_WAIT_2 和 CLOSE_WAIT 状态。这会造成系统资源..原创 2021-03-17 21:01:39 · 1484 阅读 · 0 评论 -
TCP连接状态转换的几种异常情况
TCP连接: TCP是基于连接的传输协议,TCP的可靠传输需要建立在一对一的连接的基础之上。 TCP通过三次握手建立连接,通过四次挥手断开连接。 三次握手不仅完成连接的建立,同时完成了交换初始序列号(Initial Sequence Number,ISN)。 通常关闭连接是由应用程序发起(调用close),然而一些服务器(例如Web服务器)在对请求作出响应之后也会发起关闭操作。 TCP使用一个四元组来唯一的表示一条TCP连接(source_ip、dest_ip、source_port、d原创 2021-03-13 02:13:35 · 723 阅读 · 0 评论 -
TCP流量控制与拥塞控制
TCP是一个提供可靠传输,按序递交数据,兼顾传输效率的协议。1. 如何实现可靠: CRC + SN + ACK + ARQ + 重复丢弃 + 重排序(1) CRC + ARQ:(针对数据出错的情况) 数据在底层网络中传输时可能出现内容比特级差错,为保证数据正确,接收端需要对数据进行校验,检测收到的数据是否与初始发送的数据内容一致。 TCP会对数据包的 头、体 分别进行 CRC校验,如果出现差错,则将数据丢弃,且不回复ACK,发送端在超时未收到ACK后会发起重传(ARQ)。(2)原创 2021-03-12 21:19:49 · 539 阅读 · 0 评论 -
关于TCP的一些基本概念
TCP滑动窗口/流量控制/拥塞控制原创 2020-11-08 18:00:20 · 1563 阅读 · 0 评论