第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松

知识点

1 TCP秉承性恶论 , 认为网络环境是复杂恶劣的

2 可能的情况: 丢包 , 乱序 , 重传 , 拥塞

3 UDP每个包只有端口号 , TCP包还多了序号 , 确认序号 , 都是32位

4 序号解决乱序问题

5 确认号解决丢包问题

6 best-effort 协议 尽最大努力保证可靠 , 极端情况网络差TCP也没办法

7 状态位 010101010….1010


image.png

8 SYN发起连接

9 ACK回复

10 RST重新连接

11 FIN结束连接

12 窗口大小 16位 , 标识自己能够处理的数据量

13 拥塞控制 , 尽力缓解网络堵车问题

14 三次握手 , 为什么是3次 , 不是两次 , 假设法 , 网络环境非常差

15 请求-> 应答 -> 应答的应答

16 A发了好多次请求 , B终于收到了 , B应答 , 但是B不能确定A收到应答了 , 所以不能认为连接建立

17 一个诡异的握手案例

18 保证消息都有去有回就基本可以了

19 大部分情况建立连接后都会立即发送数据 , B就可以知道连接建立正常了

20 如果A建立连接后一直不发数据 , 可以用keepalive机制 , 俗称心跳包 , 也可以关闭节省资源

21 三次握手双方还会交换初始序号 , 不是从1开始的 , 因为容易冲突

22 冲突案例: A发送1,2,3包, 包3丢了重传 , 但是A掉线重连了 , 然后发数据又从1,2开始 , 发送1,2包的时候, 上一个连接的包3突然到了, 产生了错误

23 初始序号按时间生成 , 32位计数器 , 每4ms+1 , 远大于TTL时间

24 TTL 生存时间 , 超出则丢弃

25 TCP握手时序状态机图 , 自己画一遍?

26 四次握手的半关闭状态 , 被动关闭一方还没发完数据 , 此时还可以发

27 几种单方面异常直接跑路情况

28 A说完不玩了直接跑 , 会发生什么

29 A说完不玩了 , B直接跑 , 会发生什么

30 TCP为了解决上面问题设计的断开连接状态

31 断开连接的时序状态机图 , 自己画一遍

32 列出4次握手的状态 : FIN_WAIT_1 CLOSED_WAIT FIND_WAIT_2 TIME_WAIT LAST_ACK CLOSED

33 状态之间转换的过程?

34 tcp_fin_timeout 解决B直接跑后 , A还在等的问题

35 TIME_WAIT解决什么问题

36 A直接跑路引发的另一个问题 : 端口空出来 , 被新的应用使用了 , 虽然有初始序列号 , 但为了双保险还是要TIME_WAIT , 等包都死完了再断开空出端口

37 MSL = Maximum Segment Lifetime , 报文最大生存时间 , 这个是时间 , TTL是跳

38 ICMP作用是?

39 MSL一般是2分钟 , 实际可以用30s , 1min , 2min

40 TIME_WAIT等待2MSL

41 另一个极端情况 , B超过了2MSL还没收到ACK , A直接发RST , 那RST也丢了呢? A不管那么多啦 ,仁至义尽

42 一张TCP状态机的图 , 要结合时序状态机图看才不会晕菜

43 思考题两个 1 如何在系统中查看某个连接的状态 2 这节讲的只是维护连接的状态 , 还有其他数据结构处理其他问题, 有哪些?

44 使用netstat 查看连接

45 查看8080端口 TIME_WAIT的连接 netstat -tan | grep 8080 | grep TIME_WAIT | wc -l

46 wc是什么命令 , word count ,

man wc 结果


image.png

47 如何统计各连接状态的数量 https://www.jianshu.com/p/4dcef4b7ee06

image.png

48 awk的使用

49 之前学Socket的时候看到的建立连接的4元组数据结构 , 服务端什么时候保存客户端的IP和端口号

50 当时弄校园网认证路由器的时候接触过心跳包

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容