zoukankan      html  css  js  c++  java
  • TCP/IP详解(一)

    SYN中的MSS选项是告诉对端,本端在本地连接的每个TCP分节中愿意接收的最大数据量。发送端TCP使用接收端的MSS值作为发送分节的最大大小。

    TCP半关闭使用的情况较少,可用于通知对端本端数据已输入完成。之所以关闭TCP要四路握手,也是因为有半关闭。

    主动关闭的一端在TIME_WAIT状态要等待2MSL的时间,在此时间内,TCP连接的两个IP地址和端口号组合是不能被使用的。这对客户来说并没什么影响,因为客户的端口是可以任意的。但是对服务器来说,服务器的端口是熟知端口(固定的)。如果关闭一个服务器再立即启动,由于处于TIME_WAIT状态,服务器将无法绑定熟知端口。

    当连接一个没有人监听的端口时,对端会发送回RST报文,本端将产生connection refused的错误。

    异常关闭连接,本地发送RST报文,对端接到后产生一个错误,并终止该连接。不会有任何响应。

    ACK总是延迟200ms,以期望和有效数据一起发送(捎带)

    Nagle算法要求一个TCP连接中,发送者只能有一个未被确认的小分组。在此之前,要发送的小分组都被整合到一个分组中,等之前的小分组确认后,再发送这个分组。

    这二者合在一起,产生的问题是,ACK延迟发送,而没收到ACK,就不会发送新的分组,导致延迟。

    为了关闭Nagle算法,可以使用TCP选项中的TCP_NODELAY

  • 相关阅读:
    视频学习网站
    保存文章
    maven常见命令总结
    Eclipse vs IDEA快捷键对比大全(win系统)
    JS调用android逻辑方法
    【原创】不用封装jar包 直接引入工程使用的方法(类似android的 is Library功能)
    windows下eclipse+hadoop2
    Solaris用户管理(一):用户与组管理
    jquery 操作 checkbox
    模拟用户登录的操作
  • 原文地址:https://www.cnblogs.com/johnsblog/p/3977970.html
Copyright © 2011-2022 走看看