Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TCP的几个问题

TCP的几个问题

作者头像
changan
发布于 2020-11-04 07:04:26
发布于 2020-11-04 07:04:26
5370
举报

IP header

UDP header

TCP header

MTU & MSS

MSS=MTU-IP包头长-TCP包头长

三次握手

交换初始序列号 交换TCP窗口大小信息

四次挥手

可以三次挥手吗,可以,ack+fin一起发就是三次,启用延迟确认就有三次挥手

2MSL等待状态

TIME_WAIT状态也称为2MSL等待状态。每个具体TCP实现必须选择一个报文段最大生存时间MSL(Maximum Segment Lifetime)。它是任何报文段被丢弃前在网络内的最长时间。我们知道这个时间是有限的,因为TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段。

对一个具体实现所给定的MSL值,处理的原则是:当TCP执行一个主动关闭,并发回最后一个ACK,该连接必须在TIME_WAIT状态停留的时间为2倍的MSL。这样可让TCP再次发送最后的ACK以防这个ACK丢失(另一端超时并重发最后的FIN)。

这种2MSL等待的另一个结果是这个TCP连接在2MSL等待期间,定义这个连接的插口(客户的IP地址和端口号,服务器的IP地址和端口号)不能再被使用。这个连接只能在2MSL结束后才能再被使用。

Nagle算法

Nagle算法是时代的产物,因为当时网络带宽有限。而当前的局域网、广域网的带宽则宽裕得多,所以目前的TCP/IP协议栈默认将Nagle算法关闭,即通过SO_NODELAY = 1

滑动窗口

性能: 停止等待协议 -> 滑动窗口 协议: GBN and SR

流量控制

发送方不能发的太快,接收不过来

拥塞控制

成因: 中间路由器缓存有限,发送带宽有限,更多没必要的重传,多跳 影响: 丢包 & 时延 方案: 观察 时延 丢包判断是否拥塞(TCP采用) 策略: 慢启动,先指数增,遇到丢包 /2 再线性增

状态图

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊清楚TCP三次握手四次挥手
上周记录了一下DNS的相关信息,包含DNS服务器的分类、如何利用DNS将域名转换成真实的IP等信息
Liusy
2021/06/24
4350
聊清楚TCP三次握手四次挥手
后台开发-核心技术与应用实践--TCP协议
为使不同计算机厂家的计算机能够互相通信,国际标准化组织 ISO 1981 年正式推荐了一个网络系统结构一一七层参考模型,也叫作开放系统互连模型。
范中豪
2021/03/18
5080
后台开发-核心技术与应用实践--TCP协议
TCP报文头部(sip协议端口号是tcp还是udp)
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说TCP报文头部(sip协议端口号是tcp还是udp),希望能够帮助大家进步!!!
Java架构师必看
2022/04/11
2.3K0
TCP报文头部(sip协议端口号是tcp还是udp)
TCP协议详解
小到基于应用层做网络开发,大到生活中无处不在的网络。我们在享受这个便利的时候,没有人会关心它如此牢固的底层基石是如何搭建的。而这些基石中很重要的一环就是tcp协议。翻看一下“三次握手”和“四次挥手”,本以为这就是tcp了,其实不然。它仅仅解决了连接和关闭的问题,传输的问题才是tcp协议更重要,更难,更复杂的问题。回头看tcp协议的原理,会发现它为了承诺上层数据传输的“可靠”,不知要应对多少网络中复杂多变的情况。简单直白列举一下:
kinnylee
2020/10/15
1K0
TCP协议详解
Java程序员必须掌握的网站知识 —— TCP
本文主要通过整理网络上的资料,整理出的关于TCP方面的简单理论知识。作为Java程序员虽然更多的时候我们都是直接调用现成的API,但是对网络知识有个宏观的概念能方便我们更好的编写代码。当然,文中涉及的
tomas家的小拨浪鼓
2018/06/27
1.1K0
Tcp是什么?_跟你说完了
2、TCP连接的建立与终止(主要讲解了TCP的三次握手与四次挥手,并讲述了TCP连接的状态变迁,面试常问)
全栈程序员站长
2022/10/04
1.1K0
Tcp是什么?_跟你说完了
这次,终于学会了 TCP
这是一篇详细介绍 TCP 各种特点的文章,内容主要包括 TCP 三次握手和四次挥手细节问题、TCP 状态之间的转换、TCP 超时和重传、关于 TCP 包失序和重复问题、TCP 的数据流与窗口管理、TCP 的拥塞控制,思维导图如下。
cxuan
2021/07/12
8330
这次,终于学会了 TCP
八股文!!
在发送数据包时,首先确认IP包中的目的IP地址,再从路由控制表中找到与该地址具有相同网络地址的记录,将包转发给该记录对应的路由器。如果路由控制表中有多条相同网络地址的记录,利用贪心法选择最优匹配项,如果没有匹配项,转发到默认路由后再进行选路。例如:目标地址172.20.100.52
千羽
2021/12/29
1.1K0
八股文!!
在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP
如果对网络工程基础不牢,建议通读《细说OSI七层协议模型及OSI参考模型中的数据封装过程?》
周陆军
2018/11/14
1.6K0
TCP问题分析
TCP问题分析 网络的五层协议 物理层 数据链路层 网络层,IP协议,ICMP协议(ping) 传输层,传输层有两个协议,面向连接的TCP和无连接的UDP,TCP是点对点的可靠连接,保证数据顺序必达,UDP是无连接的,不保证数据顺序必达,UDP的传输效率要比TCP高,但是可能会丢包,而且一个UDP分段最多只能发送65535个字节,TCP则是数据流的形式进行数据传输的,对于应用层来说,并没有限制一次性可发送的数据,只有在TCP协议这一层会对应用层传输下来的数据做分段重组,这个跟SYN的MMS(Max se
大大大大大先生
2018/09/04
1.3K0
TCP问题分析
《计算机网络传输层 TCP协议》
每个TCP报文段由固定的20Byte头部组成,TCP报文头部 选项可以跟在固定标头之后。 带有标头,使其最多可以标记 65535 个数据字节。
梅花
2021/11/11
7120
《计算机网络传输层 TCP协议》
TCP/IP协议
seq是序列号,这是为了连接以后传送数据用的,ack是对收到的数据包的确认,值是等待接收的数据包的序列号。
玖柒的小窝
2021/12/15
5680
TCP/IP协议
TCP协议笔记
 一、三次握手TCP状态。客户端:1.SYN_SENT   2.ESTABLISHED   服务端:1.SYN_RECVD  2.ESTABLISHED.
用户4415180
2022/06/23
7070
TCP协议笔记
《逆袭进大厂》第八弹之计算机网络(中)33问33答|下期再更新PDF版本
上期已经更新了 33 问 33 答,那今天再来更新 33 问 33 答好了哈哈,这是整个系列的第八期了,也是计网系列的第二期,计网还有一期就更新完了。
拓跋阿秀
2021/04/09
4480
《逆袭进大厂》第八弹之计算机网络(中)33问33答|下期再更新PDF版本
面试必备!TCP协议经典十五连问!
TCP协议是大厂面试必问的知识点。整理了15道非常经典的TCP面试题,希望大家都找到理想的offer呀
捡田螺的小男孩
2021/07/19
1.3K0
带你应付TCP/UDP高频面试问题
从6月下旬开始,上家公司告知要解散北京的除5G以外的研发团队。有点措手不及,很多知识点都没有来得及准备,而在面试中经常被问到TCP和UDP的一些细节问题。于是就有了本篇文章的总结。是参考和复制了很多前辈的总结。希望准备跳到互联网公司的程序员都能顺利通过面试。
dpdk-vpp源码解读
2023/03/07
5450
带你应付TCP/UDP高频面试问题
TCP/IP详解 卷1 第十八章 TCP的建立与终止
第十八章 TCP的建立与终止 tcpdump Tcpdump可以将网络中传送的数据报完截获下来进行分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉
xcywt
2018/03/28
8410
TCP/IP详解 卷1 第十八章 TCP的建立与终止
计算机网络 TCP 协议总结
TCP/IP 协议占据了互联网通信的一大半江山,特别像 TCP 这种保障端到端的可靠传输更是相当重要,关于它的实现也很复杂,今天介绍下关于 TCP 的相关重要知识。
lincoln
2021/10/26
4160
计算机网络 TCP 协议总结
万字图解 | 深入揭秘TCP工作原理
大家好,我是「云舒编程」,今天我们来聊聊计算机网络面试之-(传输层tcp)工作原理。
公众号 云舒编程
2024/01/25
1.5K0
万字图解 | 深入揭秘TCP工作原理
【Linux】传输层协议:UDP和TCP
1. 在网络通信中,通信的本质实际就是两台主机上的进程在网络环境中进行通信,也就是数据的传输,而我们总说TCP/IP协议栈,这两个协议分别解决了两个重要的问题,即一台主机如何在网络环境中标定自己的唯一性,一台主机中的某个进程如何在主机内部标定自己的唯一性,实际就是通过网络层协议IP地址和传输层协议端口号port来解决这两个问题的。
举杯邀明月
2023/10/17
1.3K0
【Linux】传输层协议:UDP和TCP
相关推荐
聊清楚TCP三次握手四次挥手
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档